11. IBM Cloud: VMware as a Service（VMWaaS) - VDC間のVM/vApp Migration

# 1. はじめに

[IBM Cloud: VMware as a Service（VMWaaS) - Data Center Groupの構成](https://qiita.com/testnin2/items/f940550d7564db526531) にて、すでに`mt-vdc01(DAL10)`と`mt-vdc02(DAL12)`の2つに跨ったrouted networkが存在しています。今回は、`mt-vdc01(DAL10)`と`mt-vdc02(DAL12)`の間で、VM/vAppをMigrationしてみたいと思います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/6ad671fd-2ff9-8835-b29b-ae28dc954ad3.png)


過去の記事はこちら。

- [01. IBM Cloud: VMware as a Service（VMWaaS)の概要](https://qiita.com/testnin2/items/d39ba856f70fc14ea719) 
- [02. IBM Cloud: VMware as a Service（VMWaaS) - VDCの注文](https://qiita.com/testnin2/items/a3630d5a532a6ce48720)
- [03. IBM Cloud: VMware as a Service（VMWaaS) - VDCの追加注文](https://qiita.com/testnin2/items/666a8a03db85f983f56a) 
- [04. IBM Cloud: VMware as a Service（VMWaaS) - 外部接続のためのネットワークとNAT/Firewallを構成する](https://qiita.com/testnin2/items/3575b27c2ec2b6242ee6) 
- [05. IBM Cloud: VMware as a Service（VMWaaS) - RHELをプロビジョニングして疎通確認を行う](https://qiita.com/testnin2/items/56901ef332ee060fcf2f) 
- [06. IBM Cloud: VMware as a Service（VMWaaS) - 検証: IBM Cloud private networkへの通信におけるSNATの必要性](https://qiita.com/testnin2/items/5add312256d1e264e31f)
- [07. IBM Cloud: VMware as a Service（VMWaaS) - 検証: isolated networkとの通信](https://qiita.com/testnin2/items/9bc1b57b9636071b7239)
- [08. IBM Cloud: VMware as a Service（VMWaaS) - 検証: routed network間の通信](https://qiita.com/testnin2/items/fa9426df262368ddc2ef) 
- [09. IBM Cloud: VMware as a Service（VMWaaS) - Data Center Groupの構成](https://qiita.com/testnin2/items/f940550d7564db526531) 
- [10. IBM Cloud: VMware as a Service（VMWaaS) - Distributed Firewallの構成](https://qiita.com/testnin2/items/26dd06d28effbd83ff9e) 
- [11. IBM Cloud: VMware as a Service（VMWaaS) - VDC間のVM/vApp Migration](https://qiita.com/testnin2/items/381c5e6db4fdd7ed64d6)
- [12. IBM Cloud: VMware as a Service（VMWaaS) - VMWaaS APIの実行例](https://qiita.com/testnin2/items/3e0e86a25bfd06a165bf)
- [13. IBM Cloud: VMware as a Service（VMWaaS) - VMware Cloud Director OpenAPIの実行例](https://qiita.com/testnin2/items/420e55a06255d626a471) 
- [14. IBM Cloud: VMware as a Service（VMWaaS) - 検証: VIP切り替えによる高可用性構成の確認（手動切替）](https://qiita.com/testnin2/items/fead2339a999242ecae9) 
- [15. IBM Cloud: VMware as a Service（VMWaaS) - 検証: VIP切り替えによる高可用性構成の確認（keepalived）](https://qiita.com/testnin2/items/2a5c9660ccfab74faa49) 
- [16. IBM Cloud: VMware as a Service（VMWaaS) - Transit Gateway接続](https://qiita.com/testnin2/items/1ec6223b6713eb58e156) 
- [17. IBM Cloud: VMware as a Service（VMWaaS) - Veeam Backup and Replication service連携](https://qiita.com/testnin2/items/69fd29db9f8cc313e353) 

# 2. Virtual Application(vApp)とは

VM Migrationをする前には、`Virtual Application（vApp)`という概念を理解しておく必要があります。

今まで単体のVM(standalone VM)しか取り扱ってきませんでしたが、VMware Cloud Directorには、複数のVMをまとめて管理するvAppという考え方があります。例えばあるサービスを提供する際には、単体のVMではなく、Web-VM/AP-VM/DB-VMなど複数のVMから構成されていることがあります。vAppでは、このような複数のVMをまとめて管理できる機能を提供しています。vAppを利用することで、例えば、

- vApp内のVMをまとめて起動・停止ができる。VM間の起動順序も指定可能。
- vApp内のVMをまとめて移動できる。
- vApp内のVMをまとめてsnapshot取得できる。
- vApp内のNW図を表示することができる。
- VMがVMware Cloud Director内に存在するどのNWにも接続できると、誤ったNWを選択してしまう可能性がある。vAppを使うことで、、まず最初にvApp内のVMが接続して良いNWをvAppに対して割り当て、その上でvAppに所属するVMがそこからNWから選択する、という段階を踏むことができるため、より構成上のミスが生まれにくくなる。

VDC間のLive Migrationをする際には、vAppへの登録が必要になります。なお、結論から書いておくと、

- standalone VM（どのvAppにも所属していない状態のVM)のまま、別VDCへのCold Migration/Live Migrationは不可。
- standalone VM（どのvAppにも所属していない状態のVM)をvApp配下に移動する際に、別VDCへのCold Migration/Live Migrationが可能。
- vApp配下のVMを、別のvApp配下に移動する際は、別VDCへのCold Migration/Live Migrationが可能。
- vAppを丸ごと別VDCに移動する際には、Cold Migration(vAppの停止）が必要。

# 3. vAppを作成する。

vAppの作成して、VMを登録する方法は色々なやり方がありますが、今回は上記のいろいろなパターンの検証をやりたいので、それぞれのVDCにVMが含まれていないvAppを作成したいと思います。

1. `NEW VAPP`を押下。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/e9fa3026-1bb9-b2d8-2b9c-97c18befe0c2.png)
2. `mt-vdc01`を選択。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/3ddfc806-cc98-c504-e2fa-ed88faaadef9.png)
3. vAppのNameを入力。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/f58ccc46-5e5f-4f37-8758-935024796728.png)
4. vAppが作成された。DETAILSを押下。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/e3076011-6a06-a284-4f10-0522ab953bca.png)
5. Networksに移動し、`NEW`を押下。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/478ade2b-3634-8b03-fa84-a21ffff0ec15.png)
6. Directを選択し、（今回Live Migrationを実行しようと考えているjump serverが稼働している）`nw1-routed-vdc01`を選択。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/e8f422ce-a3a1-09e3-616b-f9643be244fc.png)
7. vAppに`nw1-routed-vdc01`が追加された。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/7b8408a1-e6ad-51e8-2235-101e32f1e1a4.png)

