維護的動機
一台Openstack節點進行維護的動機主要有三點:
- 硬件替換或升級
- 打安全補丁后需要重啟
- 軟件升級和服務重啟
一般存在兩種場景:
- VM的磁盤存儲在dfs上(cephFS, glusterFS, NFS),容易維護
- VM磁盤存儲在本地磁盤,最難維護的情況
將一台Openstack節點設為維護模式
在目前的 Openstack中已經有maintenance mode,但僅對Xen hypervisor有效,如果使用的是kvm,那么你會看到一條500錯誤:
nova host-update compute-01 --maintenance enable ERROR: The server has either erred or is incapable of performing the requested operation. (HTTP 500) (Request-ID: req-5667d1ff-bgha-4veq-9drb-8c6'733f1s4b)
作為變通方案,你可以采用以下方式:
- 將新的instacnes指到其他位置;
- 禁用該compute node
私有雲的解決方法
使用以下命令來強制vm創建到指定節點,默認zone是nova:
nova boot bla bla bla --availability-zone <your-zone>:<compute-node>
公有雲的解決方法
直接disable該node,這樣scheduler就不會嘗試在該node上跑實例了:
$ sudo nova-manage service disable --host=<host> --service=<service>