VMware vSphere – ライブマイグレーション(vMotion) のトラブルシュート

vSphere

今回は VMware vSphere 仮想基盤のライブマイグレーション技術である vMotion のトラブルと解消方法について解説します.
よくあるものについて説明していますが,他にもトラブルの理由は沢山あります.VMware KB も合わせて確認するようにしましょう.

ライブマイグレーション (vMotion) のトラブルと解消方法

ケース1: vMotion 用 VMkernel アダプタが正しく設定されていない

「ホストおよびクラスター」または「仮想マシンおよびテンプレート」より,vMotion したい仮想マシンを選択,右クリックでメニューを表示して「移行」をクリックします.

仮想マシンのみ移行しますので「コンピューティングリソースのみ変更します」を選択して「NEXT」をクリックします.

通常はここで移行先のホストを選択して「NEXT」をクリックするところなのですが,互換性のフィールドに「”ターゲット” のホスト上の vMotion インターフェイスは、設定されていません (または、不正に設定されています)。」エラーが表示されています.

この場合は VMkernel アダプタの設定を確認しましょう.
ESXiホストを選択し「設定」-「VMkernel アダプタ」とたどって vMotion 用の VMkernel アダプターを選択して「編集」をクリックします.

「ポートのプロパティ」を確認します.使用可能なサービスで「vMotion」にチェックが入っていませんでした.

「vMotion」にチェックをつけて「OK」をクリックします.

改めて、「ホストおよびクラスター」または「仮想マシンおよびテンプレート」より,vMotion したい仮想マシンを選択,右クリックでメニューを表示して「移行」をクリックします.

仮想マシンのみ移行しますので「コンピューティングリソースのみ変更します」を選択して「NEXT」をクリックします.

移行先 ESXi ホストを選択した後に「互換性」フィールドを確認すると今度はチェックが成功していることが確認できます.

このように,vMotion 用 VMkernel アダプターに「vMotion」のチェックを入れ忘れてしまうのはあるあるなので注意しましょう.

ケース2: ESXiホスト内の ISO イメージが選択されている

「ホストおよびクラスター」または「仮想マシンおよびテンプレート」より,vMotion したい仮想マシンを選択,右クリックでメニューを表示して「移行」をクリックします.

仮想マシンのみ移行しますので「コンピューティングリソースのみ変更します」を選択して「NEXT」をクリックします.

通常はここで移行先のホストを選択して「NEXT」をクリックするところなのですが,互換性のフィールドに「”現在接続しているデバイス” 「CD/DVD drive1」が、アクセスできないバッキング「[] /vmimage/tools-isoimage/linux.iso」を使用しています」というエラーが表示されています.

このようなエラーが表示された場合は VMware Tools の ISO イメージをマウントしたままになっている場合や,ESXi ホスト単独のデータストア (ローカルストレージなど) に置かれている ISO イメージをマウントしている場合になります.
したがって,対処方法は ISO イメージのアンマウントになります.

該当の仮想マシンを選択,右クリックでメニューを表示して「設定の編集」をクリックします.

CD/DVD ドライブののマウント先を確認しましょう.今回は「データストアの ISO ファイル」が選択されており,ステータスが「接続中」となっています.

単純に「接続中」のチェックを外すだけでは互換性チェックは失敗しますので,この絵のように「クライアントデバイス」を明示的に指定しましょう.

指定後に vMotion で互換性チェックが完了することを確認してください.

このエラーは Windows を搭載した仮想マシンに多い印象です.なぜならば,RHEL などは VMware Tools ではなく,最初から OpenVM Tools が内包されているためです.

ケース3: vMotion 機能がロックされている

「ホストおよびクラスター」または「仮想マシンおよびテンプレート」より,vMotion したい仮想マシンを選択,右クリックでメニューを表示して「移行」をクリックします.

仮想マシンのみ移行しますので「コンピューティングリソースのみ変更します」を選択して「NEXT」をクリックします.

