ad1

2021年7月15日木曜日

PowerCLI を利用した vSAN 再同期帯域制御 の調整

 vCenter 7.0u1 の vSphere Client から vSAN の再同期時の帯域制御のメニューが無くなりました。

これは vSAN 6.7u1 / 6.7u3 で実装された Adaptive Resync や Parallel Resync  によってデータの再配置、再同期の時のスロットリングが適切に制御される様になったからです。

今回は昨年 7.0u1 がリリースされた時に試しておきながらまとめるのを忘れていた PowerCLI での再同期帯域調整(Resync throttling) についての覚書です。

Adaptive Resync については以下の Core TechZone VCF Blog の記事が詳細に書かれています。

※ Adaptive Resync はディスク I/O 遅延をトリガーに作動しますが、ネットワーク遅延については検知されません。

そのため、別の要因でネットワーク帯域が飽和している場合などで、NIOC による制御を行ったとしても vSAN トラフィックとして確保された中で再同期トラフィックがフロントエンドのトラフィックを圧迫してしまう可能性もあります。

その時は PowerCLI を利用した手動の制御が可能です。

追記 : 2024年7月に以下の KB が公開され、正式にネットワーク逼迫時のワークアラウンドとしてサポートされました。

※ このワークアラウンドは vSAN OSA 用です、vSAN ESA には有効化されません。

また、KB のスクリプトは以下で紹介する Set-VsanClusterConfiguration -ResyncThrottlingMbps オプションではなく、VMware.Vsan.Views.ResyncIopsInfo オブジェクトの ResyncIopsLimitConfig.ResyncIops を指定して設定していますが、結果は同じです。

PowerCLI を利用した vSAN 再同期帯域制御の調整

再同期帯域調整は PowerCLI の Set-VsanClusterConfiguration に -ResyncThrottlingMbps オプションで Mbps 単位で設定します。帯域調整は1ホスト単位ではなく、ディスクグループ単位で調整されるので、複数のディスクグループが搭載している場合は、制御指定する値 ÷ ディスクグループ数で設定してください。

以下は 120Mbps での帯域制御を設定。

1
2
3
4
5
6
7
8
9
10
11
# Mbps 単位で設定
PS C:\> Set-VsanClusterConfiguration (Get-VsanClusterConfiguration -Cluster $vsancluster) -ResyncThrottlingMbps 120
 
Cluster              VsanEnabled  IsStretchedCluster   Last HCL Updated
-------              -----------  ------------------   ----------------
vSAN-Cluster         True         False                2020/10/25 13:06:00
 
# 設定値の確認
PS C:\> (Get-VsanClusterConfiguration -Cluster $vsancluster).ResyncThrottlingMbps
120
  

解除時は 0 を設定します。

1
2
3
4
5
6
7
8
9
10
11
12
# 解除は "0" を設定(デフォルト値は "0")
PS C:\> Set-VsanClusterConfiguration (Get-VsanClusterConfiguration -Cluster $vsancluster) -ResyncThrottlingMbps 0
 
Cluster              VsanEnabled  IsStretchedCluster   Last HCL Updated
-------              -----------  ------------------   ----------------
vSAN-Cluster         True         False                2020/10/25 13:06:00
 
 
# 設定値の確認
PS C:\> (Get-VsanClusterConfiguration -Cluster $vsancluster).ResyncThrottlingMbps
0
  

非常に簡単な手順で設定できますが、vSphere Client 上からは設定が設定が変更できなくなっていますので設定を入れた事を忘れて運用していると同期速度が遅いなどの問題が発生する可能性があります。

ちなみに vCenter 7.0u2 でこの設定を入れると、以下のように vSphere Client の vSAN クラスタ > 監視 > Skyline 健全性 や オブジェクトの再同期 の View で以下の様な警告、エラーが表示されます。

※ 20MBps 未満に設定するとエラーとして強く警告されます。




基本は Adaptive Resync で自動的に制御するようにし、本当に制御が必要な時だけ上記方法をご利用ください。



0 件のコメント:

コメントを投稿

過去30日でアクセスの多い投稿