使用 CLI 在池间迁移卷

可以使用命令行界面 (CLI) 在池之间迁移卷。

您可以通过收集有关节点、MDisk 和卷的输入/输出 (I/O) 统计信息,确定特定 MDisk 的使用情况。 收集此数据后,您可以对其进行分析以确定使用率极高的卷或 MDisk。 然后可以将卷从一个存储池迁移到另一个存储池。

完成以下步骤以收集有关 MDisk 和卷的统计信息:
  1. 请使用安全复制(scp 命令)检索转储文件以进行分析。 例如,发出以下命令:
    scp clusterip:/dumps/iostats/v_*
    该命令会将所有卷统计信息文件拷贝到 AIX 主机的当前目录中。
  2. 分析内存转储以确定使用率极高的卷。 同时确定哪些 MDisk 使用过度可能有助于您通过迁移数据块以在存储池中的所有 MDisk 之间更加平均地分散数据。

分析 I/O 统计数据后,您可以确定使用率极高的卷。 您还需要确定要将该卷移到的存储池。 您可以创建新的存储池,或者确定未过度使用的现有组。 检查生成的 I/O 统计信息文件,然后确保目标存储池中的 MDisk 或卷的使用率低于源存储池中的 MDisk 或卷。

您可以使用数据迁移或卷镜像,在存储池之间迁移数据。 数据迁移使用 migratevdisk 命令。 卷镜像使用 addvdiskcopyrmvdiskcopy 命令。

使用 migratevdisk 迁移数据

您可以使用 migratevdisk 命令在 两个存储池之间迁移数据。 发出 migratevdisk 命令时,会进行检查以确保迁移的目标具有足够的可用数据块,可以满足该命令的需求。 如果有,那么该命令会继续执行。 完成该命令需要数分钟。
备注:
  • 您无法使用数据迁移功能在扩展数据块大小不同的存储池之间移动卷。
  • 如果目标或源卷脱机,未定义任何定额磁盘,或者定义的定额磁盘不可用,那么迁移命令将失败。 请纠正脱机或定额磁盘状况,并重新发出该命令。
  • 系统支持在同一父池中的子池之间迁移卷,或将子池中的卷迁移到其父池。 如果源子池和目标子池在不同父池中,那么卷 迁移将失败。 但是,您可以使用 addvdiskcopyrmvdiskcopy 命令在不同父池中的子池之间迁移卷。
使用数据迁移时,可用目标扩展数据块可能由另一个进程使用;例如,当在目标父池中创建新卷时,或者启动更多迁移命令时。 在此方案下,分配所有目标数据块后,迁移命令会暂挂,并且会记录一个错误(错误标识 020005)。 要从此状态恢复,请使用以下方法之一:
  • 向目标父池添加更多 MDisk,这样可在组中提供更多数据块并允许迁移重新启动。 在重新尝试迁移前,必须将该错误标记为已修复。
  • 将已创建的一个或多个卷从父池迁移到另一个组。 此操作可释放组中的数据块并允许重新启动原始迁移。
请执行以下步骤,使用 migratevdisk 命令在存储池之间迁移卷:
  1. 确定要迁移的卷以及要将该卷迁移到的新存储池后,发出以下 CLI 命令:
    migratevdisk -vdisk vdisk_name
     -mdiskgrp
     mdisk_group_name -threads 4
  2. 您可通过发出以下 CLI 命令来检查迁移进度:
    lsmigrate

使用卷镜像迁移数据

使用数据迁移时,如果任一池发生故障,那么卷将会脱机。 由于仅当源池发生故障时,卷才会脱机,因此卷镜像可用于最大程度地减少对卷的影响。 您可以使用 addvdiskcopyrmvdiskcopy 命令来代替 migratevdisk 命令,在子池之间或从子池到父池迁移卷。请完成以下步骤来使用卷镜像在池之间迁移卷:
  1. 确定要迁移的卷以及要将该卷迁移到的新池后,输入以下命令:
    addvdiskcopy -mdiskgrp mdisk_group_name -autodelete vdisk_name
    其中,mdisk_group_name 是新存储池的名称,vdisk_name 是要拷贝的卷的名称。 指定 -autodelete 以在同步拷贝后自动删除卷的原始拷贝。
  2. 这样会返回新拷贝的拷贝标识。 拷贝现已同步,因此数据已同时存储在两个存储池中。 您可通过发出以下命令来检查同步进度。
    lsvdisksyncprogress