同様に`mt-vdc02`にもvAppを作成します。

:::note
ちなみに、VMやvAppでは、![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/bbf3a7e7-3593-4145-ceee-06721191b8c6.png)というアイコンをクリックすると、データセンターの場所がわかります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/ed51a4b1-cf0c-92ef-b806-fbdfa3d138b9.png)


また、vAppではビューをリスト形式に切り替えた方がNW情報なども一望できるので、見やすいかもしれません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/b1278a26-8f6a-0135-5e0f-e7a614a1ecf9.png)

:::

この一連の手順で作成されたvAppは以下のとおりです。

|vApp name  | network | VDC |VM|
|:-|:-|:-|:-|
| vapp-test1  | nw1-routed-vdc01  | mt-vdc01(DAL10)  |-|
| vapp-test2  | nw1-routed-vdc01  | mt-vdc02(DAL12)   |-|

# 4. VDC間 Live Migrationの実施(standalone VMからvAppに移動)

今回は、nw1-routed-vdc01に存在するjumpserverをVDC間でLive Migrationしてみたいと思います。

- Standalone　VMの`ACTIONS`から`Move`を選択。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/056d4927-17c8-4dec-a386-780c5afaf5f6.png)


- 宛先として`mt-vdc02(DAL12)`に存在するvAppを選択。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/2d3e769b-2950-4966-f4e2-cdfe0f644eea.png)

