PowerCLI を利用して、vSAN 6.7 の Witness Appliance をデプロイしてみます。

 

今回の環境。

vSAN Witness Appliance をデプロイする vCenter と、

登録する(vSAN クラスタを構成する)vCenter は別にしています。

 

vSAN Witness Appliance のデプロイ。

まず vCenter に接続します。

PowerCLI> Connect-VIServer vc-sv01.go-lab.jp

 

今回は、vSAN 6.7 の Witness Appliance の ova ファイル

(VMware-VirtualSAN-Witness-6.7.0-8169922.ova)をデプロイします。

PowerCLI> $ovf_config = Get-OvfConfiguration -Ovf E:\VMware\VMware-VirtualSAN-Witness-6.7.0-8169922.ova

 

入力するパラメータは、下記のような感じです。

PowerCLI> $ovf_config

=============================================================

OvfConfiguration: VMware-VirtualSAN-Witness-6.7.0-8169922.ova

 

   Properties:

   -----------

   DeploymentOption

   NetworkMapping

   vsan

 

 

PowerCLI> $ovf_config.DeploymentOption

 

 

Key                : DeploymentOption

Value              :

DefaultValue       : normal

OvfTypeDescription : string["tiny", "normal", "large"]

Description        : Tiny (10 VMs or fewer)

                     Configuration for Tiny vSAN Deployments with 10 VMs or fewer

 

                     * 2 vCPUs

                     * 8GB vRAM

                     * 1x 12GB ESXi Boot Disk

                     * 1x 15GB Magnetic Disk

                     * 1x 10GB Solid-State Disk

                     * Maximum of 750 Witness Components

 

                     Medium (up to 500 VMs)

                     Configuration for Medium vSAN Deployments of up to 500 VMs

 

                     * 2 vCPUs

                     * 16GB vRAM

                     * 1x 12GB ESXi Boot Disk

                     * 1x 350GB Magnetic Disk

                     * 1x 10GB Solid-State Disk

                     * Maximum of 22K Witness Components

 

                     Large (more than 500 VMs)

                     Configuration for Large vSAN Deployments of more than 500 VMs

 

                     * 2 vCPUs

                     * 32GB vRAM

                     * 1x 12GB ESXi Boot Disk

                     * 3x 350GB Magnetic Disks

                     * 1x 10GB Solid-State Disk

                     * Maximum of 45K Witness Components

 

 

PowerCLI> $ovf_config.NetworkMapping | fl

 

 

Management_Network :

Witness_Network    :

 

 

PowerCLI> $ovf_config.vsan.witness.root.passwd

 

 

Key                : vsan.witness.root.passwd

Value              :

DefaultValue       :

OvfTypeDescription : password(7..)

Description        : Set password for root account.

 

                        A valid password must be at least 7 characters long and must contain a mix

                        of upper and lower case letters, digits, and other characters.  You can use

                        a 7 character long password with characters from at least 3 of these 4

                        classes.  An upper case letter that begins the password and a digit that

                        ends it do not count towards the number of character classes used.

 

 

パラメータを設定します。デプロイします。

今回は、直接接続の 2 ノード vSAN にする想定として、

vSAN Witness Appliance の Management / vSAN トラフィックは vmk0 ポートを併用します。

ここでは Management_Network / Witness_Network 両方に同じポートグループを指定していますが、

vmk1 を接続する vNIC は、後で切断状態にしてしまいます。

PowerCLI> $ovf_config.vsan.witness.root.passwd.Value = "パスワード"

PowerCLI> $ovf_config.NetworkMapping.Management_Network.Value = "dvpg-vds01-vlan-0000"

PowerCLI> $ovf_config.NetworkMapping.Witness_Network.Value = "dvpg-vds01-vlan-0000"

PowerCLI> $ovf_config.DeploymentOption.Value = "tiny"

 

Import-VApp でデプロイします。オプションは下記のようにしています。

  • VM 名: hv-n23w ※Nested ESX の VM。
  • デプロイ先の ESXi: hv-i21.go-lab.jp
  • デプロイ先データストアも vSAN ※ただし今回の vSAN とは別。
  • デプロイ先のフォルダ: test

PowerCLI> Import-VApp -Name hv-n23w -OvfConfiguration $ovf_config -Source $ovf_config.Source -VMHost hv-i21.go-lab.jp -Datastore vsanDatastore-01 -StorageFormat Thin -InventoryLocation (Get-Folder -Type VM test)

 

今回は2つ目の vNIC を使用しないので、切断状態にしておきます。

PowerCLI> Get-VM hv-n23w | Get-NetworkAdapter -Name "Network adapter 2" | Set-NetworkAdapter -StartConnected:$false -Confirm:$false

 

VM を起動します。

PowerCLI> Get-VM hv-n23w | Start-VM

 

ゲスト OS の ESXi が起動するまで待ちます。

PowerCLI> Get-VM hv-n23w | Get-VMGuest | ft -AutoSize State,OSFullName,IPAddress

 

  State OSFullName      IPAddress

  ----- ----------      ---------

