ESXi ホストがストレージ デバイスへの接続中に問題を経験すると、ホストは特定の要因に従ってその問題を永続的なものまたは一時的なものとして扱います。

ストレージ接続の問題は、さまざまな要因によって発生します。 ESXi がストレージ デバイスやパスが使用できない理由を常に判断することはできませんが、デバイスの Permanent Device Loss (PDL) 状態とストレージの一時的な All Paths Down (APD) 状態は、ホストによって区別されます。
Permanent Device Loss (PDL)
ストレージ デバイスが永続的に失敗するか、管理者により削除または除外されている場合に発生する状態です。使用可能になることは期待できません。デバイスが永続的に使用できなくなると、 ESXi は、該当する認識コードまたはストレージ アレイからのログイン拒否を受信し、デバイスが永続的に損失していることを認識できます。
All Paths Down (APD)
ストレージ デバイスがホストに対してアクセス不能となり、デバイスへのパスが使用できなくなった場合に発生する状態です。通常、デバイスのこの問題は一時的なものであり、デバイスが再び使用できるようになることが期待できるため、 ESXi は、これを一時的な状態として扱います。

接続問題と vSphere High Availability

デバイスが PDL または APD 状態になると、vSphere High Availability (HA) は接続問題を検出して、ESXi ホスト上で影響を受ける仮想マシンの自動リカバリを実行できます。vSphere HA は、仮想マシン コンポーネント保護 (VMCP) を使用して、vSphere HA クラスタ内のホストで実行されている仮想マシンをアクセス障害から保護します。VMCP の詳細および APD または PDL 状態が発生した場合のデータストアと仮想マシンの対応の構成方法については、vSphere の可用性ドキュメントを参照してください。

PDL 状態の検出

ストレージ デバイスが ESXi ホストで永続的に使用できなくなると、そのストレージ デバイスは永続的なデバイス損失 (PDL) 状態であるとみなされます。

通常、デバイスが誤って削除された場合、一意の ID が変更された場合、デバイスに修復不可能なハードウェア エラーが発生した場合に、PDL 状態が発生します。

ストレージ アレイによりデバイスが永続的に使用できないと判断されると、SCSI 認識コードが ESXi ホストに送信されます。認識コードを受け取ると、ホストはデバイスを障害発生として認識し、デバイスの状態を PDL として登録します。デバイスが永続的に失われたと見なされるには、そのすべてのパスで認識コードを受信する必要があります。

デバイスの PDL 状態の登録後は、ホストは接続の再構築を停止し、デバイスへのコマンドの送信を停止します。

vSphere Client にはデバイスに関する次の情報が表示されます。
  • デバイスの動作状態が Lost Communication に変わります。
  • すべてのパスが Dead と表示されます。
  • デバイス上のデータストアは使用できません。

デバイスへの開かれた接続がない場合、または最新の接続が閉じた後は、ホストは PDL デバイスと、デバイスに対するすべてのパスを削除します。パスの自動削除は、ホストの詳細パラメータ Disk.AutoremoveOnPDL を 0 に設定することで無効にできます。

デバイスが PDL 状態から復帰した場合、ホストによって検出されても新しいデバイスと見なされます。リカバリされたデバイス上に存在する仮想マシンのデータの整合性は保証されません。

注: 適切な SCSI 認識コードまたは iSCSI のログイン拒否を送信することなく、デバイスに障害が発生すると、ホストは PDL 状態を検出できません。この場合、デバイスに永続的な障害が発生した場合でも、ホストはデバイス接続の問題を APD として処理し続けます。

永続的なデバイス損失と SCSI 認識コード

次の VMkernel ログは、デバイスが PDL 状態になったことを表す SCSI 認識コードの例です。
H:0x0 D:0x2 P:0x0 Valid sense data: 0x5 0x25 0x0 or Logical Unit Not Supported

永続的なデバイス損失と iSCSI

ターゲットごとに単一の LUN を持つ iSCSI アレイでは、iSCSI ログインの障害によって PDL が検出されます。iSCSI セッションを開始しようとするホストの試みは、iSCSI ストレージ アレイによって Target Unavailable との理由で拒否されます。認識コードを使用する場合は、この応答が、永続的な損失であるとみなされるデバイスへのすべてのパスで受信される必要があります。

永続的なデバイス損失と仮想マシン

デバイスの PDL 状態の登録後は、ホストは仮想マシンからのすべての I/O を閉じます。vSphere HA は PDL を検出し、障害の発生した仮想マシンを再起動できます。

予定されるストレージ デバイスの削除の実行

ストレージ デバイスが正しく機能していないとき、Permanent Device Loss (PDL) または All Paths Down (APD) の状況を回避できます。ストレージ デバイスの予定される削除と再接続を実行します。