- 構成情報を指定。
    - Name/Computer NameはVMでの情報を踏襲しているが、Target VM Storage Policyは指定する必要がある。
    - NICの情報を設定。`Network`はvAppに登録したNWからしか選択できないようになっている。今回は、同一NW上での移動をしたいので、`nw1-routed-vdc01`を指定し、IPアドレスもVMに現在割り当てられているものと同じIPアドレスを指定する。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/fd5d2de5-99cb-1351-f386-ecfd8eecac58.png)
- `DONE`を押下し、Migrationを実行する。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/9d50fa22-f905-06c7-ce99-bb81dd0794c1.png)


mt-vdc01(DAL10)に存在する別のVM(192.168.101.2)にpingを打ちながら実行すると、このVMへの接続が停止したり、pingが途切れることなく、あるタイミングでlatencyが大きくなり、mt-vdc02(DAL10)からmt-vdc01(DAL12)に移動したことがわかります。


```
[root@jumpserver ~]# ping 192.168.101.2
PING 192.168.101.2 (192.168.101.2) 56(84) bytes of data.
（途中略）
64 bytes from 192.168.101.2: icmp_seq=128 ttl=63 time=0.246 ms
64 bytes from 192.168.101.2: icmp_seq=129 ttl=63 time=0.229 ms
64 bytes from 192.168.101.2: icmp_seq=130 ttl=63 time=0.254 ms
64 bytes from 192.168.101.2: icmp_seq=131 ttl=63 time=0.259 ms
64 bytes from 192.168.101.2: icmp_seq=132 ttl=63 time=0.288 ms
64 bytes from 192.168.101.2: icmp_seq=133 ttl=63 time=0.243 ms
64 bytes from 192.168.101.2: icmp_seq=134 ttl=63 time=0.242 ms
64 bytes from 192.168.101.2: icmp_seq=135 ttl=63 time=0.278 ms
64 bytes from 192.168.101.2: icmp_seq=136 ttl=63 time=0.269 ms
64 bytes from 192.168.101.2: icmp_seq=137 ttl=63 time=0.255 ms
64 bytes from 192.168.101.2: icmp_seq=138 ttl=63 time=0.265 ms
64 bytes from 192.168.101.2: icmp_seq=139 ttl=63 time=0.277 ms
64 bytes from 192.168.101.2: icmp_seq=140 ttl=63 time=0.244 ms
64 bytes from 192.168.101.2: icmp_seq=141 ttl=63 time=0.231 ms
64 bytes from 192.168.101.2: icmp_seq=142 ttl=63 time=0.234 ms
64 bytes from 192.168.101.2: icmp_seq=143 ttl=63 time=0.256 ms
64 bytes from 192.168.101.2: icmp_seq=144 ttl=63 time=0.213 ms
64 bytes from 192.168.101.2: icmp_seq=145 ttl=63 time=0.921 ms
64 bytes from 192.168.101.2: icmp_seq=146 ttl=63 time=0.368 ms
64 bytes from 192.168.101.2: icmp_seq=147 ttl=63 time=0.321 ms
64 bytes from 192.168.101.2: icmp_seq=149 ttl=63 time=1.94 ms
64 bytes from 192.168.101.2: icmp_seq=150 ttl=63 time=1.86 ms
64 bytes from 192.168.101.2: icmp_seq=151 ttl=63 time=1.84 ms
64 bytes from 192.168.101.2: icmp_seq=152 ttl=63 time=1.81 ms
64 bytes from 192.168.101.2: icmp_seq=153 ttl=63 time=1.89 ms
64 bytes from 192.168.101.2: icmp_seq=154 ttl=63 time=1.83 ms
64 bytes from 192.168.101.2: icmp_seq=155 ttl=63 time=1.84 ms
64 bytes from 192.168.101.2: icmp_seq=156 ttl=63 time=1.81 ms
64 bytes from 192.168.101.2: icmp_seq=157 ttl=63 time=1.80 ms
64 bytes from 192.168.101.2: icmp_seq=158 ttl=63 time=1.77 ms
64 bytes from 192.168.101.2: icmp_seq=159 ttl=63 time=1.79 ms
64 bytes from 192.168.101.2: icmp_seq=160 ttl=63 time=1.85 ms
64 bytes from 192.168.101.2: icmp_seq=161 ttl=63 time=1.88 ms
64 bytes from 192.168.101.2: icmp_seq=162 ttl=63 time=1.79 ms
64 bytes from 192.168.101.2: icmp_seq=163 ttl=63 time=1.79 ms
64 bytes from 192.168.101.2: icmp_seq=164 ttl=63 time=1.84 ms
64 bytes from 192.168.101.2: icmp_seq=165 ttl=63 time=1.90 ms
64 bytes from 192.168.101.2: icmp_seq=166 ttl=63 time=1.80 ms
64 bytes from 192.168.101.2: icmp_seq=167 ttl=63 time=1.78 ms
64 bytes from 192.168.101.2: icmp_seq=168 ttl=63 time=1.81 ms
64 bytes from 192.168.101.2: icmp_seq=169 ttl=63 time=1.77 ms
64 bytes from 192.168.101.2: icmp_seq=170 ttl=63 time=1.79 ms
```

また、以下のように、確かに`mt-vdc02(DAL12)`に移動したこともわかります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/a72911a1-70ea-0233-09b5-e5bfbd48bfa6.png)


# 5. VDC間 Live Migrationの実施(vApp間でVMが移動)

先ほどLive Migrationを実施したVMは、`mt-vdc02(DAL12)`に存在する`vapp-test2`に所属しています。今度は、このVMを`mt-vdc01(DAL10)`に存在する`vapp-test1`にLive Migrationします。

- `ACTIONS`から`Move`を選択。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/5eea0d93-5e4a-2dbe-6764-f8caf34ddac9.png)
- 宛先として`mt-vdc01(DAL10)`に存在するvAppを選択。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/2f1d1cc4-ffae-8981-ebdf-7de81b53746a.png)
- 構成情報を指定。
    - Name/Computer NameはVMでの情報を踏襲しているが、Target VM Storage Policyは指定する必要がある。
    - NICの情報を設定。`Network`はvAppに登録したNWからしか選択できないようになっている。今回は、同一NW上での移動をしたいので、`nw1-routed-vdc01`を指定し、IPアドレスもVMに現在割り当てられているものと同じIPアドレスを指定する。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/3a189f59-fa3b-0adf-c030-eaf863f8d8ea.png)
- `DONE`を押下し、Migrationを実行する。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/7f99ceac-5dc9-7579-8dc4-3a41eb86f5b1.png)



mt-vdc01(DAL10)に存在する別のVM(192.168.101.2)にpingを打ちながら実行すると、このVMへの接続が停止したり、pingが途切れることなく、あるタイミングでlatencyが小さくなり、mt-vdc02(DAL12)からmt-vdc01(DAL10)に移動したことがわかります。


