您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關計算節點宕機了如何解決,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
Rebuild 可以恢復損壞的 instance。
那如果是宿主機壞了怎么辦呢? 比如硬件故障或者斷電造成整臺計算節點無法工作,該節點上運行的 instance 如何恢復呢?
用 Shelve 或者 Migrate 可不可以? 很不幸,這兩個操作都要求 instance 所在計算節點的 nova-compute 服務正常運行。 幸運的是,還有 Evacuate 操作。
Evacuate 可在 nova-compute 無法工作的情況下將節點上的 instance 遷移到其他計算節點上。但有個前提: Instance 的鏡像文件必須放在共享存儲上。
下面是 Evacuate instance 的流程圖
向 nova-api 發送請求
nova-api 發送消息
nova-scheduler 執行調度
nova-scheduler 發送消息
nova-compute 執行操作
下面我們詳細討論每一個步驟。
我們的實驗場景如下: Instance c2 運行在 devstack-compute1 上。
通過斷電模擬計算節點故障,然后執行 Evacuate 操作恢復 instance c2。 目前 Evacuate 只能通過 CLI 執行。
這里需要指定 --on-shared-storage 這個參數
查看日志 /opt/stack/logs/n-api.log
nova-api 發送消息
nova-api 向 Messaging(RabbitMQ)發送了一條消息:“Evacuate 這個 Instance” 查看源代碼 /opt/stack/nova/nova/compute/api.py,方法是 evacuate。
大家注意到沒有,evacuate 實際上是通過 rebuild 操作實現的。 這是可以理解的,因為 evacuate 是用共享存儲上 instance 的鏡像文件重新創建虛機
nova-scheduler 收到消息后,會為 instance 選擇合適的計算節點。 查看日志 /opt/stack/logs/n-sch.log。
nova-scheduler 最后選擇在 devstack-controller 計算節點上重建 instance。
nova-scheduler 發送消息,通知計算節點可以創建 instance 了。 源代碼在 /opt/stack/nova/nova/scheduler/filter_scheduler.py 第 95 行,方法為 select_destinations。
計算節點上的工作是用共享存儲上的鏡像文件重建 instance。 日志在 devstack-controller:/opt/stack/logs/n-cpu.log。
為instance分配資源
使用共享存儲上的鏡像文件
啟動 instance
Evacuate 操作完成后,instance 在 devstack-controller 上運行。
看完上述內容,你們對計算節點宕機了如何解決有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。