ネットワーク障害後に ESXi ホストに iSCSI データストアを再マウントする

ネットワーク障害後に ESXi ホストに iSCSI データストアを再マウントする

私は ESXI 5.1 を実行しており、すべての仮想マシンは iSCI データストアによってマップされた NAS 内にあります。

ルータが壊れ、明らかにすべての VM がディスクから切り離されました。

私が理解しているのは、このようなイベントが発生すると、esxi は VM からのすべての I/O を停止し、データストアに再接続しようとするということです。一定時間経過しても接続できない場合は、データストアが永久に失われている可能性があるため、データストアをアンマウントします...

新しいスイッチを接続してから、esxi を再起動しました。vCenter のデータセンター ビューではデータストアがオンラインで表示されているのがわかります (ただし、参照すると何も表示されず、新しいフォルダーを作成することもできません...)。ホストのストレージ ビューではデータストアが表示されません... ホストに新しいデータストアを追加しようとして、iSCSI/LUN を選択しても、何も表示されません。

さらに、NAS (Synology) では、LUN にアクティブな接続がないことがわかります...

そこで大きな疑問は、データストアとすべての仮想マシンをどうやって復元するかということです。

答え1

SSH/ローカル コンソールを使用して ESX に接続し、次の操作を試してください。

esxcfg-volume -l
esxcfg-volume -m <datastorename>

最初のものはデータストアとそのステータスを一覧表示し、2番目のものはそれをマウントします

答え2

この状況を引き起こしたネットワーク構成にもかかわらず、これは正当な質問のままです。再起動せずに ESXi ホストに iSCSI ストレージを再度認識させる最善の方法は何ですか?

注: ネットワーク スタック全体が FUBAR 状態だったため、これを実際に機能させることはできず、いずれにしても ESXi を再起動して元に戻す必要がありました。私が見つけた内容が、将来この質問を見つける人にとって役立つかもしれないので、これを回答として投稿します。

最も役立つリンクは、このVMware KBの記事です。計画外の永久デバイス損失 (PDL) 後にデータストアを再マウントできない (2014155)

「元に戻らない」というのは、データ保護を目的とした機能のようです。たとえ「永久的な」デバイスの損失が一時的であったとしても、消えたストレージを使用していた VM はすべて失われます。消失したストレージを使用していた VM は、シャットダウン (可能な場合) または電源オフ (可能性が高い) にする必要があります。

ESXiサーバーにストレージを再度認識させる前に、VMware KB記事の手順に従って、ストレージが実際に存在することを確認してください。ESX/ESXi ホスト上の iSCSI LUN 接続の問題のトラブルシューティング (1003681)その過程で、ネットワーク スタック全体が FUBAR 状態になっていることに気づくかもしれません。私もそうでした...

最初の VMware KB 記事より:

(注: iSCSI の場合、デバイスは「naa」ID ではない可能性があり、代わりに「t10.IET_」のようになります。これらの怪物のような ID を手動で入力する代わりに、カット アンド ペーストすることを強くお勧めします。)

ID を見つけるためのコマンドは、元の記事の真ん中に埋もれていて役に立ちませんでした。オプションの適切な引数を見つけるために間違いなく必要になるため、便宜上ここに示し-dますesxcli storage core device world list -d <ID>

#esxcfg-scsidevs --uids

「t10」IDは次のように表示されます。

プライマリUID その他のUID
mpx.vmhba45:C0:T0:L0 vml.0005000000766d68626135353a313a31
naa.60022190becbe0003b3e818108cdf2d5 vml.0200000000600221c0becce0001b3b918108cdf2c550455e4320c6
t10.IET_____000100000000000000000000000000000000000000000000000 vml.010c0000002020202020202020202020202020202020202020202020202020202020202020202020202020202020626561663e30436e6e7f726f
t10.IET_____00010001000000000000000000000000000000000000000000000 vml.0100010000202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020626561693131464952545541

このコマンドを実行して、LUN に対してデバイスが開いているワールドを確認します。

#esxcli storage core device world list -d <t10_id>

例えば:

#esxcli storage core device world list -d t10.IET_____000100010000000000000000000000000000000000000000

次のような出力が表示されます:

デバイス ワールド ID オープン数 ワールド名
------------------------------------------------------------ -------- ---------- ----------
t10.IET_____000100010000000000000000000000000000000000000000000000 2060 1 アイドル0

VMFS ボリュームがデバイスを間接的に使用している場合、ワールド名には文字列「idle0」が含まれます。仮想マシンがデバイスを RDM として使用している場合、仮想マシンのワールド ID が表示されます。他のプロセスが Raw デバイスを使用している場合は、対応する情報が表示されます。

ノート:

ホストが応答しない場合は、コマンドを実行してesxcfg-scsidevs –-list対応するデータストア名を取得します。ボリュームに登録されているすべての仮想マシンが PDL 状態でこれ以上の手順を必要としないことを確認します。その状態の仮想マシンがある場合、操作を再試行またはキャンセルしても仮想マシンのワールド ID は返されません。ボリュームを再マウントしないと再試行操作は成功しないため、[キャンセル] をクリックします。

次のコマンドを実行して、ESXi 5.x ホスト上で実行されているすべての仮想マシンを一覧表示し、その LUN に登録されている仮想マシンを識別します。

#esxcli vm process list

仮想マシンのワールド ID を強制終了するには、次のコマンドを実行します。

#esxcli vm process kill --type=force --world-id=World ID

例えば:

#esxcli vm process kill --type=force --world-id=12131

次のコマンドを使用してストレージを再スキャンします。

#esxcfg-rescan -u vmhba#

デバイスの状態を確認するには、次のコマンドを実行します。

#esxcli storage core device list -d <t10-id>

問題が解決しない場合は、仮想マシンが登録されている ESXi 5.x ホストを再起動します。

関連情報