SB C&Sの最新技術情報 発信サイト

C&S ENGINEER VOICE

VMware vSAN のホスト障害発生時の動作

仮想化
2022.03.30

こんにちは。SB C&Sの山田です。

この記事では、VMware vSANESXiホスト障害発生時の動作についてご紹介していきます。前回までの記事では、ストレージ ポリシーに応じた仮想マシン単位での障害発生時の動作についてご紹介しました。今回は、vSANクラスタでのESXiホスト障害の際に仮想マシンデータの可用性がどのように復旧されるのかについて、実際の動作をご紹介していきます。

vSANにおけるESXiホスト障害発生時の動作概要

ハードウェア障害などが発生してvSANクラスタ内のESXiホストが停止してしまった場合には、対象のホスト上に格納されている仮想マシンデータは自動的に復旧(再同期)されます。また、あらかじめvSphere HA機能を有効にしておくことで、従来までのような外付けストレージを利用した"3-Tier構成"として構成されたvSphereクラスタの場合と同様に、障害ホスト上の仮想マシンは他のホストで再起動されます。

まずは、障害が発生したESXiホストでのデータの自動復旧についてご説明します。前提知識となるvSANのオブジェクトとコンポーネントについては、以前の記事を参照してください。

vSANでホストが停止すると、ESXiホストからコンポーネントにアクセスできない「応答なし」という状態になり、「オブジェクトの再同期」という処理が発生します。しかし、この状態が例えば"いわゆるネットワークの寸断"のような一時的なものなのか、"実際のノードHW障害"のような永続的なものか判断ができないため、システム的には一定時間待機してからオブジェクトの再同期を実行するというような動作を取ることになります。そして、仮想マシンのストレージポリシーについても、ルール設定されたデータの可用性が満たされなくなっているため「非準拠」の状態になります。

この場合におけるオブジェクトの再同期は、コンポーネントにアクセスできない状態となってから、デフォルトでは60分後に開始されます。これにより、ストレージポリシーで定義されたデータの可用性に準拠するように、障害の影響を受けなかったコンポーネントが自動的に複製されます。

概要1.png

vSANクラスタ内のESXiホストが4台以上の場合は、上記でご説明した動作となります。ただし、vSANクラスタが最小構成の3台である場合には動作が異なります。

ESXiホストが3台構成の場合は、障害によって1台でもESXiホストが停止してしまうと、コンポーネントの再複製先となる余剰ESXiホストが存在しなくなってしまいます。そのため、ホストが停止している間は再同期処理が開始されることがなく、可用性が低下したままの状態となってしまいます。そして、障害復帰後に再同期処理が開始されます。

概要2.png

vSANとvSphere HAの関係についてもご説明しておきます。vSANでは、データの再同期処理の完了を待たずに、vSphere HAによる再起動によって仮想マシンが稼働を再開できます。これは、ここまでの説明からわかるようにvSANではデフォルトでデータが冗長化されており、ESXiホストが1台停止していても、必ずデータへのアクセスが担保されるためです。

なお、vSANを有効にしている場合のvSphere HAのトラフィックは、管理ネットワークではなく、vSANネットワークが使用されます。そのため、クラスタでvSANを有効化する際には、vSphere HAを一時的に無効化しておく必要があります。

使用する環境

それでは、vSANクラスタ内のESXiホストで障害が発生した際の動作について確認します。使用する環境は以下です。

ESXiホスト

  • 台数:4(Nested仮想マシン)
  • バージョン:VMware ESXi 7.0 Update 2a

仮想マシン

  • ストレージ ポリシー:vSAN Default Storage PolicyFTT=1でデータを2重化)

FTT=1 によるデータの2重化については、以前の記事を参照してください。

今回は、擬似障害としてESXiホスト(esxi-a1)を停止して、そのホストのディスクに格納されている仮想マシン(VM-1)のデータの動作を確認します。あわせて、VM-1vSphere HAで自動再起動される様子も確認します。

概要3.png

vSANクラスタ内のESXiホスト停止

それでは、vSANクラスタ内のESXiホストをダウンさせて障害時の動作を確認します。

障害を発生させる前に、vSANデータストアの容量を確認しておきます。今回のvSANデータストア容量は3.52TBです。

1.png

このvSANクラスタでは、vSphere HA を有効にしてあります。

2.png

オブジェクトの再同期処理が発生するまでの時間設定を、オブジェクト修復タイマーといいます。今回は、デフォルト値のまま60分にしています。

3.png

それでは、ESXiホスト(esxi-a1)の電源を停止して、擬似的に障害を発生させます。esxi-a1が、応答なしの状態になったことを確認します。

4.png

vSANデータストアの容量が2.64TBに減っています。これは、vSANデータストアを構成していたesxi-a1のディスクにアクセス不可となったためです。

5.png

