Quantcast
Channel: VMware Communities : Blog List - All Communities
Viewing all articles
Browse latest Browse all 3135

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

$
0
0

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 の「仮想マシン ストレージ ポリシーの編集」を開いています)

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 でも、仮想マシンホームだけでなく仮想ディスクのポリシーが変更されています。

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>