文档简介:
XEN实例变更为KVM实例(Linux)
操作场景
为了同时支持XEN虚拟化和KVM虚拟化,Linux弹性云主机的正常运行需依赖于xen-pv驱动、virtio驱动等,因此,XEN实例变更为KVM实例前,需要确保Linux弹性云主机已完成相关配置,包括安装驱动、修改UUID等。
本节指导您如何手动配置Linux弹性云主机,将XEN实例变更为KVM实例。
约束与限制
-
对于XEN实例,当挂载的VBD磁盘超过24块时,不支持将规格变更为KVM实例。
-
系统支持将“XEN实例”变更为“KVM实例”,不支持将“KVM实例”变更为“XEN实例”。
操作流程
XEN实例变更为KVM实例的操作流程如图所示。
其中:
①:表示配置弹性云主机时,使用自动化脚本进行配置。
支持使用该方案的操作系统包括:
-
Ubuntu_14.04
-
Ubuntu_16.04
-
CentOS_6.7
-
CentOS_6.8
-
CentOS_7.1
-
CentOS_7.2
-
CentOS_7.3
-
CentOS_7.4
-
EulerOS
-
SUSE 11
具体的变更操作如下所示。
表1-2 XEN实例变更为KVM实例(脚本配置)
序号
任务
步骤1
(可选)备份系统盘
步骤2
配置弹性云主机(自动化脚本方式)
步骤3
变更规格
步骤4
检查磁盘挂载状态
表1-3 XEN实例变更为KVM实例(手动配置)②:表示配置弹性云主机时,使用手动配置。对于不支持使用脚本配置方案的其他操作系统,您需要手动配置弹性云主机。具体的变更操作如下所示。
序号
任务
步骤1
(可选)备份系统盘
步骤2
配置弹性云主机(手动方式)
步骤3
(可选)检查云主机配置是否成功
步骤4
变更规格
步骤5
检查磁盘挂载状态
变更规格前必须先配置弹性云主机,安装相应驱动,否则规格变更后,弹性云主机无法使用,需要重装操作系统才能恢复,可能造成您的系统盘数据丢失。因此,建议您先备份系统盘,然后再配置弹性云主机。(可选)备份系统盘
备份系统盘的操作,请参见《云硬盘备份用户指南》的“快速入门 > 创建云硬盘备份”章节。
配置弹性云主机(自动化脚本方式)
对于支持使用脚本方式配置的弹性云主机,请参见本部分内容。部分操作系统的弹性云主机暂不支持使用自动化脚本方式进行配置,请直接参见。
说明:支持使用脚本方式配置的弹性云主机,请参见操作流程。
1.登录弹性云主机。
2.执行以下命令,将驱动安装脚本下载到root目录下。
curl URL > ~/resize_ecs_modify_linux.sh
其中,URL为规格变更优化脚本的下载地址。
/downfile/%E6%9D%82%E7%89%A92019-09%E6%9C%88-12%E6%9C%88%E6%9C%9F%E9%97%B4/resize_ecs_modify_linux.zip
3.执行以下命令,运行脚本,该脚本会自动检查并安装原生xen-pv驱动、virtio驱动。
bash resize_ecs_modify_linux.sh
4.请耐心等待脚本运行结束,如果回显提示“{镜像名称} already contain xen and virtio driver”,表示检查并安装驱动成功。
您可以执行变更规格。否则,请尝试重新运行脚本或联系客服寻求技术支持。
注意:请务必确保云主机配置成功,否则,可能会导致变更规格后的弹性云主机不可用。
配置弹性云主机(手动方式)
对于不支持使用脚本方式配置的弹性云主机,请参见本部分内容,手动配置云主机。
1.登录弹性云主机。
2.卸载云主机中已安装的Tools。
卸载操作请参见《镜像服务用户指南》中“优化私有镜像(Linux)”。
3.修改grub的UUID。
卸载操作请参见《镜像服务用户指南》中“优化私有镜像(Linux)”。
4.修改fstab的UUID。
卸载操作请参见《镜像服务用户指南》中“优化私有镜像(Linux)”。
5.安装原生的XEN和KVM驱动。
卸载操作请参见《镜像服务用户指南》中“优化私有镜像(Linux)”。
(可选)检查云主机配置是否成功
根据配置弹性云主机(手动方式)修改grub文件、安装所需驱动后,需检查修改是否生效、驱动是否安装成功。
注意:手动方式配置弹性云主机时请务必执行以下操作检查云主机配置是否成功。
1.登录弹性云主机。
2.执行以下命令,检查root分区是否以UUID的形式表示。
cat /boot/grub/grub.cfg
−是,表示已修改grub文件的磁盘标识方式为UUID。
−否,修改失败,请参见配置弹性云主机(手动方式)重新修改。
……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/gurb2/grub.cfg、“/boot/grub/grub.conf”。
3.执行以下命令,检查磁盘的标识方式是否为UUID。
cat /etc/fstab
−是,表示已修改fstab文件的磁盘标识方式为UUID。
−否,修改失败,请参见配置弹性云主机(手动方式)重新修改。
[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
4.检查是否已安装原生的XEN和KVM驱动。
−如果引导的虚拟文件系统是initramfs,执行以下命令:
lsinitrd /boot/initramfs-`uname -r`.img | grep xen
lsinitrd /boot/initramfs-`uname -r`.img | grep virtio
−如果引导的虚拟文件系统是initrd ,执行如下命令:
lsinitrd /boot/initrd-`uname -r` | grep xen
lsinitrd /boot/initrd-`uname -r` | grep virtio
如果安装成功,回显将显示已安装的原生XEN和KVM驱动名称。
[root@CTU10000xxxxx home]# lsinitrd /boot/initramfs-`uname -r`.img | 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 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
注意:请务必确保云主机配置成功,否则,可能会导致变更规格后的弹性云主机不可用。
变更规格
1.登录控制台。
2.选择“计算 > 弹性云主机”。
3.在弹性云主机列表,查询待变更弹性云主机状态。
如果不是关机状态,单击“操作”列下的“更多 > 关机”。
4.单击“操作”列下的“更多 > 变更规格”。
系统进入“云主机变更规格”页面。
5.根据界面提示,选择变更后的云主机类型、vCPU和内存。
6.(可选)选择“专属主机”。
对于在专属主机上创建的弹性云主机,系统支持更换云主机所在的专属主机。
此时,您可以单击下拉列表,选择更换专属主机。如果下拉列表中无可用的专属主机,说明专属主机所剩资源不足,不能用于创建变更规格后的弹性云主机。
7.勾选复选框“我确认已完成对弹性云主机的配置”,确认已完成“配置弹性云主机”操作。
8.单击“确定”。
检查磁盘挂载状态
XEN实例变更为KVM实例时,可能会发生磁盘挂载失败的情况,因此,变更规格后,需检查磁盘挂载状态是否正常。如果正常,则变更成功。
1.以root用户登录弹性云主机。
2.执行以下命令,查询磁盘信息。
fdisk -l | grep 'Disk /dev/'
如图所示,弹性云主机共有3块磁盘:/dev/vda、/dev/vdb、/dev/vdc。
3.执行以下命令,查看磁盘挂载情况。
df -h| grep '/dev/'
如图所示,弹性云主机只挂载了1块磁盘/dev/vda。
4.对比2和3中查询的磁盘个数是否一致。
−是,表示变更成功,结束。
−否,表示存在磁盘挂载失败,执行5。
5.使用mount命令挂载磁盘。
示例:
mount /dev/vbd1 /mnt/vbd1
其中,/dev/vbd1是待挂载的磁盘,/mnt/vbd1是待挂载磁盘的路径。
注意:待挂载磁盘的文件夹/mnt/vbd1必须是空文件夹,否则会挂载失败。
6.再次执行以下命令,对比查询的磁盘个数是否一致。
fdisk -l | grep 'Disk /dev/'
df -h| grep '/dev/'
−是,结束。
−否,请联系客服获取技术支持。
如图所示,使用两个命令查询的弹性云主机磁盘个数一致,分别是:/dev/vda、/dev/vdb、/dev/vdc。
后续处理
如果控制台上云主机列表页,显示弹性云主机已变更规格成功,但是远程登录云主机后,操作系统无法启动,此时,请重装操作系统进行恢复。重装系统的操作指导,请参见重装操作系统。