VMの細かな設定をPowerCLIで変更してみます。

今回は vSphere 5.1 とPowerCLI 5.1 で実行していますが、

以前のリリースでも同様の設定が可能です。

 

たとえば、VMのリソース設定で
「すべてのゲストメモリを予約(すべてロック)」 というものがあります。

(以下、全メモリ予約)

この設定を有効化すると、VMが必要としたときに
必ず設定値までのメモリを割り当てられることが保証されます。

ただし、このような詳細な設定は PowerCLIのSet-VM では設定できません。


Set-VMではできない設定は、下記のように変更できることがあります。

PowerCLI C:\> $spec = New-Object VMware.Vim.VirtualMachineConfigSpec
PowerCLI C:\> $spec.MemoryReservationLockedToMax = $true
PowerCLI C:\> $vm = Get-VM vm01 | Get-View
PowerCLI C:\> $vm.ReconfigVM($spec)
★vm01 は仮想マシン名です。

 

コマンドの説明

 

1. 設定前の状態確認

 

まず、最初に vm01(今回の設定対象VM) は
全メモリ予約 が無効な状態です。

PowerCLI C:\> (Get-VM vm01 | Get-View).Config.MemoryReservationLockedToMax
False  ★デフォルトは無効(False)。

 

2. VMの設定変更時に指定する「設定情報のオブジェクト」を作成します。

PowerCLI C:\> $spec = New-Object VMware.Vim.VirtualMachineConfigSpec


3. 全メモリ予約 を有効にする設定を含めます。

 

「設定情報のオブジェクト」に対して、全メモリ予約 を有効にする設定を追加します。
この時点ではまだ vm01 には反映されません。

PowerCLI C:\> $spec.MemoryReservationLockedToMax = $true
PowerCLI C:\> $spec.MemoryReservationLockedToMax
True  ★設定情報オブジェクトでは有効化。vm01に未反映。

 

4. 設定情報オブジェクトをもとに、VMを再構成します。

 

ここで「3」で作成した 設定情報オブジェクト($spec) を指定して、

VMを再構成(ReconfigVM)します。

PowerCLI C:\> (Get-VM vm01 | Get-View).ReconfigVM($spec)

 

5. VMの設定確認

 

VMのメモリ全予約設定が有効(True)になりました。

PowerCLI C:\> (Get-VM vm01 | Get-View).Config.MemoryReservationLockedToMax
True  ★vm01に全メモリ予約の有効化設定が反映された。

 

vSphere Clientでも設定が有効になったことが確認できます。

MemoryReservationLockedToMax.png

 

【参考情報】

VirtualMachineConfigSpecで設定できる項目は下記です。

PowerCLI C:\> $spec = New-Object VMware.Vim.VirtualMachineConfigSpec
PowerCLI C:\> $spec   ★オブジェクトの内容を表示する。


ChangeVersion                :
Name                         :
Version                      :
Uuid                         :
InstanceUuid                 :
NpivNodeWorldWideName        :
NpivPortWorldWideName        :
NpivWorldWideNameType        :
NpivDesiredNodeWwns          :
NpivDesiredPortWwns          :
NpivTemporaryDisabled        :
NpivOnNonRdmDisks            :
NpivWorldWideNameOp          :
LocationId                   :
GuestId                      :
AlternateGuestName           :
Annotation                   :
Files                        :
Tools                        :
Flags                        :
ConsolePreferences           :
PowerOpInfo                  :
NumCPUs                      :
NumCoresPerSocket            :
MemoryMB                     :
MemoryHotAddEnabled          :
CpuHotAddEnabled             :
CpuHotRemoveEnabled          :
VirtualICH7MPresent          :
VirtualSMCPresent            :
DeviceChange                 :
CpuAllocation                :
MemoryAllocation             :
LatencySensitivity           :
CpuAffinity                  :
MemoryAffinity               :
NetworkShaper                :
CpuFeatureMask               :
ExtraConfig                  :
SwapPlacement                :
BootOptions                  :
VAppConfig                   :
FtInfo                       :
VAppConfigRemoved            :
VAssertsEnabled              :
ChangeTrackingEnabled        :
Firmware                     :
MaxMksConnections            :
GuestAutoLockEnabled         :
ManagedBy                    :
MemoryReservationLockedToMax :
NestedHVEnabled              :
VPMCEnabled                  :
ScheduledHardwareUpgradeInfo :
DynamicType                  :
DynamicProperty              :

 

以上、PowerCLIでVMの詳細な設定を変更してみる話でした。