将 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):最高为 100 TiB
    • 高级(SSD):最高 100 TiB,性能更高

步骤 2:准备 Azure 环境

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

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

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

步骤 3:装载 Azure 文件共享

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

对于 Windows 客户端(SMB):

本文介绍如何使用 NTLMv2 身份验证(存储帐户密钥)装载 Azure 文件共享。 在非管理方案中,出于安全原因,首选使用 基于标识的身份验证

可以通过导航到存储帐户并选择“安全性 + 网络>”,或使用 PowerShell cmdlet,在 Get-AzStorageAccountKey找到存储帐户密钥。

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

net use Z: \\<storage-account-name>.file.core.chinacloudapi.cn\<share-name> /u:AZURE\<storage-account-name> <storage-account-key>

有关详细信息,请参阅 在 Windows 上装载 SMB Azure 文件共享

步骤 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 -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 虚拟机大小

优化 SMB 性能

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

故障排除

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

Robocopy 的常见问题

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

迁移支持

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

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

另请参阅