本文介绍服务器迁移前后发生的数据和系统配置变更问题,并提供调整指引。
Linux实例迁移后的数据一致性问题
系统配置变更问题
以下变更是SMC为了迁移后的服务器能够在ECS上正常运行的修改,不影响源系统业务。
自动变更项
原因
修复引导文件
涉及文件:/boot/grub/grub.conf或/boot/grub/grub.cfg或/boot/grub2/grub.cfg
主要为替换系统盘UUID,使操作系统能够识别并从系统盘中启动。
修复自动挂载配置文件
涉及文件:etc/fstab
使数据盘在实例启动后能被正确识别和自动挂载。
禁用SELinux
涉及文件:/etc/selinux/config
为防止应用程序因SELinux的严格访问机制无法启动,禁用SELinux。
如果业务有要求,可以在迁移完成后,根据实际情况评估并重新开启。
修复cloud-init配置
涉及文件:/etc/cloud/cloud.cfg
使迁移后实例能够接收和执行云平台的初始化配置。
重建initramfs
涉及文件:/boot/initramfs*.img
为系统安装云环境必需的驱动,如virtio驱动。
需要手动修改的配置项。
问题
原因
无法利用ssh工具远程登录实例。
因为SMC会直接复制源服务器的网卡配置文件,可能导致迁移后,网卡名不满足阿里云 ECS 内部默认的网卡设备名要求(通常为eth0、eth1等形式),影响网络启动。需要手动修改并重启服务。
以将源网卡名
ens192
改为eth0
为例,请根据实际情况进行修改:登录迁移后的ECS实例。
若您为迁移至镜像,请先使用自定义镜像创建实例。
访问ECS控制台-实例。在页面左侧顶部,选择目标资源所在的资源组和地域。
进入目标实例详情页,单击远程连接,选择通过Workbench远程连接。根据页面提示登录,进入终端页面。
运行
cd /etc/sysconfig/network-scripts/
进入网卡配置目录。找到网卡配置文件
ifcfg-ens192
,利用sudo mv ifcfg-ens192 ifcfg-eth0
重新命名配置文件。运行
sudo vi ifcfg-eth0
,将其中的DEVICE
参数修改为eth0
,BOOTPROTO
修改为dhcp
后,保存退出。
主机名发生变化。
迁移后,主机名会发生变化,您可重新配置。
使用原有密码无法登录。
迁移后密码会被修改。
迁移至镜像:使用自定义镜像创建实例时,在购买页登录凭证中可自定义登录密码。
迁移至ECS实例:重置密码。
存储与数据变更问题
问题 | 原因 |
跨盘的LVM逻辑卷变为普通分区 | SMC仅支持单盘的LVM结构的复制。对于多块磁盘的卷组(VG)或逻辑卷(LV),无法保留原有LVM结构,其上的逻辑卷(例如 /dev/mapper/test-lvm1)将作为整体,迁移为云盘上的一个普通分区(例如 /dev/vdb1)。数据会被保留。 |
| SMC 迁移默认采用 --sparse 优化选项,这使得目标实例上的稀疏文件(逻辑大小很大,但实际并未占用同等的存储空间)只占用必要的物理空间,不影响正常使用。 如果需要完整复制稀疏文件,可以修改client_data的sync.options填入"--no-S"重新迁移解决。 |
迁移后数据不一致 |
|
Docker环境丢失 | 只有在块复制时,SMC才支持完整迁移Docker环境。如果因网络限制(访问公网443端口失败:p2v-tools.oss-cn-hangzhou.aliyuncs.com,IP为:118.31.232.152)或操作系统版本不支持,导致客户端安装块复制组件失败时,Docker环境无法迁移。 |
Windows实例迁移后的数据一致性问题
系统配置变更问题
问题 | 解决方案 |
主机名发生变化。 | 迁移后,主机名会发生变化,您可重新配置。 |
使用原有密码无法登录 | 迁移后密码会被修改。
|
存储与数据变更问题
问题 | 原因 |
驱动器号发生变化 | 当实例首次启动时,会重新检测并按顺序分配驱动器号,可能导致与迁移前驱动器号不一致。可手动修改驱动器号。
|
GPT分区变为了MBR分区 | 此变更不会影响分区中的数据读写,为最大化兼容性,SMC在迁移小于2TiB数据盘时,会将其分区表格式从GPT分区重建为MBR分区。 后续若有扩容至2TiB以上需求时需要转换分区为GPT分区。 |