将 GlusterFS 卷迁移到 Azure 文件存储服务

本文提供有关将数据从 GlusterFS 卷迁移到 Azure 文件存储的指导,它是 Microsoft 在云中的完全托管文件服务。 Azure 文件提供 SMB(服务器消息块)和 NFS(网络文件系统)协议,使其适用于 Windows 和 Linux 工作负载。

GlusterFS 生命周期结束注意事项

Red Hat Gluster 存储(基于 GlusterFS)已结束其支持生命周期。 Red Hat 正式宣布此产品的生命周期结束,计划如下。

  • 完全支持结束:2020 年 11 月
  • 维护支持终止日期:2021 年 11 月
  • 延长寿命阶段结束:2024 年 6 月
  • 正式生命周期结束:2024 年 12 月

使用 GlusterFS 的组织应迁移到受支持的替代项(如 Azure 文件存储),以确保持续支持和安全更新。

Azure 文件的客户端要求

在从 GlusterFS 迁移到 Azure 文件存储之前,请确保客户端系统满足使用 SMB 或 NFS 协议连接到 Azure 文件共享所需的要求。

SMB 要求

通过 SMB 连接的 Linux 客户端应具有:

  • 支持 SMB 的兼容 Linux 分发版
  • 已安装的 cifs-utils
  • SMB 3.0 协议支持(最低)
  • SMB 3.1.1 协议支持(建议)

重要

强烈建议使用 SMB 3.1.1 协议进行 Azure 文件存储访问。 SMB 3.0 和 2.0 应仅用于旧客户端,并且必须计划 OS 升级来缓解未修补的安全漏洞。

有关特定的分发支持和配置步骤,请参阅 在 Linux 客户端上装载 SMB Azure 文件共享

NFS 要求

通过 NFS 连接的 Linux 客户端应具有:

  • NFSv4.1 客户端支持
  • 兼容的 Linux 分发版
  • NFS 流量的正确网络配置

有关 NFS 装载要求和配置步骤,请参阅 装载 NFS 共享

迁移工具

对于 Windows 客户端,我们建议使用 Robocopy。

对于 Linux 客户端,请使用 rsync 或 fpsync 以便并行化 rsync 文件操作。 请参阅 fpsync 和 rsync 的使用对比

对于 Linux 客户端:rsync

rsync 是 Linux 系统上提供的快速通用文件复制工具。

用于迁移的基本 rsync 语法

rsync -avz --progress --stats --delete <GlusterFS_Source>/ <AzureFiles_Destination>/

参数:

  • -a:存档模式(保留权限、时间戳等)
  • -v:详细的输出
  • -z:在传输期间压缩数据
  • --progress:显示传输过程中的进度
  • --stats:提供传输统计信息
  • --delete:删除目标中源中不存在的文件

分步迁移过程

步骤 1:评估和规划

  1. 列出 GlusterFS 卷清单,并记下:

    • 总数据大小
    • 文件和目录数
    • 访问模式和性能要求
    • 客户端操作系统
  2. 选择适当的协议。 在大多数情况下,你需要将 SMB 用于 Windows 工作负载,将 NFS 用于 Linux 工作负载。

  3. 选择 HDD 或 SSD,并适当调整 Azure 文件共享的大小:

    • 标准 (HDD):最高为 100 TiB
    • 高级(SSD):最高 100 TiB,性能更高

步骤 2:准备 Azure 环境

  1. 在相应的 Azure 区域中创建存储帐户

    • 根据需求选择适当的性能层(标准层或高级层)。 NFS 文件共享需要高级版。
  2. 配置网络。 请参阅 Azure 文件存储网络注意事项

  3. 使用适当的协议创建 Azure 文件共享。

步骤 3:装载 Azure 文件共享

在迁移数据之前,必须装载 Azure 文件共享。

对于 Linux 客户端(NFS):

若要装载文件共享,请运行以下命令。 请务必用实际值替换<storage-account-name><share-name><mount-point>

sudo mount -t nfs <storage-account-name>.file.core.chinacloudapi.cn:/<storage-account-name>/<share-name> <mount-point> -o vers=4.1,sec=sys

有关详细信息,请参阅 Linux 上的装载 NFS Azure 文件共享

步骤 4:执行数据迁移

装载 Azure 文件共享后,可以执行数据迁移。

对于使用 rsync 的 Linux 工作负荷:

请执行以下命令:

rsync -avz --progress --stats --delete /mnt/glusterfs/ /mnt/azurefiles/

对于大型数据集,请考虑使用 --exclude 参数分阶段执行迁移。

步骤 5:验证迁移是否成功

  1. 比较文件计数和大小:

    • 在 Windows 上:使用 Get-ChildItem -Recurse | Measure-Object
    • 在 Linux 上:使用 find . -type f | wc -ldu -sh
  2. 验证用户/组权限和访问权限。

  3. 执行特定于应用程序的测试。

步骤 6:直接转换

  1. 重定向应用程序,以使用 Azure 文件存储终结点。
  2. 更新 fstab(Linux)或映射驱动器(Windows)中的装入点。
  3. 更新文档和监视工具。
  4. 成功验证后,解除 GlusterFS 卷的授权。

优化性能

按照这些建议优化从 GlusterFS 迁移到 Azure 文件存储时的性能。 有关详细的性能优化,请参阅 Azure 文件存储可伸缩性和性能目标并了解和优化 Azure 文件共享性能

备注

检查虚拟机(VM)大小,以确保当文件共享大小正确调整为所需的吞吐量和 IOPS 时,VM 网络带宽不是瓶颈。 不同的 VM SKU 具有不同的网络带宽限制,可以限制整体文件共享性能。 选择为工作负荷要求提供足够网络吞吐量的 VM 大小。 有关详细信息,请参阅 Azure 虚拟机大小

优化 NFS 性能

  • 始终将高级 (SSD) 文件共享用于 NFS 工作负载(必需)。
  • 根据 吞吐量要求预配足够的容量。
  • 优化客户端设置,例如读/写缓冲区大小。
  • 使用 nconnect,客户端装载选项允许在客户端和 NFS 文件共享之间使用多个 TCP 连接。 建议使用 nconnect=4 的最佳设置。
  • 考虑客户端与 Azure 之间的网络延迟。
  • 遵循 NFS 文件共享的 Azure 文件存储性能建议

故障排除

按照以下说明排查常见迁移问题。

rsync 的常见问题

  • 权限被拒绝:检查文件权限和装载选项。
  • 连接超时:验证网络连接和防火墙设置。
  • 部分传输:使用 --partial 标志恢复中断的传输。
  • 没有此类文件或目录:验证文件路径和目录是否存在。

迁移支持

有关与 Azure 文件存储相关的问题,请通过 Azure 门户联系 Azure 支持部门。

为了获得 GlusterFS 迁移的帮助,请考虑联系 Microsoft 咨询服务。

另请参阅