移行先のホストを選択して「NEXT」をクリックします.

vMotion の場合,接続するポートグループを変更するか確認が促されますのでそのまま「NEXT」をクリックします.

vMotion の優先順位を選択します.通常は「vMotion を高優先度でスケジューリング」を選択して「NEXT」をクリックします.

設定内容を確認して「FINISH」をクリックします.

vMotion が開始されますが,20% から進まずにしばらくすると画面のような「操作に失敗しました」というエラーが表示されます.

今回だと「vMotion ネットワーク上でターゲットホストがソースホストからデータを受信しなかったため、vMotion は失敗しました。vMotion ネットワーク設定と物理ネットワーク設定が正しいことを確認してください。」というエラーです.

このエラーが出るケースは幾つかあるのですが,バックアップソフトウェアを利用している環境で突然出た場合はバックアップソフトウェアによる設定変更の可能性を疑った方がよいです.

移行元 ESXi ホストを選択して「設定」-「システムの詳細設定」を辿り、キーのフィルターボタンをクリックして「Migrate.Enabled」を入力して「Filter」をクリックしてください.

「Migrate.Enabled」の結果が表示されます.値が「0」の場合 Migration (vMotion) が無効化されていることになります.

バックアップソフトウェアが仮想マシンのバックアップを行う際に,仮想マシンが移動しないようにロックをかける製品があり,これが途中で失敗して戻さない場合にこのような状態となります.

設定を編集する必要がありますので「編集」をクリックします.

編集画面が表示されますので右上のフィルターボックスに「Migrate.Enabled」を入力して設定値を絞り込みます.

値を「0」から「1」に変更して「OK」をクリックします.

設定が反映されたことを確認するためキーのフィルターで「Migrate.Enabled」を入力してフィルターします.

値が「1」であることを確認します.

このエラーは先にも述べていますが,バックアップソフトウェアが途中でエラー終了したなどで起こり得ます.
今まで vMotion できていたけど,バックアップの失敗をきっかけにできなくなった.という場合はこれを疑ってみましょう.

ケース4: 時刻がずれている (実は vMotion 可能ですがケースとして取り上げます)

「ホストおよびクラスター」または「仮想マシンおよびテンプレート」より,vMotion したい仮想マシンを選択,右クリックでメニューを表示して「移行」をクリックします.

仮想マシンのみ移行しますので「コンピューティングリソースのみ変更します」を選択して「NEXT」をクリックします.

通常はここで移行先のホストを選択して「NEXT」をクリックするところなのですが,互換性のフィールドに「クロックスキューが大きすぎることが検出されました。ソースおよびターゲットホスト間の相対時間不一致 xxx は、5分を超えています」という警告が表示されています.

この警告を無視して移行することは可能ですが、仮想マシンの設定によっては移行した後に仮想マシンの時間が盛大にずれてしまい不都合が生じる場合があります.

今回だと、ソースホストとターゲットホストの時間差という警告ですので、ESXi ホストの時刻を確認してみます.

ソースの ESXi ホストを選択して「設定」-「時間の設定」を辿り「日付と時刻」を確認します.
ソースの ESXi ホストの時間は「2024/04/10 19:44」であることが確認できます.

ターゲットの ESXi ホストを選択して「設定」-「時間の設定」を辿り「日付と時刻」を確認します.
ターゲットの ESXi ホストの時間は「2024/04/10 20:45」であることが確認できます.

おおよそ1時間の時間のずれが確認できました.

このような場合、ESXi ホストの時間を正しい時間に合わせます.ずれているホストの「現在の時間設定」の「主導による時間設定」の右の「編集」をクリックして「主導による時間設定の編集」画面を表示させ正しい時間を入力して「OK」をクリックします.

「ホストおよびクラスター」または「仮想マシンおよびテンプレート」より,vMotion したい仮想マシンを選択,右クリックでメニューを表示して「移行」をクリックします.

