読者です 読者をやめる 読者になる 読者になる

自由人なエンジニアの備忘録

好きなことを好きに描く、ん~のびしろですね!

ESXi の APD(All-path-Down)はご存知でしょうか。

SupportInfomation

こんにちは。

 

今回はESXiの運用をしたことがある人であればだいたいの人が
遭遇したことがありそうなAPD(All-path-Down)内容になります。

 

中規模・大規模環境になってくると共有ディスクを利用し、
それぞれのESXiから参照することが一般的な構成かと思います。
図で表すと以下のような接続図です。

f:id:japan-vmware:20161009192050p:plain

 

そして、共有ディスクへの接続パスは冗長性の観点から、
複数あることが望ましいことは言うまでもありません。
しかし、ストレージ側の障害よってストレージがパワーオフしてしまった場合は、
どうでしょうか?いくらESXiからストレージへ複数のパスを使って接続できるように
なっていても、ストレージがパワーオフになってしまえば、完全に無意味です。
このような状態に陥った状態のことをAPDやPDL状態といいます。

もう少し定義について詳細がVMwareのストレージガイドに記載されています。
vSphere 6.0 ストレージガイド 124ページ
◇抜粋◇
全パス ダウン (APD)
ストレージ デバイスがホストに対してアクセス不能となり、
バイスへのパスが使用できなくなった場合に発生する状態です。
通常デバイスのこの問題は一時的なものであり、デバイスが再び
使用できるようになることが期待できるため、ESXi は、
これを一時的な状態として扱います。

---------------------------------

 

上記の例で示したストレージ側の障害では、障害復旧後は再度障害前に
提供していたボリュームをESXiに提供することが想定されます。
つまり、APDということです。

APDについてもうすこし理解を深める場合は、
VMware KB 2081089 が大変参考になります。
+ vSphere 5.x および 6.x での永続的なデバイスの損失 (PDL) と全パス ダウン (APD)
https://kb.vmware.com/kb/2081089

全パス ダウン (APD)

PDL SCSI 認識コードがデバイスから戻されない場合(ストレージ アレイに接続できない場合、
またはサポートされる PDL SCSI コードを戻さないストレージ アレイの場合)、
そのデバイスは全パス ダウン (APD) 状態にあり、ESXi ホストは応答を受信するまで I/O 要求を送信し続けます。
 
このように記載もされています。
 
つまり、APD状態に陥ったESXiホストは I/O要求を送信し続けます。

これは何を意味するのかというと、ESXiは軽量なOSです。
多くのリソースを仮想マシン側に提供したいので、
限られたリソースの範囲で稼働しています。

しかし、ESXiからストレージに対してI/O要求を送信し続けるということは、
それだけDriverからSCSIコマンドが発行され続け、ESXiが利用可能なリソースの
限り延々と要求し続けます。
その結果、時間が経つとESXiはその他のESXiの稼働に必要なリソースまで使ってしまい、最後にはESXiはvCenter Server から見ると "応答なし" なホストになってしまいます。

ここまでくると、もはやSSH接続もできなくなることが多いです。
当然稼働していた仮想マシンたちも移行(vMotion/Storage vMotion)もできないことが
多いです。

ではどうしたらいいのか。
対処方法はまずESXiホストの再起動です。
VMware KB 2081089)
  • APD 状況は、ストレージ アレイ/ファブリック レイヤーで解決して、ホストへの接続を復元する必要があります。
  • 影響を受けるすべての ESXi ホストでは、再起動して、影響を受ける APD 状態のデバイスに対する残存参照すべてを取り除く必要があります。

 

APDにならないようにするには、きちんと事前に、利用しないボリュームを
vSphere Client からアンマウントしたあと、デバイスを分離します。
これは大変重要な作業です。この作業をしないままストレージ側でLUNを削除したり
すると、APD状態に陥ります。

Windows Server などの感覚で、適当な操作をしていると痛い目に遭うので、
ストレージを操作するときは十分に注意し、操作を行うことをお勧めします。

 

今回はこのへんで。