存储 频道

分享:NetApp卷迁移非常好的实践和使用实例

  DataMotion for Volumes 工作原理

  DataMotion for Volumes 利用经验证的 NetApp SnapMirror 技术进行卷迁移。对该流程的工作原理稍作了解有助于获得成功。迁移分为三个阶段:

  • 准备
  • 数据复制
  • 传送

  在准备阶段和数据复制阶段,源卷继续无中断地满足 I/O 请求。

DataMotion for Volumes 工作原理
▲图 2) DataMotion for Volumes 完整流程图。

  准备阶段

  在准备阶段,会执行重要的预检查,以确保整个操作可以成功完成。每次启动 DataMotion for Volumes 时都会运行这些预检查,传送阶段开始时会再次执行预检查。

  预检查验证移动涉及的所有对象(例如源卷、源聚合体和目标聚合体)的状态。任何预检查不成功,您都将得到通知,移动过程不会开始。预检查发现的所有错误均在控制台上报告出来,并记录到控制器根卷 (/etc/log/ndvm) 下的日志文件中。

  成功完成所有预检查后,DataMotion for Volumes 将:

  • 使用以下命名约定在目标聚合体中创建临时占位卷:ndm_dstvol_

  • 触发基本传输,在源卷和占位卷之间建立 SnapMirror 关系。这是最长的阶段;既然全卷内容都要传输,其持续时间与源卷大小成正比。

  数据复制阶段

  基本传输完成后,数据复制阶段将开始,在此期间,启动连续的 SnapMirror 更新,以使目标卷与源卷同步(源卷仍处于活动状态)。在每次成功 SnapMirror 更新结束时,DataMotion for Volumes 都会估计两个卷之间的时间延迟。您会收到此延迟的通知,此延迟将作为下次更新操作的估计时间。只要延迟较大,DataMotion for Volumes 就会处于数据复制阶段。如果延迟很小,DataMotion for Volumes 会进入传送阶段。

  传送阶段

  传送阶段可以手动进行,也可以自动进行(默认)。

  预备传送。如果在传送窗口时间内目标卷可以完全同步,则 DataMotion for Volumes 会进入传送阶段。预备传送阶段非常短暂,在此期间,会再次证实前面提到过的初始预检查,确保未发生任何变化,并运行其他重要检查(包括监控 NVLOG 和系统 CPU 负荷的状态)。

  您可以为 DataMotion for Volumes 设置 CPU 和磁盘阈值限制 (以下两项的默认值均为 100):

  • vol.move.cutover.cpu.busy.limit
  • vol.move.cutover.disk.busy.limit

  自动传送。预备传送检查完成后,传送阶段会自动开始。传送必须在传送窗口时间(默认最长 60 秒)内完成。目标卷完全同步后,会将源卷的标识传给目标卷,然后从目标卷提供 I/O 服务。

  • 源卷中的所有 LUN 均被置于暂停 I/O(静止)状态。在静止状态下,无法在 LUN 上安排新 I/O,但会完成 LUN 上的所有待处理 I/O。

  • 源卷处于静止状态。作为静止操作的一部分,会在 Snapshot 副本(根据约定 ndvm_final_ 命名)中捕获最后延迟。

  • 然后,使用 ndvm_final_ 中的延迟完成目标卷与源卷的完全同步。这是从目标卷提供 I/O 服务前两个卷之间的最后一次 SnapMirror 更新。

  • 占位卷获得源卷的名称和文件系统 ID (FSID),源卷获得占位卷的名称和 FSID,即源卷与占位卷交换标识。

  • 目标地址上迁移的卷以原来源卷的标识联机,LUN 变为活动状态。

  • 源卷被删除(除非您指定保留源卷)。

  传送失败:如果传送失败,DataMotion for Volumes 会重新进入数据复制阶段,并在稍后重新尝试。默认情况下,它会进行三次传送尝试。之后,传送将中止, I/O 继续从原始位置运行。此时需要用户介入,以便 DataMotion for Volumes 继续下去。

  手动传送:在手动传送过程中,DataMotion for Volumes 保持在数据复制阶段,执行连续的 SnapMirror 更新。它会继续估计下次 SnapMirror 更新操作的时间并记录此信息。在启动手动转移之前,您应先查看此信息。

0
相关文章