仮想マシンのみ移行しますので「コンピューティングリソースのみ変更します」を選択して「NEXT」をクリックします.

移行先のホストを選択して「NEXT」をクリックします.
先ほどの警告が表示されないことを確認できました.

最初に述べていますが、これは警告であり実際には vMotion 可能です.
ただし,コンピューターは ESXi ホストであろうと、仮想マシンであろうと正しい時間で動いていることが前提ですので、こういったことが発生しないように ESXi ホストは NTP での時刻同期を行うようにしましょう.

ケース5: vMotion トラフィックの疎通性がない

「ホストおよびクラスター」または「仮想マシンおよびテンプレート」より,vMotion したい仮想マシンを選択,右クリックでメニューを表示して「移行」をクリックします.

仮想マシンのみ移行しますので「コンピューティングリソースのみ変更します」を選択して「NEXT」をクリックします.

移行先のホストを選択して「NEXT」をクリックします.

vMotion の場合,接続するポートグループを変更するか確認が促されますのでそのまま「NEXT」をクリックします.

vMotion の優先順位を選択します.通常は「vMotion を高優先度でスケジューリング」を選択して「NEXT」をクリックします.

設定内容を確認して「FINISH」をクリックします.

vMotion が開始されますが,20% から進まずにしばらくすると画面のような「操作に失敗しました」というエラーが表示されます.

今回だと「vMotion ネットワーク上でターゲットホストがソースホストからデータを受信しなかったため、vMotion は失敗しました。vMotion ネットワーク設定と物理ネットワーク設定が正しいことを確認してください。」というエラーです.

まずは「ケース1」を疑う所ですが、エラーメッセージが違っており、vMotion 通信ができていません。ですので、ESXi ホスト間のネットワーク状態を確認する必要があります.

vmkping コマンドを使用して vMotion 用 vmk からパケットを出して応答を確認してみます.

vmkping は通常の ping と同様の動作となり、指定した VMkernel インターフェイスを利用する点が違います.今回は応答があることが確認できました.

# vmkping -I <使用するvmknic> 宛先IP/FQDN

続いて確認すべきところは vMotion が利用するポートへのアクセスです.netcat (nc) コマンドを使用してポートへのアクセスを確認することができます.

netcat でアクセスができない場合,何も表示されずにプロンプトに戻ります.ですので今回の場合はポート 8000 へのアクセスができないから.ということがわかります.

# nc -z 宛先アドレス 宛先ポート

もし正常にアクセスできる場合はこのように「succeeded」と表示されます.

このケースは vMotion トラフィックを L3 で流すようなシチュエーションでルーターやファイアウォールが間にいる場合に起こりえます.

もしくは ESXi ホストのファイアウォール設定を間違っている場合も同じですが,明示的に無効化しないといけないためこの可能性は低いと思います.

他にもまだまだある vMotion のトラブル

VMware のナレッジベースに色々なナレッジが掲載されていますので,このあたりも確認するとトラブル解決に役に立ちます.

今後,仮想基盤について解説記事を作成していくにあたってトラブルが出たらそれを例にして纏めたいと思いますが,本当に vMotion は様々なトラブルが発生します.
ただ,多くはちょっとしたミス (今回の記事に書いた通り CD がマウントされていた) などが多いので,起きたらちょっと仮想マシンを調べてみる.という形でおおよそ解決できると思います.

以上,vMotion のトラブルおよび解決方法についての解説を終わります.
次回は vSphere DRS (vSphere Distributed Resource Scheduler) について解説を行います.




seichan

ご連絡は X (twitter) の DM へお願いします.
AWS Certified Cloud Practitioner: https://www.credly.com/badges/020d959c-7f46-4b77-99ea-b54e70bc20a0
Nutanix Certified Professional - Multicloud Infrastructure 6
: https://www.credly.com/badges/f1a0f35b-730a-42ac-bf69-ccf6e51080f1

seichanをフォローする
vSphere

seichanをフォローする




コメント

タイトルとURLをコピーしました