様々な仮想基盤用のVMをProxmox環境に移行してみる

ESXi以外の仮想環境にも慣れておかないと、ということで、最近Proxmoxを触り出しています。

VMを新規で作るだけでは無く、既存のモノを持ち込むシーンもあるかと思い、インポート方法について少し試してみました。


実験について

練習用のVMイメージは(単に複数環境用のVMが用意されていたため)Zabbix Applianceを使ってみることにしました。

Hyper-V/ovf/KVM/VMware形式の各アプライアンスをインポートし、OS(AlmaLinux)が起動して来る所までをゴールとします。

各仮想マシンはlocal-lvmに置くこととしました。


準備

Zabbix公式から各種仮想マシンをダウンロードします。
https://www.zabbix.com/jp/download_appliance

今回は、

  • Microsoft Hyper-V 2012(.vhdx)
  • Open virtualization format (.ovf/.vmdk)
  • KVM, QEMU (.qcow2)
  • VMWare (.vmx)

の4パターンの仮想マシンをダウンロードし、

/var/lib/vz/images/zabbixappliance/

以下に各アーカイブの中身(仮想ディスク等)をコピーしました。


注意点

以下の各方法の中の『–name』で作成するVM名を指定しますが、DNSで許されない文字(_など)が入っているとError400となるので注意下さい。


Hyper-V → Proxmox

  1. アプライアンスとなるVM(IDは500とする)を作る
  2. OSメディアは使用しない
  3. システムタブはそのまま
  4. OSインストールは無し
  5. disk容量は1GB程度
  6. diskとCDはdetachする
  7. detachした仮想ディスクは削除する
  8. 仮想ディスクをインポートする
    root@proxmox:~# qm importdisk 500 /var/lib/vz/images/zabbixappliance/HyperV/zabbix_appliance-6.4.12.vhdx local-lvm
    importing disk '/var/lib/vz/images/zabbixappliance/HyperV/zabbix_appliance-6.4.12.vhdx' to VM 500 ...
    WARNING: You have not turned on protection against thin pools running out of space.
    WARNING: Set activation/thin_pool_autoextend_threshold below 100 to trigger automatic extension of thin pools before they get full.
    Logical volume "vm-500-disk-0" created.
    WARNING: Sum of all thin volume sizes (426.03 GiB) exceeds the size of thin pool pve/data and the size of whole volume group (237.47 GiB).
    transferred 0.0 B of 10.0 GiB (0.00%)
    (snip)
    transferred 10.0 GiB of 10.0 GiB (100.00%)
    Successfully imported disk as 'unused0:local-lvm:vm-500-disk-0'
    root@proxmox:~#
  9. 未使用のdisk(local-lvm:vm-500-disk-0)選択→編集→追加
  10. VMを起動し、動作を確認する

ovf → Proxmox

  1. (IDは501とする)
  2. OVFファイルからVMを生成する
    root@proxmox:~# qm importovf 501 /var/lib/vz/images/zabbixappliance/ovf/zabbix_appliance-6.4.12.ovf local-lvm --format qcow2 --dryrun
    warning: unable to parse the VM name in this OVF manifest, generating a default value
    invalid host ressource /disk/vmdisk1, skipping
    {
    "disks" : [],
    "qm" : {
    "cores" : "4",
    "memory" : "4096"
    }
    }
    root@proxmox:~#
  3. これはダメだった

ovf → Proxmox(その2)

  1. 適当にVM(IDは501)を作り、CDとdiskをdetach
  2. detachした仮想ディスクは削除する
  3. vmdkをqcow2形式でインポートする
    root@proxmox:~# qm importdisk 501 /var/lib/vz/images/zabbixappliance/ovf/zabbix_appliance-6.4.12-disk001.vmdk local-lvm -format qcow2
    importing disk '/var/lib/vz/images/zabbixappliance/ovf/zabbix_appliance-6.4.12-disk001.vmdk' to VM 501 ...
    WARNING: You have not turned on protection against thin pools running out of space.
    WARNING: Set activation/thin_pool_autoextend_threshold below 100 to trigger automatic extension of thin pools before they get full.
    Logical volume "vm-501-disk-0" created.
    WARNING: Sum of all thin volume sizes (436.03 GiB) exceeds the size of thin pool pve/data and the size of whole volume group (237.47 GiB).
    transferred 0.0 B of 10.0 GiB (0.00%)
    (snip)
    transferred 10.0 GiB of 10.0 GiB (100.00%)
    Successfully imported disk as 'unused0:local-lvm:vm-501-disk-0'
    root@proxmox:~#
  4. 未使用のdisk(local-lvm:vm-501-disk-0)選択→編集→追加
  5. VMを起動し、動作を確認する

KVM qcow2 → Proxmox

  1. (IDは502とする)
  2. 単純にインポートしてVMを作成する
    root@proxmox:~# qm create 502 --name ZabbixApplianceQcow2 --ostype l26 --cpu host --sockets 1 --cores 2 --memory 4096 --net0 virtio,bridge=vmbr0 --scsi0 local-lvm:0,import-from=/var/lib/vz/images/zabbixappliance/KVM/zabbix_appliance-6.4.12.qcow2,format=qcow2,discard=on --boot order=scsi0 --scsihw virtio-scsi-pci
    WARNING: You have not turned on protection against thin pools running out of space.
    WARNING: Set activation/thin_pool_autoextend_threshold below 100 to trigger automatic extension of thin pools before they get full.
    Logical volume "vm-502-disk-0" created.
    WARNING: Sum of all thin volume sizes (446.03 GiB) exceeds the size of thin pool pve/data and the size of whole volume group (237.47 GiB).
    transferred 0.0 B of 10.0 GiB (0.00%)
    (snip)
    transferred 10.0 GiB of 10.0 GiB (100.00%)
    scsi0: successfully created disk 'local-lvm:vm-502-disk-0,discard=on,size=10G'
    root@proxmox:~#
  3. VMを起動し、動作を確認する

VMware ESXi -> Proxmox

  1. 適当にVM(IDは503)を作り、CDとdiskをdetach
  2. detachした仮想ディスクは削除する
  3. vmdkファイルをqcow2形式でインポートする
    root@proxmox:~# qm importdisk 503 /var/lib/vz/images/zabbixappliance/VMware/zabbix_appliance-6.4.12-disk1.vmdk local-lvm -format qcow2
    importing disk '/var/lib/vz/images/zabbixappliance/VMware/zabbix_appliance-6.4.12-disk1.vmdk' to VM 503 ...
    WARNING: You have not turned on protection against thin pools running out of space.
    WARNING: Set activation/thin_pool_autoextend_threshold below 100 to trigger automatic extension of thin pools before they get full.
    Logical volume "vm-503-disk-0" created.
    WARNING: Sum of all thin volume sizes (456.03 GiB) exceeds the size of thin pool pve/data and the size of whole volume group (237.47 GiB).
    transferred 0.0 B of 10.0 GiB (0.00%)
    (snip)
    transferred 10.0 GiB of 10.0 GiB (100.00%)
    Successfully imported disk as 'unused0:local-lvm:vm-503-disk-0'
    root@proxmox:~#
  4. 未使用のdisk(local-lvm:vm-503-disk-0)選択→編集→追加
  5. VMを起動し、動作を確認する

以上です。