読者の皆様、こんにちは。本日、仮想マシンをVMwareESXiからProxmoxVEに移行します。
現在、ラボ環境ではなく、実稼働環境に取り組んでいます。この移行プロセスのダウンタイムをスケジュールしました。仮想NTPサーバーを古いESXiから新しいProxmoxクラスターに移行しています。
移行の準備
古いESXiハイパーバイザーのデータストアとしてRAID5ディスクアレイがあり、Proxmoxクラスターの共有ストレージとしてGlusterFSレプリケートストレージがあります。 VMware ESXiはVMディスクをVMDKイメージ形式で保存し、Proxmoxの場合はQCOW2ディスクイメージ形式が必要です。そこで、画像フォーマットをVMDKからQCOW2に変更します。 Proxmoxの詳細については、Proxmoxの他の投稿をご覧ください。
VMwareディスクをProxmoxHypervisorに直接インポートできますが、仮想ディスクイメージに割り当てられたフルディスクサイズが使用されます。シンプロビジョニングとしてディスクイメージをインポートすると、ディスクスペースが節約され、仮想マシン間でディスクスペースをオーバーコミットできるようになります。
シンプロビジョニングされた仮想マシンディスクをインポートし、ディスクイメージによって使用される不要なディスクスペースを削除するには、qemu-imgユーティリティとvirt-sparsify、pigz圧縮ツールがインストールされた別の中間CentOS仮想化ホストを使用します。
この記事では、コマンドラインインターフェイスからすべての操作を実行します。したがって、3つのホストすべてにシェルアクセスが必要になります。 VMware ESXiでSSHアクセスを有効にするには、このドキュメントを確認してください。また、ESXiホストからSCPディスクイメージファイルへのSSHクライアントを許可する必要があります。 ESXiホストポータルの[ネットワーク]->[ファイアウォールルール]->[SSHクライアント]に移動します。 [アクション]、[有効化]の順にクリックします。
VMwareESXiディスクイメージの準備
ESXi内のターゲットVMを特定します。
# vim-cmd vmsvc/getallvms
または、grepを使用して不要な出力を除外します
# vim-cmd vmsvc/getallvms | grep -i ntp
ここでは、VM IDが19であり、その構成ファイルが datastore2 / NTP-1内にあることがわかりました。 ディレクトリ。
次に、ターゲット仮想マシンをシャットダウンし、VMの電源ステータスを確認します
# vim-cmd vmsvc/power.getstate 19
VMディレクトリに移動し、仮想ディスク名を決定します
VMwareは、VMDKディスクイメージ形式を使用してデータを保存します。 ESXiでは、メタデータファイルと実際のディスクイメージ名をIMAGENAME-flat.vmdkとして使用します。ここでは、NTP-1.vmdk(メタデータ)とNTP-1-flat.vmdkの2つのファイルがあることがわかります。
仮想ディスクNTP-1-flat.vmdkのサイズが大きいため、ESXiからCentOSホストへのデータ転送に時間がかからないように圧縮します。
# pigz -v -1 -k -p8 NTP-1-flat.vmdk
注:サーバー間に高速ネットワーク接続がある場合は、圧縮をスキップできます。
圧縮が完了したら、圧縮されたディスクイメージとメタデータファイルを中間CentOS仮想化ホストにSCPして、ディスクイメージを変換してスパース化します。
VMDKをQCOW2に変換し、QCOW2ディスクイメージをスパース化します
ディスクイメージをVMDKからQCOW2形式に変換するには、 qemu-imgが必要です。 CentOS仮想化ホストにプリインストールされている必要があるユーティリティ。以下のコマンドでもインストールできます
# yum install -y qemu-img
ディスクイメージディレクトリに移動し、ディスクイメージファイルを解凍します
# pigz -v -d NTP-1-flat.vmdk.gz
ファイル形式をVMKDからQCOW2に変換する
# qemu-img convert -p -O qcow2 NTP-1.vmdk NTP-1.qcow2
virt-sysprepをインストールします CentOSホストのツール
# yum install -y /usr/bin/virt-sysprep
一時ディレクトリサイズの問題を回避するために、 tmpを作成しています。 vmdata内のディレクトリ ディレクトリとすべてのユーザーの完全な権限
# mkdir /vmdata/tmp # chmod 777 -R tmp
qcow2形式のディスクイメージファイルをスパースします
# virt-sparsify --tmp tmp --compress NTP-1.qcow2 ntp-1-sparsed.qcow2
新しいスパースディスクイメージファイルをProxmoxVEホストにアップロードします
既存のQCOW2ディスクイメージからProxmoxVEにVMをデプロイする
ProxmoxVEでVMを作成しましょう
qm create 120 --name ntp-1 \ --sockets 1 --cores 2 --vcpus 2 --cpu host \ --memory 4096 \ --ostype l26 --arch x86_64 \ --agent enabled=1 \ --scsihw virtio-scsi-pci \ --bootdisk scsi0 \ --boot c
ここで120はProxmoxのVMIDです
ntp-1-sparsed.qcow2ディスクイメージをVMにインポートします
# qm importdisk 120 /path/to/image/ntp-1-sparsed.qcow2 glusterFSname --format=qcow2 # qm set 120 --scsi0 glusterFSname:120/vm-120-disk-0.qcow2>
VMのネットワークの構成
# qm set 120 --net0 model=virtio,bridge=vmbr0,firewall=1,tag=10
ここでは、サーバーLANにVLAN ID 10を使用し、タグ付き/トランクスイッチポートタイプにVLAN-IDを使用しています。
VM構成を確認する
# qm config 120
VMを起動します
# qm start 120
これで、VMはVMwareESXiからProxmoxVEに正常に移行されました。