2021年1月9日土曜日

PowerCLI で vSphere Clustering Service (vCLS) の起動停止をする方法

 vSphere 7.0u1 から DRS などのクラスタ制御機能が vCenter から vCLS (vSphere Cluster Services) に移管され、vCLS そのものの有効化・無効化 (Retreat Mode) の操作方法を昨年以下の記事にまとめました。

今回はクラスタの計画停止や UPS などのシャットダウンツールの連動などで vCLS Retreat Mode の切り替えを PowerCLI でスクリプトを組むための方法をまとめます。

※ 作業前に必ず KB も併せて確認して下さい。

PowerCLI でクラスタの Domain ID を確認する

まずは vCenter に接続。この後 AdvancedSetting の設定で使うので $vc に入れておきます。

$cre = Get-Credential
$vc = Connect-VIServer -Server "vCenter IP or FQDN" -Credential $cre
 

続いて Get-Cluster でクラスタの情報を取得してみます。

PS C:\> Get-Cluster | Format-Table -AutoSize

Name      HAEnabled HAFailoverLevel DrsEnabled DrsAutomationLevel
----      --------- --------------- ---------- ------------------
vSAN      True      1               True       FullyAutomated
Nested-CL False     1               False      FullyAutomated
PCL       False     1               True       Manual
 

デフォルトの出力だと Domain ID が分からないので、Format-List するか、Select-Object で "ID" を含めます。

PS C:\>  Get-Cluster | Select-Object Name,Id |Format-Table -AutoSize

Name      Id
----      --
vSAN      ClusterComputeResource-domain-c3012
Nested-CL ClusterComputeResource-domain-c3006
PCL       ClusterComputeResource-domain-c8
 

ID は "ClusterComputeResource-domain-cXXXX" となり、URL に含まれる Domain ID と同じものを確認できます。

vCLS Retreat Mode に関する詳細設定を PowerCLI で作成・制御する

前回は vSphere Client で追加した "config.vcls.clusters.domain-cXXXX.enabled" を PowerCLI で操作します。

現在の vCLS Retreat Mode に関連する詳細設定(Advanced Settings)の有無を確認します。

PS C:\> Get-AdvancedSetting -Entity $vc -Name config.vcls.clusters.* | Format-Table -AutoSize

Name                                      Value Type     Description
----                                      ----- ----     -----------
config.vcls.clusters.domain-c8.enabled    false VIServer
config.vcls.clusters.domain-c3006.enabled false VIServer
 

先ほど新規で作成した "vSAN" クラスタの ID は未作成なので、これを新規に New-AdvancedSetting で追加します(削除は vCSA 内の vpxd.cfg を修正する必要があるので値が正しい事を必ずチェックしてください)。"vSAN" クラスタの Domain ID は "domain-c3012" なので "config.vcls.clusters.domain-c3012.enabled" を追加します。

PS C:\> New-AdvancedSetting -Entity $vc -Name config.vcls.clusters.domain-c3012.enabled -Value false
 

Retreat Mode の On/Off は Set-AdvancedSetting から true / false で制御します。

  • true なら Retreat Mode が無効 (vCLS が 有効 : vCLS VM が作成される)
  • false なら Retreat Mode が有効 (vCLS が無効 : vCLS VM が削除される)
# vCLS 有効化
PS C:\> Get-AdvancedSetting -Entity $vc -Name config.vcls.clusters.domain-c3012.enabled | Set-AdvancedSetting -Value true

# vCLS 無効化 (Retreat Mode 有効化)
PS C:\> Get-AdvancedSetting -Entity $vc -Name config.vcls.clusters.domain-c3012.enabled | Set-AdvancedSetting -Value false
 

有効・無効が正しく反映されている事を確認します。

# 各クラスタの vCLS の状態を確認 (全て Retreat Mode 有効状態)
PS C:\> Get-AdvancedSetting -Entity $vc -Name config.vcls.clusters.* | Format-Table -AutoSize

Name                                      Value Type     Description
----                                      ----- ----     -----------
config.vcls.clusters.domain-c8.enabled    false VIServer
config.vcls.clusters.domain-c3012.enabled false VIServer
config.vcls.clusters.domain-c3006.enabled false VIServer


# "vSAN" クラスタ (domain-c3012)の Retreat Mode を無効化 (vCLS の有効化)
PS C:\> Get-AdvancedSetting -Entity $vc -Name config.vcls.clusters.domain-c3012.enabled | Set-AdvancedSetting -Value true

# "vSAN" クラスタ (domain-c3012) のみ vCLS が有効になった事が確認できる
PS C:\> Get-AdvancedSetting -Entity $vc -Name config.vcls.clusters.* | Format-Table -AutoSize

Name                                      Value Type     Description
----                                      ----- ----     -----------
config.vcls.clusters.domain-c8.enabled    false VIServer
config.vcls.clusters.domain-c3012.enabled true  VIServer  ← true に変更される
config.vcls.clusters.domain-c3006.enabled false VIServer
 

vCenter の詳細設定の操作は間違えるとシステムに大きな影響を与えるため慎重に行ってください。

以上、PowerCLI を利用して vCLS Retreat Mode を起動停止してみました。

0 件のコメント:

コメントを投稿