Running VMware ESXi 6.5 {192.168.1.42, fe80::250:56ff:fe8a:1896, 2400:4030:8c62:5400:250:56ff:fe8a:1896, fe80::250:5...

 

 

vSAN Witness Appliance のネットワーク設定。

vCenter に登録する準備として、ネットワーク設定をします。

通常は vSAN Witness Appliance の VM コンソールを開いて DCUI から設定しますが、

ここでは、前回の投稿でのスクリプトを利用して設定してみます。

PowerCLI から Nested ESXi の esxcli を実行してみる。(GuestProcessManager)

 

vCenter に接続していない場合は、あらかじめ接続した状態でスクリプトを実行します。

PowerCLI> Connect-VIServer vc-sv01.go-lab.jp -Force

PowerCLI> .\invoke_nested-esxcli.ps1 system hostname set --host hv-n23w --domain go-lab.jp -ESXiVM:hv-n23w -ESXiUser:root -ESXiPass:パスワード

PowerCLI> .\invoke_nested-esxcli.ps1 network ip interface ipv4 set --interface-name=vmk0 --type=static --ipv4=192.168.1.217 --netmask=255.255.255.0 --gateway=192.168.1.1 -ESXiVM:hv-n23w -ESXiUser:root -ESXiPass:パスワード

 

少し待つと、VMware Tools から取得した情報でも設定が反映されたことが分かります。

PowerCLI> Get-VM hv-n23w | Get-VMGuest | fl HostName,IPAddress

 

HostName  : hv-n23w.go-lab.jp

IPAddress : {192.168.1.217, fe80::250:56ff:fe8a:1896, 2400:4030:8c62:5400:250:56ff:fe8a:1896, 169.254.80.14...}

 

 

疎通確認をしておきます。

PowerCLI> Test-Connection -Quiet 192.168.1.217

True

PowerCLI> ping 192.168.1.217

 

192.168.1.217 に ping を送信しています 32 バイトのデータ:

192.168.1.217 からの応答: バイト数 =32 時間 <1ms TTL=64

192.168.1.217 からの応答: バイト数 =32 時間 <1ms TTL=64

192.168.1.217 からの応答: バイト数 =32 時間 <1ms TTL=64

192.168.1.217 からの応答: バイト数 =32 時間 <1ms TTL=64

 

192.168.1.217 の ping 統計:

    パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、

ラウンド トリップの概算時間 (ミリ秒):

    最小 = 0ms、最大 = 0ms、平均 = 0ms

PowerCLI>

 

いったん、PowerCLI をデプロイ先の vCenter から切断します。

PowerCLI> Disconnect-VIServer -Confirm:$false

 

vSAN Witness Appliance の vCenter 登録。

vSAN Witness Appliance を登録します。

 

vSAN クラスタをセットアップする予定の vCenter に接続します。

PowerCLI> Connect-VIServer vc-sv02.go-lab.jp -Force

 

vSAN Witness Appliance は、通常の ESXi と同様に vCenter に登録します。

vCenter インベントリのデータセンタ(dc02)は既に作成してあります。

ESXi の root ユーザ / デプロイ時に指定したパスワード でログインします。

PowerCLI> Get-Datacenter -Name dc02 | Add-VMHost -Name hv-n23w.go-lab.jp -Force

 

検証しやすいように、SSH を有効化 / サービス起動してしまいます。

PowerCLI> $hv = Get-VMHost hv-n23w.go-lab.jp

PowerCLI> $hv | Get-VMHostService | where {$_.key -eq "TSM-SSH"} | Set-VMHostService -Policy On -Confirm:$false

PowerCLI> $hv | Get-VMHostService | where {$_.key -eq "TSM-SSH"} | Start-VMHostService

 

DNS Server のアドレスを設定しておきます。

ここでは 192.168.1.254, 192.168.1.253 の 2台を参照するように設定しています。

PowerCLI> $hv | Get-VMHostNetwork | Set-VMHostNetwork -DnsAddress 192.168.1.254,192.168.1.253

 

vmk0 の vSAN タグを有効にしておきます。

PowerCLI> Get-VMHost hv-n23w.go-lab.jp | Get-VMHostNetworkAdapter -Name vmk0 | Set-VMHostNetworkAdapter -VsanTrafficEnabled:$true -Confirm:$false

 

vmk1 の IP アドレス、vSAN タグを無効化しておきます。

PowerCLI> Get-VMHost hv-n23w.go-lab.jp | Get-VMHostNetworkAdapter -Name vmk1 | Set-VMHostNetworkAdapter -IP 0.0.0.0 -SubnetMask 255.255.255.255 -VsanTrafficEnabled:$false -Confirm:$false

 

VMkernel ポートが設定変更されました。

PowerCLI> Get-VMHost hv-n23w.go-lab.jp | Get-VMHostNetworkAdapter -VMKernel | ft -AutoSize Name,PortGroupName,VsanTrafficEnabled,IP,SubnetMask

 

Name PortGroupName      VsanTrafficEnabled IP            SubnetMask

---- -------------      ------------------ --            ----------

vmk0 Management Network               True 192.168.1.217 255.255.255.0

vmk1 witnessPg                       False

 

 

このあと vSAN クラスタをセットアップする際に、ここまでセットアップしてきた

vSAN Witness Appliance を vSAN 監視ホストとして指定します。

vSAN クラスタの設定でも PowerCLI を利用することができます。

PowerCLI で vSAN セットアップをためしてみる。(2 Node 版)

 

そして工夫次第で vSAN Witness Appliance ~ vSAN セットアップまで

PowerCLI スクリプトで自動化できたりします。

 

以上、PowerCLI で vSAN Witness Appliance をセットアップしてみる話でした。