```
[root@jumpserver ~]# ping 192.168.101.2
PING 192.168.101.2 (192.168.101.2) 56(84) bytes of data.
（途中略）
64 bytes from 192.168.101.2: icmp_seq=37 ttl=63 time=1.84 ms
64 bytes from 192.168.101.2: icmp_seq=38 ttl=63 time=1.83 ms
64 bytes from 192.168.101.2: icmp_seq=39 ttl=63 time=1.84 ms
64 bytes from 192.168.101.2: icmp_seq=40 ttl=63 time=1.81 ms
64 bytes from 192.168.101.2: icmp_seq=41 ttl=63 time=1.83 ms
64 bytes from 192.168.101.2: icmp_seq=42 ttl=63 time=1.84 ms
64 bytes from 192.168.101.2: icmp_seq=43 ttl=63 time=1.89 ms
64 bytes from 192.168.101.2: icmp_seq=44 ttl=63 time=1.83 ms
64 bytes from 192.168.101.2: icmp_seq=45 ttl=63 time=1.89 ms
64 bytes from 192.168.101.2: icmp_seq=46 ttl=63 time=1.80 ms
64 bytes from 192.168.101.2: icmp_seq=47 ttl=63 time=1.79 ms
64 bytes from 192.168.101.2: icmp_seq=48 ttl=63 time=1.82 ms
64 bytes from 192.168.101.2: icmp_seq=49 ttl=63 time=1.83 ms
64 bytes from 192.168.101.2: icmp_seq=50 ttl=63 time=1.79 ms
64 bytes from 192.168.101.2: icmp_seq=51 ttl=63 time=2.82 ms
64 bytes from 192.168.101.2: icmp_seq=52 ttl=63 time=1.96 ms
64 bytes from 192.168.101.2: icmp_seq=53 ttl=63 time=1.85 ms
64 bytes from 192.168.101.2: icmp_seq=54 ttl=63 time=0.806 ms
64 bytes from 192.168.101.2: icmp_seq=55 ttl=63 time=0.811 ms
64 bytes from 192.168.101.2: icmp_seq=56 ttl=63 time=0.354 ms
64 bytes from 192.168.101.2: icmp_seq=57 ttl=63 time=0.360 ms
64 bytes from 192.168.101.2: icmp_seq=58 ttl=63 time=0.354 ms
64 bytes from 192.168.101.2: icmp_seq=59 ttl=63 time=0.362 ms
64 bytes from 192.168.101.2: icmp_seq=60 ttl=63 time=0.342 ms
64 bytes from 192.168.101.2: icmp_seq=61 ttl=63 time=0.327 ms
64 bytes from 192.168.101.2: icmp_seq=62 ttl=63 time=0.331 ms
64 bytes from 192.168.101.2: icmp_seq=63 ttl=63 time=0.349 ms
64 bytes from 192.168.101.2: icmp_seq=64 ttl=63 time=0.378 ms
64 bytes from 192.168.101.2: icmp_seq=65 ttl=63 time=0.332 ms
64 bytes from 192.168.101.2: icmp_seq=66 ttl=63 time=0.342 ms
64 bytes from 192.168.101.2: icmp_seq=67 ttl=63 time=0.430 ms
64 bytes from 192.168.101.2: icmp_seq=68 ttl=63 time=0.393 ms
64 bytes from 192.168.101.2: icmp_seq=69 ttl=63 time=0.378 ms
64 bytes from 192.168.101.2: icmp_seq=70 ttl=63 time=0.334 ms
64 bytes from 192.168.101.2: icmp_seq=71 ttl=63 time=0.350 ms
64 bytes from 192.168.101.2: icmp_seq=72 ttl=63 time=0.370 ms
64 bytes from 192.168.101.2: icmp_seq=73 ttl=63 time=0.297 ms
64 bytes from 192.168.101.2: icmp_seq=74 ttl=63 time=0.309 ms
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/94730b4a-fafe-2064-3aa7-13d738fa7e12.png)

# 6. VDC間 Cold Migrationの実施(vApp移動)

vAppがPower-on状態で、vAppをVDC間移動はできません（コピーはできます）。

- 現在は、vapp-test1は`mt-vdc01`に存在する。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/76055080-f596-bfcb-19b2-d3951b2eab79.png)
- `MOVE`を選択できない。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/f498aeb5-8b64-a2c1-31a9-a83f74fa875d.png)
- vAppを停止する。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/cb511c83-3e86-8db8-5010-7ff66cdbcb6f.png)![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/c037e222-3ce0-49d6-fa45-105c1eb93aae.png)
- Power Off状態だと、`MOVE`を選択できる。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/45d3a171-d8c1-d21d-fc58-db6ad9f3e846.png)
- `Select a VDC`を選択。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/90b52e2b-0a6b-35e4-8e17-9caeac6d04da.png)
- 移動先のVDCとして、`mt-vdc02`を選択する。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/fb637c9c-8591-5b3a-4006-54c9aabc8dd1.png)
- OK![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/1fce03f1-c20b-362f-ae6c-eec04b2f4247.png)
- `mt-vdc02`に移動した。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/9609cd08-7c35-88d8-40be-d9fd17875bc8.png)