将 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 连接到 Azure 文件的 Windows 客户端应满足以下要求:

  • Windows 7 或 Windows Server 2008 R2 或更高版本
  • SMB 2.1 协议支持(最低)
  • SMB 3.0 协议对加密功能的支持
  • SMB 3.1.1 协议支持,以获得最佳安全性和性能

重要

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

有关要求和设置说明的完整列表,请参阅 将 Azure 文件共享与 Windows 配合使用。

NFS 要求

Azure 文件支持 NFSv4.1,但 Windows 不包括兼容的 NFSv4.1 客户端。 在 Windows 上使用 NFS 共享:

  1. 安装适用于 Linux 的 Windows 子系统(WSL):

  2. 从在 WSL 上运行的 Linux 分发版中装载 NFS 共享。

迁移工具

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

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

对于 Windows 客户端:Robocopy

Robocopy 是一种内置 Windows 命令行工具,旨在复制 SMB 文件共享。

用于迁移的基本 Robocopy 语法

robocopy <GlusterFS_Source> <AzureFiles_Destination> /MIR /Z /MT:8 /W:1 /R:3 /LOG:migration_log.txt

参数:

  • /MIR:镜像目录结构(包括子目录)
  • /Z:启用中断副本的重启模式
  • /MT:8:使用 8 个线程进行多线程复制
  • /W:1:重试之间的等待时间(1 秒)
  • /R:3:失败副本的重试次数
  • /LOG:创建详细的日志文件

分步迁移过程

步骤 1:评估和规划

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

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

  3. 选择 HDD(标准)或 SSD(高级),并适当调整 Azure 文件共享的大小:

    • HDD:最多 256 TiB(预配 v2)或 100 TiB(即用即付)
    • SSD:最多 256 TiB(预配 v2)或 100 TiB(预配 v1)

步骤 2:准备 Azure 环境

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

    • 根据需求选择正确的媒体层(HDD 或 SSD)。 NFS 文件共享需要 SSD。
  2. 配置网络。 请参阅 Azure 文件存储网络注意事项。

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

步骤 3:装载 Azure 文件共享

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

Windows 客户端 (SMB)

若要将 Azure 文件共享装载为 Windows 上的本地网络驱动器,请参阅 在 Windows 上装载 SMB Azure 文件共享。 请务必使用 用于 SMB 管理的 Windows 权限模型 或存储账户密钥(不建议)之一来挂载共享。

步骤 4:执行数据迁移

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

对于使用 Robocopy 的 Windows 工作负载

使用管理员权限打开命令提示符或 PowerShell 窗口,并运行以下命令:

robocopy X:\GlusterFSData Z:\AzureFilesData /MIR /Z /MT:8 /W:1 /R:3 /LOG:C:\migration_log.txt

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

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

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

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

步骤 6:直接转换

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

优化性能

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

注释

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

优化 SMB 性能

  • 启用 SMB 多通道 ,以实现具有多个连接的更高吞吐量。
  • 将 SSD 文件共享用于性能关键型工作负荷。
  • 配置适当的客户端缓存。
  • 遵循 SMB 文件共享的 Azure 文件存储性能建议 。

故障排除

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

Robocopy 的常见问题

  • 错误 5 (拒绝访问):验证对源和目标的权限。
  • 错误 67 (找不到网络名称):检查网络连接和共享名称。
  • 错误 1314 (配额不足):增加 Azure 文件存储配额或可用空间。

迁移支持

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

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

另请参阅