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恢復相對於的卷即可。

  如果沒有使用共享目錄,這個目錄在計算節點的硬盤上


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM