"HCI" はじめました。

vSAN担当小佐野舞です。VMwareのHCIを広めるため日々活動していきます。

vSAN クラスタ再起動時の問題のKB

vSAN 6.7U3 にて、vSAN クラスタ再起動時の問題が解決されました!

 

vSAN クラスタで全てのホストを同時に再起動する際に単一障害により利用不可のデータが発生する (60424)

A simultaneous reboot of all hosts in the vSAN cluster may result in data unavailability after a single failure (60424)

 

現象
vSANクラスタの計画停止を行う際、再起動時に故障により起動できないノードがあった場合に一部のデータにアクセスできなくなることがあります。

 

正直、私はこのKBに該当する状況に出会ったことがありません。

ビルの停電関連で何回も何回も計画停止、シャットダウン手順の確認やデモで何度も何度も計画停止を行なっていますが。

停電対応や障害対応でのクラスタシャットダウンにデータの移行なしのメンテナンスモードは必須です。

ワークアラウンドももちろん出ていますが、各ホストにスクリプトを配置し実行する必要がありました。

 

 

vSAN 6.7U3にて完全解決とまでは行かないのですが、クラスタシャットダウン時にいずれか1ノードで1つのコマンドを実行するだけでよくなりました!  

KBはこちら

Using a built-in tool to perform simultaneous reboot of all hosts in the vSAN cluster (70650)

 

 

手順を日本語化すると。

計画停止前のコマンド実行

  1. vSAN クラスタの再起動をする前にひとつのホストにログインして、下記コマンドを実行します。
    python /usr/lib/vmware/vsan/bin/reboot_helper.py prepare
  2. 'Cluster preparation is done' と表示されることを確認します。
  3. クラスタ内の全てのホストをデータの移行なしオプションのメンテナンスモードにします。
  4. 再起動またはシャットダウンを実行します。

 

起動後の確認

  1. 起動後、ホストのメンテナンスモードを解除します。
  2. ひとつのホストにログインして、下記コマンドを実行します。
    python /usr/lib/vmware/vsan/bin/reboot_helper.py recover
  3. 'Cluster reboot/power-on is completed successfully!'と表示されることを確認します。

 

U3へのアップデートとこちらのKBを参考にvSAN クラスタの再起動を行なってください。

 

 

ちょうど停電対応でやらねば、というタイミングだったので実行してみました。

起動時はまた停電が終わったら追記します。

 

仮想マシンをシャットダウンします。

コマンドを実行します。(要名前解決!!!)

[root@desx01:/usr/lib/vmware/vsan/bin] python reboot_helper.py prepare
Begin to prepare the cluster for gracefully rebooting...
Time among hosts are synchronized.
Scheduled vSAN reconfig task.
Waiting for the scheduled task...(50s left)
Waiting for the scheduled task...(20s left)
Checking network status...
Cluster preparation is not ready, retry after 10s...
Network checking done.
Cluster preparation is done!
Ready to proceed following steps:
1.Put all hosts in maintenance mode with 'No Action' mode.
2.Reboot/Shutdown all hosts.
3.When all hosts are brought back, exit maintenace mode.
4.Run this script again with 'recover' command.

vCenter を確認すると、全てのホストでアラームが上がっていました。

  • ホストが、vSAN が有効なクラスタ内の他の1台以上のノード通信できません
  • vSAN ネットワークが構成されていません

実行したコマンドの中を見てみたら、vSAN トラフィックを無効にしていたので正しいアラームです。

データの移行なしオプションのメンテナンスモードにします。

f:id:vmwarekkHCI:20190906153656p:plain

シャットダウンします。
 
 
 
停電から復旧しました!
起動後の手順をみていきましょう。
 
ホストのメンテナンスモードを解除します。
リカバリのコマンドをひとつのホストから実行します。(要名前解決!!!)
[root@desx01:/usr/lib/vmware/vsan/bin] python reboot_helper.py recover
Begin to recover the cluster...
Time among hosts are synchronized.
Scheduled vSAN cluster restore task.
Waiting for the scheduled task...(21s left)
Checking network status...
Network checking done.
Cluster reboot/poweron is completed successfully!
キレイに完了しました。
万が一、起動時の障害で発生する問題ですが、コマンドひとつで簡単に予防できます。
U3での対処方法となりますので、アップデートをご検討ください。