VMware Global Community
ENaka32
Contributor
Contributor

PowerCLIを使用して、個々のディスクを別々のデータストアに移行する方法

PowerCLIを使用して仮想マシンの管理を行っております。現在、Move-VMコマンドを用いてVMのそれぞれのディスクを異なるデータストアに移行しようとしています。

下記のスクリプトで、"Hard disk 1"を"Datastore1"に、"Hard disk 2"を"Datastore2"に移行しようとしています。

---------------------------------------------------------------------------------------------------------------
$VM = Get-VM -Name $<仮想マシン名>

$Disk = Get-HardDisk -VM $VM | Where-Object {$_.Name -eq $<ハードディスク名>}

$DS = Get-Datastore -Name $<移行先データストア>

#vMotionの実行
Move-HardDisk -HardDisk $Disk -Datastore $DS

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

この方法で、ハードディスク1はデータストア1に、ハードディスク2はデータストア2に移行できました。

しかし、元のデータストア0に構成ファイルが残ってしまいました。

 

下記ご存知でしたら回答願います。

  1. vCenter上で構成ファイルのみをStorage vMotionすることは可能でしたが、PowerCLIを使用してスクリプト上でできないか。
  2. 1ができない場合、構成ファイルごとStorage vMotionする場合はMove-VMコマンドを使用し、一度仮想マシンのファイル全体を新しいデータストアに移行する。次に、Move-HardDiskコマンドを使ってハードディスクごとにデータストアを振り分けていく。この方法でやるしかないか。
0 Kudos
4 Replies
kawaman
Leadership
Leadership

今々手元で試せる複数のデータストアが無いため情報のみの共有ですが、VM の構成ファイル (VM Home) 関連を指定した移動は Relocate VM 系の操作で対応が出来た覚えがあります。

質問 1 に関しては以下で出来ないでしょうか?

API リファレンスだと以下に例があり、

だいぶ古いスレッドですが、PowerCLI のディスカッションに以下で LucD さんが助言しています。

 

質問 2 に関しては、記載いただいた手順が二段構えでデータ移動が走りますが一番楽にできるかと思います。

上記の Relocate VM と同じで用意された PowerCLI の cmdlets だけでは出来なかった記憶です。

nkaneda1
Enthusiast
Enthusiast

1 については、vSphere Clientでコードキャプチャを起動してそれを参考にするのはいかがでしょうか?

kawaman
Leadership
Leadership

コードキャプチャも有用と言えば有用なのですが、
PowerCLI の cmdlet で返さずにオブジェクトとプロパティを直接操作するコードが出力されるので
何と言うか、人の目に優しくないのが弱点なんですよね… 🤔

裏側の挙動を調べるって観点だと有りだと思います。

ENaka32
Contributor
Contributor

ご回答ありがとうございました。

短期間で開発しなければならず、理解と説明がしやすい2を選択し、検証うまくいきました。

今後も同じような作業をするので、一旦一区切りついたら1のほう検討してみます。