vSAN データストアにネステッド ESXi (ゲスト OS として ESXi をインストール)を配置するときに、
仮想ディスクのフォーマット エラー対策などで物理サーバ側の ESXi で
/VSAN/FakeSCSIReservations を有効にします。
参考: How to run Nested ESXi on top of a VSAN datastore?
https://www.virtuallyghetto.com/2013/11/how-to-run-nested-esxi-on-top-of-vsan.html
今回は、PowerCLI で /VSAN/FakeSCSIReservations を有効にしてみます。
vSAN クラスタに参加している ESXi のみに設定するため、
対象クラスタを取得してから、パイプで設定コマンドに渡します。
今回の対象クラスタは infra-cluster-01 です。
PowerCLI> Get-Cluster infra-cluster-01 | select Name,VsanEnabled
Name VsanEnabled
---- -----------
infra-cluster-01 True
対象の ESXi です。
PowerCLI> Get-Cluster infra-cluster-01 | Get-VMHost | Sort-Object Name | select Name,ConnectionState,PowerState,Version,Build | ft -AutoSize
Name ConnectionState PowerState Version Build
---- --------------- ---------- ------- -----
infra-esxi-01.go-lab.jp Connected PoweredOn 6.7.0 8169922
infra-esxi-02.go-lab.jp Connected PoweredOn 6.7.0 8169922
infra-esxi-03.go-lab.jp Connected PoweredOn 6.7.0 8169922
infra-esxi-04.go-lab.jp Connected PoweredOn 6.7.0 8169922
infra-esxi-05.go-lab.jp Connected PoweredOn 6.7.0 8169922
infra-esxi-06.go-lab.jp Connected PoweredOn 6.7.0 8169922
現状の設定を確認しておきます。
VSAN.FakeSCSIReservations は、まだ無効の「0」です。
PowerCLI> Get-Cluster infra-cluster-01 | Get-VMHost | Sort-Object Name | select Name,{$_|Get-AdvancedSetting VSAN.FakeSCSIReservations}
Name $_|Get-AdvancedSetting VSAN.FakeSCSIReservations
---- ------------------------------------------------
infra-esxi-01.go-lab.jp VSAN.FakeSCSIReservations:0
infra-esxi-02.go-lab.jp VSAN.FakeSCSIReservations:0
infra-esxi-03.go-lab.jp VSAN.FakeSCSIReservations:0
infra-esxi-04.go-lab.jp VSAN.FakeSCSIReservations:0
infra-esxi-05.go-lab.jp VSAN.FakeSCSIReservations:0
infra-esxi-06.go-lab.jp VSAN.FakeSCSIReservations:0
設定変更します。
VSAN.FakeSCSIReservations を、有効の「1」にします。
PowerCLI> Get-Cluster infra-cluster-01 | Get-VMHost | Sort-Object Name | Get-AdvancedSetting VSAN.FakeSCSIReservations | Set-AdvancedSetting -Value 1 -Confirm:$false
設定変更されました。
PowerCLI> Get-Cluster infra-cluster-01 | Get-VMHost | Sort-Object Name | select Name,{$_|Get-AdvancedSetting VSAN.FakeSCSIReservations}
Name $_|Get-AdvancedSetting VSAN.FakeSCSIReservations
---- ------------------------------------------------
infra-esxi-01.go-lab.jp VSAN.FakeSCSIReservations:1
infra-esxi-02.go-lab.jp VSAN.FakeSCSIReservations:1
infra-esxi-03.go-lab.jp VSAN.FakeSCSIReservations:1
infra-esxi-04.go-lab.jp VSAN.FakeSCSIReservations:1
infra-esxi-05.go-lab.jp VSAN.FakeSCSIReservations:1
infra-esxi-06.go-lab.jp VSAN.FakeSCSIReservations:1
下記のように列名の表示などを調整することもできます。
PowerCLI> Get-Cluster infra-cluster-01 | Get-VMHost | Sort-Object Name | select Name,@{N="VSAN.FakeSCSIReservations";E={($_|Get-AdvancedSetting VSAN.FakeSCSIReservations).Value}}
Name VSAN.FakeSCSIReservations
---- -------------------------
infra-esxi-01.go-lab.jp 1
infra-esxi-02.go-lab.jp 1
infra-esxi-03.go-lab.jp 1
infra-esxi-04.go-lab.jp 1
infra-esxi-05.go-lab.jp 1
infra-esxi-06.go-lab.jp 1
設定が統一されているか、グルーピングして確認することもできます。
VSAN.FakeSCSIReservations が「1」の ESXi ホストをグルーピングして、
6台すべての設定が統一されていることがわかります。
PowerCLI> Get-Cluster infra-cluster-01 | Get-VMHost | Sort-Object Name | Get-AdvancedSetting VSAN.FakeSCSIReservations | Group-Object Name,Value | select Count,Name,{$_.Group.Entity}
Count Name $_.Group.Entity
----- ---- ---------------
6 VSAN.FakeSCSIReservations, 1 {infra-esxi-01.go-lab.jp, infra-esxi-02.go-lab.jp, infra-esxi-03.go-lab.jp, infra...
下記のようにシンプルに表示することもできます。
PowerCLI> Get-Cluster infra-cluster-01 | Get-VMHost | Get-AdvancedSetting VSAN.FakeSCSIReservations | Group-Object Name,Value | select Count,Name
Count Name
----- ----
6 VSAN.FakeSCSIReservations, 1
以上、vSAN データストアのネステッド ESXi ラボでの PowerCLI 利用例でした。