Quantcast
Viewing all articles
Browse latest Browse all 3135

vSAN の仮想マシン ストレージ ポリシー を PowerCLI で変更してみる。

vSAN 環境では、VM の容量確保や冗長性の設定のために

仮想マシン ストレージ ポリシーを利用します。

たとえば仮想マシン ストレージ ポリシーを 仮想ディスク(VMDK)に適用するだけで

RAID1 から RAID5 に変更することができます。

しかし、対象 VM が多いと GUI である vSphere Web Client で適用するのが大変なことがあるので、

PowerCLI で仮想マシン ストレージ ポリシー を変更してみました。

 

vCenter には、Connect-VIServer で接続ずみです。

今回の vCenter のバージョンです。

PowerCLI> $global:DefaultVIServer | select Version,Build

 

Version Build

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

6.5.0   5973321

 

PowerCLI のバージョンは 6.5.1 を使用しています。

仮想マシン ストレージ ポリシーにかかわるコマンドレットは、

SPBM(Storage Policy Based Management)といった名前がついています。

PowerCLI> Get-Module VMware.VimAutomation.Storage | select Name,Version

 

Name                         Version

----                         -------

VMware.VimAutomation.Storage 6.5.1.5374001

 

 

PowerCLI> gcm *spbm* | sort Noun,Varb | select Module,Name

 

Module                       Name

------                       ----

VMware.VimAutomation.Storage Get-SpbmCapability

VMware.VimAutomation.Storage Get-SpbmCompatibleStorage

VMware.VimAutomation.Storage Set-SpbmEntityConfiguration

VMware.VimAutomation.Storage Get-SpbmEntityConfiguration

VMware.VimAutomation.Storage Get-SpbmFaultDomain

VMware.VimAutomation.Storage Get-SpbmPointInTimeReplica

VMware.VimAutomation.Storage Start-SpbmReplicationFailover

VMware.VimAutomation.Storage Sync-SpbmReplicationGroup

VMware.VimAutomation.Storage Get-SpbmReplicationGroup

VMware.VimAutomation.Storage Get-SpbmReplicationPair

VMware.VimAutomation.Storage Start-SpbmReplicationPrepareFailover

VMware.VimAutomation.Storage Start-SpbmReplicationPromote

VMware.VimAutomation.Storage Start-SpbmReplicationReverse

VMware.VimAutomation.Storage Start-SpbmReplicationTestFailover

VMware.VimAutomation.Storage Stop-SpbmReplicationTestFailover

VMware.VimAutomation.Storage New-SpbmRule

VMware.VimAutomation.Storage New-SpbmRuleSet

VMware.VimAutomation.Storage Import-SpbmStoragePolicy

VMware.VimAutomation.Storage Get-SpbmStoragePolicy

VMware.VimAutomation.Storage Export-SpbmStoragePolicy

VMware.VimAutomation.Storage Remove-SpbmStoragePolicy

VMware.VimAutomation.Storage New-SpbmStoragePolicy

VMware.VimAutomation.Storage Set-SpbmStoragePolicy

 

この環境では、下記の仮想マシンストレージポリシーを利用しています。

PowerCLI> Get-SpbmStoragePolicy | select Name,@{N="VMs";E={($_|Get-VM).Count}} | where {$_.VMs -gt 0}

 

Name                        VMs

----                        ---

vSAN Default Storage Policy  15

vsan-policy-raid5            94

 

vSAN Default Storage Policy というポリシーは、下記のようなルールが設定されています。

(このポリシーはデフォルトで作成されるものですが、いくつか設定変更しているかもしれません)

PowerCLI> Get-SpbmStoragePolicy -Name "vSAN Default Storage Policy" | select -ExpandProperty AnyOfRuleSets | select -ExpandProperty AllOfRules | ft -AutoSize Capability,Value

 

Capability                  Value

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

VSAN.hostFailuresToTolerate     1

VSAN.stripeWidth                1

VSAN.forceProvisioning      False

VSAN.proportionalCapacity       0

VSAN.cacheReservation           0

 

vsan-policy-raid5 ポリシーは、とりあえず RAID5 にしようと下記のようなルールで作成しました。

PowerCLI> Get-SpbmStoragePolicy -Name "vsan-policy-raid5" | select -ExpandProperty AnyOfRuleSets | select -ExpandProperty AllOfRules | ft -AutoSize Capability,Value

 

Capability                Value

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

VSAN.replicaPreference    RAID-5/6 (Erasure Coding) - Capacity

VSAN.proportionalCapacity 0

 

今回は、まだ vSAN Default Storage Policy ポリシーが適用されている VM に、

vsan-policy-raid5 ポリシーを適用したいと思います。

 

vSAN Default Storage Policy を利用している VM は、下記のように確認できます。

VM は 15 台ありますが、とりあえず 5台だけ表示しています。

ついでに、利用しているストレージ容量も表示してみました。

(今回の例では、容量の少ない VM は 0 になっています。)

PowerCLI> (Get-SpbmStoragePolicy "vSAN Default Storage Policy" | Get-VM).Count

15

PowerCLI> Get-SpbmStoragePolicy "vSAN Default Storage Policy" | Get-VM | select Name,{[int]$_.UsedSpaceGB} | sort Name | select -First 5

 

Name               [int]$_.UsedSpaceGB

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

ansible01                           11

ha-vm01                              0

hv-n00                               0

hv-n06-w                             2

infra-dns01-master                  20

 

infra-dns01-master という VM のポリシーを vsan-policy-raid5 に変更してみます。

PowerCLI> Get-VM infra-dns01-master | Set-SpbmEntityConfiguration -StoragePolicy "vsan-policy-raid5"

 

Entity                         Storage Policy                 Status          Time Of Check

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

infra-dns01-master             vsan-policy-raid5              compliant       2018/01/20 14:59:44

 

上記だと、仮想マシン ホームのポリシーだけが変更されます。

(手軽に確認しやすいため、対象 VM の「仮想マシン ストレージ ポリシーの編集」を開いています)

Image may be NSFW.
Clik here to view.
vm-st-policy-01.png

 

下記のように、仮想ディスクもポリシーを変更します。

PowerCLI> Get-VM infra-dns01-master | Get-HardDisk | Set-SpbmEntityConfiguration -StoragePolicy "vsan-policy-raid5"

 

Entity                         Storage Policy                 Status          Time Of Check

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

Hard disk 1                    vsan-policy-raid5              compliant       2018/01/20 15:10:50

 

仮想マシン ストレージ ポリシーは、下記のように確認することができます。

PowerCLI> Get-VM infra-dns01-master | Get-SpbmEntityConfiguration | ft -AutoSize

 

Entity             Storage Policy    Status    Time Of Check

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

infra-dns01-master vsan-policy-raid5 compliant 2018/01/20 14:59:44

 

PowerCLI> Get-VM infra-dns01-master | Get-HardDisk | Get-SpbmEntityConfiguration | ft -AutoSize

 

 

Entity      Storage Policy    Status    Time Of Check

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

Hard disk 1 vsan-policy-raid5 compliant 2018/01/20 15:10:50

 

 

vSphere Web Client でも、仮想マシンホームだけでなく仮想ディスクのポリシーが変更されています。

Image may be NSFW.
Clik here to view.
vm-st-policy-02.png

 

ただし、データ配置もポリシーに合わせて変更されるため(今回は RAID0 → RAID5)

まとめてポリシー変更する場合は容量やパフォーマンスについて要注意かもしれません。

 

以上、PowerCLI で仮想マシン ストレージ ポリシーを変更してみる話でした。


Viewing all articles
Browse latest Browse all 3135

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>