障害ホストに格納されていたデータの動作

障害ホストのディスクに格納されていたデータに対して、再同期処理が自動的に発生するまでの様子を確認します。

まずは、仮想マシンを構成するオブジェクト単位の状態を確認します。ESXiホストを停止した直後は、各仮想マシンのオブジェクト状態が「可用性が低下(再構築なし) - 遅延タイマー」とマークされています。これは、障害が発生したESXiホストに格納されていたコンポーネントが応答不可の状態となったため、オブジェクト復旧タイマーで設定されている時間を待っている状態です。なお、このときには各仮想マシンのストレージポリシーは非準拠の状態になっています。

6.png

続けて、オブジェクトを構成するコンポーネント単位の状態を確認します。仮想ディスクオブジェクトのコンポーネント配置を確認すると、障害が発生したESXiホストに格納されていたコンポーネントの状態は、なし(応答不可)になりました。

障害の影響を受けたコンポーネントに作成された「持続性コンポーネント」というのは、再同期処理が発生するまでの差分データを記録するコンポーネントです。これは、再同期処理でデータを同期した後に削除されます。

7.png

監視タブにあるオブジェクトの再同期から、再同期処理が開始される予定時刻や、対象のオブジェクト数が確認できます。障害が発生した60分後に再同期処理が開始されるように自動的にスケジュール設定されています。

また、「今すぐ再同期」をクリックすることで60分待たずに再同期処理を開始することも可能です。

8.png

障害が発生してから60分後に、自動的に再同期処理が開始します。再同期処理が完了したコンポーネントの状態は、正常(アクティブ)になります。これは、コンポーネントがesxi-a1以外のホストに複製されたためです。

9.png

各仮想マシンのオブジェクト状態は、障害発生時は「可用性が低下(再構築なし) - 遅延タイマー」とマークされていましたが、コンポーネントの複製が完了したことにより「健全」とマークされています。

10.png

このように、4台以上のESXiホストで構成されたvSANクラスタでは、障害によりデータ可用性が失われても、自動的に再同期が行われます。一方で、vSANクラスタ内のESXiホストが3台の場合は、コンポーネントを複製する先のESXiホストが存在しないため、オブジェクト修復タイマーにかかわらず、障害復旧されて3台のホストが稼働している状態になるまで、再同期処理が行われません。

vSphere HA動作

障害発生後に、vSphere HAが正常に動作していたかについても確認していきます。

esxi-a1では、障害発生前にVM-1が稼働していました。

11.png

障害発生の時点では、ESXiホストと一緒にVM-1も停止してしまいますが、すぐに他のホストで自動再起動されます。そしてVM-1のイベントログから、vSphere HAによってesxi-a4で即時に再起動されていることが確認できます。

12.png

ESXiホスト復旧後の動作確認

vSANクラスタにおけるESXiホスト障害時の動作が確認できたため、ホストを復旧した後の正常性を確認していきます。

esxi-a1の電源をオンの状態にしました。esxi-a1の起動が完了すると、応答なしの状態から正常の状態に復旧します。

13.png

ESXiホストの復旧後は、vSANデータストアの再構成などの特別な作業は必要なく、自動で復旧処理が行われます。復旧後のvSANデータストアの容量を確認すると、障害発生前の容量に戻っていることがわかります。障害発生中の容量は2.64TBに減少していましたが、障害復旧後の容量は3.52TBに戻っています。

14.png

新たに仮想マシンを作成すると、復旧したesxi-a1で仮想マシンが起動でき、コンポーネントもesxi-a1のディスクに作成されることが確認できます。

VM-5という仮想マシンを新たに作成し、esxi-a1で起動できることが確認できました。

15.png

そして、VM-5を構成するコンポーネントのデータ配置に関してもesxi-a1に配置されていることが確認できます。ただし、vSANでのコンポーネントの配置先は自動的に決定されるため、esxi-a1にコンポーネントが配置されない場合は、いくつか仮想マシンを作成してみる必要があります。

16.png

今回は、vSANクラスタのホスト障害時に発生する動作についてご紹介しました。

スクリーンショットにてご紹介したように、ホストが4台以上で構成されたvSANであれば、1台で障害が発生しても再同期処理によってストレージ ポリシーに準拠した(FTT=1により2重化された)状態に自動復旧することがご理解いただけたのではないでしょうか。 一方で、最小台数である3台構成の場合は、ホスト障害が発生すると復旧するまでデータが2重化されていない状態となります。そのためvSANは4台以上の構成が推奨されています。

次回は、vSANのストレージ容量を効率化する重複排除と圧縮の機能についてご紹介します。

他のおすすめ記事はこちら

著者紹介

SB C&S株式会社
ICT事業本部 ICT事業戦略・技術本部 技術統括部 第1技術部 1課
山田 和良 - Kazuyoshi Yamada -