仮想かな。

VMware製品を中心に、仮想環境技術についてTipsを投稿しています。twitterもやってます @obamang03

vSAN ネットワーク クラスタパーティション エラーを復旧してみた。

vSAN障害ネタ第2弾。

本記事では、vSAN 6.6.1環境で クラスタパーティション エラー がたまたま発生したので

復旧までの手順をまとめました。

ネタ第1弾もお暇でしたら読んでみてください☟ 

 

 

きっかけ_vSAN ネットワーク クラスタパーティションが"失敗"

web clientにて、Node#1に「vSANサービスが有効になっていません」というエラーが表示されていました。

f:id:obamang03:20180429023307p:plain

 

確かに、vSAN DiskGroupとしては存在しているが..

f:id:obamang03:20180429035051p:plain

 

vSAN健全性チェックを見ると、[ネットワーク] > [vSANクラスタパーティション]が失敗。

f:id:obamang03:20180429023800p:plain

詳細を見ると、パーティション化していました。

f:id:obamang03:20180429023912p:plain

 

パーティション化しているにも関わらず、他のネットワークチェックはすべてパス。

[vSANクラスタパーティション] のテストがどういった事を実行しているか?

VMware KBから確認してみました。

  - vSAN 健全性サービス - ネットワークの健全性 - vSAN クラスタ パーティション (2148543)
 https://kb.vmware.com/s/article/2148543 

 * - * -* - * -* - * -* - * -* - * -* - * -* - * -* - * -* - * -* - * -* - * -* - * -* - * -* - * -* - * -
Q:エラー状態とは、どのような状況を意味しますか。

パーティションが 1 つだけ見つかると、この健全性チェックでは OK ということになります。
複数のパーティションが見つかるとただちに、クラスタは不健全とみなされます。

Q:どのようにエラー状態をトラブルシューティングして修正しますか

ネットワーク構成の問題を特定して、解決する必要があります。ネットワークに対するその他の健全性サービス チェックは、
ネットワーク パーティションを引き起こした可能性のある根本原因の発見を支援するように設計されています。
構成の誤り以外に、ネットワークの負荷が高く、相当量のパケットのドロップにつながる場合にも、パーティションが発生する可能性があります。
 * - * -* - * -* - * -* - * -* - * -* - * -* - * -* - * -* - * -* - * -* - * -* - * -* - * -* - * -* - * -* - * -* - * -* - * -* - * -* -* - 

 今回、その他ネットワークの健全性サービスチェックはすべて正常

加えて本環境はテスト環境としての利用なので、ほとんど負荷はかけていません。

そのため、改めて基本に立ち返って調査することにしました。

 

 

調査_vSAN Architectureから現状を理解する

以下はVMware社提供する whitepaper、 "VMware Virtual SAN Layer 2 and Layer 3 Network Topologies" から抜粋した図になります。

f:id:obamang03:20180429031735p:plain

 

vSANでは、各ノードにRole(役割)が存在します。

Masterは Agent/Backup ノードから得た情報を収集・集約した情報を再配布することで、全ノードで一貫したvSANメタデータが共有されます。

これらの通信はvSAN Networkでやりとりされます。なお、vSAN6.6からはユニキャストで通信されます。

f:id:obamang03:20180429034612p:plain

f:id:obamang03:20180429040309p:plain

つまり、vSANがvSAN Clusterとして正常に動作するためには、以下をクリアする必要がある。

 ✅vSAN Networkが適切に構成されているか ★既にvSAN健全性チェックでpass済★

 ✅Master Group Multicast + Agent Group Multicast でやり取りが出来ているか

 ✅各vSAN Role が適切に役割分担出来ているか

 

## Master Group Multicast + Agent Group Multicast でやり取りが出来ているか

 connectionとしてはlistできる状態。

実際に今やり取りが出来ているか?はtcpdumpを追加でとれば分かります。

node#1
[root@sds-01:~] esxcli network ip connection list | egrep 224
udp 0 0 224.1.2.3:12345 0.0.0.0:0 65897
udp 0 0 224.2.3.4:23451 0.0.0.0:0 65897

node#2
[root@sds-02:~] esxcli network ip connection list | egrep 224
udp 0 0 224.1.2.3:12345 0.0.0.0:0 65897
udp 0 0 224.2.3.4:23451 0.0.0.0:0 65897

node#3
[root@sds-03:~] esxcli network ip connection list | egrep 224
udp 0 0 224.1.2.3:12345 0.0.0.0:0 65897
udp 0 0 224.2.3.4:23451 0.0.0.0:0 65897

node#4
[root@sds-04:~] esxcli network ip connection list | egrep 224
udp 0 0 224.1.2.3:12345 0.0.0.0:0 518116 VSAN_0x43170ace2318_CMMDSProces
udp 0 0 224.2.3.4:23451 0.0.0.0:0 518116 VSAN_0x43170ace2318_CMMDSProces

 

## 各vSAN Role が適切に役割分担出来ているか

