本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。
本指南旨在指导如何将 2020 年 05 月 20 日前创建的极速型 NAS 实例(v1 版),通过 rsync 工具安全迁移至新实例,并完成业务切换。
迁移流程概览
整个迁移过程分为四个主要阶段,请严格按照顺序执行:
准备阶段:识别旧实例,创建并配置新实例。
数据迁移:使用 rsync 工具同步数据。
业务切换:将应用程序切换到新的文件系统实例。
资源清理:在确认业务稳定后,安全地释放旧的文件系统和相关资源。
第一阶段:准备与规划
您需要迁移的是文件系统版本为1的极速型NAS实例。
步骤 1.1:识别待迁移的旧实例
使用NAS控制台
登录 文件存储NAS控制台。
在左侧导航栏,选择文件系统 > 文件系统列表。
设置筛选条件为极速型。
单击极速型NAS名称进入文件系统详情页。
在基础信息页签下,查看版本号字段:
如果版本号为1,即为本次需迁移的文件系统;
记录其文件系统ID和挂载点地址,便于后续操作。
使用API
登录阿里云OpenAPI门户,调用DescribeFileSystems接口。
设置请求参数:
地域:选择 NAS 实例所在的地域。
FileSystemType
: 填写 extreme,表示查询极速型。
在返回结果中,筛选出所有 Version 字段值为 "1" 的实例,并记录其
FileSystemId
。JSON 返回结果示例:
{ "FileSystems": { "FileSystem": [ { "Version": "1", // <-- 确认此字段值为 "1" "FileSystemId": "31a****-****", // <-- 记录此字段 // ... 其他字段 } ] } }
根据记录的
FileSystemId
,前往文件存储NAS控制台,查找并记录其挂载点地址。
步骤 1.2:规划并创建新文件系统
为每一个待迁移的旧实例,创建一个新的极速型 NAS 文件系统作为迁移目标。
在规划前,建议先尝试在目标可用区创建一个测试实例,以确认资源库存充足。
在 文件存储NAS控制台,单击创建文件系统。
在弹出的面板中,选择创建极速型NAS。
在创建页面,参考下表进行关键配置:
参数
配置指导 (用于本次迁移)
说明
地域
必须选择与旧实例相同的地域。
跨地域无法直接通过 VPC 访问,会极大增加迁移复杂度和成本。
可用区
建议选择与旧实例相同的可用区
这是确保迁移 ECS 能同时挂载新旧两个实例、获得最佳性能的关键。
存储规格
根据您的业务需求选择标准型或高级型。
任一可用区仅支持一种类型。建议选择高级型以获得更优性能。
协议类型
NFS (自动选择,无需修改)
极速型 NAS 仅支持 NFS 协议。
极速型配置容量
建议设置为不小于旧实例的存储容量。
您可以根据业务未来的增长预期,适当增加容量。
加密类型
保持默认的不加密,或根据您的安全合规要求选择。
如果旧实例未加密,建议新实例也保持不加密,以避免引入不必要的复杂性。
完成以上配置后,点击 立即购买,完成创建。
步骤 1.3:为新文件系统创建挂载点
在 文件存储 NAS 控制台的文件系统列表中,找到并单击您刚刚创建的新文件系统的 ID。
进入文件系统详情页,在左侧导航栏选择挂载使用 > 添加挂载点。
参数
配置指导 (用于本次迁移)
说明
VPC 网络
必须选择与旧实例挂载点相同的 VPC 网络。
这是确保迁移 ECS 能够同时访问新旧两个文件系统的前提条件。
交换机
选择上述 VPC 网络下的任意一个交换机即可。
建议选择 IP 资源充足的交换机。
权限组
选择 VPC 默认权限组。
该默认规则允许同一 VPC 内的所有 IP 访问,最适合迁移场景。
开启 IPv6
保持关闭状态,除非您的业务有特定要求。
避免引入不必要的复杂性。
创建成功后,复制并记录新的挂载点地址。
第二阶段:使用rsync迁移数据
使用rsync迁移数据会占用旧实例的读带宽,可能影响旧实例的既有业务,强烈建议在业务低峰期执行。另外,若数据量较大,全量迁移数据的耗时可能较长,可以按照子目录粒度分批次迁移。
本阶段将使用一台 ECS 作为中转节点,通过 rsync 工具将数据从旧实例同步到新实例。建议新购一台按量付费的ECS用于迁移,任务完成后释放,以避免与现有业务争抢资源。
步骤 2.1:准备并挂载迁移 ECS
登录ECS 管理控制台,在与NAS实例相同的地域、可用区和 VPC 下,创建一台按量付费的临时 ECS。
登录该ECS,创建用于挂载新旧文件系统的本地目录:
sudo mkdir -p /mnt/nas_old sudo mkdir -p /mnt/nas_new
分别挂载旧实例和新实例。您可以进入目标文件系统的详情页,选择挂载使用,在挂载点列表中复制完整的挂载点地址。
# 挂载旧实例 (请将 <旧的挂载点地址> 替换为您的实际地址) sudo mount -t nfs -o vers=3,noacl,nolock,proto=tcp,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport <旧的挂载点地址>:/share /mnt/nas_old # 挂载新实例 (请将 <新的挂载点地址> 替换为您的实际地址) sudo mount -t nfs -o vers=3,noacl,nolock,proto=tcp,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport <新的挂载点地址>:/share /mnt/nas_new
执行
df -h
命令,确认两个文件系统都已成功挂载。
步骤 2.2:安装工具并执行数据同步
安装 rsync 和 tmux 工具:
sudo yum install -y rsync tmux
rsync 是核心的数据同步工具。
tmux 是一个终端复用工具,强烈建议在 tmux 中执行耗时长的 rsync 命令,以防止因 SSH 连接意外断开而导致迁移任务中断。
启动 tmux 会话:
tmux
执行存量数据同步。此过程耗时较长,请耐心等待。
# 注意源路径 /mnt/nas_old/ 后面的斜杠 "/" 必须要有 sudo rsync -avP /mnt/nas_old/ /mnt/nas_new/
如果您的数据包含海量小文件或数据量巨大,可以参考并行rsync命令来大幅提升同步效率。
执行最终增量同步。
在业务低峰期,停止所有读写旧 NAS 实例的应用程序。
在迁移 ECS 上,执行增量同步命令。
警告--delete选项代表从目标文件系统中删除已在源文件系统中被删除的数据,请谨慎使用,避免将目标文件系统中的数据意外删除。
# --delete 参数会确保目标目录与源目录完全一致 sudo rsync -avP --delete /mnt/nas_old/ /mnt/nas_new/
执行数据一致性校验。
在业务切换前,必须确认新旧数据完全一致。
echo "正在校验数据一致性,此过程不会修改任何数据..." sudo rsync -rvn --delete /mnt/nas_old/ /mnt/nas_new/
预期结果:如果数据完全一致,该命令的输出除了头尾的统计信息外,中间不应列出任何文件名。如果出现任何文件名,说明存在差异,必须在切换前回滚或重新同步。
第三阶段:业务切换与验证
在数据完全同步后,请在所有相关的业务服务器上重复以下操作。
步骤 3.1:手动切换挂载点
停止业务应用(如 Nginx、Tomcat 等)。
卸载旧的挂载点。此处以业务服务器上的本地挂载目录
/var/www/html/uploads
为例:sudo umount /var/www/html/uploads
挂载新的文件系统到原来相同的本地目录:
sudo mount -t nfs -o vers=3,noacl,nolock,proto=tcp,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport <新的挂载点地址>:/share /var/www/html/uploads
执行
df -h
,确认新的文件系统已成功挂载。重启应用,并进行快速功能测试(如文件上传下载)。
步骤 3.2:配置 fstab 自动挂载
在手动切换成功后,配置fstab实现持久化自动挂载。
执行以下命令,打开
rpcbind.socket
配置文件:sudo vi /etc/systemd/system/sockets.target.wants/rpcbind.socket
注释IPv6相关的rpcbind参数(如下图所示),否则NFS的rpcbind服务自动启动会失败。
如果您是在CentOS 6.x系统中配置自动挂载,还需额外执行以下操作:
执行
chkconfig netfs on
命令,确保netfs服务开机自启动。编辑/etc/netconfig配置文件,注释掉inet6相关的内容(如下图所示)。
保存并退出文件。
备份现有fstab配置。
sudo cp /etc/fstab /etc/fstab.bak.$(date +%Y%m%d)
编辑
/etc/fstab
文件,将旧的挂载点信息注释掉,并添加新行:<file-system-id.region.extreme.nas.aliyuncs.com>:/share </mnt> nfs vers=3,nolock,noacl,proto=tcp,noresvport,_netdev 0 0
<file-system-id.region.nas.aliyuncs.com>:替换为实际的NAS查看挂载点地址。(例如:
00a*****-****.cn-hangzhou.extreme.nas.aliyuncs.com
。)</mnt>:替换为本地挂载路径。(例如:
/mnt
)。
验证系统能否根据fstab的新配置进行挂载。
sudo mount -a
执行
df -h
命令,检查是否成功挂载。
步骤 3.3:启动并验证业务
重新启动您的应用程序。
进行全面的功能回归测试,确保数据读写完全正常。
持续观察业务运行一段时间(例如1小时),确认无任何异常。
第四阶段:资源清理
请在业务切换完成并稳定运行至少一周后,再执行本阶段操作。过早删除旧资源可能导致在出现意外情况时数据无法恢复。
步骤 4.1:删除旧的挂载点
在 文件存储 NAS 控制台,找到旧的文件系统实例,进入其挂载使用页面。
找到目标挂载点,在操作列点击
> 删除,并确认。
步骤 4.2:删除旧的文件系统实例
此操作不可逆,将永久删除该文件系统及其中的所有数据。请在删除前再次确认业务已无需此实例。
在确认所有挂载点都已删除后,返回文件系统列表页面。
找到目标旧实例,在操作列点击
> 删除。
步骤 4.3:释放用于迁移的ECS
登录 ECS 管理控制台,找到用于迁移的临时 ECS 实例。
在操作列,选择 更多 > 实例状态 > 停止。
等待实例状态变为已停止后,再次在操作列,选择
> 实例状态 > 释放,按指引完成释放。
了解更多
针对Kubernetes环境的说明
如果您的业务通过 K8s 挂载 NAS,切换步骤如下:
修改现有的动态卷或静态卷YAML配置文件,将旧的挂载点替换为新挂载点。
用修改后的配置文件生成新pod,确认其挂载新的文件系统成功并可正常读写。
回收使用旧的文件系统的所有pod。
紧急回滚计划
如果在第三阶段验证时发现任何问题,请立即执行回滚:
停止业务应用。
在业务服务器上卸载新的挂载点。
恢复旧的
/etc/fstab
配置。重新挂载旧的文件系统 (
sudo mount -a
) 并通过df -h
确认。重启业务应用,确认恢复正常。