天天看點

OpenStack運維(二):OpenStack計算節點的故障和維護

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