Nutanix [への|からの] XvMotionによる仮想マシンの移行

# はじめに
この記事は、[[2枚目]Nutanix Advent Calendar 2017](https://adventar.org/calendars/2761) 12月4日の分として作成しました。本記事の内容はこの日付の情報に基づいています。

Nutanixを含む仮想化基盤を導入、リプレイスする際は、既存環境からの移行方法を検討する必要があります。各社さんからP2V、V2Vなど様々な移行ツールが提供されています。NutanixでもXtract for VMｓという、ESXiからAHVへの移行ツールを提供しています。(ちょうど本日 ネットワールド　らぼ さんの[Nutanix Xtract for VMsは使えるのか](http://blogs.networld.co.jp/main/2017/12/nutanix-xtract--61ff.html)の記事で取り上げていただいております)

既存環境と新環境で使用するハイパーバイザーがvSphere5.1以降の場合は、XvMotion(クロスヴイモーション)を使用して無停止で仮想マシンを既存環境から新環境に移行することが可能です。

XvMotionについては以下のドキュメントやブログ記事に解説されています。

- VMware社のドキュメント [共有ストレージを使用しない場合の vMotion の要件および制限事項](https://docs.vmware.com/jp/VMware-vSphere/6.5/com.vmware.vsphere.vcenterhost.doc/GUID-9F1D4A3B-3392-46A3-8720-73CBFA000A3C.html)
- Dellテックセンターさんのブログ [ハードウェアリプレイス時の ”仮想マシンの移行” を確認しましょう！](http://ja.community.dell.com/techcenter/b/weblog/archive/2015/02/05/virtual-machine-migration)
- over a Radlerさんの記事 [vMotion の歴史 (5) – vCenter Server 5.1 – 5.5](https://blog.radler.jp/2015/12/03/vmotion-%E3%81%AE%E6%AD%B4%E5%8F%B2-5-vcenter-server-5-1-5-5/)

幾つかの制約事項はありますが、無停止で移行ができることは非常に魅力的です。Nutanix環境でXvMotionを利用した移行を行うためにはちょっとしたTipsがあります。本記事ではステップ毎に解説します。


# 移行対象となる既存環境と新環境の概要
下図の環境を例として解説します。左側の緑色が移行元となる既存環境、右側の青色が移行先となるNutanixの環境です。Nutanixの環境には共有ストレージとしてNFSデータストアがマウントされています。図中の記載はありませんが、vCenterサーバは移行対象となるバージョン(通常であれば移行先のほうが新しいはずです)を使用し、両方の環境を管理しているものとします。

<img width="769" alt="既存と移行先の環境" src="https://qiita-image-store.s3.amazonaws.com/0/83432/10675ca8-94fc-d4b9-126f-e88ec7060962.png">

# 移行のステップ
移行は以下のステップで実施します。

## 【新環境】 移行用の一時的なデータストアを作成する
新環境上に移行用の一時的なデータストアを作成します。NutanixのPrismから新しいStorage Containerを作成します。
<img width="602" alt="Prism Storage Container作成" src="https://qiita-image-store.s3.amazonaws.com/0/83432/c34a1d6a-4d4c-16f6-78c5-1f5dc1401089.png">

作成メニューでは名称を入力し、マウントのオプションを選択します。"Mount on the following ESXi hosts"を選択した上で、ESXiサーバを選択しません。この状態ではデータストアが作成されて、どのホストからもマウントされていない状態になります。 

<img width="279" alt="Container作成画面" src="https://qiita-image-store.s3.amazonaws.com/0/83432/21432782-faee-d92f-9bd2-744fec595433.png">

"Advance Settings"をクリックして、最下段の"Filesystem Whitelist"に既存のESXiサーバのアドレスを入力します。アドレスは特定のホストを入力することも、下図の例のようにネットワークアドレスで入力することもできます。これにより、既存のESXiサーバからこのStorage ContainerをNFSデータストアとしてマウント可能になります。

 <img width="410" alt="スクリーンショット 2017-12-04 23.23.42.png" src="https://qiita-image-store.s3.amazonaws.com/0/83432/b833ad17-fa82-4ea6-1d4d-f8793d97411c.png">

設定後に"Save"をクリックすることでStorage Containerが作成されます。

下図の状態となります。

<img width="677" alt="一時データストア作成後" src="https://qiita-image-store.s3.amazonaws.com/0/83432/c31c4491-fe7d-d987-c9e3-5eec789e36d5.png">



## 【新環境】【既存環境】 新環境に作成した一時データストアをマウントする
vSphere Client(今回はWeb Clientを使用します)から前のステップで作成したStorage ContainerをNFSのデータストアとしてマウントします。

<img width="667" alt="WebClient データストア作成" src="https://qiita-image-store.s3.amazonaws.com/0/83432/57e313d0-599b-a39c-1e45-4d0de5229bf9.png">

- データストア名:任意の名称
- フォルダ: /の後に先ほど作成したStorage Container名
- サーバ: 新環境のNutnaixクラスタ内の1台のESXiホストを選択し、そのホスト上のCVMの管理用IPアドレスを指定

マウントするESXiホストは旧環境の移行元サーバと新環境の移行先サーバを指定します。

設定後は下図の状態となります。

<img width="666" alt="スクリーンショット 2017-12-04 23.48.55.png" src="https://qiita-image-store.s3.amazonaws.com/0/83432/7b4c392d-ae61-2255-57cf-703cc9c28e70.png">

## 【既存環境→新環境】 XvMotionで仮想マシンを移行する

ここまで準備ができたらXvMotionで既存環境から新環境に仮想マシンとVMDKを移行します。
既存環境からの移行先は先の手順で設定したESXiサーバと一時データストアを指定します。

<img width="690" alt="XvMotionでの仮想マシンとVMDKの移行" src="https://qiita-image-store.s3.amazonaws.com/0/83432/1df9cc75-64e8-3acb-6905-7dbf40751358.png">

新環境に仮想マシンとデータストアが移行完了したら、ストレージｖMotionを使用して、一時データストアから新環境の本番データストアへVMDKを移行します。

<img width="686" alt="ストレージｖMotionによる本番データストアへの移行" src="https://qiita-image-store.s3.amazonaws.com/0/83432/67d49a55-3a3b-9e19-d8d0-11fb6d39e99d.png">



## 後片付け

一時データストアのマウントをすべて解除し、Storage Containerを削除します。
これにて移行完了です。

<img width="682" alt="移行完了" src="https://qiita-image-store.s3.amazonaws.com/0/83432/873cd848-f6b6-285f-a7d9-9b7842f69412.png">


#終わりに
XvMotionによる基盤の移行方法を紹介しました。一時データストアの作成などちょっと複雑に見えますがやってみれば、非常に簡単に仮想マシンを無停止で移行できることを実感できるかと思います。