使用 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_namevdisk_name -autodelete yes
    其中,mdisk_group_name 是新存储池的名称,vdisk_name 是要拷贝的卷的名称。将 -autodelete 指定为 yes 可在拷贝同步完成后自动删除卷的原始拷贝。
  2. 这样会返回新拷贝的拷贝标识。拷贝现已同步,因此数据已存储在两个存储池中。您可通过发出以下命令来检查同步进度。
    lsvdisksyncprogress