存储 频道

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

  【IT168 专稿】在共享基础架构和全天候运行时代,传统的数据移动方法(使卷脱机,花费数小时将其复制到新位置,然后重新配置并重新启动受影响的服务器和应用程序)几乎已无法满足需求。因此,NetApp 为您提供了一系列产品,需要时您可以在不中断的情况下以最轻松的方式将数据移动到新位置。

  NetApp Data Motion(已更名为 NetApp DataMotion for vFiler)可以使您在多租户环境下在存储系统之间移动MultiStore vFiler单元及所有相关数据。在 Data ONTAP 8.0.1 版本中,NetApp 推出了几个新功能,其中就包括 DataMotion for Volumes,使您可以在同一存储控制器上的聚合体之间无中断地迁移包含 LUN 的卷。

  本文介绍 DataMotion for Volumes,说明它与 DataMotion for vFiler 的区别,并提供一些非常好的实践和可能的使用实例。

  什么是 DataMotion for Volumes?

  DataMotion for Volumes 是在 7 模式下运行的 Data ONTAP 8.0.1 支持的新功能, 它使您可以在不中断的情况下在单个存储控制器上将卷从一个聚合体迁移到另一个聚合体(不能在构成一个 HA 对的两个不同控制器之间移动卷)。DataMotion for Volumes 旨在帮助迁移任何仅包含 FC、FCoE 或 iSCSI LUN 的卷, 它不支持 NFS 卷或 CIFS 卷。

什么是 DataMotion for Volumes?
▲图 1) 借助 NetApp DataMotion for Volumes,您可以在不中断的情况下在单个 NetApp 存储控制器上的不同聚合体之间迁移包含 LUN 的卷。

  DataMotion for Volumes 的关键优势在于,它在迁移后保留与卷相关的所有详细信息,其中包括:

  • 快照和快照时间表
  • SnapMirror、SnapVault 和 MetroCluster 关系
  • 精简配置设置
  • 重复数据删除状态(需要重新扫描才能在新位置重新建立指纹数据库)

  您可以在连接到存储控制器的所有类型的介质之间移动数据。例如,您可以将数据从包含 FC 或 SAS 磁盘的聚合体移动到包含 SATA 磁盘的聚合体,反之亦然。在第一版中,您可以在 32 位聚合体之间移动卷,也可以在 64 位聚合体之间移动卷,但不能在 32 位聚合体和 64 位聚合体之间移动卷。

  DataMotion for Volumes 和 DataMotion for vFiler 之间的区别

  DataMotion for Volumes 与您可能已经了解的 DataMotion for vFiler 技术之间存在一些重要区别。DataMotion for Volumes 在 FlexVol 卷级运行,而 DataMotion for vFiler 在 vFiler 级运行,并将迁移与特定 vFiler 单元相关的所有 NFS 或 iSCSI 卷。DataMotion for vFiler 使您可以在不同的存储系统或 HA 对之间迁移卷。DataMotion for vFiler 使用 NetApp Protection Manager 进行管理。DataMotion for Volumes 只能通过使用 vol move 命令从命令行调用。