予定されるデバイスの削除とは、ストレージ デバイスを計画的に切断することです。デバイスの削除は、ハードウェアのアップグレードやストレージ デバイスの再構成などの理由で計画することがあります。ストレージ デバイスの削除と再接続を正しく実行するとき、さまざまなタスクを完了させます。

タスク 説明
分離を計画しているデバイスから仮想マシンを移行します。 vCenter Server およびホストの管理
デバイスにデプロイされているデータストアをアンマウントします。 データストアのアンマウントを参照してください。
ストレージ デバイスを分離します。 ストレージ デバイスの分離を参照してください。
1 つのターゲットあたりに 1 つの LUN のある iSCSI デバイスでは、ストレージ デバイスへのパスのある各 iSCSI HBA から静的ターゲット項目を削除します。 動的および静的 iSCSI ターゲットの削除を参照してください。
アレイ コンソールを使用することで、必要なストレージ デバイスの再構成を実行します。 ベンダーのドキュメントを参照してください。
ストレージ デバイスを再接続します。 ストレージ デバイスの接続を参照してください。
データストアをマウントし、仮想マシンを再起動します。 データストアのマウントを参照してください。

ストレージ デバイスの分離

ESXi ホストからストレージ デバイスを安全に取り外します。

ホストからデバイスにアクセスできないようにするため、デバイスを分離する必要が生じる場合があります。たとえば、ストレージ側でハードウェアのアップグレードを実行する場合などです。

前提条件

  • デバイスにはデータストアは含まれていません。
  • デバイスを RDM ディスクとして使用している仮想マシンはありません。
  • デバイスには、診断パーティションまたはスクラッチ パーティションは含まれていません。

手順

  1. vSphere Client で、ESXi ホストに移動します。
  2. [設定] タブをクリックします。
  3. [ストレージ] で、[ストレージ デバイス] をクリックします。
  4. 分離するデバイスを選択し、[分離] アイコンをクリックします。

結果

デバイスがアクセス不能になります。デバイスの動作状態がアンマウント済みに変わります。

次のタスク

複数のホストでデバイスを共有している場合は、各ホストでそのデバイスを分離してください。

ストレージ デバイスの接続

ESXi ホストから以前に取り外したストレージ デバイスを再接続します。

手順

  1. vSphere Client で、ESXi ホストに移動します。
  2. [設定] タブをクリックします。
  3. [ストレージ] で、[ストレージ デバイス] をクリックします。
  4. 分離されたストレージ デバイスを選択し、[接続] をクリックします。

結果

デバイスがアクセス可能になります。

PDL 状態からのリカバリ

予期しない永続的なデバイスの損失 (PDL) 状態は、ESXi ホストから適切に切り離されずに、ストレージ デバイスが永続的に使用できなくなったときに発生します。

vSphere Client 内の次の項目は、デバイスが PDL 状態にあることを示します。
  • デバイスにデプロイされているデータストアが使用できない。
  • デバイスの動作状態が Lost Communication に変わる。
  • すべてのパスの表示が Dead になる。
  • VMkernel ログ ファイルに、デバイスが永続的にアクセス不能になっているという警告が表示される。

予期せぬ PDL 状態から復旧し、使用できないデバイスをホストから削除するには、次の作業を行います。

タスク 説明
PDL 状態の影響を受けているデータストア上で実行されているすべての仮想マシンをパワーオフし、登録解除します。 vSphere の仮想マシン管理 を参照してください。
データストアをアンマウントします。

データストアのアンマウントを参照してください。

デバイスにアクセスしていたすべての ESXi ホストを再スキャンします。
注: 再スキャンが正常に行われず、ホストが引き続きデバイスを一覧表示し続ける場合は、一部の保留中の I/O またはデバイスに対するアクティブ リファレンスがまだ存在している可能性があります。デバイスまたはデータストアに対するアクティブ リファレンスがまだ存在する可能性があるものがないか確認してください。たとえば仮想マシンやテンプレート、ISO イメージ、RAW デバイス マッピングが該当します。
ストレージの再スキャンの実行を参照してください。

一時的な APD 状態の処理

ストレージ デバイスが不特定の期間にわたって ESXi ホストで使用できない状態になると、そのデバイスは APD (All Path Down) 状態にあるとみなされます。

APD 状態の原因としては、スイッチの不具合またはストレージ ケーブルの切断などが考えられます。

永続的なデバイスの損失 (PDL) 状態の場合とは異なり、ホストは APD 状態を一時的なものとして扱い、デバイスが再び使用可能になることを期待します。

ホストはデバイスとの接続性を再び確立する試みの中で、発行されたコマンドを試行し続けます。ホストのコマンドが、長期にわたって再試行に成功しない場合、ホストにパフォーマンスの問題が発生している可能性があります。ホストおよびその仮想マシンは、応答しなくなる可能性があります。

