Redhat CoreOS系统迁移约束限制和迁移前准备工作
Redhat CoreOS是用于运行容器节点的操作系统。使用主机迁移服务(SMS)迁移前,请了解相关的约束和限制、迁移须知,并完成迁移前的准备工作,以确保迁移过程顺利进行。
约束和限制
限制项 |
约束和限制 |
---|---|
/sysroot只读权限 |
/sysroot默认通过“chattr +i /sysroot”命令设置为只读,迁移前需要解除/sysroot的禁止写入。 |
挂载点为只读权限 |
/etc、/sysroot、/boot、/usr等目录默认是只读挂载,迁移前需要改为读写模式。 |
/boot/efi默认不挂载 |
/boot/efi目录在开机后默认不挂载,需要手动挂载。 |
BIOS+GPT启动方式的主机 |
文件级迁移无法支持BIOS boot分区,因此文件级迁移不支持迁移BIOS+GPT启动方式的主机。但块级迁移支持该启动方式的主机。 |
迁移过程中注入virtio驱动 |
Redhat CoreOS的initramfs内核结构与系统版本紧密相关,在迁移过程中无法使用“dracut”命令注入驱动。如果迁移前系统缺少virtio驱动,则无法迁移。 |
迁移须知
- 迁移或者同步时间慢:由于SMS的迁移原理是在远程复制和拷贝文件,因此无法准确计算首次复制或者同步所需时间。
- PVS方式挂载可能会受影响:目的端磁盘会根据源端磁盘信息自动进行更新,这可能导致已有的PV和PVC配置发生变化,从而影响原有的挂载方式。
PVS方式挂载是指通过静态方式预先创建PV(Persistent Volume)和PVC(Persistent Volume Claim),然后将PV绑定到PVC,供Pod使用。
- 无法保证容器正常启动:SMS只能保证文件系统一致,无法保证迁移后容器能正常启动。
迁移前准备工作
- 解除/sysroot的只读属性。
由于/sysroot通过“chattr +i /sysroot”命令实现只读,需要在源端使用root用户执行以下命令,解除其禁止写入的属性。
chattr -i /sysroot
- 将挂载点改为读写模式。
由于/etc、/sysroot、/boot、/usr等目录默认是只读挂载,需要重新挂载为读写模式。可以在源端使用root用户执行以下命令:
mount -o remount,rw /etc mount -o remount,rw /sysroot mount -o remount,rw /boot mount -o remount,rw /usr
- 手动挂载/boot/efi目录。
Redhat CoreOS启动后会自动卸载/boot/efi,但迁移过程需要读取该挂载点的文件。可以使用blkid命令找到 /boot/efi对应的设备,该设备通常是带有LABEL="EFI-SYSTEM" 的分区。
然后手动挂载该分区,例如:mount /dev/vda2 /boot/efi
- 检查virtio驱动。
Redhat CoreOS的initramfs内核结构与系统版本紧密相关,无法使用“dracut”命令注入驱动。您可以通过以下命令检查initrd文件中是否包含virtio驱动,如果没有则需要自行添加。
lsinitrd {initrd文件} | grep virtio