Migration

Openstack:nova migrate 和 nova evacuate 有什麼區別?

  • February 23, 2022

在自由方面,我一直在尋找一種從所有虛擬機中“清空”管理程序的方法。在nova 客戶端文件中,我發現了以下與此相關的命令:

  • nova evacuate :從故障主機中撤離伺服器。
  • nova migrate :遷移伺服器。新主機將由調度程序選擇
  • nova live-migration :將正在執行的伺服器遷移到新機器。

和:

  • nova host-evacuate :從故障主機中撤出所有實例。
  • nova host-evacuate-live :將指定主機的所有實例實時遷移到其他可用主機。
  • nova host-servers-migrate :將指定主機的所有實例遷移到其他可用主機。

我可以使用第一組中的命令將伺服器(又名 VM)一個接一個地從一個管理程序移動到另一個管理程序。類似地,通過使用來自第二組的命令,以管理程序為目標,將其所有伺服器移動到其他管理程序。混亂來了。

當用於工作的管理程序時,“遷移”和“撤離”命令(除了參數略有不同)之間有什麼區別?

他們是在做同樣的事情,還是他們在下面不同而我錯過了什麼?是否應該在某些情況下使用一個,而在其他情況下使用另一個?即使在詞彙表上,它也說:

  • 遷移:將 VM 實例從一台主機移動到另一台主機的過程。
  • evacuate:將一個或所有虛擬機 (VM) 實例從一台主機遷移到另一台主機的過程,同時兼容共享儲存實時遷移和塊遷移。

所以,應該是類似的。但是為什麼兩者都存在呢?

nova 的幫助有點混亂,因為它經常使用“伺服器”這個詞,實際上是指“實例”,而“主機”是指“計算節點”。OpenStack 的術語在其歷史上發生了變化,這裡使用的一些術語是歷史上的舊術語。

所以我做了一些實驗來了解這些命令的實際作用。我想出的是:

在失敗的計算節點上執行的命令:

  • nova evacuate重新啟動在已關閉的計算節點上執行的單個實例。預設情況下,OpenStack 選擇哪些計算節點將接收實例,但可以使用--target-host.
  • nova host-evacuate重新啟動在已關閉的計算節點上執行的*所有實例。*預設情況下,OpenStack 選擇哪些計算節點將接收實例,但可以使用--target-host.

在任何一種情況下,如果計算節點實際啟動,疏散都會失敗。

在正在執行的計算節點上執行的命令:

  • nova host-evacuate-live嘗試將一個計算節點上執行的所有實例實時遷移到其他計算節點。預設情況下,OpenStack 選擇哪些計算節點將接收實例,但可以使用--target-host.
  • nova host-servers-migrate從計算節點遷移停止的實例。OpenStack 選擇哪些計算節點將接收實例。
  • nova live-migrationlive 遷移計算節點上的單個實例。預設情況下,OpenStack 選擇哪些計算節點將接收實例,但可以使用--target-host.
  • nova migrate從計算節點遷移停止的實例。OpenStack 選擇將接收實例的計算節點。

Red Hat 的 OpenStack 文件比上游文件對疏散和這些命令之間的區別有更好的解釋。

引用自:https://serverfault.com/questions/759787