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でも設定が有効になったことが確認できます。
【参考情報】
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の詳細な設定を変更してみる話でした。