迁移后数据一致性问题

本文介绍服务器迁移前后发生的数据和系统配置变更问题,并提供调整指引。

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为例,请根据实际情况进行修改:

    1. 登录迁移后的ECS实例。

      若您为迁移至镜像,请先使用自定义镜像创建实例
      1. 访问ECS控制台-实例。在页面左侧顶部,选择目标资源所在的资源组和地域。

      2. 进入目标实例详情页,单击远程连接,选择通过Workbench远程连接。根据页面提示登录,进入终端页面。

    2. 运行cd /etc/sysconfig/network-scripts/进入网卡配置目录。

    3. 找到网卡配置文件ifcfg-ens192,利用sudo mv ifcfg-ens192 ifcfg-eth0重新命名配置文件。

    4. 运行sudo vi ifcfg-eth0,将其中的DEVICE参数修改为eth0BOOTPROTO修改为dhcp后,保存退出。

    5. 重启网络服务,使配置生效。

      操作系统

      重启服务命令

      • Alibaba Cloud Linux 2

      • CentOS 7

      • Red Hat 7

      • Anolis 7

      • SUSE Linux 11/12/15

      • OpenSUSE 15/42

      sudo service network restart

      sudo systemctl restart network

      • CentOS 6

      • Red Hat 6

      sudo service network restart

      • Alibaba Cloud Linux 3

      • CentOS 8

      • Red Hat 8

      • Anolis 8

      • Fedora 33/34/35

      sudo systemctl restart NetworkManagersudo reboot

      • Ubuntu 18/20/22

      • Debian 12

      sudo netplan apply

      • Ubuntu 14/16

      • Debian 8/9/10/11

      sudo systemctl restart networkingsudo reboot

    主机名发生变化。

    迁移后,主机名会发生变化,您可重新配置

    使用原有密码无法登录。

    迁移后密码会被修改。

存储与数据变更问题

问题

原因

跨盘的LVM逻辑卷变为普通分区

SMC仅支持单盘的LVM结构的复制。对于多块磁盘的卷组(VG)或逻辑卷(LV),无法保留原有LVM结构,其上的逻辑卷(例如 /dev/mapper/test-lvm1)将作为整体,迁移为云盘上的一个普通分区(例如 /dev/vdb1)。数据会被保留。

du 命令查看的大小小于ls -l 显示的大小

SMC 迁移默认采用 --sparse 优化选项,这使得目标实例上的稀疏文件(逻辑大小很大,但实际并未占用同等的存储空间)只占用必要的物理空间,不影响正常使用。

如果需要完整复制稀疏文件,可以修改client_datasync.options填入"--no-S"重新迁移解决。

迁移后数据不一致

  • 迁移时业务未停止。

    在迁移期间如果业务仍在写入,迁移后可能会存在数据不一致的情况,建议您在迁移前停止对磁盘的写入操作,保证数据的一致性。

  • 设置了文件过滤规则

    存在默认过滤不迁移的文件目录配置。

  • 临时文件未迁移。

    SMC不会迁移临时文件,包括虚拟内存文件、缓存文件、临时备份快照数据等。

  • 文件系统重建。

    使用文件复制进行迁移后会重建分区文件系统,文件系统node大小存储格式可能变化,因此迁移前后文件系统大小可能略有不同,约10%。

Docker环境丢失

只有在块复制时,SMC才支持完整迁移Docker环境。如果因网络限制(访问公网443端口失败:p2v-tools.oss-cn-hangzhou.aliyuncs.com,IP为:118.31.232.152)或操作系统版本不支持,导致客户端安装块复制组件失败时,Docker环境无法迁移。

Windows实例迁移后的数据一致性问题

系统配置变更问题

问题

解决方案

主机名发生变化。

迁移后,主机名会发生变化,您可重新配置

使用原有密码无法登录

迁移后密码会被修改。

存储与数据变更问题

问题

原因

驱动器号发生变化

当实例首次启动时,会重新检测并按顺序分配驱动器号,可能导致与迁移前驱动器号不一致。可手动修改驱动器号。

  1. 登录迁移后的ECS实例。

    若您为迁移至镜像,请先使用自定义镜像创建实例
    1. 访问ECS控制台-实例。在页面左侧顶部,选择目标资源所在的资源组和地域。

    2. 进入目标实例详情页,单击远程连接,选择通过Workbench远程连接。选择连接方式为终端连接,输入账号和密码,登录图形化终端页面。

  2. Windows Server桌面,右键单击开始图标图标,选择磁盘管理

  3. 磁盘管理界面,右键单击目标卷名,在弹出菜单中选择更改驱动器号和路径。按照界面提示完成操作。

GPT分区变为了MBR分区

此变更不会影响分区中的数据读写,为最大化兼容性,SMC在迁移小于2TiB数据盘时,会将其分区表格式从GPT分区重建为MBR分区。

后续若有扩容至2TiB以上需求时需要转换分区为GPT分区