# XEN实例变更为KVM实例（Linux-手动配置）
#### 操作场景
XEN实例变更为KVM实例属于跨虚拟化类型的变更，Linux弹性云服务器的正常运行需依赖于xen-pv驱动、virtio驱动等。XEN实例变更为KVM实例前，需要确保Linux弹性云服务器已完成相关配置，包括安装驱动、配置磁盘自动挂载等。
弹性云服务器规格的虚拟化类型包括：
- XEN实例：S1、C1、C2、M1型弹性云服务器。
- KVM实例和QingTian：参考[规格清单](https://support.huaweicloud.com/productdesc-ecs/zh-cn_topic_0159822360.html)，虚拟化类型为KVM和QingTian的规格实例。
 
本节操作指导您手动安装Linux云服务器驱动、配置磁盘自动挂载等，并将XEN实例变更为KVM实例。
如需使用自动化脚本安装驱动的方法请参考[XEN实例变更为KVM实例（Linux-自动配置）](https://support.huaweicloud.com/usermanual-ecs/ecs_03_0162.html)。
#### 约束与限制
- 不同CPU架构弹性云服务器实例的变更原则：
  - 不支持将"x86计算"架构实例变更为"鲲鹏计算"架构实例。
  
  - 不支持将"鲲鹏计算"架构实例变更为"x86计算"架构实例。
   
- 不同虚拟化类型弹性云服务器实例的变更原则：
  - 支持将"XEN实例"变更为"KVM实例"，不支持将"KVM实例"变更为"XEN实例"。
  
  - 支持将"KVM实例"变更为"QingTian实例"，不支持将"QingTian实例"变更为"KVM实例"。 对于部分C6型QingTian架构实例，支持变更为KVM实例，详细操作，请参见[QingTian实例变更为KVM实例（Windows）](https://support.huaweicloud.com/usermanual-ecs/ecs_03_1179.html)。
    
  
  - 不支持将"XEN实例"变更为"QingTian实例"，不支持将"QingTian实例"变更为"XEN实例"。
   
- 变更规格过程中，弹性云服务器需要关机，建议您选择业务空闲时间进行操作。
- Linux操作系统云服务器如果存在由多个物理卷组成的LVM逻辑卷或组建了RAID磁盘阵列，均不支持变更规格，否则可能会导致数据丢失。
- 对于XEN实例，当挂载的VBD磁盘超过24块时，不支持将规格变更为KVM实例。
 
#### 操作流程
XEN实例变更为KVM实例的操作流程如[图1]所示。
图1Linux云服务器变更流程（手动配置）   
![](https://support.huaweicloud.com/usermanual-ecs/zh-cn_image_0000002285802118.png "点击放大")
表1XEN实例变更为KVM实例（手动配置） 
| 序号 | 任务                                                     |
|:---|:---|
| 步骤1  | [步骤1：备份云服务器]     |
| 步骤2 | [步骤2：安装驱动]        |
| 步骤3  | [步骤3：检查云服务器配置是否成功]  |
| 步骤4 | [步骤4：变更规格]         |
| 步骤5 | [（可选）步骤5：检查磁盘挂载状态] |
   
 #### 步骤1：备份云服务器
如果未安装驱动就执行变更规格的操作，云服务器可能无法正常使用，造成您的数据丢失。因此，建议您先备份云服务器，防止数据丢失。
1. 自检云服务器。 备份前请对云服务器执行关机、开机操作，确保云服务器重启后业务可以正常运行。
   
2. 备份云服务器。
   其中，云服务器备份涉及存储费用；快照分为存量快照及标准快照，存量快照公测不计费，标准快照计费，请按需选择。
   - 方式一：创建云服务器备份。 创建云服务器备份的操作，请参见[云服务器备份操作步骤](https://support.huaweicloud.com/usermanual-ecs/ecs_03_1502.html#ecs_03_1502__section1685231310443)。
     
   
   - 方式二：创建系统盘快照和数据盘快照。 创建快照的操作，请参见《云硬盘用户指南》的[创建快照](https://support.huaweicloud.com/usermanual-evs/zh-cn_topic_0066615262.html)章节。
     
     
![](https://support.huaweicloud.com/usermanual-ecs/public_sys-resources/note_3.0-zh-cn.png)
云服务器的备份和快照用于恢复数据，当变更规格失败回退后，可通过备份或快照进行数据恢复：
- 通过云服务器备份恢复数据，详细操作请参见[使用云服务器备份恢复数据](https://support.huaweicloud.com/usermanual-cbr/cbr_03_0032.html)。
- 通过快照回滚数据，详细操作请参见[使用快照回滚数据至云硬盘](https://support.huaweicloud.com/usermanual-evs/evs_01_0012.html)。
变更规格完成后，如已确认业务恢复正常，请在对应服务控制台页面删除云服务器备份或快照。
 #### 步骤2：安装驱动
对于不支持使用脚本方式配置的弹性云服务器，请参见本部分内容，手动配置云服务器。
1. 登录弹性云服务器。
2. 卸载云服务器中已安装的Tools。 卸载操作请参见[在Linux系统中卸载Tools](https://support.huaweicloud.com/usermanual-ims/ims_01_0361.html#section2)。
   
3. 修改grub的UUID。 具体操作请参见[修改grub文件磁盘标识方式为UUID](https://support.huaweicloud.com/zh-cn/usermanual-ims/ims_01_0324.html)。
   
4. 修改fstab的UUID。 具体操作请参见[修改fstab文件磁盘标识方式为UUID](https://support.huaweicloud.com/zh-cn/usermanual-ims/ims_01_0325.html)。
   
5. 安装原生的XEN和KVM驱动。 安装方法请参见[安装原生的XEN和KVM驱动](https://support.huaweicloud.com/usermanual-ims/ims_01_0361.html)。
   
 
 #### 步骤3：检查云服务器配置是否成功
根据[步骤2：安装驱动]修改grub文件、安装所需驱动后，需检查修改是否生效、驱动是否安装成功。
![](https://support.huaweicloud.com/usermanual-ecs/public_sys-resources/note_3.0-zh-cn.png)
手动方式配置弹性云服务器时请务必执行以下操作检查云服务器配置是否成功。
1. 登录弹性云服务器。 详细操作，请参见[Linux ECS登录方式概述](https://support.huaweicloud.com/usermanual-ecs/zh-cn_topic_0013771089.html)。
   
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
   }
   ```
   ![](https://support.huaweicloud.com/usermanual-ecs/public_sys-resources/note_3.0-zh-cn.png)
   对于不同操作系统，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
   ```
   

5. 执行以下命令更新云服务器的系统标签。 **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设置云服务器的系统标签   
   ![](https://support.huaweicloud.com/usermanual-ecs/zh-cn_image_0295952655.png "点击放大") 
![](https://support.huaweicloud.com/usermanual-ecs/public_sys-resources/note_3.0-zh-cn.png)
请务必确保云服务器配置成功，否则，可能会导致变更规格后的弹性云服务器不可用。
 #### 步骤4：变更规格
1. 登录[ECS控制台](https://console.huaweicloud.com/ecm/?#/ecs/manager/vmList)，进入弹性云服务器列表页面。
2. 在弹性云服务器列表，查询待变更弹性云服务器状态。 如果不是关机状态，单击"操作"列下的"更多 \> 关机"。
   
3. 单击"操作"列下的"更多 \> 变更规格"。 系统进入"云服务器变更规格"页面。
   
4. 根据界面提示，选择变更后的云服务器类型、vCPU和内存。
5. （可选）选择"专属主机"。 对于在专属主机上创建的弹性云服务器，系统支持更换云服务器所在的专属主机。
   此时，您可以单击下拉列表，选择更换专属主机。如果下拉列表中无可用的专属主机，说明专属主机所剩资源不足，不能用于创建变更规格后的弹性云服务器。
   
6. 勾选复选框"我确认已完成对弹性云服务器的配置"，确认已完成"配置弹性云服务器"操作。
7. 单击"下一步"。
8. 确认变更后的配置无误后，阅读并勾选同意服务协议，单击"提交申请"。
   ![](https://support.huaweicloud.com/usermanual-ecs/public_sys-resources/note_3.0-zh-cn.png)
   - 单击"提交申请"后云平台自动为您制作系统盘快照。变更规格完成后，如已确认业务恢复正常，请在快照页面手动删除快照。
   
   - 如果变更规格失败后，弹性云服务器无法使用，可能会需要重装操作系统来恢复云服务器，请注意重装操作系统会清除系统盘数据，但不影响数据盘的数据。
     
 
 #### （可选）步骤5：检查磁盘挂载状态
XEN实例变更为KVM实例时，可能会发生磁盘挂载失败的情况，因此，变更规格后，需检查磁盘挂载状态是否正常。如果正常，则变更成功。
- Linux弹性云服务器 详细操作请参考[Linux云服务器变更规格后数据盘脱机怎么办？](https://support.huaweicloud.com/ecs_faq/ecs_faq_0619.html)
  
 
#### 后续处理
如果控制台上云服务器列表页，显示弹性云服务器已变更规格成功，但是远程登录云服务器后，操作系统无法启动，此时，请联系客服进行恢复，或重装操作系统进行恢复。重装操作系统的操作指导，请参见[重装操作系统](https://support.huaweicloud.com/usermanual-ecs/zh-cn_topic_0024911405.html)。
![](https://support.huaweicloud.com/usermanual-ecs/public_sys-resources/note_3.0-zh-cn.png)
重装操作系统会清除系统盘数据，但不影响数据盘的数据。
变更规格完成后，如已确认业务恢复正常，请在快照页面手动删除快照。
