VMware PowerCli コマンド 複数の仮想マシンの CPUコア、メモリ ハードウェアの拡張する方法

VMware PowerCli コマンド 複数の仮想マシンの CPUコア、メモリ ハードウェアの拡張する方法に関する情報です。

 

海外のサイトに参考になる情報があります。

 

先日の夜、追加の vCPU とメモリを使用して 22 台の VM をアップグレードするタスクがありました。また、これを完了するまでに 60 分のメンテナンス期間がありました。したがって、これを複数回行うつもりはなかったので、このプロセスを処理する単純な PowerCli スクリプトを作成しました。


$servers = "VMServer01","VMServer02","VMServer03","VMServer04","VMServer05"
 
foreach ($server in $servers){
Shutdown-VMGuest $server -confirm:$false
Do {
sleep -Seconds 5
$Status = (Get-vm $server).powerstate
If($status -eq "PoweredOff")
{"$Server has been powered off adding hardware"}
else{
"$server is still powered on looping until off"
}
}
While ($Status -eq "PoweredOn")
 
$TotalvCPU=6
$Cores=1
$VMname = get-vm $server
$spec=New-Object –Type VMware.Vim.VirtualMAchineConfigSpec –Property @{“NumCoresPerSocket” = $cores}
($VMname).ExtensionData.ReconfigVM_Task($spec)
 
$VMname | Set-VM -MemoryGB 28 -NumCpu $TotalvCPU -Confirm:$false
 
Sleep -Seconds 5
Start-VM $server -Confirm:$false
}

 

 

したがって、このスクリプトは、作業が実行されるサーバーを特定することから始まります。次に、 Shutdown-VMGuestを使用して VM の電源をオフにします。VM がオフになっている間にループを実行するメカニズムを組み込みました。VM の電源がオフになると、スクリプトは CPU とメモリのアップグレードを実行します。その後、サーバーが起動します。

スクリプトが完了したら、$servers変数を使用して、現在の vCPU とメモリが割り当てられた VM のリストを取得しました。

1
Get-vm $servers
これにより、次のような表示が生成されます。

 

また、CPUコアはワンライナーで設定ができるようです。

 

この VirtualMAchineConfigSpec の使用法は多くの検索結果に表示されるため、最近では Set-VM に単純な -CoresPerSocket パラメーターが追加されたことを付け加えておきたいと思います。

例として、次のワンライナーは機能するようになりました。

Get-VM -名前 xxx | Set-VM -NumCpu 2 -CoresPerSocket 2

 

メモリも引数にすることで、同時に設定が可能です。

 

Get-VM xxx | Set-VM -NumCpu 2 -CoresPerSocket 2 -MemoryGB 28