【OCVS Migration】オンプレミス環境の仮想マシンをOCVSへ移行してみた

みなさん、こんにちは！

これまでの【OCVS Migration】シリーズでは、OCVSの概要や移行方法などをご紹介してきましたが、
今回は実際に、オンプレミスVMware環境の仮想マシンをOCVS環境へ移行してみました！
移行方式は、こちらの記事で紹介した「OVFTool」と「Veeam」を使用した方法で行います。
この記事では、それぞれの移行の手順や注意点などを紹介します。

OCVSの概要やOCVSへの移行について知りたい方は、こちらをご覧ください。
第1回：[【OCVS Migration】オンプレミスVMware環境からOCVSへのクラウドリフトについて](https://www.reqtc.com/blog/vmware-ocvs-cloudlift.html)
第2回：[【OCVS Migration】オンプレミス環境からOCVSへのVM移行方法](https://www.reqtc.com/blog/ocvs-vmware-migration.html)
第3回：[【OCVS Migration】オンプレミス環境からOCVSへのL2延伸について](https://www.reqtc.com/blog/ocvs-l2-network-extension.html)

## 環境構成
### 構成図
今回はオンプレミス環境にある仮想マシン「VM-1」を、OCVS環境に移行します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3956386/d3447c73-f53c-449a-ab9a-006a966e7d9d.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3956386/12b00d56-c3d1-4397-9f22-3ace14392037.png)

#### ・OCI/OCVS環境
| リソース | 	用途 |
|:-|:-|
| VCN（10.0.0.0/16）  |  OCIのリソースで使用するネットワークセグメント |
|  サブネット1（10.0.1.0/24） | インスタンス（バックアップサーバとリポジトリサーバ）で使用するサブネット  |
| サブネット2（10.0.2.0/24）  |  SDDC（ESXiやvCenter等）で使用するサブネット |
| ワークロード（10.10.0.0/24）  | OCVS上の仮想マシンに割り当てるネットワークセグメント  |
| インスタンス1（バックアップサーバ）  | OVFToolとVeeamをインストールするサーバ  |
| インスタンス2（リポジトリサーバ）  | Veeamのバックアップ保存先として使用するサーバ  |

#### ・仮想マシン構成情報
| 仮想マシン | 	OS | ディスクサイズ(実容量サイズ) | CPU | メモリ |
|:-|:-|:-|:-|:-|
| VM-1（移行対象仮想マシン）  | Windows Server 2022  |  32GB(約30GB) | 	2vcpu  |  	4GB |
| インスタンス1（バックアップサーバ）  | Windows Server 2022  | 500GB  | 	12ocpu  | 	32GB  |
| インスタンス2（リポジトリサーバ）  |  Oracle Linux 9 | 1TB  | 4ocpu  | 	32GB  |

### コンポーネントバージョン
#### ・オンプレミスVMware環境
| コンポーネント | バージョン |
|:-|:-|
| ESXi  | VMware ESXi 7.0.1  |
| vCenter  | 	7.0.1  |

#### ・OCI/OCVS環境
| コンポーネント | バージョン |
|:-|:-|
| ESXi  |  VMware ESXi 8.0 Update3 |
| vCenter  | 	8.0.3  |


### 移行ツールバージョン
#### ・移行ツールバージョン
| 移行ツール | バージョン |
|:-|:-|
| OVFTool  |  	4.6.3 |
| Veeam Backup ＆ Replication12  |12.3.0.310   |

## OVFエクスポート/インポート
初めに、OVFToolを使用した移行を紹介します。
OVFToolはCLIで操作し、仮想マシンをOVFまたはOVAファイル形式でエクスポート/インポートを実行するツールです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3956386/bdd94e2b-3f52-47ab-b7de-ce85bf9f75d0.png)

OVFエクスポート/インポートを行う際は、以下の前提条件を満たしていることを確認します。

### 前提条件
* 移行対象の仮想マシンがパワーオフになっていること
* オンプレミス環境のvCenter、ESXiの名前解決ができていること
* エクスポート先の容量が十分にあること

### 手順
①OVFToolのインストール
今回はOCIのインスタンス(バックアップサーバ)に、OVFToolをインストールします。
OVFToolは以下公式サイトから無償でダウンロードが可能です。
Open Virtualization Format (OVF) Tool

②OVAエクスポート
オンプレミス環境にある仮想マシンを、OCIインスタンスにOVAファイルでエクスポートします。
コマンドプロンプトを開き、OVFToolが配置されているフォルダに移動します。
以下のコマンドを実行します。

＜エクスポートコマンドの書式＞
```
> ovftool --noSSLVerify※1 vi://[vCenterのログインユーザ名]:[vCenterのログインパスワード]@[vCenterのIPアドレス]/[DC名]/vm※2/[フォルダ名]※3/[VM名]※4 [エクスポートの保存先]


※1　--noSSLVerify ：SSL検証をスキップ
※2　vm　　　　　 　：固定値
※3　フォルダ名　 　：フォルダがない場合は省略
※4　VM名　　　　 　：仮想マシン名を正しく表記すること
```
＜例＞
```
> ovftool --noSSLVerify vi://administrator@vsphere.local:Password@192.168.1.1/TEST-DC/vm/vm-folder/VM-1 C:\ovfexport
```

③OVAインポート
エクスポートしたOVAファイルを、OCVS環境にインポートします。
コマンドプロンプトを開き、OVFToolが配置されているフォルダに移動します。
以下のコマンドを実行します。

＜インポートコマンド書式＞
```
> ovftool --noSSLVerify※1 --name=[VM名] --datastore=[OCVSのデータストア名] --diskMode=[(thin/thick/eagerZeroedThick)] --net=["既存のネットワークアダプタ名"="OCVSのネットワークアダプタ名"※2] [エクスポートの保存先] vi://[vCenterのログインユーザ名]:[vCenterのログインパスワード]@[vCenterのIPアドレス]/[DC名]/host※3/[クラスタ名]

※1　--noSSLVerify：SSL検証をスキップ
※2　--net　　　 　：仮想マシンに2以上のvNICが付いている場合に指定する
※3　host 　　　　 ：固定値
```

＜例＞
```
> ovftool --noSSLVerify --name=VM-1-migration --datastore=OCVS-datastore --diskMode=thin --net="VM Network"="OCVS-workload" C:\ovfexport\vm-1.ova vi://administrator@vsphere.local:Password@10.0.2.10/OCVS-DC/host/OCVS-Cluster
```

### 結果
以下は、仮想マシン(32GB)のエクスポート/インポート所要時間の結果です。
インポートはOCI内で行われているため、短時間で完了しました。
| OVFTool | 所要時間 |
|:-|:-|
| エクスポート  | 約17分  |
| インポート  | 約5分  |

### 注意点
* 環境によって、エクスポート時にオンプレミスESXiのCPUを約10％使用することもあるため、リソースを確認すること
* 仮想マシンにvNICが2つ以上ついている場合、どのネットワークを使用するか指定する必要がある
指定しない場合、以下のエラーが表示されます。
```
Error: No network mapping specified.
```

## Veeamバックアップ/リストア
続いて、Veeamを使用した移行を紹介します。
VeeamはGUIで操作し、仮想マシンのスナップショットからバックアップを取得します。
「仮想マシン全体のリストア」や「インスタントVMリカバリ」などさまざまな方法でリストアを行うことが可能です。
今回は、通常の「仮想マシン全体のリストア」を使用して、OCVS環境に移行します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3956386/27a9cdcc-f6da-4fc9-9c33-13a3b5737a78.png)

