从Azure经典数据磁盘迁移数据至新Ubuntu VM数据磁盘
跨区域迁移Azure经典VM数据磁盘目录到新Ubuntu VM的最优方案
针对200GB跨区域数据迁移需求,以下是三个实用方案,可根据自身场景选择:
方案一:Azure存储中转(AZcopy+临时存储账户)
这是跨区域迁移最稳妥的方案,AZcopy针对Azure存储做了传输优化,速度远高于WINSCP,操作复杂度适中。
- 步骤:
- 在经典VM上打包目标目录:
# 大文件多建议不压缩省时间,否则加-z参数启用gzip压缩 tar -cf target_dir.tar /path/to/your/target_dir - 在经典VM所在区域创建临时标准Blob存储账户及容器,生成带读写权限的SAS令牌。
- 经典VM安装AZcopy:
wget https://aka.ms/downloadazcopy-v10-linux && tar -xvf downloadazcopy-v10-linux && sudo cp ./azcopy_linux_amd64_*/azcopy /usr/local/bin/ - 上传压缩包到Blob容器:
azcopy copy "/path/to/target_dir.tar" "https://<存储账户名>.blob.core.windows.net/<容器名>/target_dir.tar?<SAS令牌>" - 完成上传后,将Blob容器跨区域复制到新VM所在区域的临时存储账户(或直接在新VM用AZcopy下载)。
- 新Ubuntu VM安装AZcopy后,下载压缩包到新数据盘挂载路径:
azcopy copy "https://<新区域存储账户名>.blob.core.windows.net/<容器名>/target_dir.tar?<SAS令牌>" "/mnt/new_data_disk/" - 解压文件:
tar -xf target_dir.tar -C /mnt/new_data_disk/ - 验证数据无误后,删除临时存储账户及经典VM上的压缩包。
- 在经典VM上打包目标目录:
- 优缺点:传输稳定,Azure后台优化链路,不怕VM中断;需要临时存储中转,但命令行操作流程清晰。
方案二:跨VM直接rsync加速(VNet对等连接)
若能打通两个VM的内网链路,rsync直接同步的效率会更高,无需中转存储。
- 步骤:
- 配置经典VM与新Ubuntu VM所在虚拟网络的全局VNet对等连接,确保双方能内网互通。
- 确认经典VM的SSH服务正常运行,新VM可通过内网IP访问经典VM。
- 新VM执行rsync同步命令:
# 加--progress看实时进度,--partial支持断点续传 rsync -avz --progress --partial -e ssh 经典VM用户名@经典VM内网IP:/path/to/target_dir /mnt/new_data_disk/ - 同步完成后验证数据,关闭经典资源。
- 优缺点:无需中转,一步到位;但需额外配置VNet对等,适合不想用存储中转的场景。
方案三:磁盘快照迁移(Azure层面快速迁移)
针对大体积数据,借助Azure磁盘快照的跨区域复制功能,速度最快,适合整盘或大目录迁移。
- 步骤:
- 给经典VM的目标数据盘创建快照(可通过Azure CLI或经典门户操作)。
- 跨区域复制快照到新VM所在区域:
az snapshot copy --source-snapshot "/subscriptions/<订阅ID>/resourceGroups/<经典资源组>/providers/Microsoft.ClassicCompute/snapshots/<快照名>" --destination-resource-group <新区域资源组> --location <新区域名称> - 用复制后的快照创建新托管磁盘,并附加到新Ubuntu VM。
- 挂载临时磁盘到新VM:
mkdir /mnt/temp_disk && mount /dev/sdc /mnt/temp_disk # 用lsblk确认磁盘设备名 - 复制目标目录到新数据盘:
cp -r /mnt/temp_disk/path/to/target_dir /mnt/new_data_disk/ - 卸载临时磁盘并从VM分离,删除快照及临时磁盘,验证数据后关闭经典资源。
- 优缺点:Azure后台操作,迁移速度最快;仅需特定目录时需额外挂载复制,适合大体积数据场景。
内容的提问来源于stack exchange,提问作者alex_wilson
相关产品推荐
相关产品推荐