これらの問題を回避するために、ホストではデフォルトの APD 処理機能を使用します。デバイスが APD 状態になると、ホストはタイマーをオンにします。タイマーがオンの状態では、ホストは仮想マシン以外のコマンドの再試行を一定期間のみ続行します。

デフォルトで、APD タイムアウトは 140 秒に設定されます。通常この値は、ほとんどのデバイスが接続の切断から回復するために必要な時間を超えています。デバイスがこの期間内に使用可能になると、ホストおよび仮想マシンは、問題なく実行を継続します。

デバイスが回復せずタイムアウトが終了した場合、ホストは再試行の試みを停止し、非仮想マシン I/O を終了します。仮想マシン I/O が再試行を継続します。 vSphere Client には、APD タイムアウトに至ったデバイスについての次の情報が表示されます。
  • デバイスの動作状態が Dead or Error に変わります。
  • すべてのパスが Dead と表示されます。
  • デバイス上のデータストアが淡色表示されます。

デバイスおよびデータストアは使用できなくても、仮想マシンは応答し続けます。仮想マシンをパワーオフするか、別のデータストアまたはホストに移行することができます。

後でデバイス パスが機能するようになったら、ホストはデバイスへの I/O を再開でき、特別な APD 処理を終了します。

ストレージ APD 処理の無効化

ESXi ホスト上でのストレージの All Paths Down (APD) の処理は、デフォルトで有効になっています。この機能が有効な場合にストレージ デバイスが APD 状態になると、ホストは、非仮想マシン I/O コマンドを一定期間実行し続けます。一定時間が経過すると、ホストは再試行を停止し、すべての非仮想マシン I/O を終了します。ホストでの APD 処理機能を無効にすることもできます。

APD 処理を無効にすると、ホストは APD デバイスへの再接続のために発行したコマンドを無期限に実行し続けます。この動作が原因となり、ホスト上の仮想マシンがその内部 I/O タイムアウトを超過し、応答しなくなる、または失敗する可能性があります。ホストが vCenter Server から切断される可能性もあります。

手順

  1. vSphere Client で、ESXi ホストに移動します。
  2. [設定] タブをクリックします。
  3. [システム] メニューの [システムの詳細設定] をクリックします。
  4. [システムの詳細設定] テーブルで、[Misc.APDHandlingEnable] パラメータを選択し、Edit アイコンをクリックします。
  5. 値を 0 に変更します。

結果

APD 処理を無効にした場合でも、デバイスが APD 状態になったときに処理を再度有効にして、値を 1 に設定することができます。内部 APD 処理機能はすぐにオンになり、APD 状態の各デバイスに対して現在のタイムアウト値でタイマーが起動します。

ストレージ APD のタイムアウト制限の変更

タイムアウト パラメータは、APD (All Paths Down) 状態の場合に、ESXi ホストがストレージ デバイスに対して I/O コマンドを再試行する秒数を制御します。デフォルトのタイムアウト値を変更できます。

デバイスが APD 状態になると、すぐにタイムアウト期間が始まります。タイムアウトが終了すると、ホストは APD デバイスをアクセス不可としてマークします。ホストは、仮想マシンから発生していない I/O の再試行を停止し、仮想マシンの I/O の再試行を継続します。

デフォルトでは、ホストのタイムアウト パラメータは 140 秒に設定されています。たとえば、ESXi ホストに接続されているストレージ デバイスが接続の喪失から復旧するのに 140 秒以上かかる場合は、タイムアウトの値を増やすことができます。

注: デバイスが使用不可能になった後にタイムアウト パラメータを変更すると、その特定の APD インシデントに対して変更が適用されません。

手順

  1. vSphere Client で、ESXi ホストに移動します。
  2. [設定] タブをクリックします。
  3. [システム] メニューの [システムの詳細設定] をクリックします。
  4. [システムの詳細設定] テーブルで、[Misc.APDTimeout] パラメータを選択し、Edit アイコンをクリックします。
  5. デフォルト値を変更します。
    値は 20 ~ 99999 秒の範囲で入力できます。

ESXi ホストのストレージ デバイスの接続状態の確認

esxcli コマンドを使用して、特定のストレージ デバイスの接続状態を確認します。

前提条件

ESXCLI をインストールします。ESXCLI スタート ガイドを参照してください。トラブルシューティングするには、ESXi Shellesxcli コマンドを実行します。

手順

  1. esxcli storage core device list -d=device_ID コマンドを実行します。
  2. [Status:] 領域の接続状態を確認します。
    • on - デバイスが接続されています。
    • dead - デバイスが APD 状態になりました。APD タイマーが起動します。
    • dead timeout - APD タイムアウトになりました。
    • not connected - デバイスは PDL 状態です。