内容:
こんにちは!技術担当の岩﨑です。
昨今の情勢より、vSphereの代替となるサーバ仮想化ソリューションの需要が高まっています。弊社にも、候補のひとつとしてRed hat Openshift Virtualization(以降OCP-Virt)をご検討されるお客様より、PoCの引き合いが多く寄せられています。そして検証項目の中に必ず入ってくるのがvSphereからOCP-Virtへの仮想マシン移行、つまりV2Vです。Red hat社はOpenshift Migration Toolkit for Virtualization(以降MTV)と呼ばれるV2VソフトウェアをOCP-Virtの標準ライセンスで提供していて、実はこれがかなり良い出来なのです。本ブログ記事では、vSphereからのV2Vを前提に、MTVの導入手順を解説していきます。
【OCP-VirtとMTVの概要】
OCP-VirtはKubevirtと呼ばれる、Linux KVMの仮想マシンをKubernetesのリソースとして管理するためのOSSをベースに、Red Hat社がOpenshift用にカスタマイズ、Operator化した製品です。
MTVはOCP-Virtのアドオン的なOperatorで、主要なサーバ仮想化プラットフォームからOCP-VirtへのV2Vを支援します。数百台規模のVMを、数クリックまたはCLIコマンドで計画的かつ自動的に移行する機能を提供します。
OCP-VirtとMTVはOpenshift上に構成されるソリューションですが、仮想マシン限定でコンテナを運用しないユーザー向けに、Red Hat OpenShift Virtualization Engineエディションが提供されています。
【MTVの重要コンポーネント】
MTVは複数のソフトウェアから構成される製品ですが、特に重要なコンポーネントについて説明します。
Containerized Data Importer (CDI) :KubeVirtのサブプロジェクトとして開発されているツールで、外部ソースからKubernetesの永続ボリューム(PVC)へVMイメージなどのデータをインポートする役割を担います。
virt-v2v:libguestfs プロジェクトのサブプロジェクトとして開発されているツールで、VMware、Hyper-Vといった外部のハイパーバイザー環境で稼働するVMを、KVMベースの環境で動作するように変換する役割を担います。単にディスクイメージのフォーマットを変換するだけでなく、仮想化ドライバのインストール、ブートローダーの再設定、NICの再構成なども行います。virt-v2vにより変換されたディスクイメージは、CDIによりPVCへインポートされます。
VMware Virtual Disk Deployment Kit(VDDK):VMwareが提供するプロプライエタリなSDKで、vSphere環境上の仮想ディスク(VMDK)に対して、効率的かつ高速にアクセスするためのAPIを提供します。virt-v2vはVDDKに対応しており、vSphereからディスクイメージの高速転送を実現します。また、MTVのウォームマイグレーション機能はVDDKのChange Block Tracking(CBT)を活用しています。
【MTV v2.9のサポート状況】
MTVの最新版であるv2.9(2025年7月現在)の互換性について記載します。
移行元プラットフォーム |
vSphere 6.5~ Red hat Virtualization 4.4SP1~ OpenStack 16.1~ OVA |
確認済みゲストOS |
RHEL8,9,10 Windows10,11 Windows Server 2012R2 |
RHELについては、OCP-Virtへの移行・検証がテストされています。Microsoft Windowsについては、OCP-Virtへの移行の成功と起動が確認されています。その他のゲストOSのサポート状況や検証依頼については、弊社営業窓口までご相談ください。
【MTVの導入手順】
前提条件:
OpenShiftバージョン |
4.18.5 |
Operatorバージョン |
OpenShift Virtualization 4.18.8 Migration Toolkit for Virtualization Operator 2.9 |
構成済みの機能 | OCP-Virt 内部レジストリ(clusteroperator/image-registry) |
移行元プラットフォーム | vSphere 8.0.3 使用するVDDKバージョン:8.0.3 for Linux *VDDKのリリースノートを参照し、vSphereバージョンにマッチした最新バージョンを選択します |
ネットワーク | OpenshiftクラスタのMachine Network(kubeletが使用するネットワーク)と、VCSA、およびESXiのvmkernelインターフェイスのネットワーク間がルーティング可能 *移行専用ネットワークを構成することも可能です |
作業環境 | coコマンドでOpenshiftクラスタにログインできること podman build、またはdocker buildできること |
1. OpenshiftクラスタにMTV Operatorをインストールする
Webコンソール > Operators > OperatorHubを選択し、検索ボックスに “mtv” と入力します。
チャネルは” release-v2.9”、バージョンは最新版を選択し、[Install]をクリックします。
その他のインストールパラメータは全てデフォルト値のまま、[Install]をクリックします。
Operatorのインストール完了後、[Create ForkliftController]ボタンをクリックします。
デフォルト設定のまま Create をクリックします。
apiVersion: forklift.konveyor.io/v1beta1
kind: ForkliftController
metadata:
name: forklift-controller
namespace: openshift-mtv
spec:
feature_ui_plugin: 'true'
feature_validation: 'true'
feature_volume_populator: 'true'
ForkliftControllerリソースが作成されるので、Statusが”Running”に遷移するまで待機します。[Refresh web console]のポップアップが表示されたらクリックして、コンソールをリロードします。
Webコンソールの左メニューに”Migration for Virtualization”が追加されます。Overview > Healthより、MTVの関連Podが全て起動していることを確認します。
2.VDDKイメージをビルドし内部レジストリへ登録する
VDDK自体はライブラリなので、MTVが利用できるようにVDDKを組み込んだコンテナイメージをビルドし、内部レジストリに登録する必要があります。
BroadcomのサイトからVDDK 8.0 for Linuxの最新版をダウンロードします。
https://developer.broadcom.com/sdks/vmware-virtual-disk-development-kit-vddk/8.0
以降はLinux端末上の作業となります。
# Dockerfileを作成
$ cat > Dockerfile <<EOF
FROM registry.access.redhat.com/ubi8/ubi-minimal
USER 1001
COPY vmware-vix-disklib-distrib /vmware-vix-disklib-distrib
RUN mkdir -p /opt
ENTRYPOINT ["cp", "-r", "/vmware-vix-disklib-distrib", "/opt"]
EOF
# ダウンロードしたVDDKのアーカイブを展開
$ tar zxf VMware-vix-disklib-8.0.3-23950268.x86_64.tar.gz
$ rm -f VMware-vix-disklib-8.0.3-23950268.x86_64.tar.gz
$ ls
Dockerfile vmware-vix-disklib-distrib
# イメージレジストリのエンドポイントを取得
$ oc login https://api.<openshift-cluster>:6443
$ imgreg=$(oc -n openshift-image-registry get route default-route -o yaml | yq '.spec.host')
# VDDKイメージを登録するネームスペース
$ ns='openshift-mtv'
$ oc project $ns
# イメージをビルド
$ sudo podman build -t $imgreg/$ns/vddk:8.0.3 .
[...]
Successfully tagged default-route-openshift-image-registry.apps.ocp.nebula.internal/openshift-mtv/vddk:8.0.3 ※このタグをコピー
61118b7872630689d5bb45cc0beaaaee352308e5c7a6f04d1b3d3597e8f4358f
# イメージをレジストリにPush
$ sudo podman login -u <username> -p $(oc whoami -t) $imgreg
Login Succeeded!
$ sudo podman push default-route-openshift-image-registry.apps.ocp.nebula.internal/openshift-mtv/vddk:8.0.3 ※タグをペースト
[...]
Copying config 61118b7872 done |
Writing manifest to image destination
# Pushしたイメージのリファレンスを確認
# ※MTVに移行元vSphereを登録する際に以下のイメージリファレンスを使用します
$ oc get imagestreamtags
NAME IMAGE REFERENCE UPDATED
vddk:8.0.3 image-registry.openshift-image-registry.svc:5000/openshift-mtv/vddk@sha256:aa8ebfda714762ab48cb91144a1dc7c0032b610521e01cdd54593702e944ac92
3 minutes ago
以降の手順は、移行元プラットフォームの登録、マイグレーションプランの作成、プランの実行となります。動画にて提供しておりますので、是非ご視聴ください!
ーーーーーーーーーーーーーーーーーーーーー
[補足事項]
当映像は、SCSK映像配信プラットフォーム「NEXT-UP TV」よりお送りします。
初回アクセス時 、会員登録が必要です。画面案内よりご登録をお願いします。
初回の会員登録時はトップメニューにリダイレクトされますので、お手数ですが視聴の際は再度上記ボタンを押してアクセスください。
会員登録をいただくと、次回以降「NEXT-UP TV」へ登録されたコンテンツは、各URLクリックのみで自由に視聴可能です。
ーーーーーーーーーーーーーーーーーーーーー