1、計劃中的維護
舉例:需要更新某一個計算節點的硬體配置,需要将計算節點上的虛拟機遷移後在對其進行操作,分為兩種情況。
1.1 雲系統使用了共享存儲
a. 擷取虛拟機清單:nova list --host compute01-node-Name --all-tenant
b. 将每個虛拟機遷移至另一台計算節點:nova live-migration <uuid> compute02-node-Name
c. 停止nova-compute服務:stop nova-compute
d. 維護工作完成以後,啟動服務:start nova-compute
e. 确認服務正常啟動和AMQP正常連接配接:status nova-comput grep AMQP /var/log/nova-compute
f. 将虛拟機遷移回來
1.2 雲系統沒有使用共享存儲
将上述遷移指令改為:nova live-migration --block-migrate <uuid> compute02-node-Name
2、虛拟機執行個體啟動故障
2.1 意外關閉可能會出現磁盤分區錯誤,需要對root分區進行fsck,此時使用VNC連接配接虛拟機即可完成修複。
2.2 libvirt的XML錯誤:nova reboot --hard <uuid>
3、從故障執行個體中恢複資料
故障:虛拟機正常運作,SSH無法連結,VNC控制台顯示kernel panic錯誤
恢複資料:
a. 使用virsh list檢視故障執行個體的ID,假設ID為30 執行個體名為instance-30
b. 挂起執行個體:virsh suspend 30
c. 将qemu-nbd裝置連結到磁盤上:
cd /var/lib/nova/instance/instance-30
qemu-nbd -c /dev/nbd0 `pwd`/disk
d. 挂載qemu-nbd裝置
qemu-nbd會将虛拟機的不同分區導出為/dev/nbd0 nbd0p1 nbd0p2等
挂載:mount /dev/nbd0p1 /mnt 進去mnt目錄即可檢視執行個體資料
e. 檢視完成後釋放qemu-nbd裝置
umount /mnt
qemu-nbd -d /dev/nbd0
f. 恢複執行個體:virsh resume 30
4、卷
如果故障的虛拟機的挂載的有卷,需要将卷手工分離并挂載
mysql> select nova.instances.uuid as instance_uuid, cinder.volumes.id as volume_uuid, cinder.volumes.status, cinder.volumes.attach_status, cinder.volumes.mountpoint, cinder.volumes.display_name from cinder.volumes inner join nova.instance on cinder.volumes.instance_uuid=nova.instances.uuid where nova.instances.host = 'compute01-node-Name';
手工分離:nova volume-detach <instance_uuid> <volume_uuid>
重新挂載:nova volume-attach <instance_uuid> <volume_uuid> /dev/vdX
5、計算節點徹底故障
故障:計算節點無法啟動,恢複虛拟機執行個體,如果/var/lib/instances使用了共享目錄
a. 生産故障節點運作的所有執行個體uuid清單
mysql> select uuid from instances where host = '故障節點主機名' and deleted = 0;
b. 更新資料庫,将虛拟機執行個體主控端改為其他計算節點
mysql> update instances set host = 'NewComputeName' where host = '故障節點主機名' and deleted = 0;
c. 啟動虛拟機并生産XML
nova reboot --hard <uuid>
d. 根據4恢複相對于的卷即可。
如果沒有使用共享目錄,這個目錄在計算節點的硬碟上
轉載于:https://www.cnblogs.com/dukuan/p/7496654.html