web-dev-qa-db-ja.com

Openstack:nova migrateとnova evacuateの違いは何ですか?

私は自由のために、すべてのVMからハイパーバイザーを「空にする」方法を探していました。 nova client docs で、これに関連する次のコマンドを見つけました。

  • nova evacuate:障害が発生したホストからサーバーを退避させます。

  • nova migrate:サーバーを移行します。新しいホストはスケジューラによって選択されます

  • nova live-migration:実行中のサーバーを新しいマシンに移行します。

そして:

  • nova Host-evacuate:失敗したホストからすべてのインスタンスを退避させます。

  • nova Host-evacuate-live:指定したホストのすべてのインスタンスを他の使用可能なホストにライブ移行します。

  • nova Host-servers-migrate:指定したホストのすべてのインスタンスを他の使用可能なホストに移行します。

最初のグループのコマンドを使用して、サーバー(別名VM)を1つのハイパーバイザーから別のハイパーバイザーに1つずつ移動できます。同様に、ハイパーバイザーをターゲットとして2番目のグループからのコマンドを使用すると、そのすべてのサーバーが他のハイパーバイザーに移動されます。そして、ここで混乱が生じます。

動作中のハイパーバイザーに使用した場合の「移行」コマンドと「退避」コマンドの違いは何ですか(引数が少し異なるだけでなく)?

彼らは同じことをしていますか、それとも下で違うのですか?何か不足していますか?ある場合に使用し、他の場合に使用する必要がありますか? 用語集 でも:

  • 移行:VMインスタンスを1つのホストから別のホストに移動するプロセス。
  • 避難:1つまたはすべての仮想マシン(VM)インスタンスを1つのホストから別のホストに移行するプロセス。共有ストレージのライブマイグレーションとブロックマイグレーションの両方と互換性があります。

だから、それは似ているはずです。しかし、なぜ両方が存在するのでしょうか。

4
G. Kaklam.

Novaヘルプは、「インスタンス」が実際に意味される「サーバー」という単語と「コンピュートノード」が意味される「ホスト」を頻繁に使用するため、少し混乱します。 OpenStackの用語はその歴史を経て変更されており、ここで使用されている用語のいくつかは歴史的な古い用語です。

そこで、私はこれらのコマンドが実際に何をするかを知るために少し実験しました。私が思いついたのは:

失敗した計算ノードで動作するコマンド:

  • nova evacuateは、ダウンした計算ノードで実行されていた単一のインスタンスを再起動します。デフォルトでは、OpenStackはインスタンスを受け取る計算ノードを選択しますが、--target-Hostを使用して計算ノードを選択できます。
  • nova Host-evacuateは、ダウンしたコンピューティングノードで実行されていたallインスタンスを再起動します。デフォルトでは、OpenStackはインスタンスを受け取る計算ノードを選択しますが、--target-Hostを使用して計算ノードを選択できます。

    どちらの場合も、計算ノードが実際に稼働していると、避難は失敗します。

実行中の計算ノードで動作するコマンド:

  • nova Host-evacuate-liveは、計算ノードで実行されているallインスタンスを他の計算ノードにライブマイグレーションしようとします。デフォルトでは、OpenStackはインスタンスを受け取る計算ノードを選択しますが、--target-Hostを使用して計算ノードを選択できます。
  • nova Host-servers-migrateは、停止したインスタンスを計算ノードから移行します。 OpenStackは、インスタンスを受け取る計算ノードを選択します。
  • nova live-migration liveは、計算ノード上の単一のインスタンスを移行します。デフォルトでは、OpenStackはインスタンスを受け取る計算ノードを選択しますが、--target-Hostを使用して計算ノードを選択できます。
  • nova migrateは、停止したインスタンスを計算ノードから移行します。 OpenStackは、インスタンスを受け取る計算ノードを選択します。

Red HatのOpenStackドキュメントには、アップストリームのドキュメントよりも少し優れた 避難の説明 とこれらのコマンドの違いがあります。

5
Michael Hampton