概要
前回 InstantClone を実行し高速に VM をクローンする方法を紹介しました
InstantClone は内部的には大元の VM の vmdk の差分分だけを管理しており元の VM の変更の影響を受けます
もし InstantClone した VM を大元とは別で管理したい場合には PromoteDisks という API をコールすることでクローン VM を昇格させることができます
今回は PromoteDisks API を InstantClone した VM に適用してみました
環境
- VCSA 6.7.0.20000 build 10244745
- ESXi 6.7.0 Update 1 (Build 10302608)
- Ubuntu 18.04 LTS (クローン元)
事前準備
前回の記事を参考に 1 台 InstantClone VM を作成しておいてください
またファイルストアを確認すると vmdk が元の VM に比べて差分しか存在しないことを確認します
また重要なポイントとして InstantClone VM は事前に停止しておいてください
起動した状態だと PromoteDisks API がエラーを返してしまいます
mob からコールする
PromoteDisks API を一番てっとり早くコールできるのは mob なので今回は mob を使います
作成した InstantClone VM を探しアクセスしましょう
そしてメソッドの一覧から PrometeDisks_Task
を探します
クリックすると API をコールするために別ウィンドウが開きます
パラメータは以下のように入力します
- unlink・・・true
- disks・・・
<disks>
<key>2000</key>
<capacityInKB>31457280</capacityInKB>
</disks>
ポイントは unlink を true にする点です
こうすることで大元のディスクとの紐付きを解消し VM が独立することができます
key
と capacityInKB
は大元の VM に接続されている VirtualDisk の数分用意、引用してください
今回はディスクは 1 つしかないので 1 つ分のディスク情報を記載します
結果を確認する
API を実行するとタスクにディスクの昇格の進捗ステータスが表示されます
完了後に再度 InstantClone VM のディスクストアを確認しましょう
先程よりも大幅に vmdk のサイズが大きくなっていると思います
このサイズはクローン元の VM の vmdk サイズと同じサイズになっているはずです
最後に
InstantClone した VM に対して PromoteDisks を実行することで VM を昇格させる方法を紹介しました
ポイントは昇格対象のクローン VM が停止していなければいけない点かなと思います
また昇格するディスク分パラメータを付与する点もポイントかなと思います
本文内では触れなかったのですがクローン元の VM にスナップショットが存在する場合も PromoteDisks できない可能性があります
試している最中に API が失敗するケースがあり調べてみるとクローン元の VM にスナップショットのゴミデータ (xxx-0001.vmdk や xxx-0002.vmdk) がありこれを削除してみたところうまく PromoteDisks できるケースがありました
なので失敗する場合はスナップショットデータを削除してみると良いかもしれません
0 件のコメント:
コメントを投稿