GNU/Linux >> Linux の 問題 >  >> Linux

仮想マシンをVMwareESXiからProxmoxVEに移行する

読者の皆様、こんにちは。本日、仮想マシンを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に正常に移行されました。


Linux
  1. VBoxManageを使用してVMDK(仮想マシンディスク)をVDIに変換する方法は?

  2. OpenStack仮想マシンで2番目のプライマリまたは追加のパーティションを作成する方法

  3. ベアメタル Linux インストールを仮想マシンに移行する方法

  1. Linux KVM 仮想マシンにメモリ、vCPU、ハードディスクを追加する方法

  2. ハードディスク上でネイティブ OS を仮想マシンとして起動

  3. Windows XP 物理マシンから仮想マシンを作成できますか?

  1. VirtualMachineManagerの概要

  2. VMware仮想マシンにWindows11をインストールする方法

  3. ProxmoxとESXi:直接比較