VM作成のステップバイステップ
Proxmox VEのWeb UIで Create VM をクリックするか、CLIのqmコマンドを使ってVMを作成します。ウィザードは8つの設定画面で構成されています。
General
一意のVM ID(通常100からの整数)と説明的な名前を設定します。名前は純粋な識別用であり、ゲストのネットワークには影響しません。
OS
ローカルストレージまたはアップロード済みのISOイメージを選択します。ISOがない場合は local (pve) → ISO Images → Upload からアップロードします。Windowsゲストの場合は明示的にゲストOSを Microsoft Windows に設定してください。
System
グラフィックカード と SCSIコントローラー を選択します。現行のゲストには以下の設定を推奨します。
| コンポーネント | 推奨 | 代替 |
|---|---|---|
| BIOS | SeaBIOS(デフォルト) | OVMF(UEFI) |
| マシンタイプ | q35 | i440fx |
| SCSIコントローラー | VirtIO SCSI single | LSI 53C895A |
| Qemu Agent | 有効(チェック) | 無効 |
SeaBIOS vs OVMF/UEFI: SeaBIOSはほぼすべてのOSと互換性があります。OVMFはUEFIを提供し、セキュアブートやNVMeドライブからの起動が必要な場合に使用します。UEFIが必要な場合はOVMFを選択し、EFIディスクを追加してください。
Qemu Agent にチェックを入れると、ホストとゲスト間の通信が有効になり、グレースフルシャットダウンやスナップショットの整合性確保、IPアドレスの報告が可能になります。
Disks
ディスクのバス方式はパフォーマンスに直結します。
| バス方式 | パフォーマンス | 機能サポート | ユースケース |
|---|---|---|---|
| VirtIO | 最良 | TRIM、discard、非同期IO | Linuxゲスト(デフォルト) |
| SATA | 良好 | 幅広いOS対応 | 互換性重視、古いOS |
| IDE | 低い | 最大互換性 | レガシーOS(Windows XP等) |
キャッシュモードは Write back (no cache) を選択します。Discard を有効にすると、シンプロビジョニングされたストレージの未使用領域をゲストOSが解放できます。
CPU
ソケット数とコア数を指定します。ほとんどのワークロードではソケットを1に設定し、コア数を割り当てます。type を host に設定するとホストのCPU機能セットが公開され、パフォーマンスが最大になりますが、異種ハードウェアへのライブマイグレーションはできなくなります。
Memory
メモリをMiBまたはGiBで割り当てます。Ballooning を有効にすると、ホストがゲストから未使用メモリを回収できるようになります。レイテンシが重要なワークロードではバルーニングを無効にします。
Network
ネットワークモデルは VirtIO(準仮想化) を選択します。VirtIOはネイティブに近いスループットと低いCPUオーバーヘッドを実現します。
Confirm
サマリーを確認し、即時起動する場合は Start after created にチェックを入れて Finish をクリックします。
Windows用VirtIOドライバ
WindowsにはVirtIOドライバが同梱されていません。Fedoraプロジェクトから公式のVirtIOドライバISOをダウンロードし、2つ目のCD-ROMとしてVMにアタッチします。
wget https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso
Windowsインストール中に、ディスク選択画面でドライバを手動で読み込みます。CD-ROMからアーキテクチャに合ったディレクトリ(w10/amd64)を選択してください。
Qemu Guest Agent
QEMU-GAはVM内部で動作し、ホストとの通信チャネルを提供します。
Linux
# Debian / Ubuntu
apt install qemu-guest-agent
# RHEL / Rocky / Alma
dnf install qemu-guest-agent
systemctl enable --now qemu-guest-agent
Windows
virtio-win-guest-tools インストーラーに含まれています。インストール後、QEMU Guest Agent サービスが自動起動します。
ホストからエージェントの動作確認:
qm agent <VMID> ping
Cloud-Initテンプレートによる自動デプロイ
Cloud-Initはクラウドインスタンスの初期化における業界標準です。Proxmoxはネイティブ対応しており、テンプレートVMを作成してクローンするだけで、カスタムネットワークやSSH鍵を設定できます。
# Cloud-Init対応VMの作成
qm create 9000 --memory 2048 --cores 2 --net0 virtio,bridge=vmbr0
qm importdisk 9000 jammy-server-cloudimg-amd64.img local-lvm
qm set 9000 --scsihw virtio-scsi-pci --scsi0 local-lvm:vm-9000-disk-0
qm set 9000 --ide2 local-lvm:cloudinit
qm set 9000 --boot c --bootdisk scsi0
qm set 9000 --serial0 socket --vga serial0
qm set 9000 --agent 1
qm template 9000
テンプレートからクローン:
qm clone 9000 100 --name web-server --full
qm set 100 --sshkeys ~/.ssh/id_rsa.pub
qm set 100 --ipconfig0 ip=192.168.1.50/24,gw=192.168.1.1
qm set 100 --ciuser ubuntu
qm start 100
VMのインポートとエクスポート
OVFインポート
qm importovf 200 vmware-export.ovf local-lvm
ディスクイメージの変換
qemu-img convert -f qcow2 -O vmdk vm-100-disk-0.qcow2 vm-100-disk-0.vmdk
対応形式: qcow2、raw、vmdk、vdi、vhdx、qed。
パフォーマンスチューニング
CPUピニングとNUMA
CPUピニングは仮想CPUを特定の物理コアに固定し、コンテキストスイッチのオーバーヘッドを排除します。
qm set <VMID> --cpulist 0-3,8-11 --numa 0
NUMA対応はVMにホストのNUMAトポロジーを認識させます。4vCPU以上のVMやメモリ集約型アプリケーションでは必ず有効にしてください。
バルーニングメモリ
バルーニングにより、ホストはゲストから未使用メモリを回収できます。データベースやJavaアプリケーションでは無効にします。
qm balloon <VMID> <memory-in-MB>
PCIeパススルーとGPUパススルー
IOMMUを有効にした上で、物理デバイスをVMに直接割り当てます。
# /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"
update-grub
reboot
デバイスの追加:
qm set <VMID> --hostpci0 01:00.0,pcie=1
メトリクスとモニタリング
ProxmoxのWeb UIではCPU、メモリ、ネットワーク、ディスクI/Oのグラフを確認できます。外部監視にはZabbix、Prometheus、Netdata、SNMPが利用可能です。
Datacenter → Notifications でゲストシャットダウンやバックアップ失敗などのイベント通知を設定できます。
