XEN实例变更为KVM实例(Linux-手动配置)
操作场景
Linux操作系统XEN实例变更为KVM实例前,必须完成驱动的安装和配置。
本节操作指导您手动安装Linux云服务器驱动、配置磁盘自动挂载等,并将XEN实例变更为KVM实例。
如需使用自动化脚本安装驱动的方法请参考XEN实例变更为KVM实例(Linux-自动配置)。
- XEN实例:S1、C1、C2、M1型弹性云服务器。
- KVM实例:参考规格清单,查询对应规格的虚拟化类型。
- 为了同时支持XEN虚拟化和KVM虚拟化,Linux弹性云服务器的正常运行需依赖于xen-pv驱动、virtio驱动等。XEN实例变更为KVM实例前,需要确保Linux弹性云服务器已完成相关配置,包括安装驱动、配置磁盘自动挂载等。
约束与限制
- 变更规格过程中,弹性云服务器需要关机,建议您选择业务空闲时间进行操作。
- Linux操作系统云服务器如果存在由多个物理卷组成的LVM逻辑卷或组建了RAID磁盘阵列,均不支持变更规格,否则可能会导致数据丢失。
- 对于XEN实例,当挂载的VBD磁盘超过24块时,不支持将规格变更为KVM实例。
- 系统支持将“XEN实例”变更为“KVM实例”,不支持将“KVM实例”变更为“XEN实例”。
步骤1:制作系统盘快照
如果云服务器未安装驱动就执行变更规格的操作,云服务器可能无法正常使用,造成您的系统盘数据丢失。因此,建议您先制作系统盘快照,防止数据丢失。
- 制作系统盘快照前请对云服务器完成自检。
对云服务器执行关机、开机操作,确保云服务器重启后业务可以正常运行。再启动制作系统盘快照。
- 制作系统盘快照的操作,请参见《云硬盘用户指南》的“用户指南 > 创建快照”章节。
系统盘快照用于恢复系统盘数据,当变更规格失败回退后,可通过快照回滚数据的方式,进行数据恢复。详细操作,请参考使用快照回滚数据至云硬盘。
变更规格完成后,如已确认业务恢复正常,请在快照页面手动删除快照。
步骤2:安装驱动
对于不支持使用脚本方式配置的弹性云服务器,请参见本部分内容,手动配置云服务器。
- 登录弹性云服务器。
- 卸载云服务器中已安装的Tools。
卸载操作请参见在Linux系统中卸载Tools。
- 修改grub的UUID。
具体操作请参见修改grub文件磁盘标识方式为UUID。
- 修改fstab的UUID。
具体操作请参见修改fstab文件磁盘标识方式为UUID。
- 安装原生的XEN和KVM驱动。
安装方法请参见安装原生的XEN和KVM驱动。
步骤3:检查云服务器配置是否成功
根据步骤2:安装驱动修改grub文件、安装所需驱动后,需检查修改是否生效、驱动是否安装成功。
手动方式配置弹性云服务器时请务必执行以下操作检查云服务器配置是否成功。
- 登录弹性云服务器。
- 执行以下命令,检查root分区是否以UUID的形式表示。
- 是,表示已修改grub文件的磁盘标识方式为UUID。
- 否,修改失败,请参见步骤2:安装驱动重新修改。
……menuentry 'Ubuntu Linux, with Linux 3.13.0-24-generic' --class ubuntu --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.13.0-24-generic-advanced-ec51d860-34bf-4374-ad46-a0c3e337fd34' { recordfail load_video gfxmode $linux_gfx_mode insmod gzio insmod part_msdos insmod ext2 if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root ec51d860-34bf-4374-ad46-a0c3e337fd34 else search --no-floppy --fs-uuid --set=root ec51d860-34bf-4374-ad46-a0c3e337fd34 fi echo ‘Loading Linux 3.13.0-24-generic ...’ linux /boot/vmlinuz-3.13.0-24-generic root=UUID=ec51d860-34bf-4374-ad46-a0c3e337fd34 ro echo ‘Loading initial ramdisk ...’ initrd /boot/initrd.img-3.13.0-24-generic }
对于不同操作系统,grub文件的具体路径存在差异,请以具体的操作系统为准。例如:“/boot/grub/menu.lst”、“/boot/grub/grub.cfg”、“/boot/grub2/grub.cfg、“/boot/grub/grub.conf”。
- 执行以下命令,检查磁盘的标识方式是否为UUID。
- 是,表示已修改fstab文件的磁盘标识方式为UUID。
- 否,修改失败,请参见步骤2:安装驱动重新修改。
[root@****** ~]# cat /etc/fstab UUID=4eb40294-4c6f-4384-bbb6-b8795bbb1130 / xfs defaults 0 0 UUID=2de37c6b-2648-43b4-a4f5-40162154e135 swap swap defaults 0 0
- 检查是否已安装原生的XEN和KVM驱动。
- 如果引导的虚拟文件系统是initramfs,执行以下命令:
lsinitrd /boot/initramfs-`uname -r`.img | grep ` uname -r ` | grep xen
lsinitrd /boot/initramfs-`uname -r`.img | grep ` uname -r ` |grep virtio
- 如果引导的虚拟文件系统是initrd ,执行如下命令:
lsinitrd /boot/initrd-`uname -r` | grep ` uname -r ` | grep xen
lsinitrd /boot/initrd-`uname -r` | grep ` uname -r ` | grep virtio
如果安装成功,回显将显示已安装的原生XEN和KVM驱动名称。
[root@CTU10000xxxxx home]# lsinitrd /boot/initramfs-`uname -r`.img | grep ` uname -r`| grep xen -rwxr--r-- 1 root root 54888 Jul 16 17:53 lib/modules/2.6.32-573.8.1.el6.x86_64/kernel/drivers/block/xen-blkfront.ko -rwxr--r-- 1 root root 45664 Jul 16 17:53 lib/modules/2.6.32-573.8.1.el6.x86_64/kernel/drivers/net/xen-netfront.ko [root@CTU10000xxxxx home]# lsinitrd /boot/initramfs-`uname -r`.img | grep ` uname -r`| grep virtio -rwxr--r-- 1 root root 23448 Jul 16 17:53 lib/modules/2.6.32-573.8.1.el6.x86_64/kernel/drivers/block/virtio_blk.ko -rwxr--r-- 1 root root 50704 Jul 16 17:53 lib/modules/2.6.32-573.8.1.el6.x86_64/kernel/drivers/net/virtio_net.ko -rwxr--r-- 1 root root 28424 Jul 16 17:53 lib/modules/2.6.32-573.8.1.el6.x86_64/kernel/drivers/scsi/virtio_scsi.ko drwxr-xr-x 2 root root 0 Jul 16 17:53 lib/modules/2.6.32-573.8.1.el6.x86_64/kernel/drivers/virtio -rwxr--r-- 1 root root 14544 Jul 16 17:53 lib/modules/2.6.32-573.8.1.el6.x86_64/kernel/drivers/virtio/virtio.ko -rwxr--r-- 1 root root 21040 Jul 16 17:53 lib/modules/2.6.32-573.8.1.el6.x86_64/kernel/drivers/virtio/virtio_pci.ko -rwxr--r-- 1 root root 18016 Jul 16 17:53 lib/modules/2.6.32-573.8.1.el6.x86_64/kernel/drivers/virtio/virtio_ring.ko
- 如果引导的虚拟文件系统是initramfs,执行以下命令:
- 执行以下命令更新云服务器的系统标签。
curl 'http://169.254.169.254/openstack/latest/support_hypervisor' -X POST -H "Accept: application/json" -d '{"support_hypervisor":["all"]}' -w %{http_code}
回显显示200说明云服务器的系统标签已添加成功。
图2 设置云服务器的系统标签
请务必确保云服务器配置成功,否则,可能会导致变更规格后的弹性云服务器不可用。
步骤4:变更规格
- 登录控制台。
- 单击管理控制台左上角的,选择区域和项目。
- 单击“”,选择“计算 > 弹性云服务器”。
- 在弹性云服务器列表,查询待变更弹性云服务器状态。
如果不是关机状态,单击“操作”列下的“更多 > 关机”。
- 单击“操作”列下的“更多 > 变更规格”。
- 根据界面提示,选择变更后的云服务器类型、vCPU和内存。
- (可选)选择“专属主机”。
对于在专属主机上创建的弹性云服务器,系统支持更换云服务器所在的专属主机。
此时,您可以单击下拉列表,选择更换专属主机。如果下拉列表中无可用的专属主机,说明专属主机所剩资源不足,不能用于创建变更规格后的弹性云服务器。
- 勾选复选框“我确认已完成对弹性云服务器的配置”,确认已完成“配置弹性云服务器”操作。
- 单击“确定”。
- 单击“确定”后云平台自动为您制作系统盘快照。变更规格完成后,如已确认业务恢复正常,请在快照页面手动删除快照。
- 如果变更规格失败后,弹性云服务器无法使用,可能会需要重装操作系统来恢复云服务器,请注意重装操作系统会清除系统盘数据,但不影响数据盘的数据。
(可选)步骤5:检查磁盘挂载状态
XEN实例变更为KVM实例时,可能会发生磁盘挂载失败的情况,因此,变更规格后,需检查磁盘挂载状态是否正常。如果正常,则变更成功。
- Linux弹性云服务器
详细操作请参考Linux云服务器变更规格后数据盘脱机怎么办?
后续处理
如果控制台上云服务器列表页,显示弹性云服务器已变更规格成功,但是远程登录云服务器后,操作系统无法启动,此时,请联系客服进行恢复,或重装操作系统进行恢复。重装操作系统的操作指导,请参见重装操作系统。
重装操作系统会清除系统盘数据,但不影响数据盘的数据。
变更规格完成后,如已确认业务恢复正常,请在快照页面手动删除快照。