什么是 DataMotion for Volumes?
▲表 1) DataMotion for Volumes 与 DataMotion for vFiler 的比较。

  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 更新操作的时间并记录此信息。在启动手动转移之前,您应先查看此信息。

  可能的使用实例

  DataMotion for Volumes 有多种使用实例。

  • 负荷平衡。将卷从繁忙的聚合体移动到活动较少的聚合体。

  • 容量平衡。将卷从已满的聚合体移动到空闲空间更大的聚合体。

  • 将数据从第三方磁盘迁移到 NetApp 磁盘。如果您将 NetApp V 系列系统用在第三方供应商的磁盘阵列的前端,可以使用 DataMotion for Volumes 将数据从该阵列迁移到 NetApp 磁盘架。

  • 更换介质类型。将卷从一种磁盘介质移动到另一种磁盘介质, 例如,从 FC 磁盘移动到 SAS 或 SATA 磁盘。

  很多用户告诉我,他们对所有这些使用实例都很感兴趣,尤其是需要能够更换介质类型这一情况。目前的行业趋势是从 FC 转向 SAS,在这种背景下,DataMotion for Volumes 可提供相对轻松地淘汰旧介质的方法。

  有些用户相信,能够无中断地更换介质类型将使他们在部署 SATA 磁盘时更为积极,尤其是在与闪存性能加速功能配合使用时。这些用户计划在成本更低的 SATA 磁盘上部署更多应用程序,他们知道万一出现性能问题,也可以在不中断的情况下将卷快速迁移到 FC 或 SAS 磁盘。

  非常好的实践

  注意一些非常好的实践可以帮助您成功使用 DataMotion for Volumes。

  • 您一次只能执行一个 DataMotion for Volumes 迁移。

  • 执行 DataMotion for Volumes 操作期间,请不要运行 vol rename 或更改源卷中的卷属性设置和 LUN 属性设置。

  • DataMotion for Volumes 操作完成前,请不要开始任何相冲突的操作。如果非传送阶段开始任何操作,DataMotion for Volumes 会中止。在传送状态下,DataMotion for Volumes 会阻止所有存储管理员操作。

  • 为了保持数据完整性,请先暂停,再开始手动重新启动或停止。

  • 在 HA 对中,请确保两个节点均运行 Data ONTAP 8.0.1 7 模式。

  • 务必先检查系统状况和负荷,然后再启动 DataMotion for Volumes。

  • 为了避免干扰传送,请不要在 DataMotion for Volumes 过程中安排长时间运行的数据管理或数据保护操作。

  • 请不要更改源卷的任何配置。

  SnapMirror 和 SnapVault

  • 在 DataMotion 运行期间,请不要更改您的 SnapMirror 配置,例如 snapmirror.conf 文件。

  • 如果 DataMotion for Volumes 尚未进入传送状态,则 SnapMirror 或 SnapVault 更新将会成功。

  • 如果在传送阶段进行更新,则更新的传输无法完成,因为传送会阻止该操作。传送完成后,更新传输会在下次更新时完成。

  • 如果是手动传送,请在未进行任何更新或传输时进行传送。

  SnapDrive 和 SnapManager

  传送期间:

  • SnapDrive for Windows (SDW) 中的 LUN 配置和 Snapshot 副本管理操作将会失败。

  • SnapManager 产品(SME、SMSQL、SMVI、SMHV、SMO、SMSAP 和 SMOSS)的任何备份和恢复操作都会失败。下一个计划的备份作业将成功。

  主机操作 SCSI 超时设置

  NetApp 建议安装 NetApp Host Utilities 套件来避免超时错误。请参考 http://now.netapp.com/NOW/cgi-bin/software 上适合您的主机操作系统的《NetApp Host Utilities 安装和设置指南》。

  FlexVol 和 FlexClone

  • DataMotion for Volumes 只移动 FlexVol 卷,不移动 FlexClone 卷。DataMotion for Volumes 完成后,原始 FlexVol 卷保持脱机状态,父子关系不变。

  • 必须先将 FlexClone 卷从父 FlexVol 卷中分离,才能移动 FlexClone 卷。

  重复数据删除和压缩

  • 如果正在对源 FlexVol 卷进行重复数据删除,则必须将其停止,传送才能成功。

  • DataMotion for Volumes 不移动指纹数据库和经过重复数据删除的 FlexVol 卷的更改日志。DataMotion for Volumes 过程完成后,用户必须执行 sis start -s 在目标地址上重建指纹数据库。

  • 无法移动经过压缩的卷。

  在 TR-3881 中可以找到 DataMotion for Volumes 与 Oracle 数据库和 Microsoft Exchange 配合使用的其他非常好的实践。

  结论

  DataMotion for Volumes 是强大的数据管理工具,可以提高操作灵活性。您不必仔细计划和开始只能在长期计划的停机时间内执行的卷移动,而可以根据需要移动卷,实现负荷平衡、容量平衡或更换介质类型的目的。要了解关于 DataMotion for Volumes 的更多信息,请查看 TR-3873 和 TR-3881。

  作者信息

作者信息
▲Richard Jooss NetApp总监兼 SAN/iSCSI 架构师

  Richard Jooss 是 NetApp 的 SAN 产品和合作伙伴工程高级经理。Rick 负责制定 SAN 生态系统和存储的技术与业务要求,以及业务解决方案与 NetApp SAN 解决方案的集成。Rick 拥有 15 年的存储行业经验。他拥有威斯康星大学电子工程和计算机工程理学学士学位。

0
相关文章