本文提供有关将数据从 GlusterFS 卷迁移到 Azure 文件存储的指导,它是 Microsoft 在云中的完全托管文件服务。 Azure 文件提供 SMB(服务器消息块)和 NFS(网络文件系统)协议,使其适用于 Windows 和 Linux 工作负载。
Red Hat Gluster 存储(基于 GlusterFS)已结束其支持生命周期。 Red Hat 正式宣布此产品的生命周期结束,计划如下。
- 完全支持结束:2020 年 11 月
- 维护支持终止日期:2021 年 11 月
- 延长寿命阶段结束:2024 年 6 月
- 正式生命周期结束:2024 年 12 月
使用 GlusterFS 的组织应迁移到受支持的替代项(如 Azure 文件存储),以确保持续支持和安全更新。
在从 GlusterFS 迁移到 Azure 文件存储之前,请确保客户端系统满足使用 SMB 或 NFS 协议连接到 Azure 文件共享所需的要求。
通过 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 连接的 Linux 客户端应具有:
- NFSv4.1 客户端支持
- 兼容的 Linux 分发版
- NFS 流量的正确网络配置
有关 NFS 装载要求和配置步骤,请参阅 装载 NFS 共享。
对于 Windows 客户端,我们建议使用 Robocopy。
对于 Linux 客户端,请使用 rsync 或 fpsync 以便并行化 rsync 文件操作。 请参阅 fpsync 和 rsync 的使用对比。
rsync 是 Linux 系统上提供的快速通用文件复制工具。
rsync -avz --progress --stats --delete <GlusterFS_Source>/ <AzureFiles_Destination>/
参数:
-
-a
:存档模式(保留权限、时间戳等) -
-v
:详细的输出 -
-z
:在传输期间压缩数据 -
--progress
:显示传输过程中的进度 -
--stats
:提供传输统计信息 -
--delete
:删除目标中源中不存在的文件
列出 GlusterFS 卷清单,并记下:
- 总数据大小
- 文件和目录数
- 访问模式和性能要求
- 客户端操作系统
选择适当的协议。 在大多数情况下,你需要将 SMB 用于 Windows 工作负载,将 NFS 用于 Linux 工作负载。
选择 HDD 或 SSD,并适当调整 Azure 文件共享的大小:
- 标准 (HDD):最高为 100 TiB
- 高级(SSD):最高 100 TiB,性能更高
在相应的 Azure 区域中创建存储帐户。
- 根据需求选择适当的性能层(标准层或高级层)。 NFS 文件共享需要高级版。
配置网络。 请参阅 Azure 文件存储网络注意事项。
- SMB:根据需要配置防火墙和专用终结点。 请参阅 “配置 Azure 存储防火墙 ”和 “配置网络终结点”以访问 Azure 文件共享。
- NFS:配置网络安全和私有端点。 请参阅 在 Linux 上装载 NFS Azure 文件共享。
使用适当的协议创建 Azure 文件共享。
在迁移数据之前,必须装载 Azure 文件共享。
若要装载文件共享,请运行以下命令。 请务必用实际值替换<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 文件共享。
装载 Azure 文件共享后,可以执行数据迁移。
请执行以下命令:
rsync -avz --progress --stats --delete /mnt/glusterfs/ /mnt/azurefiles/
对于大型数据集,请考虑使用 --exclude
参数分阶段执行迁移。
比较文件计数和大小:
- 在 Windows 上:使用
Get-ChildItem -Recurse | Measure-Object
- 在 Linux 上:使用
find . -type f | wc -l
和du -sh
- 在 Windows 上:使用
验证用户/组权限和访问权限。
执行特定于应用程序的测试。
- 重定向应用程序,以使用 Azure 文件存储终结点。
- 更新 fstab(Linux)或映射驱动器(Windows)中的装入点。
- 更新文档和监视工具。
- 成功验证后,解除 GlusterFS 卷的授权。
按照这些建议优化从 GlusterFS 迁移到 Azure 文件存储时的性能。 有关详细的性能优化,请参阅 Azure 文件存储可伸缩性和性能目标 , 并了解和优化 Azure 文件共享性能。
注意
检查虚拟机(VM)大小,以确保当文件共享大小正确调整为所需的吞吐量和 IOPS 时,VM 网络带宽不是瓶颈。 不同的 VM SKU 具有不同的网络带宽限制,可以限制整体文件共享性能。 选择为工作负荷要求提供足够网络吞吐量的 VM 大小。 有关详细信息,请参阅 Azure 虚拟机大小。
- 始终将高级 (SSD) 文件共享用于 NFS 工作负载(必需)。
- 根据 吞吐量要求预配足够的容量。
- 优化客户端设置,例如读/写缓冲区大小。
- 使用 nconnect,客户端装载选项允许在客户端和 NFS 文件共享之间使用多个 TCP 连接。 建议使用
nconnect=4
的最佳设置。 - 考虑客户端与 Azure 之间的网络延迟。
- 遵循 NFS 文件共享的 Azure 文件存储性能建议 。
按照以下说明排查常见迁移问题。
- 权限被拒绝:检查文件权限和装载选项。
- 连接超时:验证网络连接和防火墙设置。
-
部分传输:使用
--partial
标志恢复中断的传输。 - 没有此类文件或目录:验证文件路径和目录是否存在。
有关与 Azure 文件存储相关的问题,请通过 Azure 门户联系 Azure 支持部门。
为了获得 GlusterFS 迁移的帮助,请考虑联系 Microsoft 咨询服务。