なんと、Node#1がMasterのRoleとして割り当てられていました。

[root@sds-01:~] esxcli vsan cluster get
Cluster Information
Enabled: true
Current Local Time: 2018-04-28T14:40:11Z
Local Node UUID: 5add76f4-f498-ca86-5b72-246e96ac1870
Local Node Type: NORMAL
Local Node State: MASTER
Local Node Health State: HEALTHY
Sub-Cluster Master UUID: 5add76f4-f498-ca86-5b72-246e96ac1870
Sub-Cluster Backup UUID:
Sub-Cluster UUID: 529b340b-60bc-671c-37b3-5fd2ec850ad8
Sub-Cluster Membership Entry Revision: 0
Sub-Cluster Member Count: 1 ★vSAN Clusterに参加しているnode数★
Sub-Cluster Member UUIDs: 5add76f4-f498-ca86-5b72-246e96ac1870
Sub-Cluster Membership UUID: 9484dd5a-6448-a2f3-8d25-246e96ac1870
Unicast Mode Enabled: true
Maintenance Mode State: OFF
Config Generation: 6e397dda-6b3a-45ce-bf2d-ad1b84adccd5 15 2018-04-28T13:28:07.604

 

[root@sds-03:~] esxcli vsan cluster get
Cluster Information
Enabled: true
Current Local Time: 2018-04-28T14:41:08Z
Local Node UUID: 5a81f6c9-eda3-e3de-3f01-246e96abf790
Local Node Type: NORMAL
Local Node State: MASTER
Local Node Health State: HEALTHY
Sub-Cluster Master UUID: 5a81f6c9-eda3-e3de-3f01-246e96abf790
Sub-Cluster Backup UUID: 5a81f6c3-66b0-c318-f932-246e96ac0db0
Sub-Cluster UUID: 525f3eba-a578-0034-a0a7-051f6af61134
Sub-Cluster Membership Entry Revision: 12
Sub-Cluster Member Count: 3 ★vSAN Clusterに参加しているnode数★
Sub-Cluster Member UUIDs: 5a81f6c9-eda3-e3de-3f01-246e96abf790, 5a81f6c3-66b0-c318-f932-246e96ac0db0, 5adc877e-70c3-bb20-79ba-246e96ac1b10
Sub-Cluster Membership UUID: d272dd5a-d447-9eca-7091-246e96abf790
Unicast Mode Enabled: true
Maintenance Mode State: OFF
Config Generation: 6e397dda-6b3a-45ce-bf2d-ad1b84adccd5 15 2018-04-28T13:28:07.581

 

 

f:id:obamang03:20180429041743p:plain

 

 結果_vSAN Clusterからの離脱/再参加 で改善!

いくつかVMwareの文献を漁りましたが、vSAN Roleの役割を変更するコマンドなどは確認出来ませんでした。

そのため、vSAN Clusterからの離脱/再参加 を実施したところ改善しました。

 

Node#1をメンテナンスモードへ移行(componentはnode#1に未配置だったため、[データを退避しない]のオプションを選択)し、以下の通り データセンタを移行先に指定します。

f:id:obamang03:20180429042531p:plain

移行後、すぐにvSAN健全性エラーは正常化しました。

f:id:obamang03:20180429042714p:plain

 

 再参加させるため、vSAN Clusterへ移行します。

f:id:obamang03:20180429042746p:plain

f:id:obamang03:20180429042829p:plain

 

メンテナンスモードを解除したところ、役割がAgentとして認識したことを確認しました。

[root@sds-01:] esxcli vsan cluster get

Cluster Information

   Enabled: true

   Current Local Time: 2018-04-28T15:10:43Z

   Local Node UUID: 5add76f4-f498-ca86-5b72-246e96ac1870

   Local Node Type: NORMAL

   Local Node State: AGENT

   Local Node Health State: HEALTHY

   Sub-Cluster Master UUID: 5a81f6c9-eda3-e3de-3f01-246e96abf790

   Sub-Cluster Backup UUID: 5a81f6c3-66b0-c318-f932-246e96ac0db0

   Sub-Cluster UUID: 525f3eba-a578-0034-a0a7-051f6af61134

   Sub-Cluster Membership Entry Revision: 15

   Sub-Cluster Member Count: 4

   Sub-Cluster Member UUIDs: 5a81f6c9-eda3-e3de-3f01-246e96abf790, 5a81f6c3-66b0-c318-f932-246e96ac0db0, 5adc877e-70c3-bb20-79ba-246e96ac1b10, 5add76f4-f498-ca86-5b72-246e96ac1870

   Sub-Cluster Membership UUID: d272dd5a-d447-9eca-7091-246e96abf790

   Unicast Mode Enabled: true

   Maintenance Mode State: OFF

   Config Generation: 6e397dda-6b3a-45ce-bf2d-ad1b84adccd5 19 2018-04-28T15:07:59.600

 

以上です。

長文お読みいただきありがとうございました。

皆さまのvSANライフに活かして頂けると幸いです。