本文提供有关将数据从 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 共享:
安装适用于 Linux 的 Windows 子系统(WSL):
- 对于 Windows 客户端:遵循 WSL 安装指南
- 对于 Windows Server:按照 Windows Server 上的 WSL 安装指南进行操作
从在 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:评估和规划
列出 GlusterFS 卷清单,并记下:
- 总数据大小
- 文件和目录数
- 访问模式和性能要求
- 客户端操作系统
选择适当的协议。 在大多数情况下,你需要将 SMB 用于 Windows 工作负载,将 NFS 用于 Linux 工作负载。
选择 HDD 或 SSD,并适当调整 Azure 文件共享的大小:
- 标准 (HDD):最高为 100 TiB
- 高级(SSD):最高 100 TiB,性能更高
步骤 2:准备 Azure 环境
在相应的 Azure 区域中创建存储帐户。
- 根据需求选择适当的性能层(标准层或高级层)。 NFS 文件共享需要高级版。
配置网络。 请参阅 Azure 文件存储网络注意事项。
- SMB:根据需要配置防火墙和专用终结点。 请参阅 “配置 Azure 存储防火墙 ”和 “配置网络终结点”以访问 Azure 文件共享。
- NFS:配置网络安全和私有端点。 请参阅 在 Linux 上装载 NFS Azure 文件共享。
使用适当的协议创建 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:验证迁移是否成功
比较文件计数和大小:
- 在 Windows 上:使用
Get-ChildItem -Recurse | Measure-Object
- 在 Linux 上:使用
find . -type f | wc -l
和du -sh
- 在 Windows 上:使用
验证用户/组权限和访问权限。
执行特定于应用程序的测试。
步骤 6:直接转换
- 重定向应用程序,以使用 Azure 文件存储终结点。
- 更新 fstab(Linux)或映射驱动器(Windows)中的装入点。
- 更新文档和监视工具。
- 成功验证后,解除 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 咨询服务。