操作場景
Linux操作系統XEN實例變更為KVM實例前,必須完成驅動的安裝和配置。
本節操作指導您手動安裝Linux云主機驅動、配置磁盤自動掛載等,并將XEN實例變更為KVM實例。
說明
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實例”。
操作流程
XEN實例變更為KVM實例的操作流程如下圖所示。
圖 Linux云主機變更流程(手動配置)

表 XEN實例變更為KVM實例(手動配置)
| 序號 | 任務 |
|---|---|
| 步驟1 | 步驟1:制作系統盤快照 |
| 步驟2 | 步驟2:安裝驅動 |
| 步驟3 | 步驟3:檢查云主機配置是否成功 |
| 步驟4 | 步驟4:變更規格 |
| 步驟5 | (可選)步驟5:檢查磁盤掛載狀態 |
步驟1:制作系統盤快照
如果云主機未安裝驅動就執行了變更規格的操作,云主機無法正常使用,需要重裝操作系統才能恢復,可能造成您的系統盤數據丟失。因此,建議您先制作系統盤快照,防止數據丟失。創建快照參考//www.daliqc.cn/document/10000019/10033808。
- 制作系統盤備份前請對云主機完成自檢。
對云主機執行關機、開機操作,確保云主機重啟后業務可以正常運行。再啟動制作系統盤快照。
說明:變更規格完成后,如已確認業務恢復正常,請在快照頁面手動刪除快照。
步驟2:安裝驅動
對于不支持使用腳本方式配置的彈性云主機,請參見本部分內容,手動配置云主機。
-
登錄彈性云主機。
-
卸載云主機中已安裝的Tools。
-
修改grub的UUID。
-
修改fstab的UUID。
-
安裝原生的XEN和KVM驅動。
步驟3:檢查云主機配置是否成功
根據步驟2:安裝驅動修改grub文件、安裝所需驅動后,需檢查修改是否生效、驅動是否安裝成功。
注意手動方式配置彈性云主機時請務必執行以下操作檢查云主機配置是否成功。
-
登錄彈性云主機。
-
執行以下命令,檢查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”。
-
執行以下命令,檢查磁盤的標識方式是否為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 -
檢查是否已安裝原生的XEN和KVM驅動。
? 如果引導的虛擬文件系統是initramfs,執行以下命令:
lsinitrd /boot/initramfs-
uname -r.img | grepuname -r| grep xenlsinitrd /boot/initramfs-
uname -r.img | grepuname -r|grep virtio? 如果引導的虛擬文件系統是initrd ,執行如下命令:
lsinitrd /boot/initrd-
uname -r| grepuname -r| grep xenlsinitrd /boot/initrd-
uname -r| grepuname -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 '//169.254.169.254/openstack/latest/support_hypervisor' -X POST -H "Accept: application/json" -d '{"support_hypervisor":["all"]}' -w %{http_code}
回顯顯示200說明云主機的系統標簽已添加成功。
注意請務必確保云主機配置成功,否則,可能會導致變更規格后的彈性云主機不可用。
步驟4:變更規格
-
登錄控制臺。
-
選擇“計算 > 彈性云主機”。
-
在彈性云主機列表,查詢待變更彈性云主機狀態。
如果不是關機狀態,單擊“操作”列下的“更多 > 關機”。
-
單擊“操作”列下的“更多 > 變更規格”。
系統進入“云主機變更規格”頁面。
-
根據界面提示,選擇變更后的云主機類型、vCPU和內存。
-
(可選)選擇“專屬主機”。
對于在專屬主機上創建的彈性云主機,系統支持更換云主機所在的專屬主機。
此時,您可以單擊下拉列表,選擇更換專屬主機。如果下拉列表中無可用的專屬主機,說明專屬主機所剩資源不足,不能用于創建變更規格后的彈性云主機。
- 勾選復選框“我確認已完成對彈性云主機的配置”,確認已完成“配置彈性云主機”操作。
- 單擊“確定”。
說明如果變更規格失敗后,彈性云主機無法使用,可能會需要重裝操作系統來恢復云主機,請注意重裝操作系統會清除系統盤數據,但不影響數據盤的數據。
(可選)步驟5:檢查磁盤掛載狀態
XEN實例變更為KVM實例時,可能會發生磁盤掛載失敗的情況,因此,變更規格后,需檢查磁盤掛載狀態是否正常。如果正常,則變更成功。
- Linux彈性云主機
詳細操作請參考Linux彈性云主機變更規格后磁盤脫機怎么辦?
后續處理
如果控制臺上云主機列表頁,顯示彈性云主機已變更規格成功,但是遠程登錄云主機后,操作系統無法啟動,此時,請重裝操作系統進行恢復。重裝系統的操作指導,請參見重裝操作系統。
說明重裝操作系統會清除系統盤數據(包括系統盤內存儲的快照),但不影響數據盤的數據。
變更規格完成后,如已確認業務恢復正常,請在快照頁面手動刪除快照。