更新时间:2024-01-11 GMT+08:00

XEN实例变更为KVM实例(Linux-手动配置)

操作场景

Linux操作系统XEN实例变更为KVM实例前,必须完成驱动的安装和配置。

本节操作指导您手动安装Linux云服务器驱动、配置磁盘自动挂载等,并将XEN实例变更为KVM实例。

如需使用自动化脚本安装驱动的方法请参考XEN实例变更为KVM实例(Linux-自动配置)

  • XEN实例:S1、C1、C2、T2、M1型弹性云服务器
  • KVM实例:参考实例规格章节的规格列表,查询对应规格的虚拟化类型。
  • 为了同时支持XEN虚拟化和KVM虚拟化,Linux弹性云服务器的正常运行需依赖于xen-pv驱动、virtio驱动等。XEN实例变更为KVM实例前,需要确保Linux弹性云服务器已完成相关配置,包括安装驱动、配置磁盘自动挂载等。

约束与限制

  • Linux操作系统云服务器如果存在由多个物理卷组成的LVM逻辑卷或组建了RAID磁盘阵列,均不支持变更规格,否则可能会导致数据丢失。
  • 对于XEN实例,当挂载的VBD磁盘超过24块时,不支持将规格变更为KVM实例。
  • 系统支持将“XEN实例”变更为“KVM实例”,不支持将“KVM实例”变更为“XEN实例”。

操作流程

XEN实例变更为KVM实例的操作流程如图1所示。
图1 Linux云服务器变更流程(手动配置)

(可选)步骤1:备份系统盘

如果云服务器未安装驱动就执行变更规格的操作,云服务器可能无法正常使用,造成您的系统盘数据丢失。因此,建议您先备份系统盘,防止数据丢失。

  1. 制作系统盘备份前请对云服务器完成自检

    对云服务器执行关机、开机操作,确保云服务器重启后业务可以正常运行。再启动制作系统盘备份。

  2. 备份系统盘的操作,请参见《云硬盘备份用户指南》的“快速入门 > 创建云硬盘备份 ”章节。

步骤2:安装驱动

对于不支持使用脚本方式配置的弹性云服务器,请参见本部分内容,手动配置云服务器。

  1. 登录弹性云服务器
  2. 卸载云服务器中已安装的Tools。

    卸载操作请参见《镜像服务用户指南》中“优化私有镜像(Linux)”。

  3. 修改grub的UUID。

    卸载操作请参见《镜像服务用户指南》中“优化私有镜像(Linux)”。

  4. 修改fstab的UUID。

    卸载操作请参见《镜像服务用户指南》中“优化私有镜像(Linux)”。

  5. 安装原生的XEN和KVM驱动。

    卸载操作请参见《镜像服务用户指南》中“优化私有镜像(Linux)”。

步骤3:检查云服务器配置是否成功

根据步骤2:安装驱动修改grub文件、安装所需驱动后,需检查修改是否生效、驱动是否安装成功。

手动方式配置弹性云服务器时请务必执行以下操作检查云服务器配置是否成功。

  1. 登录弹性云服务器
  2. 执行以下命令,检查root分区是否以UUID的形式表示。

    cat /boot/grub/grub.cfg

    • 是,表示已修改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”。

  3. 执行以下命令,检查磁盘的标识方式是否为UUID。

    cat /etc/fstab

    • 是,表示已修改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
  4. 检查是否已安装原生的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

请务必确保云服务器配置成功,否则,可能会导致变更规格后的弹性云服务器不可用。

步骤4:变更规格

  1. 登录控制台。
  2. 选择“计算 > 弹性云服务器”。
  3. 弹性云服务器列表,查询待变更弹性云服务器状态。

    如果不是关机状态,单击“操作”列下的“更多 > 关机”。

  4. 单击“操作”列下的“更多 > 变更规格”。

    系统进入“云服务器变更规格”页面。

  5. 根据界面提示,选择变更后的云服务器类型、vCPU和内存。
  6. (可选)选择“专属主机”。

    对于在专属主机上创建的弹性云服务器,系统支持更换云服务器所在的专属主机。

    此时,您可以单击下拉列表,选择更换专属主机。如果下拉列表中无可用的专属主机,说明专属主机所剩资源不足,不能用于创建变更规格后的弹性云服务器

  7. 勾选复选框“我确认已完成对弹性云服务器的配置”,确认已完成“配置弹性云服务器”操作。
  8. 单击“确定”。

(可选)步骤5:检查磁盘挂载状态

XEN实例变更为KVM实例时,可能会发生磁盘挂载失败的情况,因此,变更规格后,需检查磁盘挂载状态是否正常。如果正常,则变更成功。

后续处理

如果控制台上云服务器列表页,显示弹性云服务器已变更规格成功,但是远程登录云服务器后,操作系统无法启动,此时,请重装操作系统进行恢复。重装系统的操作指导,请参见重装操作系统