Veeamバックアップ/リストアを行う際は、以下の前提条件を満たしていることを確認します。
### 前提条件
* Veeamにオンプレミス環境とOCVS環境のvCenterが登録されていること
* オンプレミス環境のvCenterとESXiの名前解決ができていること

### 手順
①バックアップジョブの作成
オンプレミス環境にある仮想マシンのバックアップジョブを作成します。
詳細な手順は、以下の公式サイトをご参照ください。
[バックアップジョブの作成](https://helpcenter.veeam.com/jp/docs/backup/qsg_vsphere/backup_job.html?ver=120)

②バックアップジョブの開始
作成したバックアップジョブをスケジュールしない場合、手動で開始します。
詳細な手順は、以下の公式サイトをご参照ください。
[バックアップジョブの手動開始](https://helpcenter.veeam.com/jp/docs/backup/qsg_vsphere/backup_job_incremental.html?ver=120)

③リストア
「Restore entire VM」モードで、仮想マシンをリストアします。
OCVS環境にリストアを行うため、[Restore mode]ウィザードで「Restore to a new location, or with different setting」を
選択します。
詳細な手順は、以下の公式サイトをご参照ください。
[VM全体のリストア](https://helpcenter.veeam.com/docs/backup/vsphere/performing_full_recovery.html?ver=120)

### 注意点
* ディスクデバイスの順番が元の順番と異なる状態でリストアされる場合がある
Veeamではディスクラベルがリストアされず、ディスクのリストア順序によって、仮想マシンへのディスクのマッピングが決定します。
ディスクの順序が変わっていた場合の対策として、ディスクファイルの内容(SCSI、IDEなど)をメモしてから、デバイスの削除と再追加を実施します。

### 結果
以下は、仮想マシン(32GB)のバックアップ/リストアの所要時間の結果です。
OVFToolと同様に、リストアはOCI内で行われているため、短時間で完了しました。
| Veeam | 所要時間 |
|:-|:-|
| バックアップ  | 	約5分  |
| リストア  | 	約2分  |

## 複数台同時のバックアップは可能？
複数台同時にバックアップジョブを開始することは可能です。

バックアップは順次的に実行されるため、大規模環境の場合、1台ずつバックアップを行うとすべての仮想マシンのバックアップ完了までに多くの時間を所要します。
複数台同時バックアップを行うことで、それを防ぐことができます。

今回は、32GB(約30GB)の仮想マシン×2を使用して同時バックアップを実施しました。
リストアは未実施です。

### 前提条件
* 複数台同時にバックアップできるだけのリソースがあることを確認する
(ネットワーク帯域幅やディスク容量、バックアップサーバの処理能力など)

### 手順
手順は上記と同じのため、詳細な手順は割愛します。
①バックアップジョブの作成
②バックアップジョブの開始
　[Shift]キーを押しながら、バックアップジョブを複数選択することが可能です。

### 結果
以下は、仮想マシン(32GB)のバックアップ所要時間の結果です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3956386/721ce8d8-a32e-4163-b772-a378f0863411.png)

単体バックアップにかかった時間は約5分でしたが、単体バックアップを2回実施した場合、単純計算で約10分かかる
想定です。
そのため、単体バックアップを2回行うより、2台同時にバックアップを行う方が約3分速く完了します。
Veeamには、複数のVMやディスクを並列で処理する分散アーキテクチャを備えているため、このような結果になったと考えられます。

## 最後に
今回はOVFToolとVeeamを使用して、オンプレミス環境の仮想マシンをOCVS環境へ移行してみました。
2つの移行方式を比較した結果として、バックアップ/リストアともにVeeamに軍配が上がる結果となりました。

### 移行結果
| 移行方式 | ディスクサイズ(実容量サイズ) | ステータス | バックアップ同時実施台数 | バックアップ所要時間 | リストア所要時間 |
|:-:|:-:|:-:|:-:|:-:|:-:|
|  OVFTool |  48GB(約30GB) |  オフライン |  単体 | 	約17分  | 約5分  |
| Veeam  |  48GB(約30GB) |  オフラインまたはオンライン | 単体  |  約5分 | 約2分  |
|  Veeam | 48GB(約30GB)  | オフラインまたはオンライン  | 2台同時 |  約7分 | -  |

Veeam移行がOVFTool移行よりバックアップの所要時間が短い理由としては、以下が挙げられます。

* 転送効率を高める独自のプロトコルを使用しているため
* データ圧縮や重複排除により転送データを削減しているため
* 複数のVMやディスクを並列で処理しているため

上記の他に、オンプレミス環境とOCVS環境にそれぞれプロキシサーバ(Veeam Backup Proxy)を配置したり、VeeamのWANアクセラレーション機能を使用したりすることで、更にバックアップ時間を早めることができるかと思います。

環境によっては、複数台同時バックアップより単体バックアップの方が早く完了する場合もあるかと思いますので、
本記事の移行結果は参考程度にしていただければ幸いです。