名前

qm - QEMU/KVM 仮想マシンマネージャー

SYNOPSIS

qm <COMMAND> [ARGS] [OPTIONS] です

qmエージェント

qm guest cmd のエイリアス。

qm cleanup <vmid> <clean-shutdown> <guest-requested>.

タップデバイスやvgpusなどのリソースをクリーンアップします。vm のシャットダウンやクラッシュなどの後に呼び出されます。

<vmid>: <整数> (100 - 999999999)

VMの(一意の)ID。

<クリーンシャットダウン>: <ブール値

qemuがクリーンにシャットダウンしたかどうかを示します。

<ゲストリクエスト>: <ブール値

シャットダウンがゲストによって要求されたか、qmp を介して要求されたかを示します。

qm clone <vmid> <newid> [OPTIONS].

仮想マシン/テンプレートのコピーを作成します。

<vmid>: <整数> (100 - 999999999)

VMの(一意の)ID。

<newid>: <整数> (100 - 999999999)

クローンの VMID。

--bwlimit <integer> (0 - N)(デフォルト = データセンターまたはストレージ設定からのクローン制限)

I/O帯域幅制限のオーバーライド(単位:KiB/s)。

--説明 <文字列

新しいVMの説明。

--format <qcow2 | raw | vmdk>.

ファイルストレージのターゲットフォーマット。フルクローンの場合のみ有効です。

--full <ブール値

すべてのディスクの完全コピーを作成します。これは通常のVMをクローンするときに必ず行われます。VMテンプレートでは、デフォルトでリンクされたクローンを作成しようとします。

--name <文字列

新しいVMの名前を設定します。

--プール <文字列

新しいVMを指定したプールに追加します。

--スナップネーム <文字列

スナップショットの名前。

--ストレージ ID

フルクローンの対象ストレージ。

--ターゲット <文字列

ターゲット・ノード。元のVMが共有ストレージ上にある場合にのみ許可されます。

qm cloudinit dump <vmid> <type>です。

自動生成された cloudinit 設定を取得します。

<vmid>: <整数> (100 - 999999999)

VMの(一意の)ID。

<type>: <meta | network | user> です。

コンフィグタイプ。

qm cloudinit pending <vmid>です。

cloudinitコンフィギュレーションを現在の値と保留中の値の両方で取得します。

<vmid>: <整数> (100 - 999999999)

VMの(一意の)ID。

qm cloudinit update <vmid>です。

cloudinit設定ドライブを再生成して変更します。

<vmid>: <整数> (100 - 999999999)

VMの(一意の)ID。

qm config <vmid> [OPTIONS].

保留中の構成変更を適用した仮想マシン構成を取得します。現在のコンフィギュレーションを取得するには、currentパラメータを設定します。

<vmid>: <整数> (100 - 999999999)

VMの(一意の)ID。

--カレント <ブール値>(デフォルト = 0)

保留値ではなく)現在の値を取得します。

--スナップショット <文字列

指定されたスナップショットから設定値を取得します。

qm create <vmid> [OPTIONS]

仮想マシンを作成またはリストアします。

<vmid>: <整数> (100 - 999999999)

VMの(一意の)ID。

--acpi <ブール値>(デフォルト = 1)

ACPI を有効/無効にします。

--アフィニティ <文字列

ゲストプロセスの実行に使用されるホストコアのリスト(例:0,5,8-11

--agent [enabled=]<1|0> [,freeze-fs-on-backup=<1|0>] [,fstrim_cloned_disks=<1|0>] [,type=<virtio|isa>].

QEMU ゲストエージェントとそのプロパティとの通信を有効/無効にします。

--amd-sev [type=]<sev-type>[,kernel-hashes=<1|0>][,no-debug=<1|0>][,no-key-sharing=<1|0>]。

AMD CPUによるセキュア暗号化仮想化(SEV)機能

--arch <aarch64 | x86_64>.

仮想プロセッサ・アーキテクチャ。デフォルトはホスト。

--アーカイブ <文字列

バックアップアーカイブ。.tarまたは.vmaファイルへのファイルシステムのパス(標準入力からデータをパイプする場合は-を使用)、またはproxmoxストレージのバックアップボリューム識別子。

--args <文字列

kvm に渡される任意の引数。

--audio0 device=<ich9-intel-hda|intel-hda|AC97> [,driver=<spice|none>].

QXL/Spiceと組み合わせると便利です。

--autostart <boolean>(デフォルト = 0)

クラッシュ後の自動再起動(現在は無視されています)。

--バルーン <整数> (0 - N)

VM のターゲット RAM の量 (MiB 単位)。ゼロを使用すると、バロンドライバが無効になります。

--bios <ovmf | seabios>(デフォルト = seabios)

BIOSの実装を選択します。

--boot [[legacy=]<[acdn]{1,4}>][,order=<デバイス[;デバイス...]>]]。

ゲストの起動順序を指定します。order=サブプロパティを使用してください。

--ブートディスク (ide|sata|scsi|virtio)◆d+.

指定したディスクからの起動を有効にします。非推奨:代わりにboot: order=foo;barを使用してください。

--bwlimit <integer> (0 - N)(デフォルト = データセンターまたはストレージ設定から制限を復元)

I/O帯域幅制限のオーバーライド(単位:KiB/s)。

--CDROM <ボリューム

これは -ide2 オプションのエイリアスです。

--cicustom [meta=<volume>] [,network=<volume>] [,user=<volume>] [,vendor=<volume>].

cloud-init:開始時に自動生成されるファイルを置き換えるカスタムファイルを指定します。

--パスワード

cloud-init:ユーザーに割り当てるパスワード。一般的に、これを使うことは推奨されません。代わりに ssh 鍵を使います。また、古いバージョンの cloud-init はハッシュ化されたパスワードをサポートしていないことに注意しましょう。

--citype <configdrive2 | nocloud | opennebula>.

cloud-init設定フォーマットを指定します。デフォルトは、設定されているオペレーティングシステムの種類(ostype.Linuxではnocloud形式、Windowsではconfigdrive2を使用します。

--ciupgrade <ブール値>(デフォルト = 1)

cloud-init: 最初の起動後にパッケージの自動アップグレードを行います。

--ciuser <文字列

cloud-init:イメージに設定されているデフォルトユーザーの代わりに、sshキーとパスワードを変更するユーザー名。

--コア数 <整数> (1 - N)(デフォルト = 1)

ソケットあたりのコア数。

--cpu [[cputype=]<string>] ][,フラグ=<+FLAG[;-FLAG...]>] ]を指定します。[,hidden=<1|0>] [,hv-vendor-id=<vendor-id>] [,phys-bits=<8-64|host>] [,reported-model=<enum>]。

エミュレートされたCPUタイプ。

--cpulimit <number> (0 - 128)(デフォルト = 0)

CPU使用量の上限。

--cpuunits <integer> (1 - 262144)(デフォルト = cgroup v1: 1024, cgroup v2: 100)

VM の CPU ウェイトは、cgroup v2 では [1, 10000] にクランプされます。

--説明 <文字列

VM の説明。WebインターフェイスのVMのサマリーに表示されます。コンフィギュレーション・ファイルのコメントとして保存されます。

--efidisk0 [file=]<volume> [,efitype=<2m|4m>] [,format=<enum>] [,import-from=<ソースボリューム>] [,pre-enrolled-keys=<1|0>] [,size=<DiskSize>].

EFIバーを格納するディスクを設定します。新しいボリュームを割り当てるには、特別な構文 STORAGE_ID:SIZE_IN_GiB を使用します。SIZE_IN_GiBはここでは無視され、代わりにデフォルトのEFIバーがボリュームにコピーされることに注意してください。既存のボリュームからインポートするには、STORAGE_ID:0とimport-fromパラメータを使用します。

--force <ブール値

既存のVMの上書きを許可します。

Note 必要なオプション:archive
--フリーズ <ブール値

起動時にCPUをフリーズ(cmonitorコマンドで実行開始)。

--hookscript <文字列

vmsのライフタイムの様々なステップで実行されるスクリプト。

--hostpci[n] [[host=]<HOSTPCIID[;HOSTPCIID2...]>][,device-id=<hex id>] [,legacy-igd=<1|0>] [,mapping=<mapping-id>] [,mdev=<string>] [,pcie=<1|0>] [,rombar=<1|0> ] [,romfile=<string>] [,sub-devpci=<1|0>] [[host=]<HOSTPCIID[;HOSTPCIID2...]>]。] [,romfile=<string>] [,sub-device-id=<hex id>] [,sub-vendor-id=<hex id>] [,vendor-id=<hex id>] [,x-vga=<1|0>] となります。

ホストのPCIデバイスをゲストにマッピングします。

--hotplug <string>(デフォルト = ネットワーク,ディスク,USB)

ホットプラグ機能を選択的に有効にします。これはカンマ区切りのホットプラグ機能のリストです:ネットワークディスクCPUメモリUSBcloudinit。ホットプラグを完全に無効にするには0を使用します。値として1 を使用すると、デフォルトのnetwork、disk、usb のエイリアスになります。USB ホットプラグは、マシンのバージョンが >= 7.1 で、ostype l26 または Windows > 7 のゲストで可能です。

--hugepages <1024 | 2 | any>.

hugepagesメモリの有効/無効。

--ide[n] [file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<ソース・ボリューム>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<CDROM|DISK] [,model=<model>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>] となります。

ボリュームをIDEハードディスクまたはCD-ROMとして使用します(nは0~3)。新しいボリュームを割り当てるには、特別な構文STORAGE_ID:SIZE_IN_GiBを使用します。既存のボリュームからインポートするには、STORAGE_ID:0とimport-fromパラメータを使用します。

--import-working-storage <ストレージID>.

インポート時に中間抽出ストレージとして使用されますデフォルトはソースストレージです。

--ipconfig[n] [gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>].

cloud-init:対応するインターフェースのIPアドレスとゲートウェイを指定します。

IPアドレスはCIDR表記を使用し、ゲートウェイはオプションですが、同じタイプのIPを指定する必要があります。

特別な文字列dhcpは、DHCPを使用するIPアドレスに使用することができ、その場合、明示的なゲートウェイを提供する必要はありません。 IPv6の場合、特別な文字列autoは、ステートレス自動設定を使用するために使用することができます。これにはcloud-init 19.4以降が必要です。

cloud-initが有効で、IPv4アドレスもIPv6アドレスも指定されていない場合、デフォルトではIPv4でdhcpを使用します。

--ivshmem size=<整数> [,name=<文字列>] です。

VM間共有メモリ。VM間やホストとの直接通信に便利。

--keephugepages <boolean>(デフォルト = 0)

hugepagesと一緒に使用します。有効にすると、hugepagesはVMシャットダウン後も削除されず、その後の起動に使用できます。

--keyboard <da | de | de-ch | en-gb | en-us | es | fi | fr | fr-be | fr-ca | fr-ch | hu | is | it | ja | lt | mk | nl | no | pl | pt | pt-br | sl | sv | tr>.

VNC サーバーのキーボードレイアウト。このオプションは一般的には必要なく、ゲストOS内で処理した方が良い場合が多いです。

--kvm <論理値>(デフォルト = 1)

KVMハードウェア仮想化の有効/無効を設定します。

--ライブリストア <ブール値

バックグラウンドでインポートまたはリストアしている間、VMを直ちに起動します。

--ローカルタイム <ブール値

リアルタイムクロック(RTC)をローカルタイムに設定します。ostypeがMicrosoft Windows OSの場合、デフォルトで有効になります。

--lock <バックアップ|クローン|作成|マイグレーション|ロールバック|スナップショット|スナップショット削除|サスペンド|一時停止>。

VMをロック/アンロックします。

--マシン [[タイプ=]<マシンタイプ>]] [,viommu=<intel|virtio>]] [viommu=<intel|virtio>]です。

QEMUマシンを指定します。

--メモリ [current=]<整数

メモリ特性。

--migrate_downtime <number> (0 - N)(デフォルト = 0.1)

マイグレーションの最大許容ダウンタイム(秒)を設定します。新しく汚れたRAMを転送する必要があるため、マイグレーションが最後まで収束しない場合、マイグレーションが収束するまで、この上限は自動的に段階的に増加します。

--migrate_speed <integer> (0 - N)(デフォルト = 0)

マイグレーションの最大速度(MB/s)を設定します。値 0 は制限なしです。

--name <文字列

VM の名前を設定します。コンフィギュレーションWebインターフェイスでのみ使用します。

--ネームサーバー <文字列

cloud-init:コンテナの DNS サーバー IP アドレスを設定します。searchdomain も nameserver も設定されていない場合、Create は自動的にホストからの設定を使用します。

--net[n] [model=]<enum> [,bridge=<bridge>] [,firewall=<1|0>] [,link_down=<1|0>] [,macaddr=<XX:XX:XX:XX:XX:XX>] [,mtu=<integer>] [,queues=<integer>] [,rate=<number>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>][,<model>=<macaddr>] [,<model>=<macaddr>] [,<model>=<macaddr

ネットワーク機器を指定します。

--numa <boolean>(デフォルト = 0)

NUMAの有効/無効。

--numa[n] cpus=<id[-id];...> [,hostnodes=<id[-id];...>]を指定します。[,memory=<number>] [,policy=<preferred|bind|interleave>]となります。

NUMAトポロジー。

--onboot <boolean>(デフォルト = 0)

システム起動時に VM を起動するかどうかを指定します。

--ostype <l24 | l26 | other | solaris | w2k | w2k3 | w2k8 | win10 | win11 | win7 | win8 | wvista | wxp>.

ゲストオペレーティングシステムを指定します。

--parallel[n] /dev/parportd+|/dev/usb/lpd+

ホスト・パラレル・デバイスをマップします(nは0~2)。

--プール <文字列

VMを指定したプールに追加します。

--プロテクション <ブール値>(デフォルト = 0)

VM の保護フラグを設定します。これにより、VM の削除とディスクの削除操作が無効になります。

--reboot <boolean>(デフォルト = 1)

再起動を許可。0に設定すると、VM は再起動時に終了します。

--rng0 [source=]</dev/urandom|/dev/random|/dev/hwrng> [,max_bytes=<integer>] [,period=<integer>].

VirtIO ベースの乱数ジェネレータを設定します。

--sata[n] [file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<ソース・ボリューム>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0> ]。] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]。

ボリュームをSATAハードディスクまたはCD-ROMとして使用します(nは0~5)。新しいボリュームを割り当てるには、特別な構文 STORAGE_ID:SIZE_IN_GiB を使用します。既存のボリュームからインポートするには、STORAGE_ID:0とimport-fromパラメータを使用します。

--scsi[n] [[file=]<volume> [,aio=<native|threads|io_uring>>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<ソースボリューム>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,product=<product>] [,queues=<integer>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,ro=<1|0>] [,scsiblock=<1|0>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0> ]。] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,vendor=<vendor>] [,werror=<enum>] [,wwn=<wwn>] となります。

ボリュームをSCSIハードディスクまたはCD-ROMとして使用します(nは0~30)。新しいボリュームを割り当てるには、特別な構文STORAGE_ID:SIZE_IN_GiBを使用します。既存のボリュームからインポートするには、STORAGE_ID:0とimport-fromパラメータを使用します。

--scihw <lsi | lsi53c810 | megasas | pvscsi | virtio-scsi-pci | virtio-scsi-single>(デフォルト = lsi)

SCSIコントローラモデル

--検索ドメイン <文字列

cloud-init:コンテナのDNS検索ドメインを設定します。searchdomainもnameserverも設定されていない場合、Createはホストからの設定を自動的に使用します。

-シリアル[n] (/dev/.+|socket)

VM内にシリアル・デバイスを作成(nは0~3)

--shares <integer> (0 - 50000)(デフォルト = 1000)

オート・バルーニングのメモリ・シェア量。この数値が大きいほど、このVMはより多くのメモリを取得します。数値は、他のすべての実行中のVMの重みに対する相対値です。ゼロを使用すると、オートバルーニングは無効になります。オートバルーニングはpvestatdによって実行されます。

--smbios1 [base64=<1|0>] [,family=<Base64エンコードされた文字列>] [,manufacturer=<Base64エンコードされた文字列>] [,product=<Base64エンコードされた文字列] [,serial=<Base64エンコードされた文字列>] [,sku=<Base64エンコードされた文字列>] [,uuid=<UUID>] [,version=<Base64エンコードされた文字列>] となります

SMBIOSタイプ1のフィールドを指定します。

--smp <整数> (1 - N)(デフォルト = 1)

CPU数。代わりに -sockets オプションを使用してください。

--ソケット <整数> (1 - N)(デフォルト = 1)

CPUソケットの数。

--spice_enhancements [foldersharing=<1|0>] [,videostreaming=<off|all|filter>]。

SPICE の追加機能拡張を設定します。

--sshkeys <ファイルパス

cloud-init:公開 SSH 鍵を設定します (1 行に 1 つの鍵、OpenSSH 形式)。

--start <boolean>(デフォルト = 0)

VMの作成に成功したら、VMを起動します。

--startdate (now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)(default = now)

リアルタイムクロックの初期日付を設定します。有効な日付のフォーマットは'now'または2006-06-17T16:01:21または2006-06-17です。

--startup`[[order=]\d+] [,up=d+] [,down=d+] `.

スタートアップとシャットダウンの動作。Orderは一般的な起動順序を定義する非負の数値です。シャットダウンは逆の順序で行われます。さらに、次のVMが起動または停止するまでの待ち時間を秒単位で設定できます

--ストレージ ID

デフォルトのストレージ。

--tablet <ブール値>(デフォルト = 1)

USBタブレットデバイスを有効/無効にします。

--タグ <文字列

VM のタグ。これは単なるメタ情報です。

--tdf <ブール値>(デフォルト = 0)

時間ドリフト修正の有効/無効。

--テンプレート <ブール値>(デフォルト = 0)

テンプレートの有効/無効。

--tpmstate0 [ファイル=]<ボリューム> [,インポート元=<ソースボリューム>] [,サイズ=<ディスクサイズ>] [,バージョン=<v1.2|v2.0>]。

TPMの状態を保存するDiskを設定します。フォーマットはrawに固定されています。新しいボリュームを割り当てるには、特別な構文 STORAGE_ID:SIZE_IN_GiB を使用します。SIZE_IN_GiBはここでは無視され、代わりに4MiBが使用されることに注意してください。既存のボリュームからインポートするには、STORAGE_ID:0とimport-fromパラメータを使用します。

--unique <ブール値

一意のランダムなイーサネットアドレスを割り当てます。

Note 必要なオプション:archive
--unused[n] [file=]<volume>

未使用ボリュームへの参照。これは内部的に使用されるので、手動で変更しないでください。

--usb[n] [[host=]<HOSTUSBDEVICE|spice>]の場合[,マッピング=<マッピングID>] [,usb3=<1|0]

USBデバイスを設定します(nは0~4、マシンのバージョンが7.1以上、かつostype l26またはwindows > 7の場合、nは最大14まで)。

--vcpus <整数> (1 - N)(デフォルト = 0)

ホットプラグされたvcpusの数。

--vga [[タイプ=]<enum>]] [[クリップボード=<vnc[クリップボード=<vnc>] [,メモリ=<整数]

VGAハードウェアを設定します。

--virtio[n] [file=]<volume> [,aio=<native|threads|io_uring>>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<ソース・ボリューム>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,ro=<1|0>] [,secs=<integer> ] [,serial=<serial] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,secs=<integer>>のように指定します。

ボリュームをVIRTIOハードディスクとして使用します(nは0~15)。新しいボリュームを割り当てるには、特別な構文 STORAGE_ID:SIZE_IN_GiB を使用します。既存のボリュームからインポートするには、STORAGE_ID:0とimport-fromパラメータを使用します。

--vmgenid <UUID>(デフォルト = 1 (自動生成))

VM生成IDを設定します。作成または更新時に自動生成する場合は1 を使用し、明示的に無効にする場合は0 を渡します。

--vmstatestorage <ストレージID>。

VM 状態ボリューム/ファイルのデフォルトストレージ。

--watchdog [[model=]<i6300esb|ib700>][アクション]

仮想ハードウェア・ウォッチドッグ・デバイスを作成します。

qm delsnapshot <vmid> <snapname> [OPTIONS].

VMスナップショットを削除します。

<vmid>: <整数> (100 - 999999999)

VMの(一意の)ID。

<スナップ名>: <文字列

スナップショットの名前。

--force <ブール値

ディスクスナップショットの削除に失敗した場合でも、設定ファイルから削除できます。

qm destroy <vmid> [OPTIONS].

VM とすべての使用済み/所有ボリュームを破棄します。VM固有の権限とファイアウォールルールを削除します。

<vmid>: <整数> (100 - 999999999)

VMの(一意の)ID。

--destroy-unreferenced-disks <boolean>(デフォルト = 0)

設定されている場合、有効になっているすべてのストレージから、VMIDが一致し、設定内で参照されていないすべてのディスクを追加で破棄します。

--パージ <ブール値

バックアップ&レプリケーションジョブやHAなどの構成からVMIDを削除します。

--スキップロック <ブール値

Ignore locks - rootのみがこのオプションを使用できます。

qm disk import <vmid> <source> <storage> [OPTIONS] .

VM の未使用ディスクとして外部ディスクイメージをインポート。イメージフォーマットは qemu-img(1) でサポートされている必要があります。

<vmid>: <整数> (100 - 999999999)

VMの(一意の)ID。

<ソース>: <文字列

インポートするディスクイメージへのパス

<ストレージ>: <ストレージID

対象ストレージID

--format <qcow2 | raw | vmdk>.

対象フォーマット

-ターゲットディスク <efidisk0 | ide0 | ide1 | ide2 | ide3 | sata0 | sata1 | sata2 | sata3 | sata4 | sata5 | scsi0 | scsi1 | scsi10 | scsi11 | scsi12 | scsi13 | scsi14 | scsi15 | scsi16 | scsi17 | scsi18 | scsi19 | scsi2 | scsi20 | scsi21| scsi22|scsi23|scsi24|scsi25|scsi26|scsi27|scsi28|scsi29|scsi3|scsi30|scsi4|scsi5|scsi6|scsi7|scsi8|scsi9|tpmstate0|unused0|unused1|unused10|unused100|unused101|unused102|unused未使用103|未使用104|未使用105|未使用106|未使用107|未使用108|未使用109|未使用11|未使用110|未使用111|未使用112|未使用113|未使用114|未使用115|未使用116|未使用117|未使用118|未使用119|未使用119未使用12|未使用120|未使用121|未使用122|未使用123|未使用124|未使用125|未使用126|未使用127|未使用128|未使用129|未使用13|未使用130|未使用131|未使用132|未使用133|未使用134|未使用135|未使用136| 未使用137|未使用138|未使用139|未使用14|未使用140|未使用141|未使用142|未使用143|未使用144|未使用145|未使用146|未使用147|未使用148|未使用149|未使用15|未使用150|未使用151|未使用152| 未使用153|未使用154|未使用155|未使用156|未使用157|未使用158|未使用159|未使用16|未使用160|未使用161|未使用162|未使用163|未使用164|未使用165|未使用166|未使用167|未使用168|未使用169未使用17|未使用170|未使用171|未使用172|未使用173|未使用174|未使用175|未使用176|未使用177|未使用178|未使用179|未使用18|未使用180|未使用181|未使用182|未使用183|未使用184|未使用185未使用186名|未使用187名|未使用188名|未使用189名|未使用189名|未使用191名|未使用192名|未使用193名|未使用194名|未使用195名|未使用196名|未使用197名|未使用198名|未使用199名|未使用2名|未使用20名|未使用200名|未使用201名未使用202|未使用203|未使用204|未使用205|未使用206|未使用207|未使用208|未使用209|未使用21|未使用210|未使用211|未使用212|未使用213|未使用214|未使用215|未使用216|未使用217|未使用218未使用219|未使用22|未使用220|未使用221|未使用222|未使用223|未使用224|未使用225|未使用226|未使用227|未使用228|未使用229|未使用23|未使用230|未使用231|未使用232|未使用233|未使用234|未使用235| 未使用236|未使用237|未使用238|未使用239|未使用24|未使用240|未使用241|未使用242|未使用243|未使用244|未使用245|未使用246|未使用247|未使用248|未使用249|未使用25|未使用250|未使用251|未使用252|未使用253|未使用252|未使用253|未使用254|未使用245|未使用246|未使用247|未使用248|未使用249|未使用25|未使用250|未使用251未使用252|未使用253|未使用254|未使用255|未使用26|未使用27|未使用28|未使用29|未使用3|未使用30|未使用31|未使用32|未使用33|未使用34|未使用35|未使用36|未使用37|未使用38|未使用39|未使用4|未使用未使用40|未使用41|未使用42|未使用43|未使用44|未使用45|未使用46|未使用47|未使用48|未使用49|未使用5|未使用50|未使用51|未使用52|未使用53|未使用54|未使用55|未使用56|未使用57|未使用58| 未使用6|未使用60|未使用61|未使用62|未使用63|未使用64|未使用65|未使用66|未使用67|未使用68|未使用69|未使用7|未使用70|未使用71|未使用72|未使用73|未使用74|未使用75|未使用76|未使用76未使用77|未使用78|未使用79|未使用8|未使用80|未使用81|未使用82|未使用83|未使用84|未使用85|未使用86|未使用87|未使用88|未使用89|未使用9|未使用90|未使用91|未使用92|未使用93|未使用94|未使用未使用95|未使用96|未使用97|未使用98|未使用99|virtio0|virtio1|virtio10|virtio11|virtio12|virtio13|virtio14|virtio15|virtio2|virtio3|virtio4|virtio5|virtio6|virtio7|virtio8|virtio9>。

ボリュームのインポート先のディスク名(例:scsi1)。

qm disk move <vmid> <disk> [<storage>] [OPTIONS].

ボリュームを別のストレージまたは別のVMに移動します。

<vmid>: <整数> (100 - 999999999)

VMの(一意の)ID。

<ディスク>: <efidisk0 | ide0 | ide1 | ide2 | ide3 | sata0 | sata1 | sata2 | sata3 | sata4 | sata5 | scsi0 | scsi1 | scsi10 | scsi11 | scsi12 | scsi13 | scsi14 | scsi15 | scsi16 | scsi17 | scsi18 | scsi19 | scsi2 | scsi20 | scsi21| scsi22|scsi23|scsi24|scsi25|scsi26|scsi27|scsi28|scsi29|scsi3|scsi30|scsi4|scsi5|scsi6|scsi7|scsi8|scsi9|tpmstate0|unused0|unused1|unused10|unused100|unused101|unused102|unused未使用103|未使用104|未使用105|未使用106|未使用107|未使用108|未使用109|未使用11|未使用110|未使用111|未使用112|未使用113|未使用114|未使用115|未使用116|未使用117|未使用118|未使用119|未使用119未使用12|未使用120|未使用121|未使用122|未使用123|未使用124|未使用125|未使用126|未使用127|未使用128|未使用129|未使用13|未使用130|未使用131|未使用132|未使用133|未使用134|未使用135|未使用136| 未使用137|未使用138|未使用139|未使用14|未使用140|未使用141|未使用142|未使用143|未使用144|未使用145|未使用146|未使用147|未使用148|未使用149|未使用15|未使用150|未使用151|未使用152| 未使用153|未使用154|未使用155|未使用156|未使用157|未使用158|未使用159|未使用16|未使用160|未使用161|未使用162|未使用163|未使用164|未使用165|未使用166|未使用167|未使用168|未使用169未使用17|未使用170|未使用171|未使用172|未使用173|未使用174|未使用175|未使用176|未使用177|未使用178|未使用179|未使用18|未使用180|未使用181|未使用182|未使用183|未使用184|未使用185未使用186名|未使用187名|未使用188名|未使用189名|未使用189名|未使用191名|未使用192名|未使用193名|未使用194名|未使用195名|未使用196名|未使用197名|未使用198名|未使用199名|未使用2名|未使用20名|未使用200名|未使用201名未使用202|未使用203|未使用204|未使用205|未使用206|未使用207|未使用208|未使用209|未使用21|未使用210|未使用211|未使用212|未使用213|未使用214|未使用215|未使用216|未使用217|未使用218未使用219|未使用22|未使用220|未使用221|未使用222|未使用223|未使用224|未使用225|未使用226|未使用227|未使用228|未使用229|未使用23|未使用230|未使用231|未使用232|未使用233|未使用234|未使用235| 未使用236|未使用237|未使用238|未使用239|未使用24|未使用240|未使用241|未使用242|未使用243|未使用244|未使用245|未使用246|未使用247|未使用248|未使用249|未使用25|未使用250|未使用251|未使用252|未使用253|未使用252|未使用253|未使用254|未使用245|未使用246|未使用247|未使用248|未使用249|未使用25|未使用250|未使用251未使用252|未使用253|未使用254|未使用255|未使用26|未使用27|未使用28|未使用29|未使用3|未使用30|未使用31|未使用32|未使用33|未使用34|未使用35|未使用36|未使用37|未使用38|未使用39|未使用4|未使用未使用40|未使用41|未使用42|未使用43|未使用44|未使用45|未使用46|未使用47|未使用48|未使用49|未使用5|未使用50|未使用51|未使用52|未使用53|未使用54|未使用55|未使用56|未使用57|未使用58| 未使用6|未使用60|未使用61|未使用62|未使用63|未使用64|未使用65|未使用66|未使用67|未使用68|未使用69|未使用7|未使用70|未使用71|未使用72|未使用73|未使用74|未使用75|未使用76|未使用76未使用77|未使用78|未使用79|未使用8|未使用80|未使用81|未使用82|未使用83|未使用84|未使用85|未使用86|未使用87|未使用88|未使用89|未使用9|未使用90|未使用91|未使用92|未使用93|未使用94|未使用未使用95|未使用96|未使用97|未使用98|未使用99|virtio0|virtio1|virtio10|virtio11|virtio12|virtio13|virtio14|virtio15|virtio2|virtio3|virtio4|virtio5|virtio6|virtio7|virtio8|virtio9>。

移動したいディスク。

<ストレージ>: <ストレージID

対象のストレージ

--bwlimit <integer> (0 - N)(デフォルト = データセンターまたはストレージ設定から制限を移動)

I/O帯域幅制限のオーバーライド(単位:KiB/s)。

--delete <boolean>(デフォルト = 0)

コピー成功後、元のディスクを削除します。デフォルトでは、元のディスクは未使用ディスクとして保持されます。

-ダイジェスト <文字列

現在の設定ファイルのSHA1" . "ダイジェストが異なる場合、変更を防止します。これは、同時変更を防ぐために使用できます。

--format <qcow2 | raw | vmdk>.

対象フォーマット

-ターゲット・ダイジェスト <文字列

ターゲットVMの現在のコンフィグファイルのSHA1ダイジェストが" . "異なる場合、変更を防止します。これは、同時変更を検出するために使用できます。

-ターゲットディスク <efidisk0 | ide0 | ide1 | ide2 | ide3 | sata0 | sata1 | sata2 | sata3 | sata4 | sata5 | scsi0 | scsi1 | scsi10 | scsi11 | scsi12 | scsi13 | scsi14 | scsi15 | scsi16 | scsi17 | scsi18 | scsi19 | scsi2 | scsi20 | scsi21| scsi22|scsi23|scsi24|scsi25|scsi26|scsi27|scsi28|scsi29|scsi3|scsi30|scsi4|scsi5|scsi6|scsi7|scsi8|scsi9|tpmstate0|unused0|unused1|unused10|unused100|unused101|unused102|unused未使用103|未使用104|未使用105|未使用106|未使用107|未使用108|未使用109|未使用11|未使用110|未使用111|未使用112|未使用113|未使用114|未使用115|未使用116|未使用117|未使用118|未使用119|未使用119未使用12|未使用120|未使用121|未使用122|未使用123|未使用124|未使用125|未使用126|未使用127|未使用128|未使用129|未使用13|未使用130|未使用131|未使用132|未使用133|未使用134|未使用135|未使用136| 未使用137|未使用138|未使用139|未使用14|未使用140|未使用141|未使用142|未使用143|未使用144|未使用145|未使用146|未使用147|未使用148|未使用149|未使用15|未使用150|未使用151|未使用152| 未使用153|未使用154|未使用155|未使用156|未使用157|未使用158|未使用159|未使用16|未使用160|未使用161|未使用162|未使用163|未使用164|未使用165|未使用166|未使用167|未使用168|未使用169未使用17|未使用170|未使用171|未使用172|未使用173|未使用174|未使用175|未使用176|未使用177|未使用178|未使用179|未使用18|未使用180|未使用181|未使用182|未使用183|未使用184|未使用185未使用186名|未使用187名|未使用188名|未使用189名|未使用189名|未使用191名|未使用192名|未使用193名|未使用194名|未使用195名|未使用196名|未使用197名|未使用198名|未使用199名|未使用2名|未使用20名|未使用200名|未使用201名未使用202|未使用203|未使用204|未使用205|未使用206|未使用207|未使用208|未使用209|未使用21|未使用210|未使用211|未使用212|未使用213|未使用214|未使用215|未使用216|未使用217|未使用218未使用219|未使用22|未使用220|未使用221|未使用222|未使用223|未使用224|未使用225|未使用226|未使用227|未使用228|未使用229|未使用23|未使用230|未使用231|未使用232|未使用233|未使用234|未使用235| 未使用236|未使用237|未使用238|未使用239|未使用24|未使用240|未使用241|未使用242|未使用243|未使用244|未使用245|未使用246|未使用247|未使用248|未使用249|未使用25|未使用250|未使用251未使用252|未使用253|未使用254|未使用255|未使用26|未使用27|未使用28|未使用29|未使用3|未使用30|未使用31|未使用32|未使用33|未使用34|未使用35|未使用36|未使用37|未使用38|未使用39|未使用4|未使用未使用40|未使用41|未使用42|未使用43|未使用44|未使用45|未使用46|未使用47|未使用48|未使用49|未使用5|未使用50|未使用51|未使用52|未使用53|未使用54|未使用55|未使用56|未使用57|未使用58| 未使用6|未使用60|未使用61|未使用62|未使用63|未使用64|未使用65|未使用66|未使用67|未使用68|未使用69|未使用7|未使用70|未使用71|未使用72|未使用73|未使用74|未使用75|未使用76|未使用76未使用77|未使用78|未使用79|未使用8|未使用80|未使用81|未使用82|未使用83|未使用84|未使用85|未使用86|未使用87|未使用88|未使用89|未使用9|未使用90|未使用91|未使用92|未使用93|未使用94|未使用未使用95|未使用96|未使用97|未使用98|未使用99|virtio0|virtio1|virtio10|virtio11|virtio12|virtio13|virtio14|virtio15|virtio2|virtio3|virtio4|virtio5|virtio6|virtio7|virtio8|virtio9>。

ターゲット VM 上でディスクが移動される設定キー (例えば、ide0 または scsi1)。デフォルトはソースディスクキーです。

--ターゲット-vmid <整数> (100 - 999999999)

VMの(一意の)ID。

qm disk rescan [OPTIONS] (ディスク再スキャン)

すべてのストレージを再スキャンし、ディスクサイズと未使用ディスクイメージを更新します。

--ドライラン <ブール値>(デフォルト = 0)

VM config(s)に実際に変更を書き出さないようにします。

--vmid <整数> (100 - 999999999)

VMの(一意の)ID。

qm disk resize <vmid> <disk> <size> [OPTIONS].

ボリュームサイズを拡張します。

<vmid>: <整数> (100 - 999999999)

VMの(一意の)ID。

<ディスク>: <efidisk0 | ide0 | ide1 | ide2 | ide3 | sata0 | sata1 | sata2 | sata3 | sata4 | sata5 | scsi0 | scsi1 | scsi10 | scsi11 | scsi12 |Scsi13 | Scsi14 | Scsi15 | Scsi16 | Scsi17 | Scsi18 | Scsi19 | Scsi2 | Scsi20 | Scsi21 | Scsi22 | Scsi23 | Scsi24 | Scsi25 | Scsi26 |scsi27|scsi28|scsi29|scsi3|scsi30|scsi4|scsi5|scsi6|scsi7|scsi8|scsi9|tpmstate0|virtio0|virtio1|virtio10|virtio11|virtio12|virtio13|virtio14|virtio15|virtio2|virtio3|virtio4|virtio5|virtio6|virtio7|virtio8|virtio9

リサイズしたいディスク。

<サイズ>です: \+?\d+(\.\d+)?[KMGT]?

新しいサイズ。記号を付けると、その値はボリュームの実際のサイズに加算され、付けない場合は絶対値となります。ディスク・サイズの縮小はサポートされていません。

-ダイジェスト <文字列

現在の設定ファイルの SHA1 ダイジェストが異なる場合に変更を防止します。これは、同時変更を防ぐために使用できます。

--スキップロック <ブール値

Ignore locks - rootのみがこのオプションを使用できます。

qm disk unlink <vmid> --idlist <string> [OPTIONS].

ディスクイメージのリンク解除/削除

<vmid>: <整数> (100 - 999999999)

VMの(一意の)ID。

--force <ブール値

物理的な削除を強制します。これがないと、単純に設定ファイルからディスクを削除し、ボリュームIDを含むunused[n]という追加の設定エントリを作成します。unused[n]のリンク解除は、常に物理的な削除を引き起こします。

--idlist <文字列

削除したいディスク ID のリスト。

qm guest cmd <vmid> <command

QEMU Guest Agentのコマンドを実行します。

<vmid>: <整数> (100 - 999999999)

VMの(一意の)ID。

<command>: <fsfreeze-freeze|fsfreeze-status|fsfreeze-thaw|fstrim|get-fsinfo|get-host-name|get-memory-block-info|get-memory-blocks|get-osinfo|get-time|get-timezone|get-users|get-vcpus|info|network-get-interfaces|ping|shutdown|suspend-disk|suspend-hybrid|suspend-ram>。

QGAコマンド。

qm guest exec <vmid> [<extra-args>] [OPTIONS].

ゲストエージェント経由で指定されたコマンドを実行します。

<vmid>: <整数> (100 - 999999999)

VMの(一意の)ID。

<extra-args>: <array> です。

配列としての追加引数

--pass-stdin <ブール値>(デフォルト = 0)

設定されると、EOF まで STDIN を読み込み、input-data経由でゲストエージェントに転送します (通常、ゲストエージェントによって起動されるプロセスの STDIN として扱われます)。最大 1MiB を許可します。

--同期 <ブール値>(デフォルト = 1)

off に設定すると、コマンドの終了やタイムアウトを待たずに、即座に pid を返します。

--タイムアウト <整数> (0 - N)(デフォルト = 30)

コマンドが終了するまで同期的に待つ最大時間。到達した場合、pidが返されます。無効にするには0を設定します。

qm guest exec-status <vmid> <pid>.

ゲストエージェントによって開始された指定された pid のステータスを取得します。

<vmid>: <整数> (100 - 999999999)

VMの(一意の)ID。

<pid>: <整数

問い合わせるPID

qm guest passwd <vmid> <username> [OPTIONS].

指定されたユーザのパスワードを指定されたパスワードに設定します。

<vmid>: <整数> (100 - 999999999)

VMの(一意の)ID。

<ユーザー名>: <文字列

パスワードを設定するユーザー。

--暗号化 <ブール値>(デフォルト = 0)

パスワードが既に crypt() を通過している場合は 1 を設定します。

qm help [OPTIONS]

指定したコマンドに関するヘルプを表示します。

--extra-args <array> です

特定のコマンドのヘルプを表示します。

--verbose <ブール値

冗長出力フォーマット。

qm import <vmid> <source> --storage <string> [OPTIONS] .

ESXi ストレージなど、サポートされているインポートソースから外国の仮想ゲストをインポートします。

<vmid>: <整数> (100 - 999999999)

VMの(一意の)ID。

<ソース>: <文字列

インポート元のボリューム ID。

--acpi <ブール値>(デフォルト = 1)

ACPI を有効/無効にします。

--アフィニティ <文字列

ゲストプロセスの実行に使用されるホストコアのリスト(例:0,5,8-11

--agent [enabled=]<1|0> [,freeze-fs-on-backup=<1|0>] [,fstrim_cloned_disks=<1|0>] [,type=<virtio|isa>].

QEMU ゲストエージェントとそのプロパティとの通信を有効/無効にします。

--amd-sev [type=]<sev-type>[,kernel-hashes=<1|0>][,no-debug=<1|0>][,no-key-sharing=<1|0>]。

AMD CPUによるセキュア暗号化仮想化(SEV)機能

--arch <aarch64 | x86_64>.

仮想プロセッサ・アーキテクチャ。デフォルトはホスト。

--args <文字列

kvm に渡される任意の引数。

--audio0 device=<ich9-intel-hda|intel-hda|AC97> [,driver=<spice|none>].

QXL/Spiceと組み合わせると便利です。

--autostart <boolean>(デフォルト = 0)

クラッシュ後の自動再起動(現在は無視されています)。

--バルーン <整数> (0 - N)

VM のターゲット RAM の量 (MiB 単位)。ゼロを使用すると、バロンドライバが無効になります。

--bios <ovmf | seabios>(デフォルト = seabios)

BIOSの実装を選択します。

--boot [[legacy=]<[acdn]{1,4}>][,order=<デバイス[;デバイス...]>]]。

ゲストの起動順序を指定します。order=サブプロパティを使用してください。

--ブートディスク (ide|sata|scsi|virtio)◆d+.

指定したディスクからの起動を有効にします。非推奨:代わりにboot: order=foo;barを使用してください。

--CDROM <ボリューム

これは -ide2 オプションのエイリアスです。

--cicustom [meta=<volume>] [,network=<volume>] [,user=<volume>] [,vendor=<volume>].

cloud-init:開始時に自動生成されるファイルを置き換えるカスタムファイルを指定します。

-パスワード <文字列

cloud-init:ユーザーに割り当てるパスワード。一般的に、これを使うことは推奨されません。代わりに ssh 鍵を使います。また、古いバージョンの cloud-init はハッシュ化されたパスワードをサポートしていないことに注意しましょう。

--citype <configdrive2 | nocloud | opennebula>.

cloud-init設定フォーマットを指定します。デフォルトは、設定されているオペレーティングシステムの種類(ostype.Linuxではnocloud形式、Windowsではconfigdrive2を使用します。

--ciupgrade <ブール値>(デフォルト = 1)

cloud-init: 最初の起動後にパッケージの自動アップグレードを行います。

--ciuser <文字列

cloud-init:イメージに設定されているデフォルトユーザーの代わりに、sshキーとパスワードを変更するユーザー名。

--コア数 <整数> (1 - N)(デフォルト = 1)

ソケットあたりのコア数。

--cpu [[cputype=]<string>] ][,フラグ=<+FLAG[;-FLAG...]>] ]を指定します。[,hidden=<1|0>] [,hv-vendor-id=<vendor-id>] [,phys-bits=<8-64|host>] [,reported-model=<enum>]。

エミュレートされたCPUタイプ。

--cpulimit <number> (0 - 128)(デフォルト = 0)

CPU使用量の上限。

--cpuunits <integer> (1 - 262144)(デフォルト = cgroup v1: 1024, cgroup v2: 100)

VM の CPU ウェイトは、cgroup v2 では [1, 10000] にクランプされます。

--削除 <文字列

削除したい設定のリスト。

--説明 <文字列

VM の説明。WebインターフェイスのVMのサマリーに表示されます。これはコンフィギュレーション・ファイルのコメントとして保存されます。

--ドライラン <ブール値>(デフォルト = 0)

createコマンドを表示し、何もせずに終了します。

--efidisk0 [file=]<volume> [,efitype=<2m|4m>] [,format=<enum>] [,pre-enrolled-keys=<1|0>] [,size=<DiskSize>].

EFIバーを保存するディスクを設定します。

--format <qcow2 | raw | vmdk>.

対象フォーマット

--フリーズ <ブール値

起動時にCPUをフリーズ(cmonitorコマンドで実行開始)。

--hookscript <文字列

vmsのライフタイムの様々なステップで実行されるスクリプト。

--hostpci[n] [[host=]<HOSTPCIID[;HOSTPCIID2...]>][,device-id=<hex id>] [,legacy-igd=<1|0>] [,mapping=<mapping-id>] [,mdev=<string>] [,pcie=<1|0>] [,rombar=<1|0> ] [,romfile=<string>] [,sub-devpci=<1|0>] [[host=]<HOSTPCIID[;HOSTPCIID2...]>]。] [,romfile=<string>] [,sub-device-id=<hex id>] [,sub-vendor-id=<hex id>] [,vendor-id=<hex id>] [,x-vga=<1|0>] となります。

ホストのPCIデバイスをゲストにマッピングします。

--hotplug <string>(デフォルト = ネットワーク,ディスク,USB)

ホットプラグ機能を選択的に有効にします。これはカンマ区切りのホットプラグ機能のリストです:ネットワークディスクCPUメモリUSBcloudinit。ホットプラグを完全に無効にするには0を使用します。値として1 を使用すると、デフォルトのnetwork、disk、usb のエイリアスになります。USB ホットプラグは、マシンのバージョンが >= 7.1 で、ostype l26 または Windows > 7 のゲストで可能です。

--hugepages <1024 | 2 | any>.

hugepagesメモリーの有効/無効。

--ide[n] [file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<秒>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,model=<model>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0> ] [,size=<Disk] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]。

ボリュームをIDEハードディスクまたはCD-ROMとして使用します(nは0~3)。

--ipconfig[n] [gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>].

cloud-init:対応するインターフェースのIPアドレスとゲートウェイを指定します。

IPアドレスはCIDR表記を使用し、ゲートウェイはオプションですが、同じタイプのIPを指定する必要があります。

特別な文字列dhcpは、DHCPを使用するIPアドレスに使用することができ、その場合、明示的なゲートウェイを提供する必要はありません。 IPv6の場合、特別な文字列autoは、ステートレス自動設定を使用するために使用することができます。これにはcloud-init 19.4以降が必要です。

cloud-initが有効で、IPv4アドレスもIPv6アドレスも指定されていない場合、デフォルトではIPv4でdhcpを使用します。

--ivshmem size=<整数> [,name=<文字列>] です。

VM間共有メモリ。VM間やホストとの直接通信に便利。

--keephugepages <boolean>(デフォルト = 0)

hugepagesと一緒に使用します。有効にすると、hugepagesはVMシャットダウン後も削除されず、その後の起動に使用できます。

--keyboard <da | de | de-ch | en-gb | en-us | es | fi | fr | fr-be | fr-ca | fr-ch | hu | is | it | ja | lt | mk | nl | no | pl | pt | pt-br | sl | sv | tr>.

VNC サーバーのキーボードレイアウト。このオプションは一般的には必要なく、ゲストOS内で処理した方が良い場合が多いです。

--kvm <論理値>(デフォルト = 1)

KVMハードウェア仮想化の有効/無効を設定します。

--live-import <boolean>(デフォルト = 0)

すぐにVMを起動し、バックグラウンドでデータをコピーします。

--ローカルタイム <ブール値

リアルタイムクロック(RTC)をローカルタイムに設定します。ostypeがMicrosoft Windows OSの場合、デフォルトで有効になります。

--lock <バックアップ|クローン|作成|マイグレーション|ロールバック|スナップショット|スナップショット削除|サスペンド|一時停止>。

VMをロック/アンロックします。

--マシン [[タイプ=]<マシンタイプ>]] [,viommu=<intel|virtio>]] [viommu=<intel|virtio>]です。

QEMUマシンを指定します。

--メモリ [current=]<整数

メモリ特性。

--migrate_downtime <number> (0 - N)(デフォルト = 0.1)

マイグレーションの最大許容ダウンタイム(秒)を設定します。新しく汚れたRAMを転送する必要があるため、マイグレーションが最後まで収束しない場合、マイグレーションが収束するまで、この制限を段階的に自動的に増やします。

--migrate_speed <integer> (0 - N)(デフォルト = 0)

マイグレーションの最大速度(MB/s)を設定します。値 0 は制限なしです。

--name <文字列

VM の名前を設定します。コンフィギュレーションWebインターフェイスでのみ使用します。

--ネームサーバー <文字列

cloud-init:コンテナの DNS サーバー IP アドレスを設定します。searchdomain も nameserver も設定されていない場合、Create は自動的にホストからの設定を使用します。

--net[n] [model=]<enum> [,bridge=<bridge>] [,firewall=<1|0>] [,link_down=<1|0>] [,macaddr=<XX:XX:XX:XX:XX:XX>] [,mtu=<integer>] [,queues=<integer>] [,rate=<number>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>][,<model>=<macaddr>] [,<model>=<macaddr>] [,<model>=<macaddr

ネットワーク機器を指定します。

--numa <boolean>(デフォルト = 0)

NUMAの有効/無効。

--numa[n] cpus=<id[-id];...> [,hostnodes=<id[-id];...>]を指定します。[,memory=<number>] [,policy=<preferred|bind|interleave>]となります。

NUMAトポロジー。

--onboot <boolean>(デフォルト = 0)

システム起動時に VM を起動するかどうかを指定します。

--ostype <l24 | l26 | other | solaris | w2k | w2k3 | w2k8 | win10 | win11 | win7 | win8 | wvista | wxp>.

ゲストオペレーティングシステムを指定します。

--parallel[n] /dev/parportd+|/dev/usb/lpd+

ホスト・パラレル・デバイスをマップします(nは0~2)。

--プロテクション <ブール値>(デフォルト = 0)

VM の保護フラグを設定します。これにより、VM の削除とディスクの削除操作が無効になります。

--reboot <boolean>(デフォルト = 1)

再起動を許可。0に設定すると、VM は再起動時に終了します。

--rng0 [source=]</dev/urandom|/dev/random|/dev/hwrng> [,max_bytes=<integer>] [,period=<integer>].

VirtIO ベースの乱数ジェネレータを設定します。

--sata[n] [file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<秒>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]。

ボリュームをSATAハードディスクまたはCD-ROMとして使用します(nは0~5)。

--scsi[n] [file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps> ]。] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,product=<product>] [,queues=<integer>] [,replicate=<1|0] [,rerror=<ignore|report|stop>] [,ro=<1|0>] [,scsiblock=<1|0>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,vendor=<vendor>] [,werror=<enum>] [,wwn=<wwn>] となります。

ボリュームをSCSIハードディスクまたはCD-ROMとして使用します(nは0~30)。

--scihw <lsi | lsi53c810 | megasas | pvscsi | virtio-scsi-pci | virtio-scsi-single>(デフォルト = lsi)

SCSIコントローラモデル

--検索ドメイン <文字列

cloud-init:コンテナのDNS検索ドメインを設定します。searchdomainもnameserverも設定されていない場合、Createはホストからの設定を自動的に使用します。

-シリアル[n] (/dev/.+|socket)

VM内にシリアル・デバイスを作成(nは0~3)

--shares <integer> (0 - 50000)(デフォルト = 1000)

オート・バルーニングのメモリ・シェア量。この数値が大きいほど、このVMはより多くのメモリを取得します。数値は、他のすべての実行中のVMの重みに対する相対値です。ゼロを使用すると、オートバルーニングは無効になります。オートバルーニングはpvestatdによって実行されます。

--smbios1 [base64=<1|0>] [,family=<Base64エンコードされた文字列>] [,manufacturer=<Base64エンコードされた文字列>] [,product=<Base64エンコードされた文字列] [,serial=<Base64エンコードされた文字列>] [,sku=<Base64エンコードされた文字列>] [,uuid=<UUID>] [,version=<Base64エンコードされた文字列>] となります

SMBIOSタイプ1のフィールドを指定します。

--smp <整数> (1 - N)(デフォルト = 1)

CPU数。代わりに -sockets オプションを使用してください。

--ソケット <整数> (1 - N)(デフォルト = 1)

CPUソケットの数。

--spice_enhancements [foldersharing=<1|0>] [,videostreaming=<off|all|filter>]。

SPICE の追加機能拡張を設定します。

--sshkeys <文字列

cloud-init:公開 SSH 鍵を設定します (1 行に 1 つの鍵、OpenSSH 形式)。

--startdate (now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)(default = now)

リアルタイムクロックの初期日付を設定します。有効な日付のフォーマットは'now'または2006-06-17T16:01:21または2006-06-17です。

--startup`[[order=]\d+] [,up=d+] [,down=d+] `.

スタートアップとシャットダウンの動作。Orderは一般的な起動順序を定義する非負の数値です。シャットダウンは逆の順序で行われます。さらに、次のVMが起動または停止するまでの待ち時間を秒単位で設定できます

--ストレージ ID

デフォルトのストレージ。

--tablet <ブール値>(デフォルト = 1)

USBタブレットデバイスを有効/無効にします。

--タグ <文字列

VM のタグ。これは単なるメタ情報です。

--tdf <ブール値>(デフォルト = 0)

時間ドリフト修正の有効/無効。

--テンプレート <ブール値>(デフォルト = 0)

テンプレートの有効/無効。

--tpmstate0 [file=]<volume> [,size=<DiskSize>] [,version=<v1.2|v2.0>].

TPMの状態を保存するDiskを設定します。フォーマットはraw固定。

--unused[n] [file=]<volume>

未使用ボリュームへの参照。これは内部的に使用されるので、手動で変更しないでください。

--usb[n] [[host=]<HOSTUSBDEVICE|spice>]の場合[,マッピング=<マッピングID>] [,usb3=<1|0]

USBデバイスを設定します(nは0~4、マシンのバージョンが7.1以上、かつostype l26またはwindows > 7の場合、nは最大14まで)。

--vcpus <整数> (1 - N)(デフォルト = 0)

ホットプラグされたvcpusの数。

--vga [[タイプ=]<enum>]] [[クリップボード=<vnc[クリップボード=<vnc>] [,メモリ=<整数]

VGAハードウェアを設定します。

--virtio[n] [file=]<volume> [,aio=<native|threads|io_uring>>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<秒>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps> ]。] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,ro=<1|0>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] となります。

ボリュームを VIRTIO ハード ディスクとして使用します (n は 0 ~ 15)。

--vmgenid <UUID>(デフォルト = 1 (自動生成))

VM生成IDを設定します。作成または更新時に自動生成する場合は1 を使用し、明示的に無効にする場合は0 を渡します。

--vmstatestorage <ストレージID>。

VM 状態ボリューム/ファイルのデフォルトストレージ。

--watchdog [[model=]<i6300esb|ib700>][アクション]

仮想ハードウェア・ウォッチドッグ・デバイスを作成します。

qmインポートディスク

qm disk import のエイリアス。

qm importovf <vmid> <manifest> <storage> [OPTIONS].

OVFマニフェストから読み込んだパラメータを使用して新しいVMを作成します。

<vmid>: <整数> (100 - 999999999)

VMの(一意の)ID。

<マニフェスト>: <文字列

ovfファイルへのパス

<ストレージ>: <ストレージID

対象ストレージID

--ドライラン <ブール値

抽出されたOVFパラメータの解析済み表現を出力しますが、VMは作成しません。

--format <qcow2 | raw | vmdk>.

対象フォーマット

qmリスト [オプション]

仮想マシンのインデックス(ノードごと)。

--full <ブール値

アクティブなVMの完全なステータスを決定します。

qm listsnapshot <vmid>です

すべてのスナップショットを一覧表示します。

<vmid>: <整数> (100 - 999999999)

VMの(一意の)ID。

qm migrate <vmid> <target> [OPTIONS].

仮想マシンを移行します。新しい移行タスクを作成します。

<vmid>: <整数> (100 - 999999999)

VMの(一意の)ID。

<ターゲット>: <文字列

対象ノード

--bwlimit <integer> (0 - N)(デフォルト = データセンターまたはストレージ設定からのマイグレーション制限)

I/O帯域幅制限のオーバーライド(単位:KiB/s)。

--force <ブール値

ローカルデバイスを使用するVMのマイグレーションを許可します。このオプションはrootのみが使用できます。

--マイグレーションネットワーク <文字列

移行に使用する(サブ)ネットワークのCIDR。

--マイグレーションタイプ <insecure | secure>

マイグレーショントラフィックはデフォルトでSSHトンネルを使用して暗号化されます。安全で完全にプライベートなネットワークでは、パフォーマンスを上げるためにこれを無効にすることができます。

--オンライン <ブール値

VM が実行中の場合、オンライン/ライブマイグレーションを使用。VM が停止している場合は無視されます。

-ターゲットストレージ <文字列

ソースストレージからターゲットストレージへのマッピング。単一のストレージIDのみを指定すると、すべてのソース・ストレージがそのストレージにマッピングされます。特別な値1を指定すると、各ソース・ストレージはそれ自体にマッピングされます。

--ローカルディスクあり <ブール値

ローカルディスクのライブストレージ移行を有効にします。

qm モニタ <vmid

QEMU Monitorインターフェイスに入ります。

<vmid>: <整数> (100 - 999999999)

VMの(一意の)ID。

qm ディスク移動

qm disk move のエイリアス。

qm move_disk

qm disk move のエイリアス。

qm mtunnel

qmigrate によって使用されます - 手動で使用しないでください。

qm nbdstop <vmid>です

組み込み nbd サーバーを停止します。

<vmid>: <整数> (100 - 999999999)

VMの(一意の)ID。

qm pending <vmid>

現在の値と保留中の値の両方を含む仮想マシン設定を取得します。

<vmid>: <整数> (100 - 999999999)

VMの(一意の)ID。

qm reboot <vmid> [OPTIONS].

VMをシャットダウンして再起動します。保留中の変更を適用します。

<vmid>: <整数> (100 - 999999999)

VMの(一意の)ID。

--タイムアウト <整数> (0 - N)

シャットダウンまで最大タイムアウト秒数待ちます。

qm remote-migrate <vmid> [<target-vmid>] <target-endpoint> --target-bridge <string> --target-storage <string> [OPTIONS].

仮想マシンをリモートクラスタに移行します。新しい移行タスクを作成します。 EXPERIMENTAL 機能!

<vmid>: <整数> (100 - 999999999)

VMの(一意の)ID。

<ターゲット-vmid>: <整数> (100 - 999999999)

VMの(一意の)ID。

<ターゲットエンドポイント>: apitoken=<PVEAPIToken=user@realm!token=SECRET> ,host=<ADDRESS> [,fingerprint=<FINGERPRINT>] [,port=<PORT>].

リモートターゲットエンドポイント

--bwlimit <integer> (0 - N)(デフォルト = データセンターまたはストレージ設定からのマイグレーション制限)

I/O帯域幅制限のオーバーライド(単位:KiB/s)。

--delete <boolean>(デフォルト = 0)

移行成功後に元のVMと関連データを削除します。デフォルトでは、元のVMは停止した状態で移行元クラスタに保持されます。

--オンライン <ブール値

VM が実行中の場合、オンライン/ライブマイグレーションを使用。VM が停止している場合は無視されます。

--ターゲットブリッジ <文字列

ソース・ブリッジからターゲット・ブリッジへのマッピング。単一のブリッジ ID だけを指定すると、すべてのソース・ブリッジがそのブリッジにマッピングされます。特別な値1を指定すると、各ソース・ブリッジはそれ自身にマッピングされます。

-ターゲットストレージ <文字列

ソースストレージからターゲットストレージへのマッピング。単一のストレージIDのみを指定すると、すべてのソース・ストレージがそのストレージにマッピングされます。特別な値1を指定すると、各ソース・ストレージはそれ自体にマッピングされます。

qm再スキャン

qm disk rescan のエイリアス。

qm reset <vmid> [OPTIONS].

仮想マシンをリセットします。

<vmid>: <整数> (100 - 999999999)

VMの(一意の)ID。

--スキップロック <ブール値

Ignore locks - rootのみがこのオプションを使用できます。

qm リサイズ

qm disk resize のエイリアス。

qm resume <vmid> [OPTIONS] [オプション].

仮想マシンを再開します。

<vmid>: <整数> (100 - 999999999)

VMの(一意の)ID。

--nocheck <ブール値

説明なし

--スキップロック <ブール値

Ignore locks - rootのみがこのオプションを使用できます。

qm rollback <vmid> <スナップ名> [オプション].

VMの状態を指定したスナップショットにロールバックします。

<vmid>: <整数> (100 - 999999999)

VMの(一意の)ID。

<スナップ名>: <文字列

スナップショットの名前。

--start <boolean>(デフォルト = 0)

ロールバック成功後にVMを起動するかどうか。(注意: スナップショットにRAMが含まれている場合、VMは自動的に起動します)

qm sendkey <vmid> <key> [OPTIONS].

仮想マシンにキーイベントを送信します。

<vmid>: <整数> (100 - 999999999)

VMの(一意の)ID。

<キー>: <文字列

キー(qemuモニターエンコーディング)。

--スキップロック <ブール値

Ignore locks - rootのみがこのオプションを使用できます。

qm set <vmid> [OPTIONS].

仮想マシン・オプションの設定(同期API) - ホットプラグまたはストレージ割り当てを含むアクションでは、代わりにPOSTメソッドの使用を検討する必要があります。

<vmid>: <整数> (100 - 999999999)

VMの(一意の)ID。

--acpi <ブール値>(デフォルト = 1)

ACPI を有効/無効にします。

--アフィニティ <文字列

ゲストプロセスの実行に使用されるホストコアのリスト(例:0,5,8-11

--agent [enabled=]<1|0> [,freeze-fs-on-backup=<1|0>] [,fstrim_cloned_disks=<1|0>] [,type=<virtio|isa>].

QEMU ゲストエージェントとそのプロパティとの通信を有効/無効にします。

--amd-sev [type=]<sev-type>[,kernel-hashes=<1|0>][,no-debug=<1|0>][,no-key-sharing=<1|0>]。

AMD CPUによるセキュア暗号化仮想化(SEV)機能

--arch <aarch64 | x86_64>.

仮想プロセッサ・アーキテクチャ。デフォルトはホスト。

--args <文字列

kvm に渡される任意の引数。

--audio0 device=<ich9-intel-hda|intel-hda|AC97> [,driver=<spice|none>].

QXL/Spiceと組み合わせると便利です。

--autostart <boolean>(デフォルト = 0)

クラッシュ後の自動再起動(現在は無視されています)。

--バルーン <整数> (0 - N)

VM のターゲット RAM の量 (MiB 単位)。ゼロを使用すると、バロンドライバが無効になります。

--bios <ovmf | seabios>(デフォルト = seabios)

BIOSの実装を選択します。

--boot [[legacy=]<[acdn]{1,4}>][,order=<デバイス[;デバイス...]>]]。

ゲストの起動順序を指定します。order=サブプロパティを使用してください。

--ブートディスク (ide|sata|scsi|virtio)◆d+.

指定したディスクからの起動を有効にします。非推奨:代わりにboot: order=foo;barを使用してください。

--CDROM <ボリューム

これは -ide2 オプションのエイリアスです。

--cicustom [meta=<volume>] [,network=<volume>] [,user=<volume>] [,vendor=<volume>].

cloud-init:開始時に自動生成されるファイルを置き換えるカスタムファイルを指定します。

--パスワード

cloud-init:ユーザーに割り当てるパスワード。一般的に、これを使うことは推奨されません。代わりに ssh 鍵を使います。また、古いバージョンの cloud-init はハッシュ化されたパスワードをサポートしていないことに注意しましょう。

--citype <configdrive2 | nocloud | opennebula>.

cloud-init設定フォーマットを指定します。デフォルトは、設定されているオペレーティングシステムの種類(ostype.Linuxではnocloud形式、Windowsではconfigdrive2を使用します。

--ciupgrade <ブール値>(デフォルト = 1)

cloud-init: 最初の起動後にパッケージの自動アップグレードを行います。

--ciuser <文字列

cloud-init:イメージに設定されているデフォルトユーザーの代わりに、sshキーとパスワードを変更するユーザー名。

--コア数 <整数> (1 - N)(デフォルト = 1)

ソケットあたりのコア数。

--cpu [[cputype=]<string>] ][,フラグ=<+FLAG[;-FLAG...]>] ]を指定します。[,hidden=<1|0>] [,hv-vendor-id=<vendor-id>] [,phys-bits=<8-64|host>] [,reported-model=<enum>]。

エミュレートされたCPUタイプ。

--cpulimit <number> (0 - 128)(デフォルト = 0)

CPU使用量の上限。

--cpuunits <integer> (1 - 262144)(デフォルト = cgroup v1: 1024, cgroup v2: 100)

VM の CPU ウェイトは、cgroup v2 では [1, 10000] にクランプされます。

--削除 <文字列

削除したい設定のリスト。

--説明 <文字列

VM の説明。WebインターフェイスのVMのサマリーに表示されます。コンフィギュレーション・ファイルのコメントとして保存されます。

-ダイジェスト <文字列

現在の設定ファイルの SHA1 ダイジェストが異なる場合に変更を防止します。これは同時変更を防ぐために使用できます。

--efidisk0 [file=]<volume> [,efitype=<2m|4m>] [,format=<enum>] [,import-from=<ソースボリューム>] [,pre-enrolled-keys=<1|0>] [,size=<DiskSize>].

EFIバーを格納するディスクを設定します。新しいボリュームを割り当てるには、特別な構文 STORAGE_ID:SIZE_IN_GiB を使用します。SIZE_IN_GiBはここでは無視され、代わりにデフォルトのEFIバーがボリュームにコピーされることに注意してください。既存のボリュームからインポートするには、STORAGE_ID:0とimport-fromパラメータを使用します。

--force <ブール値

物理的な削除を強制します。これがないと、単純に設定ファイルからディスクを削除し、ボリュームIDを含むunused[n]という追加の設定エントリを作成します。unused[n]のリンク解除は、常に物理的な削除を引き起こします。

Note 必要なオプション:削除
--フリーズ <ブール値

起動時にCPUをフリーズ(cmonitorコマンドで実行開始)。

--hookscript <文字列

vmsのライフタイムの様々なステップで実行されるスクリプト。

--hostpci[n] [[host=]<HOSTPCIID[;HOSTPCIID2...]>][,device-id=<hex id>] [,legacy-igd=<1|0>] [,mapping=<mapping-id>] [,mdev=<string>] [,pcie=<1|0>] [,rombar=<1|0> ] [,romfile=<string>] [,sub-devpci=<1|0>] [[host=]<HOSTPCIID[;HOSTPCIID2...]>]。] [,romfile=<string>] [,sub-device-id=<hex id>] [,sub-vendor-id=<hex id>] [,vendor-id=<hex id>] [,x-vga=<1|0>] となります。

ホストのPCIデバイスをゲストにマッピングします。

--hotplug <string>(デフォルト = ネットワーク,ディスク,USB)

ホットプラグ機能を選択的に有効にします。これはカンマ区切りのホットプラグ機能のリストです:ネットワークディスクCPUメモリUSBcloudinit。ホットプラグを完全に無効にするには0を使用します。値として1 を使用すると、デフォルトのnetwork、disk、usb のエイリアスになります。USB ホットプラグは、マシンのバージョンが >= 7.1 で、ostype l26 または Windows > 7 のゲストで可能です。

--hugepages <1024 | 2 | any>.

hugepagesメモリの有効/無効。

--ide[n] [file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<ソース・ボリューム>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<CDROM|DISK] [,model=<model>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>] となります。

ボリュームをIDEハードディスクまたはCD-ROMとして使用します(nは0~3)。新しいボリュームを割り当てるには、特別な構文STORAGE_ID:SIZE_IN_GiBを使用します。既存のボリュームからインポートするには、STORAGE_ID:0とimport-fromパラメータを使用します。

--ipconfig[n] [gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>].

cloud-init:対応するインターフェースのIPアドレスとゲートウェイを指定します。

IPアドレスはCIDR表記を使用し、ゲートウェイはオプションですが、同じタイプのIPを指定する必要があります。

特別な文字列dhcpは、DHCPを使用するIPアドレスに使用することができ、その場合、明示的なゲートウェイを提供する必要はありません。 IPv6の場合、特別な文字列autoは、ステートレス自動設定を使用するために使用することができます。これにはcloud-init 19.4以降が必要です。

cloud-initが有効で、IPv4アドレスもIPv6アドレスも指定されていない場合、デフォルトでIPv4のdhcpを使用します。

--ivshmem size=<整数> [,name=<文字列>] です。

VM間共有メモリ。VM間やホストとの直接通信に便利。

--keephugepages <boolean>(デフォルト = 0)

hugepagesと一緒に使用します。有効にすると、hugepagesはVMシャットダウン後も削除されず、その後の起動に使用できます。

--keyboard <da | de | de-ch | en-gb | en-us | es | fi | fr | fr-be | fr-ca | fr-ch | hu | is | it | ja | lt | mk | nl | no | pl | pt | pt-br | sl | sv | tr>.

VNC サーバーのキーボードレイアウト。このオプションは一般的には必要なく、ゲストOS内で処理した方が良い場合が多いです。

--kvm <論理値>(デフォルト = 1)

KVMハードウェア仮想化の有効/無効を設定します。

--ローカルタイム <ブール値

リアルタイムクロック(RTC)をローカルタイムに設定します。ostypeがMicrosoft Windows OSの場合、デフォルトで有効になります。

--lock <バックアップ|クローン|作成|マイグレーション|ロールバック|スナップショット|スナップショット削除|サスペンド|サスペンド>。

VMをロック/アンロックします。

--マシン [[タイプ=]<マシンタイプ>]] [,viommu=<intel|virtio>]] [viommu=<intel|virtio>]です。

QEMUマシンを指定します。

--メモリ [current=]<整数

メモリ特性。

--migrate_downtime <number> (0 - N)(デフォルト = 0.1)

マイグレーションの最大許容ダウンタイム(秒)を設定します。新しく汚れたRAMを転送する必要があるため、マイグレーションが最後まで収束しない場合、マイグレーションが収束するまで、この制限を段階的に自動的に増やします。

--migrate_speed <integer> (0 - N)(デフォルト = 0)

マイグレーションの最大速度(MB/s)を設定します。値 0 は制限なしです。

--name <文字列

VM の名前を設定します。コンフィギュレーションWebインターフェイスでのみ使用します。

--ネームサーバー <文字列

cloud-init:コンテナの DNS サーバー IP アドレスを設定します。searchdomain も nameserver も設定されていない場合、Create は自動的にホストからの設定を使用します。

--net[n] [model=]<enum> [,bridge=<bridge>] [,firewall=<1|0>] [,link_down=<1|0>] [,macaddr=<XX:XX:XX:XX:XX:XX>] [,mtu=<integer>] [,queues=<integer>] [,rate=<number>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>][,<model>=<macaddr>] [,<model>=<macaddr>] [,<model>=<macaddr

ネットワーク機器を指定します。

--numa <boolean>(デフォルト = 0)

NUMAの有効/無効。

--numa[n] cpus=<id[-id];...> [,hostnodes=<id[-id];...>]を指定します。[,memory=<number>] [,policy=<preferred|bind|interleave>]となります。

NUMAトポロジー。

--onboot <boolean>(デフォルト = 0)

システム起動時に VM を起動するかどうかを指定します。

--ostype <l24 | l26 | other | solaris | w2k | w2k3 | w2k8 | win10 | win11 | win7 | win8 | wvista | wxp>.

ゲストオペレーティングシステムを指定します。

--parallel[n] /dev/parportd+|/dev/usb/lpd+

ホスト・パラレル・デバイスをマップします(nは0~2)。

--プロテクション <ブール値>(デフォルト = 0)

VM の保護フラグを設定します。これにより、VM の削除とディスクの削除操作が無効になります。

--reboot <boolean>(デフォルト = 1)

再起動を許可。0に設定すると、VM は再起動時に終了します。

--復帰 <文字列

保留中の変更を元に戻します。

--rng0 [source=]</dev/urandom|/dev/random|/dev/hwrng> [,max_bytes=<integer>] [,period=<integer>].

VirtIO ベースの乱数ジェネレータを設定します。

--sata[n] [file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<ソース・ボリューム>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0> ]。] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]。

ボリュームをSATAハードディスクまたはCD-ROMとして使用します(nは0~5)。新しいボリュームを割り当てるには、特別な構文 STORAGE_ID:SIZE_IN_GiB を使用します。既存のボリュームからインポートするには、STORAGE_ID:0とimport-fromパラメータを使用します。

--scsi[n] [[file=]<volume> [,aio=<native|threads|io_uring>>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<ソースボリューム>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,product=<product>] [,queues=<integer>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,ro=<1|0>] [,scsiblock=<1|0>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0> ]。] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,vendor=<vendor>] [,werror=<enum>] [,wwn=<wwn>] となります。

ボリュームをSCSIハードディスクまたはCD-ROMとして使用します(nは0~30)。新しいボリュームを割り当てるには、特別な構文STORAGE_ID:SIZE_IN_GiBを使用します。既存のボリュームからインポートするには、STORAGE_ID:0とimport-fromパラメータを使用します。

--scihw <lsi | lsi53c810 | megasas | pvscsi | virtio-scsi-pci | virtio-scsi-single>(デフォルト = lsi)

SCSIコントローラモデル

--検索ドメイン <文字列

cloud-init:コンテナのDNS検索ドメインを設定します。searchdomainもnameserverも設定されていない場合、Createはホストからの設定を自動的に使用します。

-シリアル[n] (/dev/.+|socket)

VM内にシリアル・デバイスを作成(nは0~3)

--shares <integer> (0 - 50000)(デフォルト = 1000)

オート・バルーニングのメモリ・シェア量。この数値が大きいほど、このVMはより多くのメモリを取得します。数値は、他のすべての実行中のVMの重みに対する相対値です。ゼロを使用すると、オートバルーニングは無効になります。オートバルーニングはpvestatdによって実行されます。

--スキップロック <ブール値

Ignore locks - rootのみがこのオプションを使用できます。

--smbios1 [base64=<1|0>] [,family=<Base64エンコードされた文字列>] [,manufacturer=<Base64エンコードされた文字列>] [,product=<Base64エンコードされた文字列] [,serial=<Base64エンコードされた文字列>] [,sku=<Base64エンコードされた文字列>] [,uuid=<UUID>] [,version=<Base64エンコードされた文字列>] となります

SMBIOSタイプ1のフィールドを指定します。

--smp <整数> (1 - N)(デフォルト = 1)

CPU数。代わりに -sockets オプションを使用してください。

--ソケット <整数> (1 - N)(デフォルト = 1)

CPUソケットの数。

--spice_enhancements [foldersharing=<1|0>] [,videostreaming=<off|all|filter>]。

SPICE の追加機能拡張を設定します。

--sshkeys <ファイルパス

cloud-init:公開 SSH 鍵を設定します (1 行に 1 つの鍵、OpenSSH 形式)。

--startdate (now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)(default = now)

リアルタイムクロックの初期日付を設定します。有効な日付のフォーマットは'now'または2006-06-17T16:01:21または2006-06-17です。

--startup`[[order=]\d+] [,up=d+] [,down=d+] `.

スタートアップとシャットダウンの動作。Orderは一般的な起動順序を定義する非負の数値です。シャットダウンは逆の順序で行われます。さらに、次のVMが起動または停止するまでの待ち時間を秒単位で設定できます

--tablet <ブール値>(デフォルト = 1)

USBタブレットデバイスを有効/無効にします。

--タグ <文字列

VM のタグ。これは単なるメタ情報です。

--tdf <ブール値>(デフォルト = 0)

時間ドリフト修正の有効/無効。

--テンプレート <ブール値>(デフォルト = 0)

テンプレートの有効/無効。

--tpmstate0 [ファイル=]<ボリューム> [,インポート元=<ソースボリューム>] [,サイズ=<ディスクサイズ>] [,バージョン=<v1.2|v2.0>]。

TPMの状態を保存するDiskを設定します。フォーマットはrawに固定されています。新しいボリュームを割り当てるには、特別な構文 STORAGE_ID:SIZE_IN_GiB を使用します。SIZE_IN_GiBはここでは無視され、代わりに4MiBが使用されることに注意してください。既存のボリュームからインポートするには、STORAGE_ID:0とimport-fromパラメータを使用します。

--unused[n] [file=]<volume>

未使用ボリュームへの参照。これは内部的に使用されるので、手動で変更しないでください。

--usb[n] [[host=]<HOSTUSBDEVICE|spice>]の場合[,マッピング=<マッピングID>] [,usb3=<1|0]

USBデバイスを設定します(nは0~4、マシンのバージョンが7.1以上、かつostype l26またはwindows > 7の場合、nは最大14まで)。

--vcpus <整数> (1 - N)(デフォルト = 0)

ホットプラグされたvcpusの数。

--vga [[タイプ=]<enum>]] [[クリップボード=<vnc[クリップボード=<vnc>] [,メモリ=<整数]

VGAハードウェアを設定します。

--virtio[n] [file=]<volume> [,aio=<native|threads|io_uring>>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<ソース・ボリューム>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,ro=<1|0>] [,secs=<integer> ] [,serial=<serial] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,secs=<integer>>のように指定します。

ボリュームをVIRTIOハードディスクとして使用します(nは0~15)。新しいボリュームを割り当てるには、特別な構文 STORAGE_ID:SIZE_IN_GiB を使用します。既存のボリュームからインポートするには、STORAGE_ID:0とimport-fromパラメータを使用します。

--vmgenid <UUID>(デフォルト = 1 (自動生成))

VM生成IDを設定します。作成または更新時に自動生成する場合は1 を使用し、明示的に無効にする場合は0 を渡します。

--vmstatestorage <ストレージID>。

VM 状態ボリューム/ファイルのデフォルトストレージ。

--watchdog [[model=]<i6300esb|ib700>][アクション]

仮想ハードウェア・ウォッチドッグ・デバイスを作成します。

qm showcmd <vmid> [OPTIONS].

VMの起動に使用されるコマンドラインを表示します(デバッグ情報)。

<vmid>: <整数> (100 - 999999999)

VMの(一意の)ID。

--pretty <ブール値>(デフォルト = 0)

各オプションを改行し、可読性を高めます。

--スナップショット <文字列

指定されたスナップショットから設定値を取得します。

qm shutdown <vmid> [OPTIONS].

仮想マシンをシャットダウンします。これは、物理マシンの電源ボタンを押すのと似ています。これにより、ゲスト OS に対して ACPI イベントが送信され、クリーンシャットダウンに進むはずです。

<vmid>: <整数> (100 - 999999999)

VMの(一意の)ID。

--forceStop <boolean>(デフォルト = 0)

VMが停止していることを確認してください。

--keepActive <boolean>(デフォルト = 0)

ストレージボリュームを停止しないでください。

--スキップロック <ブール値

Ignore locks - rootのみがこのオプションを使用できます。

--タイムアウト <整数> (0 - N)

最大タイムアウト秒数まで待ちます。

qm snapshot <vmid> <snapname> [OPTIONS].

VMをスナップショットします。

<vmid>: <整数> (100 - 999999999)

VMの(一意の)ID。

<スナップ名>: <文字列

スナップショットの名前。

--説明 <文字列

テキストによる説明やコメント。

--vmstate <ブール値

vmstateの保存

qm start <vmid> [OPTIONS].

仮想マシンを起動します。

<vmid>: <整数> (100 - 999999999)

VMの(一意の)ID。

--force-cpu <文字列

QEMUの-cpu引数を与えられた文字列でオーバーライドします。

--マシン [[タイプ=]<マシンタイプ>]] [,viommu=<intel|virtio>]] [viommu=<intel|virtio>]です。

QEMUマシンを指定します。

-migratedfrom <文字列

クラスタ・ノード名。

--マイグレーションネットワーク <文字列

移行に使用する(サブ)ネットワークのCIDR。

--マイグレーションタイプ <insecure | secure>

マイグレーショントラフィックはデフォルトでSSHトンネルを使用して暗号化されます。安全で完全にプライベートなネットワークでは、パフォーマンスを上げるためにこれを無効にすることができます。

--スキップロック <ブール値

Ignore locks - rootのみがこのオプションを使用できます。

--stateuri <文字列

いくつかのコマンドは、この場所から状態を保存/復元します。

-ターゲットストレージ <文字列

ソースストレージからターゲットストレージへのマッピング。単一のストレージIDのみを指定すると、すべてのソース・ストレージがそのストレージにマッピングされます。特別な値1を指定すると、各ソース・ストレージはそれ自体にマッピングされます。

--timeout <integer> (0 - N)(デフォルト = max(30, vmのメモリはGiB))

最大タイムアウト秒数まで待ちます。

qm status <vmid> [OPTIONS].

VMのステータスを表示します。

<vmid>: <整数> (100 - 999999999)

VMの(一意の)ID。

--verbose <ブール値

冗長出力フォーマット

qm stop <vmid> [OPTIONS].

仮想マシンを停止します。qemuプロセスは直ちに終了します。これは実行中のコンピュータの電源プラグを抜くようなもので、仮想マシンのデータを損傷する可能性があります。

<vmid>: <整数> (100 - 999999999)

VMの(一意の)ID。

--keepActive <boolean>(デフォルト = 0)

ストレージボリュームを停止しないでください。

-migratedfrom <文字列>。

クラスタ・ノード名。

--overrule-shutdown <boolean>(デフォルト = 0)

停止する前に、アクティブなqmshutdownタスクを中止してください。

--スキップロック <ブール値

Ignore locks - rootのみがこのオプションを使用できます。

--タイムアウト <整数> (0 - N)

最大タイムアウト秒数まで待ちます。

qm suspend <vmid> [OPTIONS].

仮想マシンを一時停止します。

<vmid>: <整数> (100 - 999999999)

VMの(一意の)ID。

--スキップロック <ブール値

Ignore locks - rootのみがこのオプションを使用できます。

--ストレージ ID

VMの状態を保存するストレージ

Note 必要なオプション:todisk
-todisk <ブール値>(デフォルト = 0)

設定されている場合、VMをディスクにサスペンドします。次回のVM起動時に再開されます。

qm テンプレート <vmid> [OPTIONS].

テンプレートを作成します。

<vmid>: <整数> (100 - 999999999)

VMの(一意の)ID。

--ディスク <efidisk0 | ide0 | ide1 | ide2 | ide3 | sata0 | sata1 | sata2 | sata3 | sata4 | sata5 | scsi0 | scsi1 | scsi10 | scsi11 | scsi12 |Scsi13 | Scsi14 | Scsi15 | Scsi16 | Scsi17 | Scsi18 | Scsi19 | Scsi2 | Scsi20 | Scsi21 | Scsi22 | Scsi23 | Scsi24 | Scsi25 | Scsi26 |scsi27|scsi28|scsi29|scsi3|scsi30|scsi4|scsi5|scsi6|scsi7|scsi8|scsi9|tpmstate0|virtio0|virtio1|virtio10|virtio11|virtio12|virtio13|virtio14|virtio15|virtio2|virtio3|virtio4|virtio5|virtio6|virtio7|virtio8|virtio9

1つのディスクだけをベースイメージに変換したい場合。

qm terminal <vmid> [OPTIONS].

シリアル・デバイスを使用してターミナルを開きます(VMにはシリアル・デバイスが設定されている必要があります。

<vmid>: <整数> (100 - 999999999)

VMの(一意の)ID。

--escape <文字列>(デフォルト = ^O)

エスケープ文字。

--iface <シリアル0 | シリアル1 | シリアル2 | シリアル3>。

シリアル・デバイスを選択します。デフォルトでは、単に最初の適切なデバイスを使用します。

qmアンリンク

qm disk unlink のエイリアス。

qm アンロック <vmid

VMのロックを解除します。

<vmid>: <整数> (100 - 999999999)

VMの(一意の)ID。

qm vncproxy <vmid>です

VMのVNCトラフィックを標準入力/標準出力にプロキシ

<vmid>: <整数> (100 - 999999999)

VMの(一意の)ID。

qm wait <vmid> [OPTIONS].

VMが停止するまで待ちます。

<vmid>: <整数> (100 - 999999999)

VMの(一意の)ID。

--タイムアウト <整数> (1 - N)

秒単位のタイムアウト。デフォルトは永久に待ちます。

説明

QEMU (Quick Emulator の略) は、物理コンピュータをエミュレートするオープンソースのハイパーバイザーです。QEMU が実行されているホスト システムから見ると、QEMU はユーザー プログラムであり、パーティション、ファイル、ネットワーク カードなどの多数のローカル リソースにアクセスできます。

エミュレートされたコンピュータで実行されているゲストオペレーティングシステムは、これらのデバイスにアクセスし、実際のハードウェア上で実行されているかのように動作します。たとえば、ISO イメージを QEMU にパラメータとして渡すと、エミュレートされたコンピュータで実行されている OS には、CD ドライブに挿入された本物の CD-ROM が表示されます。

QEMUはARMからSparcまで多種多様なハードウェアをエミュレートできますが、Proxmox VEは32ビットおよび64ビットのPCクローンのエミュレーションにのみ対応しています。PCクローンのエミュレーションは、エミュレートするアーキテクチャがホストアーキテクチャと同じ場合にQEMUを大幅に高速化するプロセッサ拡張機能を利用できるため、最も高速なエミュレーションの1つでもあります。

Note KVM(Kernel-based Virtual Machine) という用語に遭遇することがありますが、これは QEMU が Linux KVM モジュールを介して仮想化プロセッサの拡張機能をサポートしながら実行されていることを意味します。Proxmox VEのQEMUは常にKVMモジュールをロードしようとするため、Proxmox VEのコンテキストではQEMUとKVMは同じ意味で使用できます。

Proxmox VE 内の QEMU は、ブロックデバイスと PCI デバイスにアクセスするために必要なルートプロセスとして実行されます。

エミュレートされたデバイスと準仮想化デバイス

QEMU によってエミュレートされる PC ハードウェアには、マザーボード、ネットワークコントローラ、SCSI、IDE、SATA コントローラ、シリアルポート (完全なリストはkvm(1)man ページを参照してください) が含まれます。これらのデバイスはすべて、既存のハードウェアデバイスとまったく同等のソフトウェアデバイスであり、ゲストで実行されている OS に適切なドライバがあれば、実際のハードウェア上で実行されているかのようにデバイスを使用できます。これにより、QEMU は変更されていないオペレーティングシステムを実行できます。

しかし、ハードウェアで実行する予定だったものをソフトウェアで実行すると、ホスト CPU に多くの余分な作業が発生するため、これにはパフォーマンス上のコストが伴います。これを軽減するために、QEMU はゲスト OS に準仮想化デバイスを提示することができます。この場合、ゲスト OS は QEMU 内で実行されていることを認識し、ハイパーバイザーと協調します。

QEMU は virtio 仮想化標準に依存しているため、準仮想化された汎用ディスクコントローラ、準仮想化されたネットワークカード、準仮想化されたシリアルポート、準仮想化された SCSI コントローラなど、準仮想化された virtio デバイスを表示できます。

Tip 可能な限り、virtio デバイスを使用することを強く推奨します。 virtio の汎用ディスクコントローラとエミュレートされた IDE コントローラを比較すると、bonnie++(8) で測定されたシーケンシャル書き込みスループットは 2 倍になります。virtio ネットワークインターフェイスを使用すると、iperf(1) で計測されるように、エミュレートされた Intel E1000 ネットワークカードのスループットの最大 3 倍を提供できます。
[KVM wikihttps://www.linux-kvm.org/page/Using_VirtIO_NIC のこのベンチマークを参照]。

仮想マシンの設定

一般的にProxmox VEは、仮想マシン(VM)に対して適切なデフォルトを選択しようとします。パフォーマンスを低下させたり、データを危険にさらす可能性があるため、変更する設定の意味を理解してください。

一般設定

screenshot/gui-create-vm-general.png

VMの一般的な設定は次のとおりです。

  • ノード: VM が実行される物理サーバー

  • VM ID:VMを識別するためのProxmox VEインストール内で一意の番号です。

  • Name: VM を説明するために使用できる自由形式のテキスト文字列です。

  • リソースプール:VMの論理グループ

OS 設定

screenshot/gui-create-vm-os.png

仮想マシン(VM)を作成する際、適切なオペレーティングシステム(OS)を設定することで、Proxmox VEはいくつかの低レベルパラメータを最適化することができます。例えば、Windows OSは、BIOSクロックがローカル時間を使用することを期待しますが、UnixベースのOSは、BIOSクロックがUTC時間を使用することを期待します。

システム設定

VMの作成時に、新しいVMの基本的なシステムコンポーネントの一部を変更することができます。使用するディスプレイ・タイプを指定できます。

screenshot/gui-create-vm-system.png

さらに、SCSI コントローラを変更することもできます。 QEMU ゲストエージェントをインストールする予定の場合、または選択した ISO イメージがすでに出荷され、自動的にインストールされる場合、QEMU エージェントボックスにチェックを入れると、Proxmox VE にその機能を使用してより多くの情報を表示し、いくつかのアクション(シャットダウンやスナップショットなど)をよりインテリジェントに実行できることを知らせることができます。

Proxmox VEでは、SeaBIOSとOVMFという異なるファームウェアとマシンタイプでVMをブートすることができます。ほとんどの場合、PCIe パススルーを使用する場合のみ、デフォルトの SeaBIOS から OVMF に切り替えます。

マシンタイプ

VMのマシン・タイプは、VMの仮想マザーボードのハードウェア・レイアウトを定義します。デフォルトのIntel 440FXか、仮想PCIeバスも提供するQ35チップセットのいずれかを選択できます。 さらに、vIOMMUの実装を選択できます。

マシンバージョン

各マシンタイプは QEMU 内でバージョン管理されており、ある QEMU バイナリは多くのマシンバージョンをサポートしています。新しいバージョンは、新機能のサポート、修正、一般的な改良をもたらすかもしれません。ただし、仮想ハードウェアのプロパティも変更されます。ゲストの観点からの突然の変更を回避し、VM状態の互換性を確保するために、RAMを使用したライブマイグレーションとスナップショットは、新しいQEMUインスタンスで同じマシンバージョンを使用し続けます。

Windows ゲストの場合、Windows は仮想ハードウェアの変更(コールドブート間であっても)に敏感なので、マシンバージョンは作成中に固定されます。例えば、ネットワークデバイスの列挙は異なるマシンバージョンで異なるかもしれません。Linuxのような他のOSは、通常このような変更にうまく対応できます。この場合、デフォルトで最新のマシンバージョンが使用されます。 つまり、再スタート後、QEMU バイナリでサポートされる最新のマシンバージョンが使用されます(例えば、QEMU 8.1 がサポートする最新のマシンバージョンは、マシンタイプごとにバージョン 8.1 です)。

新しいマシン・バージョンへのアップデート

QEMU では、非常に古いマシンのバージョンが非推奨になる場合があります。例えば、i440fxマシンタイプのバージョン1.4から1.7がそうです。これらのマシンバージョンのサポートは、ある時点で終了することが予想されます。非推奨の警告が表示された場合は、マシンのバージョンを新しいものに変更する必要があります。 最初に必ずバックアップを取り、ゲストがハードウェアを認識する方法の変更に備えるようにしてください。シナリオによっては、特定のドライバの再インストールが必要になるかもしれません。残念ながら、スナップショットのマシンバージョンを変更する方法はないので、スナップショットからデータを救い出すにはスナップショットをロードする必要があります。

ハードディスク

バス/コントローラ

QEMUは、多数のストレージコントローラをエミュレートできます:

Tip VirtIO SCSIまたはVirtIO Blockコントローラを使用することを強くお勧めします。
  • IDEコントローラは、1984年のPC/ATディスクコントローラに遡る設計です。このコントローラが最近の設計に取って代わられたとしても、思いつく限りのすべてのOSがこのコントローラをサポートしているため、2003年以前にリリースされたOSを実行したい場合に最適です。このコントローラには最大4台のデバイスを接続できます。

  • SATA(Serial ATA) コントローラは、2003年に開発されたもので、より近代的な設計となっており、より高いスループットとより多くのデバイスを接続することができます。このコントローラには最大6台のデバイスを接続できます。

  • 1985年に設計されたSCSIコントローラは、サーバグレードのハードウェアで一般的で、最大14台のストレージデバイスを接続できます。Proxmox VEはデフォルトでLSI 53C895Aコントローラをエミュレートします。

    パフォーマンスを重視する場合は、VirtIO SCSIシングルタイプのSCSIコントローラを使用し、接続ディスクのIOスレッド設定を有効にすることをお勧めします。これは、Proxmox VE 7.3 以降で新しく作成される Linux VM のデフォルトです。各ディスクは独自のVirtIO SCSIコントローラーを持ち、QEMU は専用スレッドでディスクの IO を処理します。Linuxディストリビューションは2012年から、FreeBSDは2014年からこのコントローラをサポートしています。Windows OSの場合は、インストール時にドライバを含む追加のISOを提供する必要があります。

  • VirtIOまたは virtio-blk と呼ばれることが多いVirtIO Blockコントローラーは、古いタイプの準仮想化コントローラーです。機能面では、VirtIO SCSI コントローラーに取って代わられました。

画像フォーマット

各コントローラには多数のエミュレートされたハードディスクが接続され、設定されたストレージに存在するファイルまたはブロックデバイスによってバックアップされます。ストレージタイプの選択により、ハードディスクイメージのフォーマットが決まります。ブロックデバイスを使用するストレージ (LVM、ZFS、Ceph) ではraw ディスクイメージフォーマットが必要ですが、ファイルベースのストレージ (Ext4、NFS、CIFS、GlusterFS) ではraw ディスクイメージフォーマットまたはQEMU イメージフォーマットのいずれかを選択できます。

  • QEMU イメージフォーマットは、スナップショットやディスクイメージのシンプロビジョニングを可能にするコピーオンライトフォーマットです。

  • rawディスクイメージは、ハードディスクのビット単位のイメージで、Linuxでブロックデバイスに対してddコマンドを実行したときに得られるものと似ています。このフォーマットは、それ自体ではシンプロビジョニングやスナップショットをサポートしません。しかし、QEMUイメージ形式よりも最大10%高速になる可能性があります。
    [詳細はこのベンチマークを参照してください: https://events.static.linuxfound.org/sites/events/files/slides/CloudOpen2013_Khoa_Huynh_v3.pdf]

  • VMwareのイメージフォーマットは、ディスクイメージを他のハイパーバイザーにインポート/エクスポートする場合にのみ意味があります。

キャッシュ・モード

ハードドライブのキャッシュモードを設定すると、ホストシステムがゲストシステムにブロック書き込み完了を通知する方法に影響します。デフォルトのNo cacheは、各ブロックが物理ストレージの書き込みキューに到達したときに書き込みが完了したことをゲストシステムに通知し、ホストのページキャッシュを無視することを意味します。 これは、安全性と速度の良いバランスを提供します。

ProxmoxのVEバックアップマネージャがVMのバックアップを実行するときにディスクをスキップしたい場合は、そのディスクにNo backupオプションを設定します。

Proxmox VE のストレージレプリケーション機構で、レプリケーションジョブの開始時にディスクをスキップさせたい場合は、そのディスクにレプリケーションのスキップオプションを設定します。 Proxmox VE 5.0 のレプリケーションでは、ディスクイメージがzfspool タイプのストレージ上にある必要があるため、VM にレプリケーションが設定されている場合にディスクイメージを他のストレージに追加すると、このディスクイメージのレプリケーションをスキップする必要があります。

トリム/廃棄

ストレージがシンプロビジョニングをサポートしている場合(Proxmox VE ガイドのストレージの章を参照)、ドライブのDiscardオプションを有効にすることができます。Discard が設定され、TRIM が有効なゲスト OS
[TRIM、UNMAP、および discardhttps://en.wikipedia.org/wiki/Trim_%28computing%29]
では、VM のファイルシステムがファイルを削除した後にブロックを未使用としてマークすると、コントローラはこの情報をストレージにリレーし、ストレージはそれに応じてディスクイメージを縮小します。 ゲストがTRIMコマンドを発行できるようにするには、ドライブでDiscardオプションを有効にする必要があります。ゲストオペレーティングシステムによっては、SSD Emulationフラグを設定する必要もあります。VirtIO BlockドライブのDiscardは、Linux Kernel 5.0 以降を使用するゲストでのみサポー トされていることに注意してください。

ドライブを回転ハード ディスクではなくソリッド ステート ドライブとしてゲストに表示する場合は、そのドライブにSSD エミュレーションオプションを設定できます。基盤となるストレージが実際に SSD でバックアップされている必要はなく、この機能はあらゆるタイプの物理メディアで使用できます。SSD エミュレーションはVirtIO Blockドライブではサポートされていないことに注意してください。

IOスレッド

IO Threadオプションは、VirtIOコントローラでディスクを使用する場合、またはエミュレートされるコントローラのタイプがVirtIO SCSI シングルである場合にSCSIコントローラでディスクを使用する場合にのみ使用できます。IO Threadを有効にすると、QEMU は、メイン イベント ループまたは vCPU スレッドですべての I/O を処理するのではなく、ストレージ コントローラごとに 1 つの I/O スレッドを作成します。利点の 1 つは、基礎となるストレージの作業分散と利用が向上することです。もう 1 つの利点は、メイン スレッドも vCPU スレッドもディスク I/O によってブロックされることがないため、非常に I/O 負荷の高いホスト ワークロードのゲストでの待ち時間 (ハング) が短縮されることです。

CPU

screenshot/gui-create-vm-cpu.png

CPUソケットとは、PCマザーボード上にある物理的なスロットのことで、CPUを差し込むことができます。 このCPUには、独立した処理ユニットであるコアを1つまたは複数含めることができます。CPUソケットが1つで4コアか、2つで2コアかは、性能の観点からはほとんど関係ありません。 しかし、ソフトウェアのライセンスによっては、マシンのソケット数に依存するものがあり、その場合は、ライセンスで許可されているソケット数に設定するのが理にかなっています。

仮想 CPU (コアとソケット) の数を増やすと、通常はパフォーマンスが向上しますが、これは VM の用途に大きく依存します。 仮想 CPU を追加するごとに、QEMU はホスト・システム上に新しい実行スレッドを作成するためです。VM のワークロードについて確信が持てない場合は、通常、合計コア数を 2 に設定するのが安全です。

Note すべての VM の全体のコア数がサーバーのコア数よりも大きい場合(例えば、8 コアしかないマシンにそれぞれ 4 コア (= 合計 16 コア) の VM を 4 つ配置する場合)は、まったく問題ありません。この場合、ホスト・システムは、標準的なマルチスレッド・アプリケーションを実行する場合と同様に、QEMU の実行スレッドをサーバー・コア間でバランスさせます。しかし、Proxmox VEは、物理的に利用可能な数よりも多くの仮想CPUコアでVMを起動することを防ぎます。

リソース制限

クプリミット

仮想コア数に加えて、VMで使用可能な「ホストCPU時間」の合計もcpulimitオプションで設定できます。これはCPU時間をパーセントで表した浮動小数点値で、1.0は 100%、2.5は250%などに相当します。1つのプロセスが1つのコアを完全に使用する場合、CPU時間の使用率は100%になります。4つのコアを持つVMがすべてのコアをフルに使用した場合、理論的には400%の使用率になります。QEMUはvCPUコア以外にVMペリフェラル用の追加スレッドを持つことができるため、実際の使用率はさらに高くなる可能性があります。

この設定は、VMがいくつかのプロセスを並行して実行しているために複数のvCPUを持つ必要があるが、VM全体としてはすべてのvCPUを同時に100%で実行することはできない場合に役立ちます。

例えば、8つの仮想CPUを持つことで恩恵を受けられる仮想マシンがあるとします。しかし、その仮想マシンが8つのコアをフル稼働させると、サーバーに過負荷がかかり、他の仮想マシンやコンテナのCPU使用率が低下してしまうため、8つのコアをフル稼働させたくないとします。これを解決するには、cpulimitを 4.0(=400%)に設定します。これは、VMが8つのプロセスを同時に実行して8つすべての仮想CPUを完全に利用する場合、各vCPUは物理コアから最大50%のCPU時間を受け取ることを意味します。しかし、VMのワークロードが4つの仮想CPUしか完全に利用しない場合でも、物理コアから最大100%のCPU時間を受け取ることができ、合計で400%になります。

Note VMは、その構成によっては、ネットワーキングやIOオペレーション、ライブマイグレーションなど、追加のスレッドを使用することができます。そのため、VMは仮想CPUが使用できる以上のCPU時間を使用するように表示されることがあります。VMが割り当てられたvCPUよりも多くのCPU時間を使用しないようにするには、cpulimitを総コア数と同じ値に設定します。

CPU

cpuunitsオプション(最近では CPU shares または CPU weight と呼ばれることもあります)を使用すると、VM が他の実行中の VM と比較してどれだけの CPU 時間を取得するかを制御できます。これは相対的な重みで、デフォルトは100(またはホストがレガシーcgroup v1を使用している場合は1024)です。これを増やすと、VMはスケジューラによって、より低いウェイトの他のVMよりも優先されます。

たとえば、VM 100がデフォルトを100に設定し、VM 200が200に変更された場合、後者のVM 200は最初のVM 100の2倍のCPU帯域幅を受け取ることになります。

より詳しい情報はman systemd.resource-control を見て下さい。ここではCPUQuotacpulimit にCPUWeightcpuunits の設定に対応しています。参考文献や実装の詳細については Notes セクションを参照してください。

親和性

アフィニティ・オプションを使用すると、VMのvCPUの実行に使用する物理CPUコアを指定できます。I/OなどのペリフェラルVMプロセスは、この設定の影響を受けません。CPUアフィニティはセキュリティ機能ではないことに注意してください。

CPUアフィニティを強制することは、場合によっては意味がありますが、複雑さとメンテナンスの手間の増加を伴います。例えば、後からVMを追加したい場合や、VMをCPUコアの少ないノードに移行したい場合などです。また、一部のCPUがフルに使用され、他のCPUがほとんどアイドル状態である場合、非同期でシステムのパフォーマンスが制限されやすくなります。

アフィニティは tasksetCLIツールで設定します。これはman cpusetList Formatにあるホスト CPU 番号 (lscpu を参照) を受け入れます。このASCII 10進数リストには、数値だけでなく数値範囲も含めることができます。例えば、アフィニティ0-1,8-11(拡張0,1,8,9,10,11)は、VMがこれら6つの特定のホストコアのみで実行されるようにします。

CPUタイプ

QEMU は、486 から最新の Xeon プロセッサまで、さまざまな種類の CPUをエミュレートできます。プロセッサの世代が新しくなるごとに、ハードウェア アシスト 3d レンダリング、乱数生成、メモリ保護などの新機能が追加されます。また、現在の世代は、バグやセキュリティの修正を伴うマイクロコードアップデートによってアップグレードできます。

通常、ホスト・システムのCPUに近いプロセッサ・タイプをVMに選択する必要があります。これは、ホストのCPU機能(CPUフラグとも呼ばれます)がVMで利用できることを意味します。完全に一致させたい場合は、CPUタイプをホストに設定すると、VMはホスト・システムと全く同じCPUフラグを持つことになります。

しかし、これには欠点があります。異なるホスト間でVMのライブマイグレーションを行いたい場合、VMは異なるCPUタイプや異なるマイクロコードバージョンを持つ新しいシステム上で終了するかもしれません。 ゲストに渡されたCPUフラグが欠落している場合、QEMUプロセスは停止します。これを解決するために、QEMUには独自の仮想CPUタイプがあり、Proxmox VEはデフォルトでこれを使用します。

バックエンドのデフォルトはkvm64で、基本的にすべてのx86_64ホストCPUで動作します。新しいVMを作成する際のUIのデフォルトはx86-64-v2-AESで、Intelの場合はWestmereから始まるホストCPU、AMDの場合は少なくとも第4世代のOpteronが必要です。

要するに:

ライブマイグレーションにこだわらない場合や、すべてのノードが同じCPUと同じマイクロコードバージョンを持つ均質なクラスタの場合は、CPUタイプをホストに設定してください。

ライブマイグレーションとセキュリティを重視し、Intel CPUのみ、またはAMD CPUのみを使用している場合は、クラスタのCPUの世代が最も低いモデルを選択してください。

セキュリティなしのライブマイグレーションを重視する場合や、Intel/AMDクラスタが混在している場合は、互換性の最も低い仮想QEMU CPUタイプを選択してください。

Note IntelとAMDのホストCPU間のライブマイグレーションは、動作保証がありません。

QEMUで定義されているAMDとIntelのCPUタイプの一覧」も参照してください。

QEMU CPU タイプ

QEMUは、IntelとAMDの両方のホストCPUと互換性のある仮想CPUタイプも提供しています。

Note 仮想CPUタイプのSpectre脆弱性を緩和するには、関連するCPUフラグを追加する必要があります。

歴史的に、Proxmox VEのCPUモデルはkvm64で、Pentium 4レベルのCPUフラグが有効になっていました。

2020年夏、AMD、Intel、Red Hat、SUSEは共同で、x86-64ベースラインの上に3つのx86-64マイクロアーキテクチャ・レベルを定義し、モダン・フラグを有効にしました。詳細については、x86-64-ABI仕様を参照してください。

Note CentOS 9のような新しいディストリビューションは、x86-64-v2フラグを最低要件としてビルドされています。
  • kvm64 (x86-64-v1):Intel CPU >= Pentium 4、AMD CPU >= Phenomに対応。

  • x86-64-v2:Intel CPU >= Nehalem, AMD CPU >= Opteron_G3 に対応。x86-64-v1 と比較して CPU フラグを追加:+cx16,+lahf-lm,+popcnt,+pni,+sse4.1,+sse4.2,+ssse3.

  • x86-64-v2-AES:Intel CPU >= Westmere, AMD CPU >= Opteron_G4に対応。x86-64-v2と比較してCPUフラグを追加:+aes

  • x86-64-v3: Intel CPU >= Broadwell, AMD CPU >= EPYC に対応。x86-64-v2-AESと比較してCPUフラグを追加:+avx+avx2 、+bmi1 、+bmi2、+f16c+fma+movbe+xsave

  • x86-64-v4: Intel CPU >= Skylake, AMD CPU >= EPYC v4 Genoa と互換性があります。x86-64-v3 と比較して CPU フラグが追加されました:+avx512f,+avx512bw,+avx512cd,+avx512dq,+avx512vl.

カスタムCPUタイプ

設定可能な機能セットを持つカスタム CPU タイプを指定できます。これらは、管理者が設定ファイル/etc/pve/virtual-guest/cpu-models.confで管理します。フォーマットの詳細については、man cpu-models.confを参照してください。

指定されたカスタムタイプは、/nodesの Sys.Audit権限を持つユーザであれば誰でも選択できます。CLIまたはAPIを介してVMにカスタムCPUタイプを設定する場合、名前の前にcustom-を付ける必要があります。

Meltdown / Spectre 関連 CPU フラグ

MeltdownおよびSpectre脆弱性
[Meltdown Attackhttps://meltdownattack.com/]
に関連するCPUフラグがいくつかありますが、選択したVMのCPUタイプがデフォルトですでに有効になっている場合を除き、手動で設定する必要があります。

これらのCPUフラグを使用するには、2つの条件を満たす必要があります:

  • ホスト CPU がその機能をサポートし、それをゲストの仮想 CPU に伝える必要があります。

  • ゲストオペレーティングシステムは、攻撃を軽減し、CPU機能を利用できるバージョンにアップデートする必要があります。

そうでない場合は、Web UIでCPUオプションを編集するか、VM設定ファイルでcpuオプションのflagsプロパティを設定して、仮想CPUの希望するCPUフラグを設定する必要があります。

Spectre v1,v2,v4の修正については、CPUまたはシステムベンダーがCPU用のいわゆる「マイクロコードアップデート」を提供する必要もあります。影響を受けるすべての CPU が spec-ctrl をサポートするようにアップデートできるわけではないことに注意してください。

Proxmox VE ホストが脆弱かどうかを確認するには、root で以下のコマンドを実行します:

for f in /sys/devices/system/cpu/vulnerabilities/*; do echo "${f##*/}.-" $(cat "$f"); done


[spectre-meltdown-checkerhttps://meltdown.ovh/]
ホストがまだ脆弱かどうかを検出するためのコミュニティ・スクリプトも用意されています。

インテル・プロセッサー

  • ピピッド

    これにより、ユーザー空間からカーネルメモリを効果的に隠すKPTI(Kernel Page-Table Isolation)と呼ばれるMeltdown(CVE-2017-5754)緩和策のパフォーマンスへの影響が軽減されます。PCIDなしでは、KPTIはかなり高価なメカニズムです
    [PCID is now a critical performance/security feature on x86https://groups.google.com/forum/m/#!topic/mechanical-sympathy/L9mHTbeQLNU]

    Proxmox VEホストがPCIDをサポートしているかどうかを確認するには、rootで次のコマンドを実行します:

    # grep ' pcid ' /proc/cpuinfo

    これがemptyを返さない場合、ホストのCPUはpcidをサポートしています。

  • スペックctrl

    Spectre v1 (CVE-2017-5753) および Spectre v2 (CVE-2017-5715) の修正を有効にするには、retpolines が十分でない場合に必要です。 IBRS サフィックスが -IBRS のインテル CPU モデルではデフォルトで含まれています。 IBRS サフィックスが -IBRS でないインテル CPU モデルでは明示的にオンにする必要があります。 更新されたホスト CPU マイクロコード (intel-microcode >= 20180425) が必要です。

  • エスエスビーディー

    Spectre V4 (CVE-2018-3639) 修正を有効にするために必要です。すべてのインテル CPU モデルで明示的にオンにする必要があります。 更新されたホスト CPU マイクロコード (intel-microcode >= 20180703) が必要です。

AMDプロセッサー

  • イブピ

    Spectre v1 (CVE-2017-5753) および Spectre v2 (CVE-2017-5715) の修正を有効にするには、retpolines が十分でない場合に必要です。 AMD CPU モデルで -IBPB サフィックスがデフォルトで含まれています。 AMD CPU モデルで -IBPB サフィックスがない場合は、明示的にオンにする必要があります。 ゲスト CPU で使用する前に、ホスト CPU のマイクロコードがこの機能をサポートしている必要があります。

  • ヴィルトエスビーディー

    Spectre v4 (CVE-2018-3639) 修正を有効にするために必要です。 どの AMD CPU モデルにもデフォルトでは含まれていません。 すべての AMD CPU モデルで明示的に有効にする必要があります。 ゲストの互換性を最大化するために、amd-ssbd も提供されている場合でも、これはゲストに提供する必要があります。 これは物理 CPU には存在しない仮想機能であるため、「ホスト」CPU モデルを使用する場合は明示的に有効にする必要があることに注意してください。

  • amd-ssbd

    Spectre v4 (CVE-2018-3639) 修正を有効にするために必要です。 どの AMD CPU モデルにもデフォルトでは含まれていません。すべての AMD CPU モデルで明示的にオンにする必要があります。 これは virt-ssbd よりも高いパフォーマンスを提供するため、これをサポートするホストは、可能であれば常にこれをゲストに公開する必要があります。

  • amd-no-ssb

    ホストが Spectre V4 (CVE-2018-3639) に対して脆弱ではないことを示すために推奨されます。 どの AMD CPU モデルにもデフォルトでは含まれていません。 将来のハードウェア世代の CPU は CVE-2018-3639 に対して脆弱ではないため、amd-no-ssb を公開することで、その緩和策を有効にしないようにゲストに伝える必要があります。 これは virt-ssbd および amd-ssbd と相互に排他的です。

NUMA

また、オプションでNUMA
[https://en.wikipedia.org/wiki/Non-uniform_memory_access]
アーキテクチャをVMでエミュレートすることもできます。NUMAアーキテクチャの基本は、すべてのコアで利用可能なグローバル・メモリ・プールを持つ代わりに、メモリを各ソケットに近いローカル・バンクに分散させることを意味します。 これにより、メモリ・バスがボトルネックでなくなるため、速度が向上します。システムがNUMAアーキテクチャを採用している場合
[numactl --hardware | grep availableコマンドが複数のノードを返す場合は、ホストシステムがNUMAアーキテクチャを採用しています]
ホストシステム上でVMリソースを適切に分配できるようになるため、このオプションを有効にすることをお勧めします。 このオプションは、VMのコアやRAMをホットプラグする場合にも必要です。

NUMAオプションを使用する場合は、ソケット数をホストシステムのノード数に設定することをお勧めします。

vCPU ホットプラグ

最近のオペレーティングシステムでは、実行中のシステムでCPUをホットプラグしたり、ある程度までホットアンプラグしたりする機能が導入されています。仮想化によって、このようなシナリオで実際のハードウェアが引き起こす(物理的な)問題の多くを回避することができます。 それでも、これはかなり新しく複雑な機能なので、その使用は絶対に必要な場合に限定すべきです。ほとんどの機能は、他の、よくテストされた、より複雑でない機能で再現できます。

Proxmox VEでは、プラグインされたCPUの最大数は常にコア数*ソケット数です。 このCPUの合計コア数より少ないコア数でVMを起動するには、vcpus設定を使用することができ、これはVM起動時にプラグインされるべきvCPUの数を示します。

現在、この機能はLinuxでのみサポートされており、3.10より新しいカーネルが必要で、4.7より新しいカーネルが推奨されています。

以下のように udev ルールを使用して、新しい CPU をゲストのオンラインとして自動的に設定できます:

SUBSYSTEM=="cpu", ACTION=="add", TEST=="online", ATTR{online}=="0", ATTR{online}="1"

これを /etc/udev/rules.d/ の下に.rules で終わるファイルとして保存します。

注意: CPU ホットリムーブはマシン依存であり、ゲストの協力が必要です。 削除コマンドは CPU の削除が実際に行われることを保証するものではなく、通常は x86/amd64 の ACPI のようなターゲットに依存するメカニズムを使用してゲスト OS に転送されるリクエストです。

メモリー

各VMには、固定サイズのメモリを設定するか、ホストの現在のRAM使用量に基づいて動的にメモリを割り当てるようにProxmox VEに依頼するオプションがあります。

screenshot/gui-create-vm-memory.png
固定メモリ割り当て

メモリと最小メモリを同じ量に設定した場合、Proxmox VEは単純に指定した量をVMに割り当てます。

固定メモリサイズを使用している場合でも、ゲストが実際に使用するメモリ量などの有用な情報を提供するため、バルーニングデバイスは VM に追加されます。 一般的に、バルーニングは有効なままにしておく必要がありますが、(デバッグ目的などで)無効にしたい場合は、バルーニングデバイスのチェックを外すか、または

バルーン: 0

を設定します。

自動メモリ割り当て

最小メモリをメモリより低く設定すると、Proxmox VE は指定した最小量が常に VM で使用可能であることを確認し、ホスト上の RAM 使用率が 80% 未満の場合、指定した最大メモリまで動的にゲストにメモリを追加します。

ホストの RAM が不足すると、VM はホストにメモリを解放し、必要に応じて実行中のプロセスをスワップし、最後の手段として oom killer を起動します。ホストとゲスト間のメモリの受け渡しは、ゲスト内部で動作する特別なバルーンカーネルドライバを介して行われます。
[バルーンドライバの内部構造に関する詳しい説明は、こちらhttps://rwmj.wordpress.com/2010/07/17/virtio-balloon/] を参照してください

複数のVMが自動割り当て機能を使用する場合、各VMが占有すべき空きホスト・メモリの相対量を示すシェア係数を設定することができます。例えば、4つのVMがあり、そのうちの3つがHTTPサーバを実行し、最後の1つがデータベースサーバであるとします。データベース・サーバのRAMにより多くのデータベース・ブロックをキャッシュするために、予備のRAMが利用可能な場合、データベースVMを優先したいとします。このため、データベースVMに3000のSharesプロパティを割り当て、他のVMはデフォルト設定の1000にします。ホスト・サーバには 32GB の RAM があり、現在 16GB を使用しているため、32 * 80/100 - 16 = 9GB の RAM が、設定された最小メモリ量に加えて VM に割り当てられます。データベース VM には 9 * 3000 / (3000 + 1000 + 1000 + 1000) = 4.5 GB の RAM が、HTTP サーバにはそれぞれ 1.5 GB の RAM が追加されます。

2010 年以降にリリースされたすべての Linux ディストリビューションには、バルーンカーネルドライバーが含まれています。Windows OS の場合、バルーンドライバは手動で追加する必要があり、ゲストの速度を低下させる可能性があるため、重要なシステムでの使用はお勧めしません。

VMにRAMを割り当てる場合、ホストが使用できるRAMを常に1GB残しておくのが良い経験則です。

メモリ暗号化

AMD SEV

SEV(セキュア暗号化仮想化)は、AES-128暗号化とAMDセキュア・プロセッサを使用して、VMごとのメモリ暗号化を可能にします。

さらに、SEV-ES(Secure Encrypted Virtualization-Encrypted State)は、ハイパーバイザーへの情報漏洩を防ぐため、VMの実行停止時にすべてのCPUレジスタの内容を暗号化します。この機能は非常に実験的なものです。

ホストの条件

  • AMD EPYC CPU

  • SEV-ESはAMD EPYC 7xx2以降でのみサポートされます。

  • ホスト・マシンのBIOS設定でAMDメモリー暗号化を設定します。

  • デフォルトで有効になっていない場合は、カーネルパラメータに「kvm_amd.sev=1」を追加します。

  • ホスト(SME)上のメモリーを暗号化したい場合は、カーネル・パラメーターに "mem_encrypt=on "を追加https://www.kernel.org/doc/Documentation/x86/amd-memory-encryption.txtを参照。

  • SWIOTLBはhttps://github.com/AMDESE/AMDSEV#faq-4を参照。

ホスト上でSEVが有効になっているかどうかを確認するには、dmesgでsevを検索し、kvm_amdのSEVカーネルパラメータを出力します:

# dmesg | grep -i sev [...] ccp 0000:45:00.1: sev enabled [...] ccp 0000:45:00.1: SEV API: <buildversion> [...] SEV supported: <number> ASIDs [...] SEV-ES supported: <number> ASIDs # cat /sys/module/kvm_amd/parameters/sev Y

ゲストの条件

  • edk2-OVMF

  • Q35を使用することをお勧めします。

  • ゲスト OS に SEV サポートが含まれている必要があります。

制限事項

  • メモリが暗号化されているため、ホスト上のメモリ使用量は常に間違っています。

  • スナップショットやライブマイグレーションなど、メモリーの保存や復元を伴う操作はまだ機能していないか、攻撃可能です。https://github.com/PSPReverse/amd-sev-migration-attack

  • PCIパススルーはサポートされていません。

  • SEV-ESは非常に実験的なものです。

  • QEMUとAMD-SEVのドキュメントは非常に限られています。

設定例:

# qm set <vmid> -amd_sev type=std,no-debug=1,no-key-sharing=1,kernel-hashes=1。

typeは暗号化技術を定義します("type="は必要ありません)。 利用可能なオプションはstdとesです。

QEMUポリシーパラメータは、no-debugパラメータとno-key-sharingパラメータで計算されます。これらのパラメータはポリシービット0と1に対応します。typeが esの場合、ポリシービット2は1に設定され、SEV-ESが有効になります。 ポリシービット3(nosend)はマイグレーション攻撃を防ぐために常に1に設定されます。ポリシーの計算方法の詳細については、AMD SEV API仕様書第3章を参照してください。

kernel-hashesオプションは、古いOVMFイメージやカーネル/initrdを測定しないゲストとの後方互換性のため、デフォルトではオフになっています。https://lists.gnu.org/archive/html/qemu-devel/2021-11/msg02598.html を参照してください

SEVがゲストで動作しているかチェック

方法 1 - dmesg:

出力はこのようになります。

# dmesg | grep -i sev AMD Memory Encryption Features active:SEV

方法 2 - MSR 0xc0010131 (MSR_AMD64_SEV):

出力は1でなければなりません。

# apt install msr-tools # modprobe msr # rdmsr -a 0xc0010131 1

リンク

  • https://developer.amd.com/sev/

  • https://github.com/AMDESE/AMDSEV

  • https://www.qemu.org/docs/master/system/i386/amd-memory-encryption.html

  • https://www.amd.com/system/files/TechDocs/55766_SEV-KM_API_Specification.pdf

  • https://documentation.suse.com/sles/15-SP1/html/SLES-amd-sev/index.html

ネットワーク機器

screenshot/gui-create-vm-network.png

各VMは、4つの異なるタイプの多数のネットワーク・インターフェイス・コントローラ(NIC)を持つことができます:

  • Intel E1000がデフォルトで、Intelギガビットネットワークカードをエミュレートします。

  • 準仮想化 NIC を使用する必要があります。すべての VirtIO デバイスと同様に、ゲスト OS には適切なドライバがインストールされている必要があります。

  • Realtek 8139は旧式の100MB/sネットワークカードをエミュレートしているため、古いオペレーティングシステム(2002年以前にリリースされたもの)をエミュレートする場合にのみ使用してください。

  • vmxnet3は別の準仮想化デバイスで、別のハイパーバイザーから VM をインポートする場合にのみ使用します。

Proxmox VEは各NICにランダムなMACアドレスを生成し、VMがイーサネットネットワーク上でアドレス指定できるようにします。

VMに追加したNICは、2つの異なるモデルのいずれかに従います:

  • デフォルトのブリッジモードでは、各仮想NICはタップデバイス(イーサネットNICをシミュレートするソフトウェアループバックデバイス)によってホスト上でバックアップされます。このタップデバイスは、Proxmox VEではデフォルトでvmbr0というブリッジに追加されます。このモードでは、VMはホストがあるイーサネットLANに直接アクセスできます。

  • 代替NATモードでは、各仮想NICはQEMUユーザーネットワーキングスタックとのみ通信し、内蔵ルーターとDHCPサーバーがネットワークアクセスを提供します。この内蔵DHCPは、プライベート10.0.2.0/24範囲のアドレスを提供します。NATモードはブリッジモードよりもはるかに遅いので、テストにのみ使用してください。このモードはCLIまたはAPI経由でのみ利用可能で、Web UI経由では利用できません。

また、ネットワークデバイスなしを選択することで、VMの作成時にネットワークデバイスの追加を省略することもできます。

各 VM ネットワークデバイスのMTU設定を上書きできます。mtu=1オプションは、MTU 値が基礎となるブリッジから継承される特殊なケースを表します。 このオプションは、VirtIOネットワークデバイスでのみ使用できます。

マルチキュー

VirtIO ドライバを使用している場合、オプションでMultiqueueオプションを有効にできます。このオプションにより、ゲスト OS は複数の仮想 CPU を使用してネットワークパケットを処理できるようになり、転送されるパケットの総数が増加します。

Proxmox VEでVirtIOドライバを使用する場合、各NICネットワークキューはホストカーネルに渡され、キューはvhostドライバによって生成されたカーネルスレッドによって処理されます。このオプションを有効にすると、各 NIC に対して複数のネットワーク・キューをホスト・カーネルに渡すことができます。

Multiqueue を使用する場合は、ゲストの vCPU 数と同じ値に設定することをお勧めします。vCPU 数は、 ソケット数× VM に設定されたコア数であることを忘れないでください。また、この ethtool コマンドを使用して、VM の各 VirtIO NIC の多目的チャネル数を設定する必要があります:

ethtool -L ens1 結合 X

ここで、XはVMのvCPU数です。

WindowsゲストをMultiqueue用に設定するには、Redhat VirtIO Ethernetアダプタドライバをインストールし、次のようにNICの設定を変更します。デバイスマネージャーを開き、"Network adapters" で NIC を右クリックし、"Properties" を選択します。次に「詳細設定」タブを開き、左側のリストから「受信側スケーリング」を選択します。有効」になっていることを確認してください。次に、リストの「Maximum number of RSS Queues」に移動し、VMのvCPU数に設定します。設定が正しいことを確認したら、「OK」をクリックして確定します。

Multiqueue パラメータを 1 より大きな値に設定すると、トラフィックが増加するにつれてホストおよびゲストシステムの CPU 負荷が増加することに注意してください。このオプションは、VM がルーター、リバースプロキシ、または長時間のポーリングを行うビジーな HTTP サーバーとして実行されている場合など、VM が多数の着信接続を処理する必要がある場合にのみ設定することをお勧めします。

ディスプレイ

QEMU は、数種類の VGA ハードウェアを仮想化できます。いくつか例を挙げます:

  • デフォルトのstd は、Bochs VBE 拡張を持つカードをエミュレートします。

  • cirrus はかつてデフォルトで使用されていましたが、非常に古いハードウェアモ ジュールをエミュレートしており、すべての問題があります。
    [https://www.kraxel.org/blog/2014/10/qemu-using-cirrus-considered-harmful/ qemu:cirrus の使用は有害です]
    、例えば Windows XP 以前を使用している場合。

  • vmwareは、VMWare SVGA-II互換アダプタです。

  • qxl は QXL 準仮想化グラフィックカードです。これを選択すると、VMのSPICE(リモート・ビューワ・プロトコル)も有効になります。

  • Virtio-gl(しばしばVirGLと呼ばれます)は、VM内で使用するための仮想3D GPUで、特別な(高価な)モデルやドライバを必要とせず、ホストGPUを完全にバインドすることなく、ワークロードをホストGPUにオフロードすることができます。

    Note VirGLのサポートにはいくつかの追加ライブラリが必要ですが、比較的大きいためデフォルトではインストールされず、またすべてのGPUモデル/ベンダーでオープンソースとして利用できるわけではありません。ほとんどのセットアップでは、次のようにするだけです:apt install libgl1 libegl1

メモリオプションを設定することで、仮想 GPU に与えるメモリ量を編集できます。これにより、特に SPICE/QXL で、VM 内でより高い解像度を実現できます。

メモリは表示デバイスによって予約されるため、SPICE でマルチモニタ・モード(デュアルモニタの場合はqxl2など)を選択すると、いくつかの意味があります:

  • Windowsはモニタごとにデバイスを必要とするため、ostypeがWindowsの場合、Proxmox VEはモニタごとに追加のデバイスをVMに与えます。 各デバイスは指定された量のメモリを取得します。

  • Linux VMでは、常に多くの仮想モニタを有効にすることができますが、マルチモニタ・モードを選択すると、デバイスに与えられるメモリがモニタの数に乗算されます。

ディスプレイタイプとして serialXを選択すると、VGA出力が無効になり、Webコンソールは選択したシリアルポートにリダイレクトされます。この場合、ディスプレイメモリの設定は無視されます。

VNCクリップボード

クリップボードを vncに設定することで、VNCクリップボードを有効にすることができます。

# qm set <vmid> -vga <displaytype>,clipboard=vnc

クリップボード機能を使用するには、まずSPICEゲストツールをインストールする必要があります。Debianベースのディストリビューションでは、spice-vdagentをインストールすることで実現できます。他のオペレーティングシステムでは、公式リポジトリで検索するか、https://www.spice-space.org/download.htmlを参照してください

spiceゲストツールをインストールすると、VNCクリップボード機能を使用することができます(noVNCコンソールパネルなど)。ただし、SPICE、virtio、virgl を使用している場合は、使用するクリップボードを選択する必要があります。 これは、clipboardvnc に設定されている場合、デフォルトのSPICEクリップボードがVNCクリップボードに置き換わるためです。

USBパススルー

USBパススルー・デバイスには2種類あります:

  • ホストUSBパススルー

  • SPICE USBパススルー

ホストUSBパススルーは、VMにホストのUSBデバイスを提供することで機能します。 これは、ベンダーIDやプロダクトIDを経由するか、ホスト・バスやポートを経由することができます。

vendor/product-idは次のようになります:0123:abcd、ここで0123はベンダーのID、abcdは製品のIDです。

バス/ポートは次のようになります:1-2.3.4で1がバス、2.3.4がポートパスです。これはホストの物理ポートを表します(usbコントローラの内部順序に依存します)。

VMの起動時にVMのコンフィグレーションにデバイスが存在していても、そのデバイスがホストに存在しない場合、VMは問題なく起動できます。 デバイス/ポートがホストで利用可能になると、すぐにそのデバイスがパススルーされます。

Warning このようなUSBパススルーを使用することは、VMを別のホストにオンラインで移動できないことを意味します。

パススルーの2つ目のタイプは、SPICE USB パススルーです。VM に 1 つ以上の SPICE USB ポートを追加すると、SPICE クライアントから VM にローカルの USB デバイスを動的に渡すことができます。これは、入力デバイスやハードウェアドングルを一時的にリダイレクトするのに便利です。

クラスタレベルでデバイスをマッピングすることも可能で、HAで適切に使用でき、ハードウェアの変更が検出され、ルートユーザー以外でも設定できるようになります。詳細はリソースマッピングを参照してください。

BIOS および UEFI

コンピュータを適切にエミュレートするために、QEMUはファームウェアを使用する必要があります。 一般的なPCではBIOSまたは(U)EFIとして知られているファームウェアは、VMを起動する際の最初のステップの1つとして実行されます。BIOSは、基本的なハードウェアの初期化を行い、オペレーティング・システムにファームウェアとハードウェアへのインタフェースを提供します。デフォルトでは、QEMUはオープンソースのx86 BIOS実装であるSeaBIOSを使用します。SeaBIOS は、ほとんどの標準的なセットアップに適しています。

オペレーティングシステム (Windows 11 など) によっては UEFI 互換の実装を使う必要があるかもしれません。そのような場合、代わりにオープンソースの UEFI 実装であるOVMFを使う必要があります。
[OVMF Projecthttps://github.com/tianocore/tianocore.github.io/wiki/OVMF を見て下さい]。

例えば、VGA パススルーを行いたい場合などです。
[アレックス・ウィリアムソンは、これに関する良いブログエントリを持っています。https://vfio.blogspot.co.at/2014/08/primary-graphics-assignment-without-vga.html]

OVMFを使いたい場合、考慮すべき点がいくつかあります:

このディスクはバックアップやスナップショットに含まれ、1つしかありません。

このようなディスクは以下のコマンドで作成できます:

# qm set <vmid> -efidisk0 <storage>:1,format=<format>,efitype=4m,pre-enrolled-keys=1

ここで、<storage>はディスクを置きたいストレージ、<format>はストレージがサポートするフォーマットです。あるいは、Web インターフェースから、VM のハードウェアセクションのAddEFI Diskで、このようなディスクを作成することもできます。

efitypeオプションは、使用する OVMF ファームウェアのバージョンを指定します。新しい VM の場合、これは常に4m であるべきです。なぜなら、これはセキュア・ブートをサ ポートしており、将来の開発をサポートするために割り当てられる容量が多いからです(GUI ではこれがデフォルトです)。

pre-enroll-keysは、efidisk にディストリビューション固有のセキュアブートキーと Microsoft 標準セキュアブートキーを事前にロードするかどうかを指定します。また、デフォルトでセキュアブートを有効にします (ただし、VM 内の OVMF メニューで無効にすることもできます)。

Note 既存の VM (2m のefidisk を使用している) でセキュアブートの使用を開始する場合は、efidisk を再作成する必要があります。そのためには、古いefidisk を削除し(qm set <vmid> -delete efidisk0)、前述の方法で新しいefidisk を追加します。これにより、OVMFメニューで行ったカスタム設定がリセットされます!

仮想ディスプレイ(VGAパススルーなし)でOVMFを使用する場合、OVMFメニュー(ブート中にESCボタンを押すと表示されます)でクライアントの解像度を設定するか、ディスプレイタイプとしてSPICEを選択する必要があります。

トラステッド・プラットフォーム・モジュール(TPM)

トラステッド・プラットフォーム・モジュール(Trusted Platform Module)は、暗号化キーなどの秘密データを安全に保存し、システムの起動を検証するための耐タンパー機能を提供するデバイスです。

特定のオペレーティングシステム(Windows 11など)では、このようなデバイスをマシン(物理または仮想)に接続する必要があります。

TPMは、tpmstateボリュームを指定して追加します。これはefidiskに似た働きをしますが、一度作成すると変更できません(削除のみ)。以下のコマンドで追加できます:

# qm set <vmid> -tpmstate0 <storage>:1,version=<version>.

ここで、<storage>は状態を置きたいストレージ、<version>は v1.2またはv2.0です。ウェブ・インターフェイスから、VM のハードウェア・セクションでAddTPM Stateを選択して追加することもできます。

v2.0TPM仕様の方が新しく、サポートが充実しているため、v1.2TPMを必要とする特定の実装がない限り、そちらを優先すべきです。

Note 物理的なTPMと比較すると、エミュレートされたTPMにはセキュリティ上の利点はありません。TPMのポイントは、TPM仕様の一部として指定されたコマンドを除いて、その上のデータを簡単に変更できないことです。エミュレートされたデバイスの場合、データの保存は通常のボリューム上で行われるため、そのボリュームにアクセスできる人なら誰でも編集できる可能性があります。

VM 間共有メモリ

VM 間共有メモリーデバイス(ivshmem) を追加することで、ホストとゲスト間、または複数のゲスト間でメモリーを共有することができます。

このようなデバイスを追加するには、qm:

# qm set <vmid> -ivshmem size=32,name=foo

サイズの単位は MiB です。ファイルは/dev/shm/pve-shm-$name(デフォルト名は vmid)配下に配置されます。

Note 現在、デバイスは、それを使用しているVMがシャットダウンまたは停止されるとすぐに削除されます。オープンな接続は維持されますが、まったく同じデバイスへの新しい接続はできなくなります。

このようなデバイスのユースケースとしては、Looking Glass
[Looking Glass:https://looking-glass.io/]
プロジェクトがあり、ホストとゲスト間で高性能、低遅延のディスプレイミラーリングが可能です。

オーディオ機器

オーディオデバイスを追加するには、以下のコマンドを実行します:

qm set <vmid> -audio0 device=<デバイス>.

対応オーディオデバイスは以下の通りです:

  • ich9-intel-hda:Intel HD オーディオコントローラ、ICH9 をエミュレート

  • intel-hda:Intel HD オーディオコントローラ、ICH6 をエミュレート

  • AC97:Audio Codec '97、Windows XPのような古いオペレーティングシステムに便利です。

バックエンドは2種類あります:

  • スパイス

  • 皆無

spiceバックエンドはSPICEと組み合わせて使用することができ、noneバックエンドはVM内のオーディオデバイスがソフトウェアの動作に必要な場合に便利です。ホストの物理オーディオ・デバイスを使用するには、デバイス・パススルーを使用します(PCI パススルーとUSB パススルーを参照)。MicrosoftのRDPのようなリモートプロトコルには、サウンドを再生するオプションがあります。

VirtIO RNG

RNG (Random Number Generator) は、システムにエントロピー(ランダム性) を提供するデバイスです。仮想ハードウェア RNG を使用して、ホストシステムからゲスト VM にエントロピーを提供することができます。これは、特にゲストのブートプロセス中に、ゲスト内のエントロピー飢餓問題 (十分なエントロピーが利用できず、システムが遅くなったり問題が発生したりする状況) を回避するのに役立ちます。

VirtIOベースのエミュレートされたRNGを追加するには、次のコマンドを実行します:

qm set <vmid> -rng0 source=<ソース>[,max_bytes=X,period=Y]。

sourceはエントロピーがホスト上のどこから読み込まれるかを指定します:

  • /dev/urandom:ノンブロッキングカーネルエントロピープール (推奨)

  • /dev/random:カーネルプールをブロック (推奨されません。ホストシステムでエントロピーが枯渇する可能性があります)

  • /dev/hwrng:ホストに接続されたハードウェア RNG を通過させます (複数の RNG が利用可能な場合、/sys/devices/virtual/misc/hw_random/rng_currentで選択されたものが使用されます)。

max_bytesと periodパラメータで制限を指定することができ、これらはミリ秒単位で1周期あたりのmax_bytesとして読み込まれます。しかし、これは線形関係を表すものではありません:1024B/1000ms は、1 秒のタイマーで最大 1 KiB のデータが利用可能になることを意味し、1 秒の間に 1 KiB がゲストにストリーミングされることを意味しません。そのため、周期を短くすることで、より速い速度でゲストにエントロピーを注入することができます。

デフォルトでは、制限は1000ミリ秒あたり1024バイト(1KiB/秒)に設定されています。ゲストがホストのリソースを使いすぎないように、常にリミッターを使用することをお勧めします。必要であれば、max_bytes0を指定することで、すべての制限を無効にすることができます。

デバイスの起動順序

QEMU は、どのデバイスから、どの順番でブートすべきかをゲストに指示できます。 これは、例えば、bootプロパティ経由で config で指定できます:

boot: order=scsi0;net0;hostpci0
screenshot/gui-qemu-edit-bootorder.png

この方法では、ゲストはまずディスクscsi0 からのブートを試み、失敗した場合はnet0 からのネットワークブートを試み、それも失敗した場合は、最後に通過した PCIe デバイス (NVMe の場合はディスクとみなされ、そうでない場合はオプション ROM に起動しようとします) からのブートを試みます。

GUI 上では、ドラッグアンドドロップエディタを使ってブート順序を指定したり、チェックボックス を使って特定のデバイスのブートを有効または無効にすることができます。

Note ゲストが OS を起動したりブートローダをロードするために複数のディスクを使用する場合、ゲストが起動できるようにするためには、それらの全てがブータブルとしてマークされている必要があります (つまり、チェックボックスが有効になっているか、設定内のリストに表示されている必要があります)。 これは、最近の SeaBIOS と OVMF のバージョンでは、ブータブルとしてマークされている場合にのみディスクを初期化するためです。

いずれにせよ、リストに表示されないデバイスやチェックマークが無効になっているデバイスでも、ゲストのオペレーティングシステムが起動して初期化されれば、ゲストはまだ利用可能です。ブータブルフラグはゲスト BIOS とブートローダーにのみ影響します。

仮想マシンの自動起動とシャットダウン

VMを作成した後、ホスト・システムのブート時にVMを自動的に起動させたいと思うでしょう。そのためには、ウェブ・インターフェイスのVMのオプション・タブからStart at bootオプションを選択するか、以下のコマンドで設定する必要があります:

# qm set <vmid> -onboot 1
screenshot/gui-qemu-edit-start-order.png
スタートとシャットダウンの順序

例えば、あるVMが他のゲストシステムにファイアウォールやDHCPを提供している場合など、VMの起動順序を微調整したい場合があります。 この場合、以下のパラメータを使用できます:

  • スタート/シャットダウン順:開始順序の優先順位を定義します。例えば、VMを最初に起動させたい場合は1に設定します。(シャットダウンには逆の起動順序を使用するため、起動順序が1のマシンは最後にシャットダウンされます)。ホスト上で複数のVMが同じ順序で定義されている場合、それらはさらにVMIDの昇順で並べられます。

  • 起動遅延:このVMが起動してから後続のVMが起動するまでの間隔を定義します。例えば、240秒待ってから他のVMを起動する場合は240に設定します。

  • シャットダウンタイムアウト:Proxmox VEがシャットダウンコマンドを発行した後、VMがオフラインになるまで待機する時間を秒単位で定義します。デフォルトでは、この値は180に設定されています。これは、Proxmox VEがシャットダウン要求を発行し、マシンがオフラインになるまで180秒待つことを意味します。タイムアウト後もマシンがオンラインの場合、強制的に停止されます。

Note HAスタックによって管理されるVMは、現在のところ起動時開始と起動順序オプションに従いません。これらのVMは、HAマネージャ自身がVMの起動と停止を確実に行うため、起動とシャットダウンのアルゴリズムによってスキップされます。

開始/シャットダウン順序パラメータが設定されていないマシンは、常にパラメータが設定されているマシンの後に開始することに注意してください。さらに、このパラメータは同じホスト上で実行されている仮想マシン間でのみ適用され、クラスタ全体では適用されません。

ホストのブートと最初のVMのブートの間に遅延が必要な場合は、Proxmox VEノード管理のセクションを参照してください。

QEMU ゲストエージェント

QEMU ゲストエージェントは VM 内で実行されるサービスで、ホストとゲスト間の通信チャネルを提供します。情報を交換するために使用され、ホストがゲストにコマンドを発行できるようにします。

例えば、VM サマリーパネルの IP アドレスはゲストエージェント経由で取得されます。

または、バックアップを開始する際に、ゲストエージェントを介して、fs-freezefs-thawコマンドで未処理の書き込みを同期するようにゲストに指示します。

ゲストエージェントが正しく動作するためには、以下の手順を実行する必要があります:

  • ゲストにエージェントをインストールし、実行されていることを確認します。

  • Proxmox VEでエージェント経由の通信を有効にします。

ゲストエージェントのインストール

ほとんどの Linux ディストリビューションでは、ゲストエージェントが利用可能です。パッケージ名は通常qemu-guest-agent です。

Windows では、Fedora VirtIO ドライバー ISO からインストールできます。

ゲストエージェント通信の有効化

Proxmox VEからゲストエージェントへの通信は、VMのオプションパネルで有効にできます。変更を有効にするには、VMの再スタートが必要です。

QGA を使用した自動 TRIM

Run guest-trimオプションを有効にすることができます。これを有効にすると、Proxmox VE は、ストレージにゼロを書き出す可能性のある以下の操作の後に、ゲストにトリムコマンドを発行します:

  • ディスクを別のストレージに移動

  • ローカルストレージを持つ別のノードへのVMのライブマイグレーション

シンプロビジョニングされたストレージでは、未使用領域を解放するのに役立ちます。

Note Linux の ext4 では、重複した TRIM リクエストの発行を避けるためにメモリ内の最適化を使用するため、注意点があります。ゲストは基礎となるストレージの変更について知らないので、最初のゲストトリムだけが期待通りに実行されます。それ以降の TRIM は、次のリブートまで、それ以降に変更されたファイルシステムの一部のみを考慮します。

バックアップ時のファイルシステムのフリーズと解凍

デフォルトでは、バックアップが実行されると、fs-freezeQEMU ゲストエージェントコマンドを介してゲストファイルシステムが同期され、一貫性が提供されます。

Windowsゲストでは、Windows VSS(Volume Shadow Copy Service)レイヤーをフックすることで一貫性のあるバックアップを処理するアプリケーションもあるため、fs-freezeがそれを妨害する可能性があります。たとえば、一部の SQL Server でfs-freeze を呼び出すと、VSS が SQL Writer VSS モジュールを呼び出す引き金となり、差分バックアップの SQL Server バックアップチェーンが切断されることが確認されています。

このようなセットアップでは、QGAオプションのfreeze-fs-on-backupを 0に設定することで、バックアップ時にフリーズと解凍のサイクルを発行しないようにProxmox VEを設定できます。これは、GUIでFreeze/thaw guest filesystems on backup for consistencyオプションを使用して実行することもできます。

Important このオプションを無効にすると、一貫性のないファイルシステムでバックアップが作成される可能性があるため、自分が何をしているのかわかっている場合にのみ無効にしてください。

トラブルシューティング

VMがシャットダウンしない

ゲストエージェントがインストールされ、実行されていることを確認します。

ゲストエージェントが有効になると、Proxmox VE はゲストエージェント経由でシャットダウンなどの電源コマンドを送信します。ゲストエージェントが実行されていない場合、コマンドは正しく実行できず、シャットダウンコマンドはタイムアウトになります。

SPICE の強化

SPICE Enhancements は、リモート・ビューワの操作性を向上させるオプション機能です。

GUIで有効にするには、仮想マシンの[オプション]パネルを開きます。CLIで有効にするには、次のコマンドを実行します:

qm set <vmid> -spice_enhancements foldersharing=1,videostreaming=すべて
Note これらの機能を使用するには、仮想マシンのDisplayをSPICE(qxl)に設定する必要があります。

フォルダ共有

ローカルフォルダをゲストと共有します。spice-webdavdデーモンをゲストにインストールする必要があります。これは、http://localhost:9843 にあるローカル WebDAV サーバーを通じて共有フォルダーを利用可能にします

Windows ゲストの場合、Spice WebDAV デーモンのインストーラはSPICE の公式ウェブサイトからダウンロードできます。

ほとんどのLinuxディストリビューションには、spice-webdavdというパッケージがインストールされています。

Virt-Viewer(リモートビューワー)でフォルダを共有するには、[ファイル]→[環境設定]に進みます。 共有するフォルダを選択し、チェックボックスを有効にします。

Note フォルダ共有は現在、Linux 版 Virt-Viewer でのみ機能します。
Caution 実験的です!現在、この機能は安定して動作していません。

ビデオストリーミング

高速リフレッシュエリアはビデオストリームにエンコードされます。2つのオプションがあります:

  • すべて:高速リフレッシュ領域はすべてビデオストリームにエンコードされます。

  • フィルタを使用します:ビデオストリーミングを使用するかどうかを決定するために、追加のフィルタが使用されます(現在、小さなウィンドウ面のみがスキップされます)。

ビデオストリーミングを有効にすべきかどうか、また、どのオプションを選択すべきかについては、一般的な推奨はできません。特定の状況によって異なります。

トラブルシューティング

共有フォルダが表示されない

ゲストで WebDAV サービスが有効で実行されていることを確認します。Windows ではSpice webdav proxy と呼ばれます。Linux ではspice-webdavdという名前ですが、ディストリビューションによって異なります。

サービスが実行されている場合は、ゲスト内のブラウザでhttp://localhost:9843 を開いてWebDAV サーバーを確認します。

SPICE セッションを再開するのに役立ちます。

マイグレーション

screenshot/gui-qemu-migrate.png

クラスタがある場合、VMを別のホストに移行するには

# qm migrate <vmid> <target>

これには一般的に2つのメカニズムがあります。

  • オンラインマイグレーション(別名ライブマイグレーション)

  • オフライン移行

オンライン移行

VMが実行中で、ローカルにバインドされたリソースが設定されていない場合(パススルーされるデバイスなど)、qm migrationコマンド呼び出しの--onlineフラグを使用してライブ・マイグレーションを開始できます。VMが実行されている場合、Webインタフェースはデフォルトでライブ・マイグレーションを行います。

仕組み

オンラインマイグレーションはまず、ターゲットホスト上で着信フラグを持つ新しい QEMU プロセスを起動し、ゲスト vCPU を一時停止したまま基本的な初期化のみを実行し、ソース仮想マシンのゲストメモリとデバイス状態のデータストリームを待ちます。 ディスクなどの他のリソースはすべて、VM の実行時状態移行が始まる前に共有されるか、すでに送信されているため、転送が必要なのはメモリコンテンツとデバイス状態のみです。

この接続が確立されると、ソースは非同期でメモリコンテンツをターゲットに送信し始めます。このループは、実行中のソースVMと受信中のターゲットVMのデータ差が数ミリ秒で送信できるほど小さくなるまで繰り返されます。 その後、ソースVMはユーザーやプログラムに気づかれることなく完全に一時停止し、残りのデータをターゲットに送信することができます。

要件

ライブマイグレーションが機能するためには、いくつかのことが必要です:

  • VM には移行できないローカルリソースはありません。例えば、PCI や USB デバイスは、現在ライブマイグレーションをブロックしています。 一方、ローカルディスクは、ターゲットに送信することで問題なくマイグレーションできます。

  • ホストは同じProxmox VEクラスタに配置されています。

  • ホスト同士は正常に(信頼できる)ネットワーク接続されています。

  • ターゲットホストには、Proxmox VEパッケージと同じかそれ以上のバージョンが必要です。逆に動作する場合もありますが、保証できません。

  • ホストは同じベンダーの同じようなCPUを使用しています。実際のモデルやVMのCPUタイプによっては異なるベンダーでも動作するかもしれませんが、保証はできません。

オフライン移行

ローカルリソースがある場合、すべてのディスクが両方のホストで定義されたストレージ上にある限り、VMをオフラインでマイグレーションすることができます。 マイグレーションは、オンラインマイグレーションと同様に、ネットワーク経由でターゲットホストにディスクをコピーします。ハードウェアパススルーの設定は、ターゲットホスト上のデバイスの場所に合わせる必要があるかもしれないことに注意してください。

コピーとクローン

screenshot/gui-qemu-full-clone.png

VMのインストールは通常、OSベンダーのインストール・メディア(CD-ROM)を使って行われます。OSによっては、これは避けたい時間のかかる作業です。

同じタイプのVMを多数デプロイする簡単な方法は、既存のVMをコピーすることです。このようなコピーにはクローンという用語を使用し、リンククローンと フルクローンを区別します。

フルクローン

このようなコピーの結果は独立したVMです。新しいVMは元のVMとストレージ・リソースを共有しません。

ターゲット・ストレージを選択することができるので、VMを全く別のストレージに移行することができます。ストレージドライバが複数のフォーマットをサポートしている場合は、ディスクイメージのフォーマットを変更することもできます。

Note フル・クローンは、すべてのVMイメージ・データを読み込んでコピーする必要があります。これは通常、リンクされたクローンを作成するよりもはるかに遅いです。

ストレージの種類によっては、特定のスナップショットをコピーすることができます。これはまた、最終的なコピーに元のVMからの追加スナップショットが含まれないことを意味します。

リンクド・クローン

最近のストレージ・ドライバは、リンクされたクローンを高速に生成する方法をサポートしています。このようなクローンは書き込み可能なコピーで、初期内容は元のデータと同じです。リンクされたクローンの作成はほぼ瞬時に行われ、初期状態では追加の領域を消費しません。

新しい画像はまだ元の画像を参照しているため、リンクされていると呼ばれます。変更されていないデータブロックは元の画像から読み込まれますが、変更は新しい場所から書き込まれます(その後、読み込まれます)。この手法はコピー・オン・ライトと呼ばれます。

これには、元のボリュームが読み取り専用であることが必要です。Proxmox VEを使用すると、任意のVMを読み取り専用の テンプレートに変換できます。このようなテンプレートは、後でリンクされたクローンを効率的に作成するために使用できます。

Note リンクされたクローンが存在する間は、元のテンプレートを削除することはできません。

これはストレージの内部機能であるため、リンクされたクローンのターゲットストレージを変更することはできません。

ターゲット・ノード・オプションを使用すると、新しいVMを別のノード上に作成できます。唯一の制限は、VMが共有ストレージ上にあり、そのストレージがターゲット・ノードでも利用可能であることです。

リソースの競合を避けるため、ネットワーク・インターフェイスのMACアドレスはすべてランダム化され、VMのBIOS(smbios1)設定用に新しいUUIDが生成されます。

仮想マシンテンプレート

VMをテンプレートに変換することができます。このようなテンプレートは読み取り専用で、リンクされたクローンを作成するために使用できます。

Note ディスクイメージを変更することになるため、テンプレートを起動することはできません。テンプレートを変更したい場合は、リンクされたクローンを作成し、それを変更してください。

VM ジェネレーション ID

Proxmox VEは、仮想マシンのVirtual Machine Generation ID(vmgenid)
[OfficialvmgenidSpecificationhttps://docs.microsoft.com/en-us/windows/desktop/hyperv_v2/virtual-machine-generation-identifier]
をサポートしています。これは、ゲストオペレーティングシステムが、バックアップの復元やスナップショットのロールバックなどのタイムシフトイベントを検出するために使用できます。

新しいVMを作成すると、vmgenidが自動的に生成され、設定ファイルに保存されます。

既に存在するVMにvmgenidを作成して追加するには、特別な値'1'を渡してProxmox VEに自動生成させるか、手動でUUID
[Online GUID generatorhttp://guid.one/]
を値として使用するなどして設定します:

# qm set VMID -vmgenid 1 # qm set VMID -vmgenid 00000000-0000-0000-000000000000
Note 既存のVMにvmgenidデバイスを最初に追加すると、スナップショットのロールバックやバックアップのリストアなどで、VMがこれを世代の変更と解釈するため、変更と同じ効果が生じる可能性があります。

vmgenidメカニズムが不要な場合は、VM作成時にその値に'0'を渡すか、またはコンフィギュレーションでそのプロパティを遡及的に削除することができます:

# qm set VMID -delete vmgenid

vmgenidの最も顕著なユースケースは、新しいMicrosoft Windowsオペレーティングシステムで、スナップショットのロールバック、バックアップのリストア、またはVM全体のクローン操作において、時間の影響を受けやすい、またはレプリケートサービス(データベースやドメインコントローラ
[https://docs.microsoft.com/en-us/windows-server/identity/ad-ds/get-started/virtual-dc/virtualized-domain-controller-architecture]
など)の問題を回避するために使用されます。

仮想マシンのインポート

海外のハイパーバイザーや他のProxmox VEクラスタから既存の仮想マシンをインポートするには、さまざまな方法があります:

  • ESXiの特殊ストレージが提供するようなインポートコンテンツタイプを利用するネイティブインポートウィザードを使用します。

  • ソースでバックアップを実行し、ターゲットでリストアします。この方法は、別のProxmox VEインスタンスから移行する場合に最適です。

  • qmコマンドラインツールの OVF 専用インポートコマンドを使用します。

他のハイパーバイザーからProxmox VEにVMをインポートする場合は、Proxmox VEの概念に慣れることをお勧めします。

インポートウィザード

screenshot/gui-import-wizard-general.png

Proxmox VEは、APIとWebベースのユーザインタフェースにネイティブに統合するために、ストレージプラグインシステムを使用した統合VMインポーターを提供します。これを使用してVMを全体としてインポートし、そのコンフィグのほとんどをProxmox VEのコンフィグモデルにマッピングし、ダウンタイムを削減することができます。

Note インポートウィザードはProxmox VE 8.2の開発サイクルで追加され、技術プレビューの状態です。すでに有望で安定して動作していますが、まだアクティブな開発中です。

インポートウィザードを使用するには、まずインポートソース用に新しいストレージをセットアップする必要があります。

次に、リソースツリーで新しいストレージを選択し、Virtual Guestsコンテンツタブを使用して、インポート可能なすべてのゲストを確認できます。

screenshot/gui-import-wizard-advanced.png

1つを選択し、インポートボタン(またはダブルクリック) を使ってインポートウィザードを開きます。ここで利用可能なオプションのサブセットを変更し、インポートを開始することができます。インポートが完了した後に、さらに詳細な修正を行うことができます。

Tip ESXi インポートウィザードは、ESXi バージョン 6.5 から 8.0 でテストされています。vSAN ストレージを使用しているゲストは、直接インポートできないことに注意してください。インポート元として vCenter を使用することは可能ですが、パフォーマンスが大幅に低下します(5 ~ 10 倍遅くなります)。

仮想ゲストを新しいハイパーバイザーに適応させる方法のステップバイステップのガイドとヒントについては、Proxmox VE へのマイグレーションの wiki 記事を参照してください。

OVA/OVF インポート

OVA/OVFファイルをインポートするには、まず、インポートコンテンツタイプのファイルベースのストレージが必要です。このストレージにはインポートフォルダがあり、OVAファイルまたはOVFファイルと対応する画像をフラットな構造で置くことができます。 または、Web UIを使用してOVAファイルを直接アップロードまたはダウンロードすることもできます。 その後、Web UIを使用してそれらを選択し、インポートウィザードを使用してゲストをインポートすることができます。

OVAファイルの場合、一時的にイメージを展開するために必要な領域が追加されます。これには、イメージのコンテンツタイプが設定されたファイルベースのストレージが必要です。デフォルトでは、このためにソースストレージが選択されますが、実際のターゲットストレージにインポートする前にイメージを抽出するインポート作業用ストレージを指定できます。

Note OVA/OVF ファイルの構造やコンテンツは常によく維持・定義されているわけではないので、いくつかのゲスト設定を手動で適応させる必要があるかもしれません。例えば、SCSI コントローラのタイプは OVA/OVF ファイルではほとんど定義されていませんが、デフォルトでは OVMF (UEFI) で起動できません。

CLIによるOVF/OVAのインポート

海外のハイパーバイザーからのVMエクスポートは通常、1つ以上のディスクイメージと、VMの設定(RAM、コア数)を記述した設定ファイルから構成されます。
ディスク・イメージは、ディスクがVMwareまたはVirtualBoxから提供される場合はvmdk形式、ディスクがKVMハイパーバイザーから提供される場合はqcow2形式になります。 VMエクスポート用の最も一般的な設定フォーマットはOVF標準ですが、多くの設定が標準自体で実装されておらず、ハイパーバイザーが非標準の拡張子で補足情報をエクスポートするため、実際には相互運用が制限されます。

フォーマットの問題だけでなく、エミュレートされるハードウェアがハイパーバイザーごとに大きく変わると、他のハイパーバイザーからのディスクイメージのインポートに失敗することがあります。OS はハードウェアの変更に非常にうるさいため、Windows VM は特にこの問題を気にします。この問題は、エクスポートする前にインターネットから入手可能な MergeIDE.zip ユーティリティをインストールし、インポートした Windows VM を起動する前にハードディスクのタイプをIDEに選択することで解決できます。

GNU/Linuxやその他のフリーのUnix OSには必要なドライバがすべてデフォルトでインストールされており、VMをインポートした直後に準仮想化ドライバに切り替えることができます。Windows VMの場合は、Windows準仮想化ドライバを自分でインストールする必要があります。

GNU/Linuxやその他のフリーUnixは通常、問題なくインポートできます。上記の問題のため、Windows VMのインポート/エクスポートがすべてのケースで成功することは保証できません。

Windows OVFインポートのステップバイステップ例

マイクロソフトは、Windows開発を始めるための仮想マシンのダウンロードを提供しています。私たちは、OVFインポート機能のデモを行うために、これらのうちの1つを使用するつもりです。

仮想マシンzipのダウンロード

ユーザー同意書について説明を受けた後、VMwareプラットフォーム用のWindows 10 Enterprise (Evaluation - Build)を選択し、zipをダウンロードします。

ZIPからディスクイメージを展開

unzipユーティリティまたは任意のアーカイバを使用してzipを解凍し、ssh/scp経由でovfファイルとvmdkファイルをProxmox VEホストにコピーします。

仮想マシンのインポート

これにより、OVFマニフェストから読み取ったコア、メモリ、VM名を使用して新しい仮想マシンが作成され、ディスクがlocal-lvmストレージにインポートされます。ネットワークは手動で設定する必要があります。

# qm importovf 999 WinDev1709Eval.ovf local-lvm

VMを起動する準備ができました。

仮想マシンへの外部ディスクイメージの追加

既存のディスク・イメージをVMに追加することもできます。

vmdebootstrapツールでDebian/Ubuntuディスクイメージを作成したとします:

vmdebootstrap --verbose ˶ --size 10GiB --serial-console ˶ --grub --no-extlinux ˶ --package openssh-server ˶ --package avahi-daemon ˶ --package qemu-guest-agent ˶ --hostname vm600 --enable-dhcp ˶ --customize=./copy_pub_ssh.sh ˶ --sparse --image vm600.raw

これで新しいターゲットVMを作成し、イメージをストレージpvedirにインポートしてVMのSCSIコントローラにアタッチすることができます:

# qm create 600 --net0 virtio,bridge=vmbr0 --name vm600 --serial0 socket ˶ --boot order=scsi0 --scsihw virtio-scsi-pci --ostype l26 ˶ --scsi0 pvedir:0,import-from=/path/to/dir/vm600.raw

VMを起動する準備ができました。

クラウドイニットサポート

Cloud-Initは、仮想マシンインスタンスの初期化を処理する、事実上の複数配布パッケージです。Cloud-Initを使用すると、ハイパーバイザー側でネットワークデバイスとsshキーの設定が可能になります。VM が初めて起動すると、VM 内部の Cloud-Init ソフトウェアがこれらの設定を適用します。

多くのLinuxディストリビューションは、すぐに使えるCloud-Initイメージを提供しています。これらのイメージは Proxmox VE でも動作します。このようなすぐに使えるイメージを入手するのは便利かもしれませんが、通常は自分でイメージを準備することをお勧めします。その利点は、何をインストールしたかを正確に知ることができ、後で自分のニーズに合わせてイメージを簡単にカスタマイズできることです。

このようなCloud-Initイメージを作成したら、それをVMテンプレートに変換することをお勧めします。VMテンプレートからリンクされたクローンを素早く作成できるので、これは新しいVMインスタンスをロールアウトする迅速な方法です。新しいVMを起動する前にネットワーク(と多分sshキー)を設定するだけです。

Cloud-InitでプロビジョニングされたVMにログインするには、SSHキーベースの認証を使用することをお勧めします。パスワードを設定することも可能ですが、Proxmox VEはCloud-Initのデータ内に暗号化されたパスワードを保存する必要があるため、SSHキーベースの認証ほど安全ではありません。

Proxmox VEはCloud-InitデータをVMに渡すためにISOイメージを生成します。通常、シリアルコンソールを追加してディスプレイとして使用します。多くのCloud-Initイメージはこれに依存しており、これはOpenStackの要件です。しかし、他のイメージではこの設定に問題があるかもしれません。シリアルコンソールを使ってもうまくいかない場合は、デフォルトのディスプレイ構成に戻してください。

Cloud-Init テンプレートの準備

最初のステップはVMの準備です。Cloud-Initパッケージを準備したいVMにインストールするだけです。Debian/Ubuntuベースのシステムでは、これは以下のように簡単です:

apt-get install cloud-init
Warning このコマンドはProxmox VEホスト上では実行されず、VM内部でのみ実行されます。

すでに多くのディストリビューションがすぐに使えるCloud-Initイメージ(.qcow2ファイルとして提供)を提供しているので、そのようなイメージをダウンロードしてインポートすることもできます。以下の例では、Ubuntuが提供するクラウドイメージ(https://cloud-images.ubuntu.com)を使用します

# イメージをダウンロード wget https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-amd64.img # VirtIO SCSI コントローラで新しい VM を作成 qm create 9000 --memory 2048 --net0 virtio,bridge=vmbr0 --scsihw virtio-scsi-pci # ダウンロードしたディスクを local-lvm ストレージにインポートし、 SCSI ドライブとしてアタッチ qm set 9000 --scsi0 local-lvm:0,import-from=/path/to/bionic-server-cloudimg-amd64.img
Note Ubuntu Cloud-Init イメージには、SCSI ドライブ用にvirtio-scsi-pciコントローラタイプが必要です。
screenshot/gui-cloudinit-hardware.png
Cloud-InitのCD-ROMドライブを追加

次のステップはCD-ROMドライブを設定することです。CD-ROMドライブはCloud-InitデータをVMに渡すために使用されます。

qm set 9000 --ide2 local-lvm:cloudinit

Cloud-Init イメージから直接ブートするには、ブートパラメータを order=scsi0に設定して、BIOS がこのディスクからのみブートするように制限します。これにより、VM BIOS はブート可能な CD-ROM のテストをスキップするため、ブートが高速化されます。

qm set 9000 --boot order=scsi0

多くの Cloud-Init イメージでは、シリアルコンソールを設定してディスプレイとして使用する必要があります。しかし、あるイメージで設定がうまくいかない場合は、代わりにデフォルトのディスプレイに切り替えてください。

qm set 9000 --serial0 socket --vga serial0

最後のステップでは、VMをテンプレートに変換すると便利です。VMテンプレートからのデプロイは、完全なクローン(コピー)を作成するよりもはるかに高速です。

QMテンプレート9000

Cloud-Init テンプレートのデプロイ

screenshot/gui-cloudinit-config.png

このようなテンプレートはクローンすることで簡単に導入できます:

qm clone 9000 123 --name ubuntu2

次に、認証に使用するSSH公開鍵を設定し、IP設定を行います:

qm set 123 --sshkey ~/.ssh/id_rsa.pub qm set 123 --ipconfig0 ip=10.0.10.123/24,gw=10.0.10.1

Cloud-Initのすべてのオプションを1つのコマンドだけで設定することもできます。上記の例では、行数を減らすためにコマンドを単純に分割しています。また、特定の環境のIPセットアップを採用するようにしてください。

Custom Cloud-Init Configuration

Cloud-Init の統合では、自動生成された設定の代わりにカスタム設定ファイルを使うこともできます。これはコマンドラインのcicustomオプションで行います:

qm set 9000 --cicustom "user=<volume>,network=<volume>,meta=<volume>"

カスタム設定ファイルは、スニペットをサポートするストレージ上にあり、VMを移行するすべてのノードで利用可能でなければなりません。そうでないと、VMは起動できません。 例えば、以下のようになります:

qm set 9000 --cicustom "user=local:snippets/userconfig.yaml"

Cloud-Initには3種類の設定があります。一つ目は上の例にあるようにユーザー設定です。2つ目はネットワーク設定、3つ目はメタ設定です。カスタムコンフィグファイルが指定されていない場合は、自動生成されたコンフィグが使われます。

生成されたコンフィグはカスタムコンフィグのベースとしてダンプすることができます:

qm cloudinit dump 9000 ユーザー

ネットワークと メタにも同じコマンドがあります。

Windows のクラウドイニット

Cloudbase-initというWindows用のCloud-Initの再実装があります。Cloudbase-InitではCloud-Initのすべての機能が利用できるわけではなく、Cloud-Initとは異なる機能もあります。

Cloudbase-Initでは、ostypeをWindowsバージョンに設定し、citypeを configdrive2に設定する必要があります。

Windows用の既製のクラウドイメージは無料で入手できません。Cloudbase-Initを使用するには、Windowsゲストを手動でインストールして設定する必要があります。

Cloudbase-Init テンプレートの準備

最初のステップはVMにWindowsをインストールすることです。Cloudbase-Initをダウンロードしてゲストにインストールします。インストールの最後にSysprepを実行しないでください。代わりにCloudbase-Initを最初に設定します。

一般的なオプションは以下の通りです:

  • username: 管理者のユーザー名を設定します。

  • グループに追加します:これにより、ユーザーをAdministratorsグループに追加できます。

  • inject_user_password: VMコンフィグでパスワードを設定できるようにするには、これをtrueに設定します。

  • first_logon_behaviour:ログイン時に新しいパスワードを要求しないようにするには、これをnoに設定します。

  • rename_admin_user:デフォルトの管理者ユーザーをusernameで指定したユーザー名に変更する場合はtrue を設定します。

  • metadata_services に設定します:Cloudbase-Init が最初にこのサービスをチェックするようにcloudbaseinit.metadata.services.configdrive.ConfigDriveServiceに設定します。そうしないと Cloudbase-Init がブート後にシステムを設定するのに数分かかるかもしれません。

プラグインの中には、例えば SetHostnamePlugin のように再起動を必要とし、自動的に再起動するものもあります。Cloudbase-Init による自動再起動を無効にするには、allow_rebootfalse に設定します。

設定オプションの完全なセットはcloudbase-init の公式ドキュメントにあります。

設定の一部にまだ調整が必要な場合に備えて、設定後にスナップショットを作成することは意味があります。 Cloudbase-Initを設定した後、テンプレートの作成を開始できます。Windowsゲストをシャットダウンし、Cloud-Initディスクを追加してテンプレートにします。

qm set 9000 --ide2 local-lvm:cloudinit qm template 9000

テンプレートを新しいVMにクローンします:

qm clone 9000 123 --name windows123

その後、パスワード、ネットワーク設定、SSHキーを設定します:

qm set 123 --cipassword <password> qm set 123 --ipconfig0 ip=10.0.10.123/24,gw=10.0.10.1 qm set 123 --sshkey ~/.ssh/id_rsa.pub

パスワードを設定する前に、ostypeが任意の Windows バージョンに設定されていることを確認してください。そうしないとパスワードは暗号化され、Cloudbase-Initは暗号化されたパスワードを平文のパスワードとして使用します。

すべての設定が完了したら、クローンしたゲストを起動します。最初の起動ではログインは機能せず、変更されたホスト名で自動的に再起動します。 再起動後、新しいパスワードが設定され、ログインが機能するはずです。

Cloudbase-Init と Sysprep

SysprepはWindowsの設定をリセットして新しいシステムを提供する機能です。Cloudbase-Initと併用することで、クリーンなテンプレートを作成することができます。

Sysprepを使用する場合、適合させる必要がある2つの設定ファイルがあります。 1つ目は通常の設定ファイル、2つ目は-unattend.confで終わる設定ファイルです。

Cloudbase-Initは2つのステップで実行されます。最初に-unattend.confを使用するSysprepステップ、次にプライマリ設定ファイルを使用する通常のステップです。

提供されているUnattend.xmlファイルを使用してSysprepを実行しているWindows Serverでは、すぐに動作するはずです。しかし、通常のWindowsバージョンでは、追加の手順が必要です:

  1. PowerShellインスタンスを開きます。

  2. Administrator ユーザーを有効にします:

    net user Administrator /active:yes`
  3. Cloudbase-InitをAdministratorユーザでインストールします。

  4. Unattend.xmlを修正して、sysprepping後の最初のブートでAdministratorユーザーを有効にするコマンドを含めます:

    <RunSynchronousCommand wcm:action="add"> <Path>net user administrator /active:yes</Path> <Order>1</Order> <Description>管理者ユーザーを有効にします</Description> </RunSynchronousCommand> <RunSynchronousCommand

    <Order >が他の同期コマンドと衝突しないことを確認してください。 Cloudbase-Initコマンドの<Order>を、このコマンドの後に実行するように変更します。

  5. (Windows 11のみ)競合するMicrosoft.OneDriveSyncパッケージを削除します:

    Get-AppxPackage -AllUsers Microsoft.OneDriveSync | Remove-AppxPackage -AllUsers
  6. Cloudbase-Init configディレクトリにcdします:

    cd 'C:¥Program Files¥Cloudbase Solutions¥Cloudbase-Init¥conf
  7. (オプション)Sysprep前にVMのスナップショットを作成し、設定ミスに備えます。

  8. Sysprepを実行します:

    C:¥Windows¥System32¥Sysprep¥Sysprep.exe /generalize /oobe /unattend:Unattend.xml

上記の手順を踏むと、SysprepによってVMはシャットダウン状態になるはずです。これでVMをテンプレート化し、クローンして必要に応じて設定することができます。

クラウドイニット固有のオプション

カスタム[meta=<volume>] [,network=<volume>] [,user=<volume>] [,vendor=<volume>] です。

開始時に自動生成されたファイルを置き換えるカスタムファイルを指定します。

meta=<ボリューム

cloud-init経由でVMに渡されるすべてのメタデータを含むカスタムファイルを指定します。これはプロバイダ固有で、configdrive2とnocloudは異なります。

ネットワーク=<ボリューム

すべてのネットワークデータを含むカスタムファイルをcloud-init経由でVMに渡す場合。

ユーザー=<ボリューム

すべてのユーザーデータを含むカスタムファイルをcloud-init経由でVMに渡す場合。

ベンダー=<ボリューム

すべてのベンダーデータを含むカスタムファイルをcloud-init経由でVMに渡すには。

cipassword:<文字列

ユーザーに割り当てるパスワード。これを使用することは一般的に推奨されません。代わりに ssh 鍵を使ってください。また、cloud-init の古いバージョンではハッシュ化されたパスワードをサポートしていないことに注意しましょう。

citype:<configdrive2 | nocloud | opennebula>です。

cloud-init設定フォーマットを指定します。デフォルトは、設定されているオペレーティングシステムの種類(ostype.Linuxではnocloud形式、Windowsではconfigdrive2を使用します。

ciupgrade:<boolean>(デフォルト = 1)

最初のブート後にパッケージの自動アップグレードを行います。

ciuser:<文字列

イメージに設定されているデフォルトユーザの代わりに、ssh キーとパスワードを変更するユーザ名。

ipconfig[n]:[gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>] となります。

対応するインターフェイスのIPアドレスとゲートウェイを指定します。

IPアドレスはCIDR表記を使用し、ゲートウェイはオプションですが、同じタイプのIPを指定する必要があります。

特別な文字列dhcpは、DHCPを使用するIPアドレスに使用することができ、その場合、明示的なゲートウェイを提供する必要はありません。 IPv6の場合、特別な文字列autoは、ステートレス自動設定を使用するために使用することができます。これにはcloud-init 19.4以降が必要です。

cloud-initが有効で、IPv4アドレスもIPv6アドレスも指定されていない場合、デフォルトでIPv4のdhcpを使用します。

gw=<ゲートウェイIPv4

IPv4トラフィックのデフォルトゲートウェイ。

Note 必要なオプション:ip
gw6=<ゲートウェイIPv6

IPv6トラフィックのデフォルトゲートウェイ。

Note 必要なオプション:ip6
ip=<IPv4Format/CIDR>(デフォルト = dhcp)

CIDR形式のIPv4アドレス。

ip6=<IPv6Format/CIDR>(デフォルト = dhcp)

CIDR形式のIPv6アドレス。

ネームサーバー:<文字列

コンテナの DNS サーバー IP アドレスを設定します。searchdomainもnameserverも設定されていない場合、Createはホストからの設定を自動的に使用します。

searchdomain:<文字列

コンテナのDNS検索ドメインを設定します。searchdomainもnameserverも設定されていない場合、Createはホストからの設定を自動的に使用します。

sshkeys:<文字列

公開SSH鍵を設定します(1行に1つの鍵、OpenSSH形式)。

PCI(e) パススルー

PCIパススルーは、ホストから仮想マシンにPCIデバイスを制御させるメカニズムです。これには、仮想化ハードウェアを使用する場合よりも、低レイテンシ、高パフォーマンス、より多くの機能(オフロードなど)などの利点があります。

しかし、デバイスを仮想マシンに渡すと、そのデバイスはホスト上でも他のVMでも使用できなくなります。

PCIパススルーはi440fxおよびq35マシンで利用可能ですが、PCIeパススルーはq35マシンのみで利用可能です。これは、PCIデバイスとしてパススルーされたPCIe対応デバイスがPCI速度でのみ動作することを意味するものではありません。PCIe としてデバイスを通過させることは、デバイスが "本当に高速なレガシー PCI デバイス" ではなく PCIe デバイスであることをゲストに伝えるためのフラグを設定するだけです。一部のゲストアプリケーションはこの恩恵を受けます。

一般要件

パススルーは実際のハードウェア上で実行されるため、いくつかの要件を満たす必要があります。これらの要件の概要を以下に示します。特定のデバイスに関する詳細については、PCIパススルーの例を参照してください。

ハードウェア

ハードウェアがIOMMUI/O Memory ManagementUnit)割り込みリマッピングをサポートしている必要があります。

一般的に、VT-dを搭載したIntelシステムとAMD-Viを搭載したAMDシステムはこれをサポートしています。 しかし、ハードウェアの実装が悪かったり、ドライバが不足していたり、品質が低かったりするため、箱から出してすぐにすべてが動作する保証はありません。

さらに、サーバーグレードのハードウェアは、コンシューマーグレードのハードウェアよりもサポートが優れていることが多いのですが、それでも最近のシステムの多くはこれをサポートしています。

この機能がLinuxでサポートされているかどうかは、ハードウェアベンダーにお問い合わせください。

PCI カードアドレスの決定

最も簡単な方法は、GUI を使用して VM のハードウェア・タブに「ホスト PCI」タイプのデバイスを追加することです。また、コマンドラインを使用することもできます。

カードを探すには

エルエスピーシー

コンフィギュレーション

ハードウェアがパススルーをサポートしていることを確認したら、PCI(e) パススルーを有効にするための設定を行う必要があります。

IOMMU

BIOS/UEFI で IOMMU サポートを有効にする必要があります。通常、対応する設定はIOMMUまたはVT-d と呼ばれますが、正確なオプション名はマザーボードのマニュアルで見つけてください。

AMD CPUでは、IOMMUはデフォルトで有効になっています。最近のカーネル(6.8以降)では、Intel CPUでも有効です。それ以前のカーネルでは、カーネルコマンドラインに以下を追加して、Intel CPU で有効にする必要があります:

intel_iommu=on
IOMMUパススルーモード

ハードウェアがIOMMUパススルーモードをサポートしている場合、このモードを有効にするとパフォーマンスが向上する可能性があります。 これは、VMがハイパーバイザによって通常実行される(デフォルトの)DMA変換をバイパスし、代わりにDMA要求をハードウェアIOMMUに直接渡すためです。これらのオプションを有効にするには、以下を追加します:

iommu=pt

をカーネルコマンドラインに追加します。

カーネルモジュール

以下のモジュールがロードされていることを確認する必要があります。etc/modules'に追加してください。

Note
媒介機器のパススルー

仲介デバイス(vGPUなど)を通過する場合は、以下は必要ありません。 このような場合、デバイスは該当するホストドライバが直接所有します。

vfio vfio_iommu_type1 vfio_pci

モジュール関連の何かを変更したら、initramfsをリフレッシュする必要があります。Proxmox VEでは、これを実行することで行えます:

# update-initramfs -u -k all

モジュールがロードされているかどうかをチェックするには

# lsmod | grep vfio

の4つのモジュールが含まれている必要があります。

仕上げの構成

最後に再起動して変更を有効にし、実際に有効になっていることを確認してください。

# dmesg | grep -e DMAR -e IOMMU -e AMD-Vi

は、IOMMUDirected I/O、またはInterrupt Remappingが有効であることを表示するはずですが、正確なメッセージはハードウェアとカーネルによって異なります。

IOMMU が意図したとおりに動作しているかどうかを確認する方法については、wiki の「IOMMU パラメータの検証」セクションを参照してください。

また、通過させたいデバイスが別の IOMMUグループに属していることも重要です。これは Proxmox VE API を呼び出すことで確認できます:

# pvesh get /nodes/{nodename}/hardware/pci --pci-class-blacklist ""

デバイスが、その機能(例えば、HDMIオーディオデバイスを持つGPU)と一緒にIOMMUグループにあるか、そのルートポートまたはPCI(e)ブリッジと一緒にある場合は問題ありません。

Note
PCI(e)スロット

プラットフォームによっては、PCI(e)スロットの物理的な扱いが異なります。そのため、希望のIOMMUグループ分離が得られない場合、カードを別のPCI(e)スロットに置くことが助けになることがあります。

Note
安全でない割り込み

プラットフォームによっては、安全でない割り込みを許可する必要があるかもしれません。 その場合は、/etc/modprobe.d/の'.conf'で終わるファイルに以下の行を追加してください:

オプション vfio_iommu_type1 allow_unsafe_interrupts=1

このオプションはシステムを不安定にする可能性がありますのでご注意ください。

GPU パススルー・ノート

Proxmox VEのウェブインタフェースで、NoVNCやSPICEを介してGPUのフレームバッファを表示することはできません。

GPU 全体または vGPU を通過してグラフィック出力が必要な場合、物理的にモニターをカードに接続するか、ゲスト内でリモートデスクトップソフトウェア (例えば VNC や RDP) を設定する必要があります。

OpenCLやCUDAを使用するプログラムなど、GPUをハードウェア・アクセラレータとして使用したい場合は、この必要はありません。

ホスト・デバイス・パススルー

PCI(e)パススルーの最も一般的な方法は、PCI(e)カード全体(GPUやネットワークカードなど)を通過させる方法です。

ホスト構成

Proxmox VEは、PCI(e)デバイスを自動的にホストから使用できないようにしようとします。 しかし、これがうまくいかない場合、2つの方法があります:

  • を追加することで、vfio-pciモジュールのオプションにデバイスIDを渡します。

    オプション vfio-pci ids=1234:5678,4321:8765

    ここで1234:5678と 4321:8765は/etc/modprobe.d/の.confファイルで取得したベンダーとデバイスのIDです:

    # lspci -nn
  • ホスト上のドライバを完全にブラックリストに入れ、パススルー用にバインドできるようにします。

    ブラックリスト DRIVERNAME

    /etc/modprobe.d/ の .conf ファイルに追加します。

    ドライバ名を見つけるには

    # lspci -k

    例えば

    # lspci -k | grep -A 3 "VGA"

    のようなものが出力されます。

    01:00.0 VGA 互換コントローラ:NVIDIA Corporation GP108 [GeForce GT 1030] (rev a1) サブシステム:サブシステム: Micro-Star International Co.[MSI] GP108 [GeForce GT 1030] 使用中のカーネルドライバ: <some-module> カーネルモジュール: <some-module

    ドライバを.confファイルに記述することで、ドライバをブラックリスト化することができます:

    echo "blacklist <some-module>" >> /etc/modprobe.d/blacklist.conf

どちらの方法でも、 initramfsを再度更新し、その後再起動する必要があります。

これがうまくいかない場合は、vfio-pciをロードする前にgpuモジュールをロードするよう、ソフト依存を設定する必要があるかもしれません。これはsoftdepフラグで行えます。詳しくはmodprobe.dの man ページも参照してください。

例えば、<some-module>という名前のドライバを使っている場合です:

# echo "softdep <some-module> pre: vfio-pci" >> /etc/modprobe.d/<some-module>.conf。
設定の確認

変更が成功したかどうかを確認するには

# lspci -nnk

をクリックし、デバイスのエントリを確認してください。もし

使用中のカーネルドライバ:vfio-pci

または使用中の行が全くない場合、デバイスはパススルーに使用する準備ができています。

Note
媒介機器

mediatedデバイスの場合、デバイスはvfio-pciではなく直接ホストドライバとして所有されるため、この行は異なります。

VM 構成

GPU をパススルーする場合、q35をマシンタイプとして使い、SeaBIOS の代わりにOVMF(VM 用UEFI)、そして PCI の代わりに PCIe を使うと最高の互換性が得られます。GPU パススルーにOVMF を使いたい場合、GPU が UEFI 対応の ROM を持っている必要があることに注意してください。ROM が UEFI に対応しているかチェックするにはPCI Passthrough Exampleswiki を見て下さい。

さらに、OVMFを使用すれば、vgaのアービトレーションを無効にすることができ、ブート中に実行する必要があるレガシーコードの量を減らすことができます。vgaアービトレーションを無効にするには

echo "options vfio-pci ids=<vendor-id>,<device-id> disable_vga=1" > /etc/modprobe.d/vfio.conf

を<vendor-id>と<device-id>に置き換えてください:

# lspci -nn

PCIデバイスは、VMのハードウェア・セクションにあるウェブ・インターフェイスで追加できます。 また、コマンドラインを使用することもできます。VMコンフィギュレーションでhostpciXオプションを設定します:

# qm set VMID -hostpci0 00:02.0

またはVMコンフィギュレーション・ファイルに行を追加します:

ホストPCI0: 00:02.0

デバイスに複数のファンクション(例えば '00:02.0' と '00:02.1' )がある場合は、`00:02` という短縮構文でまとめて渡すことができます。 これはウェブインターフェースの``All Functions`チェックボックスをチェックするのと同じです

デバイスとゲストOSによっては、必要なオプションがいくつかあります:

  • x-vga=on|offは、PCI(e) デバイスを VM のプライマリ GPU としてマークします。 これを有効にすると、vga設定オプションは無視されます。

  • pcie=on|offはPCIeまたはPCIポートを使用するようにProxmox VEに指示します。ゲスト/デバイスの組み合わせによってはPCIではなくPCIeを必要とします。PCIeはq35マシンタイプでのみ使用可能です。

  • rombar=on|offは、ファームウェア ROM をゲストから見えるようにします。デフォルトは on です。 いくつかの PCI(e) デバイスはこれを無効にする必要があります。

  • romfile=<path> は、デバイスが使用する ROM ファイルへのオプションのパスです。 これは、/usr/share/kvm/ 以下の相対パスです。

GPUをプライマリに設定したPCIeパススルーの例:

# qm set VMID -hostpci0 02:00,pcie=on,x-vga=on。
PCI IDオーバーライド

ゲストによって認識される PCI ベンダー ID、デバイス ID、サブシステム ID を上書きすることができます。これは、デバイスがゲストのドライバが認識しない ID を持つバリアントであるにもかかわらず、それらのドライバを強制的にロードしたい場合に便利です (例えば、デバイスがサポートされるバリアントと同じチップセットを共有していることが分かっている場合など)。

使用可能なオプションはvendor-iddevice-idsub-vendor-idsub-device-id です。デバイスのデフォルトIDを上書きするために、これらのいずれかまたはすべてを設定できます。

例えば

# qm set VMID -hostpci0 02:00,device-id=0x10f6,sub-vendor-id=0x0000。

SR-IOV

PCI(e)デバイスを通過させるもう一つの方法は、もし利用可能であれば、デバイスのハードウェア仮想化機能を使うことです。

Note
SR-IOVの実現

SR-IOV を使用するには、プラットフォームのサポートが特に重要です。最初に BIOS/UEFI でこの機能を有効にするか、特定の PCI(e) ポートを使用する必要があるかもしれません。不明な点は、プラットフォームのマニュアルを参照するか、ベンダーにお問い合わせください。

SR-IOV(Single-RootInput/Output Virtualization)は、1つのデバイスで複数のVF(仮想 機能)をシステムに提供することができます。これらのVFはそれぞれ異なるVMで使用することができ、完全なハードウェア機能を備え、ソフトウェア仮想化デバイスよりも優れたパフォーマンスと低レイテンシを実現します。

現在、最も一般的なユースケースは SR-IOV をサポートする NIC(ネットワーク・インターフェイス・ カード)で、物理ポートごとに複数の VF を提供することができます。これにより、チェックサム・オフロードなどの機能をVM内部で使用できるようになり、(ホストの)CPUオーバーヘッドを削減できます。

ホスト構成

一般的に、デバイス上で仮想機能を有効にするには2つの方法があります。

  • ドライバモジュールにオプションがある場合もあります。

    max_vfs=4

    これは、/etc/modprobe.d/ の下に.conf を末尾に持つファイルを置くことができます (この後、initramfs を更新することを忘れないでください)。

    正確なパラメータとオプションについては、ドライバ・モジュールのマニュアルを参照してください。

  • デバイスとドライバがこれをサポートしていれば、VFの数をその場で変更することができます。例えば、デバイス0000:01:00.0に4つのVFをセットアップするには、次のように実行します:

    # echo 4 > /sys/bus/pci/devices/0000:01:00.0/sriov_numvfs

    インストール後、/etc/sysfs.confまたは/etc/sysfs.d/ 内の `FILE.conf' で設定します。

VM 構成

VF を作成した後、それらをlspci で出力すると、別々の PCI(e) デバイスとして見えるはずです。それらの ID を取得し、通常の PCI(e) デバイスのように通してください。

媒介デバイス (vGPU、GVT-g)

媒介デバイスは、物理ハードウェアの機能と性能を仮想化ハードウェアに再利用するもう1つの方法です。これらは、IntelのGVT-gやNVIDIAのGRIDテクノロジーで使用されているvGPUのような仮想化GPUセットアップで最もよく見られます。

これによって、物理カードはSR-IOVと同様に仮想カードを作成することができます。 違いは、mediatedデバイスはホスト内でPCI(e)デバイスとして表示されず、仮想マシンでの使用にのみ適していることです。

ホスト構成

一般的に、カードのドライバがその機能をサポートしていなければ、動作しません。そのため、互換性のあるドライバとその設定方法については、各ベンダーにお問い合わせください。

インテルのGVT-g用ドライバはカーネルに統合されており、第5、第6、第7世代のインテルCoreプロセッサ、およびE3 v4、E3 v5、E3 v6のXeonプロセッサで動作するはずです。

Intel Graphicsで有効にするには、モジュールkvmgtを(例えば/etc/modules経由で)ロードし、カーネルコマンドラインで有効にして、以下のパラメータを追加する必要があります:

i915.enable_gvt=1

その後、 initramfsを更新し、ホストを再起動することを忘れないでください。

VM 構成

mediatedデバイスを使用するには、hostpciXVMコンフィギュレーション・オプションでmdevプロパティを指定するだけです。

サポートされているデバイスは、sysfs経由で取得できます。例えば、0000:00:02.0というデバイスでサポートされているタイプをリストアップするには、次のように実行します:

# ls /sys/bus/pci/devices/0000:00:02.0/mdev_supported_types

各エントリーは、以下の重要なファイルを含むディレクトリです:

  • available_instancesには、このタイプのまだ利用可能なインスタンスの量が含まれます。

  • 説明には、その型の能力に関する短い説明が含まれます。

  • createは、このようなデバイスを作成するためのエンドポイントです。Proxmox VEは、mdevの hostpciXオプションが設定されている場合、自動的にこれを行います。

Intel GVT-gvGPU(Intel Skylake 6700k)を使用した構成例:

# qm set VMID -hostpci0 00:02.0,mdev=i915-GVTg_V5_4。

この設定により、Proxmox VEはVM起動時にこのようなデバイスを自動的に作成し、VM停止時に再びクリーンアップします。

クラスターでの使用

また、クラスタレベルでデバイスをマッピングすることも可能で、HAで適切に使用できるようにしたり、ハードウェアの変更を検出したり、非rootユーザが設定できるようにしたりできます。詳細はリソースマッピングを参照してください。

vIOMMU (エミュレートされた IOMMU)

vIOMMUは、仮想マシン内のハードウェアIOMMUのエミュレーションで、仮想化I/Oデバイスのメモリアクセス制御とセキュリティを向上させます。vIOMMU オプションを使用すると、ネストされた仮想化により、PCI(e) デバイスをレベル 1 VM のレベル 2 VM にパススルーすることもできます。 ホストからネストされた VM に物理 PCI(e) デバイスをパススルーするには、PCI(e) パススルーの手順に従ってください。

現在、2つのvIOMMU実装が利用可能です:IntelとVirtIOです。

インテル vIOMMU

Intel vIOMMU固有のVM要件:

  • ホストでIntelまたはAMDのどちらのCPUを使用している場合でも、VMのカーネル・パラメータでintel_iommu=onを設定することが重要です。

  • Intel vIOMMUを使用するには、マシンタイプとしてq35を設定する必要があります。

すべての要件が満たされていれば、PCIデバイスを通過できるはずのVMのコンフィギュレーションのマシン・パラメータにviommu=intelを追加できます。

# qm set VMID -machine q35,viommu=intel

VirtIO vIOMMU

この vIOMMU の実装はより新しく、Intel vIOMMU ほどの制限はありませんが、現在のところ実運用での使用は少なく、文書化もされていません。

VirtIO vIOMMUでは、カーネルパラメータを設定する必要はありません。また、マシンタイプとして q35 を使用する必要はありませんが、PCIe を使用する場合は使用することをお勧めします。

# qm set VMID -machine q35,viommu=virtio

フックスクリプト

設定プロパティhookscriptを使用すると、VMにフックスクリプトを追加できます。

# qm set 100 --hookscript local:snippets/hookscript.pl

このスクリプトは、ゲストが生きている間の様々な局面で呼び出されます。 例とドキュメントは、/usr/share/pve-docs/examples/guest-example-hookscript.pl にあるサンプルスクリプトを参照してください。

冬眠

VMをディスクにサスペンドするには、GUIオプションのHibernateまたは

# qm suspend ID --todisk

つまり、メモリの現在の内容がディスクに保存され、VMは停止します。次の起動時には、メモリの内容がロードされ、VMは中断したところから続行することができます。

ステートストレージの選択

メモリーのターゲット・ストレージが指定されていない場合は、自動的に選択されます:

  1. VMコンフィグのストレージvmstatestorage

  2. 任意のVMディスクからの最初の共有ストレージ。

  3. どのVMディスクからも最初の非共有ストレージ。

  4. フォールバックとしてのストレージローカル

リソースマッピング

screenshot/gui-datacenter-resource-mappings.png

ローカルリソース(例えば、pciデバイスのアドレス)を使用したり参照したりする場合、生のアドレスやidを使用することは、時々問題があります:

  • HAを使用する場合、ターゲットノード上に同じIDやパスを持つ別のデバイスが存在する可能性があり、そのようなゲストをHAグループに割り当てる際に注意しなければ、間違ったデバイスが使用され、設定が壊れてしまう可能性があります。

  • ハードウェアを変更するとIDやパスが変わることがあるので、割り当てられたすべてのデバイスをチェックして、パスやIDが正しいかどうかを確認する必要があります。

これをうまく処理するには、クラスタ全体のリソースマッピングを定義して、リソースがクラスタ固有の、ユーザが選択した識別子を持ち、異なるホスト上の異なるデバイスに対応できるようにします。これにより、HAが間違ったデバイスでゲストを起動することはなくなり、ハードウェアの変更も検出できるようになります。

このようなマッピングの作成は、Proxmox VE ウェブ GUI のリソースマッピ ングカテゴリの関連タブにあるデータセンターで行うことができます。

# pvesh create /cluster/mapping/<type> <options>
screenshot/gui-datacenter-mapping-pci-edit.png

ここで<type>はハードウェアタイプ(現在はpciか usb)、<options>はデバイスマッピングとその他の設定パラメータです。

オプションには、ハードウェアが変更されておらず、正しいデバイスが通過していることを確認できるように、そのハードウェアのすべての識別プロパティを持つマッププロパティを含める必要があることに注意してください。

例えば、ノードnode1にデバイスID0001とベンダーID0002を持つパス0000:01:00.0のPCIデバイスをdevice1として追加し、ノードnode2に0000:02:00.0を追加するには、次のようにします:

# pvesh create /cluster/mapping/pci --id device1 ˶ --map node=node1,path=0000:01:00.0,id=0002:0001 ˶ --map node=node2,path=0000:02:00.0,id=0002:0001

デバイスがマッピングされるべき各ノードに対して、mapパラメータを繰り返す必要があります(現在、1つのマッピングにつき1つのノードにつき1つのUSBデバイスしかマッピングできないことに注意してください)。

GUIを使用すると、正しいプロパティが自動的にピックアップされ、APIに送信されるため、これが非常に簡単になります。

screenshot/gui-datacenter-mapping-usb-edit.png

PCI デバイスでは、ノードごとに複数のマッププロパティを持つ複数のデバイスを提供することも可能です。このようなデバイスがゲストに割り当てられた場合、ゲストの起動時に最初に空いているものが使用されます。与えられたパスの順番は試行される順番でもあるため、任意の割り当てポリシーを実装できます。

これは、SR-IOVを持つデバイスにとって便利です。

このようなデバイスをゲストに割り当てるには、GUI または

# qm set ID -hostpci0 <名前>.

PCIデバイスの場合

# qm set <vmid> -usb0 <name>

USBデバイス用。

ここで、<vmid>はゲスト ID で、<name>は作成されるマッピングの名前です。mdev のような、デバイスを通過するための通常のオプションはすべて許可されています。

マッピングを作成するには、Mapping.Modifyon/mapping/<type>/<name>が必要です(<type>はデバイスタイプ、<name>はマッピング名)。

これらのマッピングを使用するには、/mapping/<type>/<name>上のMapping.Useが必要です(設定を編集する通常のゲスト権限に加えて)。

qmによる仮想マシンの管理

qm は Proxmox VE 上の QEMU/KVM 仮想マシンを管理するツールです。仮想マシンの作成と破棄、実行の制御(スタート/ストップ/サスペンド/レジューム)ができます。さらに、qm を使用して関連する設定ファイルにパラメータを設定できます。仮想ディスクの作成と削除も可能です。

CLI 使用例

ローカル・ストレージにアップロードされたisoファイルを使って、4GBのIDEディスクを持つVMをlocal-lvmストレージに作成します。

# qm create 300 -ide0 local-lvm:4 -net0 e1000 -cdrom local:iso/proxmox-mailgateway_2.1.iso

新しいVMの起動

# qm start 300

シャットダウン要求を送信し、VMが停止するまで待ちます。

# qm shutdown 300 && qm wait 300

上記と同じですが、40秒間待つだけです。

# qm shutdown 300 && qm wait 300 -timeout 40

VMがシャットダウンしない場合は、VMを強制停止し、実行中のシャットダウン・タスクを上書きします。VMを停止するとデータが失われる可能性があるため、使用には注意が必要です。

# qm stop 300 -overrule-shutdown 1

VMを破棄すると、そのVMは常にアクセス制御リストから削除され、そのVMのファイアウォール構成も常に削除されます。レプリケーション・ジョブ、バックアップ・ジョブ、およびHAリソース・コンフィギュレーションからもVMを削除する場合は、-purgeを有効にする必要があります。

# qm destroy 300 --purge

ディスクイメージを別のストレージに移動します。

# qm move-disk 300 scsi0 other-storage

ディスクイメージを別のVMに再割り当てします。これにより、ディスクscsi1がソース VM から削除され、scsi3としてターゲット VM にアタッチされます。バックグラウンドでは、ディスク・イメージの名前が新しい所有者と一致するように変更されます。

# qm move-disk 300 scsi1 --target-vmid 400 --target-disk scsi3

コンフィギュレーション

VM設定ファイルはProxmoxクラスタファイルシステム内に保存され、/etc/pve/qemu-server/<VMID>.confにアクセスできます。/etc/pve/内に保存された他のファイルと同様に、他のすべてのクラスタノードに自動的に複製されます。

Note 100未満のVMIDは内部用に予約されており、VMIDはクラスタ全体で一意である必要があります。
VMの構成例
boot: order=virtio0;net0 コア:1 ソケット1 メモリ512 name: webmail ostype: l26 net0: e1000=EE:D2:28:5F:B6:3E,bridge=vmbr0 virtio0: local:vm-100-disk-1,size=32G

これらの設定ファイルは単純なテキストファイルで、通常のテキストエディタ(vinano、...)を使用して編集できます。これはちょっとした修正に便利ですが、そのような変更を適用するにはVMを再起動する必要があることに注意してください。

そのため、通常はqmコマンドを使用してファイルを生成・変更するか、GUIを使用してすべての作業を行う方がよいでしょう。 私たちのツールキットは十分に賢く、実行中のVMにほとんどの変更を即座に適用することができます。この機能は「ホットプラグ」と呼ばれ、この場合VMを再起動する必要はありません。

ファイル形式

VM設定ファイルは、コロンで区切られた単純なキー/値形式を使用します。各行の書式は以下のとおりです:

# これはコメントです。

これらのファイルの空白行は無視され、#文字で始まる行はコメントとして扱われ、これも無視されます。

スナップショット

スナップショットを作成すると、qm はスナップショット時の設定を同じ設定ファイル内の別のスナップショットセクションに保存します。例えば、"testsnapshot" というスナップショットを作成した後、設定ファイルは以下のようになります:

スナップショットによるVM構成
メモリ512 swap:512 parent: testsnaphot ... [testsnaphot] memory:512 swap:512 snaptime: 1457170803 ...

parentsnaptime のようなスナップショット関連のプロパティがいくつかあります。parentプロパティはスナップショット間の親子関係を保存するために使用されます。snaptimeはスナップショットの作成タイムスタンプ (Unix epoch) です。

オプションのvmstateを使用すると、実行中のVMのメモリを保存することができます。 VMの状態に対してターゲット・ストレージがどのように選択されるかの詳細については、「ハイバネーション」の章の「状態ストレージの選択」を参照してください。

オプション

acpi:<ブール値>(デフォルト = 1)

ACPI を有効/無効にします。

親和性:<文字列

ゲストプロセスの実行に使用されるホストコアのリスト(例:0,5,8-11

エージェント:[enabled=]<1|0> [,freeze-fs-on-backup=<1|0>] [,fstrim_cloned_disks=<1|0>] [,type=<virtio|isa> ]

QEMU ゲストエージェントとそのプロパティとの通信を有効/無効にします。

enabled=<boolean>(デフォルト = 0)

VM 内で実行されている QEMU ゲストエージェント (QGA) との通信を有効/無効にします。

freeze-fs-on-backup=<boolean>(デフォルト = 1)

一貫性を保つために、バックアップ時にゲストファイルシステムをフリーズ/解凍します。

fstrim_cloned_disks=<boolean>(デフォルト = 0)

ディスクの移動またはVMの移行後にfstrimを実行します。

type=<isa| virtio>(デフォルト = virtio)

エージェントタイプの選択

amd-sev:[type=]<sev-type>[,kernel-hashes=<1|0>][,no-debug=<1|0>][,no-key-sharing=<1|0>]。

AMD CPUによるセキュア暗号化仮想化(SEV)機能

kernel-hashes=<boolean>(デフォルト = 0)

カーネル・ハッシュをゲスト・ファームウェアに追加して、Linuxカーネルの起動を測定します。

no-debug=<boolean>(デフォルト = 0)

ポリシービット 0 を 1 に設定し、ゲストのデバッグを禁止します。

no-key-sharing=<boolean>(デフォルト = 0)

ポリシービット1を1に設定し、他のゲストとの鍵共有を禁止します。

type=<セブタイプ

type=stdで標準的なSEVを有効にするか、esオプションで実験的なSEV-ESを有効にします。

arch:<aarch64 | x86_64>です。

仮想プロセッサ・アーキテクチャ。デフォルトはホスト。

引数:<文字列

例えばkvmに渡される任意の引数:

args: -no-reboot -smbiostype=0,vendor=FOO

Note このオプションはエキスパート専用です。
audio0:device=<ich9-intel-hda|intel-hda|AC97> [,driver=<spice|none>].

QXL/Spiceと組み合わせると便利です。

device=<AC97| ich9-intel-hda | intel-hda> です

オーディオデバイスを設定します。

driver=<none| spice>(デフォルト = spice)

オーディオデバイスのドライババックエンド。

autostart:<boolean>(デフォルト = 0)

クラッシュ後の自動再起動(現在は無視)。

バルーン:<整数> (0 - N)

VM のターゲット RAM の量 (MiB 単位)。ゼロを使用すると、バロンドライバが無効になります。

bios:<ovmf | seabios>(デフォルト = seabios)

BIOSの実装を選択します。

起動します:[[legacy=]<[acdn]{1,4}>]ブート: [,order=<デバイス[;デバイス...]>]]。

ゲストの起動順序を指定します。order=サブプロパティを使用してください。

legacy=<[acdn]{1,4}>(デフォルト = cdn)

フロッピー(a)、ハードディスク(c)、CD-ROM(d)、ネットワーク(n)で起動。非推奨。代わりにorder=を使ってください。

order=<デバイス[;デバイス...]>です。

ゲストは、ここに表示されている順番でデバイスからの起動を試みます。

ディスク、光学ドライブ、パススルー・ストレージ USBデバイスは直接起動し、NICはPXEをロードし、PCIeデバイスはディスクのように動作するか(NVMeなど)、オプションROMをロードします(RAIDコントローラ、ハードウェアNICなど)。

このリストにあるデバイスだけがブート可能としてマークされ、ゲストファームウェア (BIOS/UEFI) によってロードされることに注意してください。ブートに複数のディスクが必要な場合 (例: ソフトウェアレイド)、ここで全てのディスクを指定する必要があります。

指定された場合、非推奨のlegacy=[acdn]*値を上書きします。

bootdisk:(ide|sata|scsi|virtio) \d+.

指定したディスクからの起動を有効にします。非推奨:代わりにboot: order=foo;barを使用してください。

CDROM:<ボリューム

これは -ide2 オプションのエイリアスです。

カスタム[meta=<volume>] [,network=<volume>] [,user=<volume>] [,vendor=<volume>] です。

cloud-init:開始時に自動生成されるファイルを置き換えるカスタムファイルを指定します。

meta=<ボリューム

cloud-init経由でVMに渡されるすべてのメタデータを含むカスタムファイルを指定します。これはプロバイダ固有で、configdrive2とnocloudは異なります。

ネットワーク=<ボリューム

すべてのネットワークデータを含むカスタムファイルをcloud-init経由でVMに渡す場合。

ユーザー=<ボリューム

すべてのユーザーデータを含むカスタムファイルをcloud-init経由でVMに渡す場合。

ベンダー=<ボリューム

すべてのベンダーデータを含むカスタムファイルをcloud-init経由でVMに渡すには。

cipassword:<文字列

cloud-init:ユーザーに割り当てるパスワード。一般的に、これを使うことは推奨されません。代わりに ssh 鍵を使います。また、古いバージョンの cloud-init はハッシュ化されたパスワードをサポートしていないことに注意しましょう。

citype:<configdrive2 | nocloud | opennebula>です。

cloud-init設定フォーマットを指定します。デフォルトは、設定されているオペレーティングシステムの種類(ostype.Linuxではnocloud形式、Windowsではconfigdrive2を使用します。

ciupgrade:<boolean>(デフォルト = 1)

cloud-init: 最初の起動後にパッケージの自動アップグレードを行います。

ciuser:<文字列

cloud-init:イメージに設定されているデフォルトユーザーの代わりに、sshキーとパスワードを変更するユーザー名。

core:<整数> (1 - N)(デフォルト = 1)

ソケットあたりのコア数。

cpu:[[cputype=]<string>] ][,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>] [,hv-vendorid=<vendor-id>] [,phys-bits=<vendor-id>] [[cputype=]<string[,hidden=<1|0>] [,hv-vendor-id=<vendor-id>] [,phys-bits=<8-64|host>] [,reported-model=<enum>]。

エミュレートされたCPUタイプ。

cputype=<string>(デフォルト = kvm64)

エミュレートされたCPUタイプ。デフォルトまたはカスタムの名前を指定できます(カスタムのモデル名の前にcustom-を付ける必要があります)。

flags=<+FLAG[;-FLAG...]>です。

区切られた追加CPUフラグのリスト。フラグを有効にするには+FLAG を、無効にするには-FLAG を使用します。カスタム CPU モデルは、QEMU/KVM でサポートされる任意のフラグを指定できます。VM 固有のフラグは、セキュリティ上の理由から以下のセットから選択する必要があります: pcid、spec-ctrl、ibpb、ssbd、virt-ssbd、amd-ssbd、amd-no-ssb、pdpe1gb、md-clear、hv-tlbflush、hv-evmcs、aes

hidden=<boolean>(デフォルト = 0)

KVM仮想マシンとして識別しないでください。

hv-vendor-id=<ベンダーID>です。

Hyper-VのベンダーID。Windows ゲスト内の一部のドライバーまたはプログラムには、特定の ID が必要です。

phys-bits=<8-64|host>です。

ゲスト OS に報告される物理メモリアドレスビット。ホストの値より小さいか等しくなければなりません。ホスト CPU の値を使用するにはホストに設定しますが、そうすると他の値を持つ CPU へのライブマイグレーションが壊れることに注意してください。

reported-model=<486 | Broadwell | Broadwell-IBRS | Broadwell-noTSX | Broadwell-noTSX-IBRS | Cascadelake-Server | Cascadelake-Server-noTSX | Cascadelake-Server-v2 | Cascadelake-Server-v4 | Cascadelake-Server-v5 | Conroe | Cooperlake | Cooperlake-v2 | EPYC | EPYC-Genoa | EPYC-IBPB | EPYC-Milan | EPYC-Milan-EPYC-Rome|EPYC-Rome-v2|EPYC-Rome-v3|EPYC-Rome-v4|EPYC-v3|EPYC-v4|GraniteRapids|Haswell|Haswell-IBRS|Haswell-noTSX|Haswell-noTSX-IBRS|Icelake-Client|Icelake-Client-noTSX|Icelake-Server|Icelake-Server-noTSX|Icelake-Server-v3|Icelake-Server-v4|Icelake-Server-v5|Icelake-Server-v6|IvyBridge|IvyBridge-IBRS|KnightsMill|Nehalem|Nehalem-IBRS|Opteron_G1|Opteron_G2|Opteron_G3|Opteron_G4|Opteron_G5|Penryn|SandyBridge|SandyBridge-IBRS|SapphireRapids|SapphireRapids-v2|Skylake-Client|Skylake-Client-IBRS|Skylake-Skylake-Client|Skylake-Client-v4|Skylake-Server|Skylake-Server-IBRS|Skylake-Server-noTSX-IBRS|Skylake-Server-v4|Skylake-Server-v5|Westmere|Westmere-IBRS|athlon|core2duo|coreduo|host|kvm32|kvm64|max|pentium|pentium2|pentium3|phenom|qemu32|qemu64>。(デフォルト = kvm64)

ゲストに報告する CPU モデルとベンダー。QEMU/KVM がサポートするモデルである必要があります。カスタム CPU モデル定義に対してのみ有効で、デフォルトモデルは常にゲスト OS に自分自身を報告します。

cpulimit:<数値> (0 - 128)(デフォルト = 0)

CPU使用量の上限。

Note コンピュータに2つのCPUがある場合、合計2つのCPU時間を持ちます。値0はCPU制限なしを示します。
cpuunits:<整数> (1 - 262144)(デフォルト = cgroup v1: 1024, cgroup v2: 100)

VMのCPUウェイト。引数はカーネルのフェア・スケジューラで使用されます。この数値が大きいほど、このVMはより多くのCPU時間を得ます。数値は、他のすべての実行中のVMのウェイトに対する相対値です。

説明:<文字列

VM の説明。WebインターフェイスのVMのサマリーに表示されます。コンフィギュレーション・ファイルのコメントとして保存されます。

efidisk0:[file=]<volume> [,efitype=<2m|4m>] [,format=<enum>] [,pre-enrolled-keys=<1|0>] [,size=<DiskSize>].

EFIバーを保存するディスクを設定します。

efitype=<2m| 4m>(デフォルト = 2m)

OVMF EFIバーのサイズとタイプ。4mが新しく推奨され、セキュアブートには必須です。後方互換性のため、特に指定がない場合は2mが使用されます。arch=aarch64(ARM)のVMでは無視されます。

ファイル=<ボリューム

ドライブのバックアップ・ボリューム。

format=<cloop|cow|qcow|qcow2|qed|raw|vmdk>。

ドライブのバックアップ・ファイルのデータ形式。

pre-enrolled-keys=<boolean>(デフォルト = 0)

efitype=4m とともに使用する場合は、ディストリビューション固有および Microsoft Standard キーが登録された am EFI vars テンプレートを使用します。この場合、デフォルトでセキュアブートが有効になりますが、VM 内からオフにすることも可能です。

size=<ディスクサイズ

ディスクサイズ。これは単なる情報提供であり、何の効果もありません。

freeze:<ブール値

起動時にCPUをフリーズ(cmonitorコマンドで実行開始)。

フックスクリプト:<文字列

vmsのライフタイムの様々なステップで実行されるスクリプト。

hostpci[n]: [[host=]<HOSTPCIID[;HOSTPCIID2...]>] [,deviceid=<hex id>] [,legacy-igd=<1|0>] [,mapping=<mapping-id[,device-id=<hex id>] [,legacy-igd=<1|0>] [,mapping=<mapping-id>] [,mdev=<string>] [,pcie=<1|0>] [,rombar=<1|0> ] [,romfile=<string>] [,sub-devpci[n] [,romfile=<string>] [,sub-device-id=<hex id>] [,sub-vendor-id=<hex id>] [,vendor-id=<hex id>] [,x-vga=<1|0>] となります。

ホストのPCIデバイスをゲストにマッピングします。

Note このオプションは、ホストハードウェアへの直接アクセスを可能にします。そのため、このようなマシンのマイグレーションはもはや不可能です。
Caution 実験的!このオプションに関する問題が報告されました。
デバイスID=<16進数ID

ゲストから見えるPCIデバイスIDを上書き

host=<HOSTPCIID[;HOSTPCIID2...]>です。

ホストPCIデバイス・パススルー。ホストのPCIデバイスのPCI ID、またはホストのPCI仮想ファンクションのリスト。HOSTPCIID の構文は次のとおりです:

bus:dev.func(16進数)

lspciコマンドを使用すると、既存の PCI デバイスを一覧表示できます。

このキーまたはマッピング・キーのどちらかを設定する必要があります。

legacy-igd=<boolean>(デフォルト = 0)

このデバイスをレガシーIGDモードで渡すと、VMのプライマリで排他的なグラフィックデバイスになります。pc-i440fxマシンタイプとVGAがnoneに設定されている必要があります。

マッピング=<マッピングID

クラスタ全体のマッピングのID。このホストかdefault-keyホストのどちらかを設定する必要があります。

mdev=<文字列

このタイプのインスタンスはVMの起動時に作成され、VMの停止時にクリーンアップされます。

pcie=<boolean>(デフォルト = 0)

PCI-expressバスを選択してください(q35マシンモデルが必要です)。

rombar=<boolean>(デフォルト = 1)

デバイスの ROM をゲストのメモリーマップに表示するかどうかを指定します。

romfile=<文字列

カスタム pci デバイス rom ファイル名 (/usr/share/kvm/ にある必要があります)。

サブデバイスID=<16進数ID

ゲストから見えるPCIサブシステムのデバイスIDを上書きします。

サブベンダーID=<16進数ID

ゲストから見えるPCIサブシステムのベンダーIDを上書きします。

ベンダーID=<16進数ID

ゲストに見えるPCIベンダーIDの上書き

x-vga=<boolean>(デフォルト = 0)

vfio-vgaデバイスのサポートを有効にします。

hotplug:<文字列>(デフォルト = ネットワーク,ディスク,USB)

ホットプラグ機能を選択的に有効にします。これはカンマ区切りのホットプラグ機能のリストです:ネットワークディスクCPUメモリUSBcloudinit。ホットプラグを完全に無効にするには0を使用します。値として1 を使用すると、デフォルトのnetwork、disk、usb のエイリアスになります。USB ホットプラグは、マシンのバージョンが >= 7.1 で、ostype l26 または Windows > 7 のゲストで可能です。

hugepages:<1024 | 2 | any>.

hugepagesメモリの有効/無効。

ide[n][ファイル=]<ボリューム> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,model=<model>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0> ] [,size=<Disk] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]。

ボリュームをIDEハードディスクまたはCD-ROMとして使用します(nは0~3)。

aio=<io_uring|ネイティブ|スレッド>。

使用するAIOタイプ。

backup=<ブール

バックアップ作成時にドライブを含めるかどうか。

bps=<bps>

最大r/w速度(バイト/秒)。

bps_max_length=<seconds>です。

I/Oバーストの最大長(秒)。

bps_rd=<bps>

最大読み取り速度(バイト/秒)。

bps_rd_max_length=<seconds>です。

読み取りI/Oバーストの最大長(秒)。

bps_wr=<bps>

最大書き込み速度(バイト/秒)。

bps_wr_max_length=<seconds>です。

書き込みI/Oバーストの最大長(秒)。

cache=<directsync| none | unsafe | writeback | writethrough>です

ドライブのキャッシュ・モード

cys=<整数

ドライブの物理ジオメトリを特定のシリンダ数に強制します。

detect_zeroes=<ブール値

ゼロの書き込みを検出し、最適化を試みるかどうかを制御します。

discard=<無視|オン

破棄/トリム要求を基礎となるストレージに渡すかどうかを制御します。

ファイル=<ボリューム

ドライブのバックアップ・ボリューム。

format=<cloop|cow|qcow|qcow2|qed|raw|vmdk>。

ドライブのバックアップ・ファイルのデータ形式。

heads=<整数

ドライブの物理ジオメトリが特定のヘッド数を持つように強制します。

iops=<iops>

最大r/w I/O(オペレーション毎秒)。

iops_max=<iops>

スロットルされていないr/w I/Oプールの最大オペレーション/秒。

iops_max_length=<seconds>です。

I/Oバーストの最大長(秒)。

iops_rd=<iops>

1秒あたりの最大読み取りI/O。

iops_rd_max=<iops>です。

スロットルされていない最大読み取りI/Oプール(1秒あたりの処理数)。

iops_rd_max_length=<seconds>です。

読み取りI/Oバーストの最大長(秒)。

iops_wr=<アイオプス>。

最大書き込みI/O(オペレーション/秒)。

iops_wr_max=<iops>です。

スロットルなしの最大書き込みI/Oプール(1秒あたりの操作数)。

iops_wr_max_length=<seconds>です。

書き込みI/Oバーストの最大長(秒)。

mbps=<mbps>

最大R/W速度(メガバイト/秒)。

mbps_max=<mbps>です。

最大スロットルなしR/Wプール(メガバイト/秒)。

mbps_rd=<mbps>

最大読み取り速度(メガバイト/秒)。

mbps_rd_max=<mbps>です。

スロットルのない最大読み取りプール(メガバイト/秒)。

mbps_wr=<mbps>です。

最大書き込み速度(メガバイト/秒)。

mbps_wr_max=<mbps>です。

スロットルなしの最大書き込みプール(メガバイト/秒)。

media=<cdrom| disk>(デフォルト = disk)

ドライブのメディア・タイプ。

model=<モデル

ドライブのモデル名(URLエンコード、最大40バイト)。

replicate=<boolean>(デフォルト = 1)

ドライブをレプリケーション・ジョブの対象とするかどうか。

rerror=<ignore| report | stop>です。

読み取りエラー。

secs=<整数

ドライブの物理ジオメトリを特定のセクタ数に強制します。

シリアル=<シリアル

報告されたドライブのシリアル・ナンバー(URLエンコード、最大20バイト)。

shared=<boolean>(デフォルト = 0)

このローカル管理ボリュームをすべてのノードで使用可能としてマークします。

Warning このオプションは、ボリュームを自動的に共有しません!
size=<ディスクサイズ

ディスクサイズ。これは単なる情報提供であり、何の効果もありません。

snapshot=<boolean>

qemu のスナップショットモード機能を制御します。有効な場合、ディスクに加えられた変更は一時的なもので、VM がシャットダウンされると破棄されます。

ssd=<ブール

このドライブを回転式ハードディスクではなくSSDとして公開するかどうか。

trans=<自動| lba | なし>。

強制ディスクジオメトリバイオス変換モード。

werror=<enospc|無視|報告|停止>。

書き込みエラーアクション。

wwn=<wwn>

16バイトの16進文字列としてエンコードされたドライブのワールドワイド名で、先頭に0xが付きます。

ipconfig[n]:[gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>] となります。

cloud-init:対応するインターフェースのIPアドレスとゲートウェイを指定します。

IPアドレスはCIDR表記を使用し、ゲートウェイはオプションですが、同じタイプのIPを指定する必要があります。

特別な文字列dhcpは、DHCPを使用するIPアドレスに使用することができ、その場合、明示的なゲートウェイを提供する必要はありません。 IPv6の場合、特別な文字列autoは、ステートレス自動設定を使用するために使用することができます。これにはcloud-init 19.4以降が必要です。

cloud-initが有効で、IPv4アドレスもIPv6アドレスも指定されていない場合、デフォルトでIPv4のdhcpを使用します。

gw=<ゲートウェイIPv4

IPv4トラフィックのデフォルトゲートウェイ。

Note 必要なオプション:ip
gw6=<ゲートウェイIPv6

IPv6トラフィックのデフォルトゲートウェイ。

Note 必要なオプション:ip6
ip=<IPv4Format/CIDR>(デフォルト = dhcp)

CIDR形式のIPv4アドレス。

ip6=<IPv6Format/CIDR>(デフォルト = dhcp)

CIDR形式のIPv6アドレス。

ivshmem:size=<整数> [,name=<文字列>] です。

VM間共有メモリ。VM間やホストとの直接通信に便利。

name=<文字列

ファイル名。先頭にpve-shm- が付きます。デフォルトは VMID です。VM の停止時に削除されます。

size=<integer>(1 - N)

MB単位のファイルサイズ。

keephugepages:<boolean>(デフォルト = 0)

hugepagesと一緒に使用します。有効にすると、hugepagesはVMシャットダウン後も削除されず、その後の起動に使用できます。

キーボード:<da | de | de-ch | en-gb | en-us | es | fi | fr | fr-be | fr-ca | fr-ch | hu | is | it | ja | lt | mk | nl | no | pl | pt | pt-br | sl | sv | tr>.

VNC サーバーのキーボードレイアウト。このオプションは一般的には必要なく、ゲストOS内で処理した方が良い場合が多いです。

kvm:<論理値>(デフォルト = 1)

KVMハードウェア仮想化の有効/無効を設定します。

localtime:<ブール値

リアルタイムクロック(RTC)をローカルタイムに設定します。ostypeがMicrosoft Windows OSの場合、デフォルトで有効になります。

lock:<バックアップ|クローン|作成|マイグレーション|ロールバック|スナップショット|スナップショット削除|中断|サスペンド>。

VMをロック/アンロックします。

マシン [[タイプ=]<マシンタイプ>]][viommu=<intel|virtio>]です。

QEMUマシンを指定します。

type=<マシンタイプ

QEMUのマシンタイプを指定します。

viommu=<intel| virtio> です

ゲストの vIOMMU バリアントを有効にして設定します (Intel vIOMMU はマシンタイプとして q35 を設定する必要があります)。

メモリを使用します:[カレント=]<整数

メモリ特性。

current=<integer>(16 - N)(デフォルト = 512)

VM の現在のオンライン RAM 量 (MiB 単位)。これは、バルーン デバイスを使用する際に使用可能な最大メモリです。

migrate_downtime:<数値> (0 - N)(デフォルト = 0.1)

マイグレーションの最大許容ダウンタイム(秒)を設定します。新しく汚れたRAMを転送する必要があるため、マイグレーションが最後まで収束しない場合、マイグレーションが収束するまで、この上限は自動的に段階的に増加します。

migrate_speed:<整数> (0 - N)(デフォルト = 0)

マイグレーションの最大速度(MB/s)を設定します。値 0 は制限なしです。

name:<文字列

VM の名前を設定します。コンフィギュレーションWebインターフェイスでのみ使用します。

ネームサーバー:<文字列

cloud-init:コンテナの DNS サーバー IP アドレスを設定します。searchdomain も nameserver も設定されていない場合、Create は自動的にホストからの設定を使用します。

net[n][model=]<enum> [,bridge=<bridge>] [,firewall=<1|0>] [,link_down=<1|0>] [,macaddr=<XX:XX:XX:XX:XX:XX>] [,mtu=<integer>] [,queues=<integer>] [,rate=<number>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>][,<model>=<macaddr>] [,<model>=<macaddr>] [,<model>=<macaddr

ネットワーク機器を指定します。

ブリッジ

ネットワークデバイスを接続するブリッジ。Proxmox VE標準ブリッジはvmbr0と呼ばれます。

ブリッジを指定しない場合は、DHCPとDNSサービスを提供するkvmユーザー(NAT)ネットワークデバイスを作成します。以下のアドレスが使用されます:

10.0.2.2 ゲートウェイ 10.0.2.3 DNSサーバ 10.0.2.4 SMBサーバ

DHCPサーバーは、10.0.2.15から始まるアドレスをゲストに割り当てます。

firewall=<boolean>

このインターフェイスをファイアウォールで保護するかどうか。

link_down=<ブール値

このインターフェイスを切断するかどうか(プラグを抜くように)。

macaddr=<XX:XX:XX:XX:XX>となります。

I/G(Individual/Group)ビットが設定されていない共通のMACアドレス。

model=<e1000|e1000-82540em|e1000-82544gc|e1000-82545em|e1000e|i82551|i82557b|i82559er|ne2k_isa|ne2k_pci|pcnet|rtl8139|virtio|vmxnet3>です

ネットワークカードモデル。virtioモデルは、非常に低い CPU オーバーヘッドで最高のパフォーマンスを提供します。ゲストがこのドライバをサポートしていない場合、通常はe1000 を使用するのが最善です。

mtu=<整数>(1 - 65520)

MTUを強制します。ブリッジMTUを使用するには1を設定します。

キュー=<整数>(0 - 64)

デバイスで使用するパケットキューの数。

rate=<数値>(0 - N)

mbps(メガバイト/秒)単位のレート制限を浮動小数点数で指定します。

タグ=<整数>(1 - 4094)

このインターフェイスのパケットに適用するVLANタグ。

trunks=<vlanid[;vlanid...]>です。

このインターフェイスを通過する VLAN トランク。

numa:<ブール値>(デフォルト = 0)

NUMAの有効/無効。

numa[n]:cpus=<id[-id];...> [,hostnodes=<id[-id];...>] [,policy=<優先|バインド|インターリーブ>][,policy=<優先|バインド|インターリーブ[,メモリ=<数>] [,ポリシー=<preferred|bind|interleave>]。

NUMAトポロジー。

cpus=<id[-id];...>です。

このNUMAノードにアクセスするCPU。

hostnodes=<id[-id];...>です

使用するホストNUMAノード。

メモリ=<数字

このNUMAノードが提供するメモリ量。

policy=<バインド|インターリーブ|プリファード>。

NUMA割り当てポリシー。

onboot:<boolean>(デフォルト = 0)

システム起動時に VM を起動するかどうかを指定します。

ostype:<l24 | l26 | other | solaris | w2k | w2k3 | w2k8 | win10 | win11 | win7 | win8 | wvista | wxp>.

ゲストオペレーティングシステムを指定します。これは、特定のオペレーティングシステム用の特別な最適化/機能を有効にするために使用されます:

その他

不特定OS

ダブルエックスピー

Microsoft Windows XP

ダブリューツーケー

Microsoft Windows 2000

w2k3

Microsoft Windows 2003

w2k8

Microsoft Windows 2008

ウエビスタ

Microsoft Windows Vista

ウインセブン

Microsoft Windows 7

ウインエイト

Microsoft Windows 8/2012/2012r2

ウインテン

Microsoft Windows 10/2016/2019

ウィンナップ

マイクロソフト Windows 11/2022/2025

l24

Linux 2.4 カーネル

l26

Linux 2.6 - 6.X カーネル

ソラリス

Solaris/OpenSolaris/OpenIndian カーネル

parallel[n]:/dev/parportd+|/dev/usb/lpd+

ホスト・パラレル・デバイスをマップします(nは0~2)。

Note このオプションは、ホストハードウェアへの直接アクセスを可能にします。そのため、このようなマシンのマイグレーションはもはや不可能です。
Caution 実験的!このオプションに関する問題が報告されました。
protection:<ブール値>(デフォルト = 0)

VM の保護フラグを設定します。これにより、VM の削除とディスクの削除操作が無効になります。

reboot:<boolean>(デフォルト = 1)

再起動を許可。0に設定すると、VM は再起動時に終了します。

rng0:[source=]</dev/urandom|/dev/random|/dev/hwrng> [,max_bytes=<integer>] [,period=<integer>]です。

VirtIO ベースの乱数ジェネレータを設定します。

max_bytes=<整数>(デフォルト = 1024)

ミリ秒ごとにゲストに注入されるエントロピーの最大バイト数。ソースとして/dev/random を使用する場合は低い値を推奨します。制限を無効にするには0 を使用します (潜在的に危険です!)。

period=<integer>(デフォルト= 1000)

周期ミリ秒ごとにエントロピー注入クォータがリセットされ、ゲストは別のmax_bytesのエントロピーを取得できるようになります。

source=</dev/hwrng|/dev/random|/dev/urandom>。

エントロピーを収集するホスト上のファイル。ほとんどの場合、ホスト上のエントロピー枯渇の問題を避けるために/dev/randomよりも/dev/urandom を優先すべきです。urandomを使用しても、実際のエントロピーのシードであることに変わりはなく、提供されるバイトはゲスト上でも実際のエントロピーと混合される可能性が高いため、意味のある方法でセキュリティを低下させることはありません。/dev/hwrngは、ホストからハードウェア RNG を渡すために使用できます。

sata[n][ファイル=]<ボリューム> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<秒>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]。

ボリュームをSATAハードディスクまたはCD-ROMとして使用します(nは0~5)。

aio=<io_uring|ネイティブ|スレッド>。

使用するAIOタイプ。

backup=<ブール

バックアップ作成時にドライブを含めるかどうか。

bps=<bps>

最大r/w速度(バイト/秒)。

bps_max_length=<seconds>です。

I/Oバーストの最大長(秒)。

bps_rd=<bps>

最大読み取り速度(バイト/秒)。

bps_rd_max_length=<seconds>です。

読み取りI/Oバーストの最大長(秒)。

bps_wr=<bps>

最大書き込み速度(バイト/秒)。

bps_wr_max_length=<seconds>です。

書き込みI/Oバーストの最大長(秒)。

cache=<directsync| none | unsafe | writeback | writethrough>です

ドライブのキャッシュ・モード

cys=<整数

ドライブの物理ジオメトリを特定のシリンダ数に強制します。

detect_zeroes=<ブール値

ゼロの書き込みを検出し、最適化を試みるかどうかを制御します。

discard=<無視|オン

破棄/トリム要求を基礎となるストレージに渡すかどうかを制御します。

ファイル=<ボリューム

ドライブのバックアップ・ボリューム。

format=<cloop|cow|qcow|qcow2|qed|raw|vmdk>。

ドライブのバックアップ・ファイルのデータ形式。

heads=<整数

ドライブの物理ジオメトリが特定のヘッド数を持つように強制します。

iops=<iops>

最大r/w I/O(オペレーション毎秒)。

iops_max=<iops>

スロットルされていないr/w I/Oプールの最大オペレーション/秒。

iops_max_length=<seconds>です。

I/Oバーストの最大長(秒)。

iops_rd=<iops>

1秒あたりの最大読み取りI/O。

iops_rd_max=<iops>です。

スロットルされていない最大読み取りI/Oプール(1秒あたりの処理数)。

iops_rd_max_length=<seconds>です。

読み取りI/Oバーストの最大長(秒)。

iops_wr=<アイオプス>。

最大書き込みI/O(オペレーション/秒)。

iops_wr_max=<iops>です。

スロットルなしの最大書き込みI/Oプール(1秒あたりの操作数)。

iops_wr_max_length=<seconds>です。

書き込みI/Oバーストの最大長(秒)。

mbps=<mbps>

最大R/W速度(メガバイト/秒)。

mbps_max=<mbps>

最大スロットルなしR/Wプール(メガバイト/秒)。

mbps_rd=<mbps>

最大読み取り速度(メガバイト/秒)。

mbps_rd_max=<mbps>です。

スロットルのない最大読み取りプール(メガバイト/秒)。

mbps_wr=<mbps>です。

最大書き込み速度(メガバイト/秒)。

mbps_wr_max=<mbps>です。

スロットルなしの最大書き込みプール(メガバイト/秒)。

media=<cdrom| disk>(デフォルト = disk)

ドライブのメディア・タイプ。

replicate=<boolean>(デフォルト = 1)

ドライブをレプリケーション・ジョブの対象とするかどうか。

rerror=<ignore| report | stop>です。

読み取りエラー。

secs=<整数

ドライブの物理ジオメトリを特定のセクタ数に強制します。

シリアル=<シリアル

報告されたドライブのシリアル・ナンバー(URLエンコード、最大20バイト)。

shared=<boolean>(デフォルト = 0)

このローカル管理ボリュームをすべてのノードで使用可能としてマークします。

Warning このオプションは、ボリュームを自動的に共有しません!
size=<ディスクサイズ

ディスクサイズ。これは単なる情報提供であり、何の効果もありません。

snapshot=<boolean>

qemu のスナップショットモード機能を制御します。有効な場合、ディスクに加えられた変更は一時的なもので、VM がシャットダウンされると破棄されます。

ssd=<ブール

このドライブを回転式ハードディスクではなくSSDとして公開するかどうか。

trans=<自動| lba | なし>。

強制ディスクジオメトリバイオス変換モード。

werror=<enospc|無視|報告|停止>。

書き込みエラーアクション。

wwn=<wwn>

16バイトの16進文字列としてエンコードされたドライブのワールドワイド名で、先頭に0xが付きます。

scsi[n][ファイル=]<ボリューム> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<秒>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps> ]。] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,product=<product>] [,queues=<integer>] [,replicate=<1|0] [,rerror=<ignore|report|stop>] [,ro=<1|0>] [,scsiblock=<1|0>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,vendor=<vendor>] [,werror=<enum>] [,wwn=<wwn>] となります。

ボリュームをSCSIハードディスクまたはCD-ROMとして使用します(nは0~30)。

aio=<io_uring|ネイティブ|スレッド>。

使用するAIOタイプ。

backup=<ブール

バックアップ作成時にドライブを含めるかどうか。

bps=<bps>

最大r/w速度(バイト/秒)。

bps_max_length=<seconds>です。

I/Oバーストの最大長(秒)。

bps_rd=<bps>

最大読み取り速度(バイト/秒)。

bps_rd_max_length=<seconds>です。

読み取りI/Oバーストの最大長(秒)。

bps_wr=<bps>

最大書き込み速度(バイト/秒)。

bps_wr_max_length=<seconds>です。

書き込みI/Oバーストの最大長(秒)。

cache=<directsync| none | unsafe | writeback | writethrough>です

ドライブのキャッシュ・モード

cys=<整数

ドライブの物理ジオメトリを特定のシリンダ数に強制します。

detect_zeroes=<ブール値

ゼロの書き込みを検出し、最適化を試みるかどうかを制御します。

discard=<無視|オン

破棄/トリム要求を基礎となるストレージに渡すかどうかを制御します。

ファイル=<ボリューム

ドライブのバックアップ・ボリューム。

format=<cloop|cow|qcow|qcow2|qed|raw|vmdk>。

ドライブのバックアップ・ファイルのデータ形式。

heads=<整数

ドライブの物理ジオメトリが特定のヘッド数を持つように強制します。

iops=<iops>

最大r/w I/O(オペレーション毎秒)。

iops_max=<iops>

スロットルされていないr/w I/Oプールの最大オペレーション/秒。

iops_max_length=<seconds>です。

I/Oバーストの最大長(秒)。

iops_rd=<iops>

1秒あたりの最大読み取りI/O。

iops_rd_max=<iops>です。

スロットルされていない最大読み取りI/Oプール(1秒あたりの処理数)。

iops_rd_max_length=<seconds>です。

読み取りI/Oバーストの最大長(秒)。

iops_wr=<アイオプス>。

最大書き込みI/O(オペレーション/秒)。

iops_wr_max=<iops>です。

スロットルなしの最大書き込みI/Oプール(1秒あたりの操作数)。

iops_wr_max_length=<seconds>です。

書き込みI/Oバーストの最大長(秒)。

iothread=<ブール値

このドライブにiothreadsを使用するかどうか

mbps=<mbps>

最大R/W速度(メガバイト/秒)。

mbps_max=<mbps>

最大スロットルなしR/Wプール(メガバイト/秒)。

mbps_rd=<mbps>

最大読み取り速度(メガバイト/秒)。

mbps_rd_max=<mbps>です。

スロットルのない最大読み取りプール(メガバイト/秒)。

mbps_wr=<mbps>です。

最大書き込み速度(メガバイト/秒)。

mbps_wr_max=<mbps>です。

スロットルなしの最大書き込みプール(メガバイト/秒)。

media=<cdrom| disk>(デフォルト = disk)

ドライブのメディア・タイプ。

product=<商品

ドライブの製品名(最大16バイト)。

キュー=<整数>(2 - N)

キューの数。

replicate=<boolean>(デフォルト = 1)

ドライブをレプリケーション・ジョブの対象とするかどうか。

rerror=<ignore| report | stop>です。

読み取りエラー。

ro=<ブール

ドライブが読み取り専用かどうか。

scsiblock=<boolean>(デフォルト = 0)

ホストブロックデバイスのフルパススルーに scsi-block を使用するかどうか

Warning ホストのメモリ不足やメモリの断片化が進むと、I/O エラーが発生する可能性があります。
secs=<整数

ドライブの物理ジオメトリを特定のセクタ数に強制します。

シリアル=<シリアル

報告されたドライブのシリアル・ナンバー(URLエンコード、最大20バイト)。

shared=<boolean>(デフォルト = 0)

このローカル管理ボリュームをすべてのノードで使用可能としてマークします。

Warning このオプションは、ボリュームを自動的に共有しません!
size=<ディスクサイズ

ディスクサイズ。これは単なる情報提供であり、何の効果もありません。

snapshot=<boolean>

qemu のスナップショットモード機能を制御します。有効な場合、ディスクに加えられた変更は一時的なもので、VM がシャットダウンされると破棄されます。

ssd=<ブール

このドライブを回転式ハードディスクではなくSSDとして公開するかどうか。

trans=<自動| lba | なし>。

強制ディスクジオメトリバイオス変換モード。

ベンダー

ドライブのベンダー名(最大8バイト)。

werror=<enospc|無視|報告|停止>。

書き込みエラーアクション。

wwn=<wwn>

16バイトの16進文字列としてエンコードされたドライブのワールドワイド名で、先頭に0xが付きます。

scsihw:<lsi | lsi53c810 | megasas | pvscsi | virtio-scsi-pci | virtio-scsi-single>(デフォルト = lsi)

SCSIコントローラモデル

searchdomain:<文字列

cloud-init:コンテナのDNS検索ドメインを設定します。searchdomainもnameserverも設定されていない場合、Createはホストからの設定を自動的に使用します。

serial[n]:(/dev/.+|socket)

VM内部でシリアル・デバイスを作成し(nは0~3)、ホストのシリアル・デバイス(例:/dev/ttyS0)を通すか、ホスト側でunixソケットを作成します(qm terminalを使ってターミナル接続を開きます)。

Note ホストシリアルデバイスを経由すると、そのようなマシンの移行はできなくなります。
Caution 実験的!このオプションに関する問題が報告されました。
shares:<整数> (0 - 50000)(デフォルト = 1000)

オート・バルーニングのメモリ・シェア量。この数値が大きいほど、このVMはより多くのメモリを取得します。数値は、他のすべての実行中のVMの重みに対する相対値です。ゼロを使用すると、オートバルーニングは無効になります。オートバルーニングはpvestatdによって実行されます。

smbios1:[base64=<1|0>] [,family=<Base64 エンコードされた文字列>] [,manufacturer=<Base64 エンコードされた文字列>] [,product=<Base64 エンコードされた文字列>] [,serial=<Base64 エンコードされた文字列>] [,sku=<Base64 エンコードされた文字列>] [,uuid=<UUID>] [,version=<Base64 エンコードされた文字列>].

SMBIOSタイプ1のフィールドを指定します。

base64=<ブール値

SMBIOSの値がbase64エンコードされていることを示すフラグ

family=<Base64でエンコードされた文字列

SMBIOS1 ファミリ文字列を設定します。

メーカー=<Base64エンコード文字列

SMBIOS1 メーカーを設定します。

product=<Base64でエンコードされた文字列

SMBIOS1のプロダクトIDを設定します。

serial=<Base64でエンコードされた文字列

SMBIOS1のシリアル番号を設定します。

sku=<Base64でエンコードされた文字列

SMBIOS1 SKU文字列を設定します。

uuid=<UUID>

SMBIOS1 の UUID を設定します。

バージョン=<Base64エンコード文字列

SMBIOS1のバージョンを設定します。

smp:<整数> (1 - N)(デフォルト = 1)

CPU数。代わりに -sockets オプションを使用してください。

sockets:<整数> (1 - N)(デフォルト = 1)

CPUソケットの数。

spice_enhancements:[foldersharing=<1|0>] [,videostreaming=<off|all|filter>]。

SPICE の追加機能拡張を設定します。

フォルダ共有=<ブール値>(デフォルト = 0)

SPICE 経由でのフォルダ共有を有効にします。VMにSpice-WebDAVデーモンがインストールされている必要があります。

videostreaming=<all| filter | off>(デフォルト = off)

ビデオストリーミングを有効にします。検出されたビデオストリームに圧縮を使用します。

sshkeys:<文字列

cloud-init:公開 SSH 鍵を設定します (1 行に 1 つの鍵、OpenSSH 形式)。

startdate:(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)(デフォルト = now)

リアルタイムクロックの初期日付を設定します。有効な日付のフォーマットは'now'または2006-06-17T16:01:21または2006-06-17です。

を起動します:order=]♪ [,up=♪] [,down=♪ `)

スタートアップとシャットダウンの動作。Orderは一般的な起動順序を定義する非負の数値です。シャットダウンは逆の順序で行われます。さらに、次のVMが起動または停止するまでの待ち時間を秒単位で設定できます

tablet:<ブール値>(デフォルト = 1)

USBタブレットデバイスを有効/無効にします。このデバイスは通常、VNCで絶対的なマウスポジショニングを可能にするために必要です。そうしないと、マウスは通常のVNCクライアントと同期しません。1つのホスト上で多くのコンソールオンリーゲストを実行している場合、コンテキストスイッチを節約するために、これを無効にすることを検討することができます。spice(qm set <vmid> --vga qxl) を使用すると、デフォルトでオフになります。

タグ:<string

VM のタグ。これは単なるメタ情報です。

tdf:<ブール値>(デフォルト = 0)

時間ドリフト修正の有効/無効。

テンプレート:<boolean>(デフォルト = 0)

テンプレートの有効/無効。

tpmstate0:[file=]<volume> [,size=<DiskSize>] [,version=<v1.2|v2.0>].

TPMの状態を保存するDiskを設定します。フォーマットはraw固定。

ファイル=<ボリューム

ドライブのバックアップ・ボリューム。

size=<ディスクサイズ

ディスクサイズ。これは単なる情報提供であり、何の効果もありません。

version=<v1.2 | v2.0>(デフォルト = v1.2)

TPMインターフェースのバージョン。v2.0の方が新しいので、そちらを優先してください。これは後で変更できないことに注意してください。

unused[n]です:[ファイル=]<ボリューム

未使用ボリュームへの参照。これは内部的に使用されるので、手動で変更しないでください。

ファイル=<ボリューム

ドライブのバックアップ・ボリューム。

usb[n][[host=]<HOSTUSBDEVICE|spice>] [,mapping=<mappingid>] [,usb3=<1|0[,mapping=<mapping-id>] [,usb3=<1|0>] となります。

USBデバイスを設定します(nは0~4、マシンのバージョンが7.1以上、かつostype l26またはwindows > 7の場合、nは最大14まで)。

host=<HOSTUSBDEVICE|spice>です。

ホスト USB デバイスまたはポート、または値のスパイス。HOSTUSBDEVICE 構文は次のとおりです:

'bus-port(.port)*'(10進数)または'vendor_id:product_id'(16進数)または'spice'

lsusb -tコマンドを使えば、既存の usb デバイスをリストアップできます。

Note このオプションは、ホストハードウェアへの直接アクセスを可能にします。そのため、このようなマシンのマイグレーションはもはや不可能です。

spiceの値は、spice用のusbリダイレクトデバイスを追加するために使用できます。

このキーまたはマッピング・キーのどちらかを設定する必要があります。

マッピング=<マッピングID

クラスタ全体のマッピングのID。このホストかdefault-keyホストのどちらかを設定する必要があります。

usb3=<boolean>(デフォルト = 0)

与えられたホストオプションが USB3 デバイスかポートかを指定します。最近のゲスト (マシンのバージョン >= 7.1 および ostype l26 と Windows > 7) では、このフラグは無関係です (すべてのデバイスは xhci コントローラに接続されています)。

vcpus:<整数> (1 - N)(デフォルト = 0)

ホットプラグされたvcpusの数。

vga:[[タイプ=]<enum>] ][クリップボード=<vnc>] [,メモリ=<整数]

VGAハードウェアを設定します。高解像度モード(>= 1280x1024x16)を使用したい場合は、VGAメモリオプションを増やす必要があるかもしれません。QEMU 2.9以降、デフォルトのVGAディスプレイタイプは、cirrusを使用する一部のWindowsバージョン(XPおよびそれ以前)以外のすべてのOSタイプで標準となっています。qxlオプションは SPICE ディスプレイサーバーを有効にします。また、シリアルデバイスを端末として使用し、グラフィックカードなしで実行することもできます。

クリップボード=<vnc

特定のクリップボードを有効にします。設定されていない場合、ディスプレイの種類に応じて SPICE のものが追加されます。VNCクリップボードとの移行はまだサポートされていません!

メモリ=<整数>(4 - 512)

VGA メモリ(MiB)を設定します。シリアル表示には影響しません。

type=<cirrus| none | qxl | qxl2 | qxl3 | qxl4 | serial0 | serial1 | serial2 | serial3 | std | virtio | virtio-gl | vmware>(デフォルト = std)

VGA タイプを選択します。cirrusタイプの使用はお勧めしません。

virtio[n]です:[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<秒>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps> ]。] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,ro=<1|0>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] となります。

ボリュームを VIRTIO ハード ディスクとして使用します (n は 0 ~ 15)。

aio=<io_uring|ネイティブ|スレッド>。

使用するAIOタイプ。

backup=<ブール

バックアップ作成時にドライブを含めるかどうか。

bps=<bps>

最大r/w速度(バイト/秒)。

bps_max_length=<seconds>です。

I/Oバーストの最大長(秒)。

bps_rd=<bps>

最大読み取り速度(バイト/秒)。

bps_rd_max_length=<seconds>です。

読み取りI/Oバーストの最大長(秒)。

bps_wr=<bps>

最大書き込み速度(バイト/秒)。

bps_wr_max_length=<seconds>です。

書き込みI/Oバーストの最大長(秒)。

cache=<directsync| none | unsafe | writeback | writethrough>です

ドライブのキャッシュ・モード

cys=<整数

ドライブの物理ジオメトリを特定のシリンダ数に強制します。

detect_zeroes=<ブール値

ゼロの書き込みを検出し、最適化を試みるかどうかを制御します。

discard=<無視|オン

破棄/トリム要求を基礎となるストレージに渡すかどうかを制御します。

ファイル=<ボリューム

ドライブのバックアップ・ボリューム。

format=<cloop|cow|qcow|qcow2|qed|raw|vmdk>。

ドライブのバックアップ・ファイルのデータ形式。

heads=<整数

ドライブの物理ジオメトリが特定のヘッド数を持つように強制します。

iops=<iops>

最大r/w I/O(オペレーション毎秒)。

iops_max=<iops>

スロットルされていないr/w I/Oプールの最大オペレーション/秒。

iops_max_length=<seconds>です。

I/Oバーストの最大長(秒)。

iops_rd=<iops>

1秒あたりの最大読み取りI/O。

iops_rd_max=<iops>です。

スロットルされていない最大読み取りI/Oプール(1秒あたりの処理数)。

iops_rd_max_length=<seconds>です。

読み取りI/Oバーストの最大長(秒)。

iops_wr=<アイオプス>。

最大書き込みI/O(オペレーション/秒)。

iops_wr_max=<iops>です。

スロットルなしの最大書き込みI/Oプール(1秒あたりの操作数)。

iops_wr_max_length=<seconds>です。

書き込みI/Oバーストの最大長(秒)。

iothread=<ブール値

このドライブにiothreadsを使用するかどうか

mbps=<mbps>

最大R/W速度(メガバイト/秒)。

mbps_max=<mbps>

最大スロットルなしR/Wプール(メガバイト/秒)。

mbps_rd=<mbps>

最大読み取り速度(メガバイト/秒)。

mbps_rd_max=<mbps>です。

スロットルのない最大読み取りプール(メガバイト/秒)。

mbps_wr=<mbps>です。

最大書き込み速度(メガバイト/秒)。

mbps_wr_max=<mbps>です。

スロットルなしの最大書き込みプール(メガバイト/秒)。

media=<cdrom| disk>(デフォルト = disk)

ドライブのメディア・タイプ。

replicate=<boolean>(デフォルト = 1)

ドライブをレプリケーション・ジョブの対象とするかどうか。

rerror=<ignore| report | stop>です。

読み取りエラー。

ro=<ブール

ドライブが読み取り専用かどうか。

secs=<整数

ドライブの物理ジオメトリを特定のセクタ数に強制します。

シリアル=<シリアル

報告されたドライブのシリアル・ナンバー(URLエンコード、最大20バイト)。

shared=<boolean>(デフォルト = 0)

このローカル管理ボリュームをすべてのノードで使用可能としてマークします。

Warning このオプションは、ボリュームを自動的に共有しません!
size=<ディスクサイズ

ディスクサイズ。これは単なる情報提供であり、何の効果もありません。

snapshot=<boolean>

qemu のスナップショットモード機能を制御します。有効な場合、ディスクに加えられた変更は一時的なもので、VM がシャットダウンされると破棄されます。

trans=<自動| lba | なし>。

強制ディスクジオメトリバイオス変換モード。

werror=<enospc|無視|報告|停止>。

書き込みエラーアクション。

vmgenid:<UUID>(デフォルト = 1 (自動生成))

VM generation ID (vmgenid) デバイスは、128 ビットの整数値識別子をゲスト OS に公開します。これにより、仮想マシンが異なるコンフィギュレーション(スナップショットの実行やテンプレートからの作成など)で実行された場合に、ゲストOSに通知することができます。ゲスト OS はこの変更に気付き、分散データベースのコピーをダーティとしてマークしたり、乱数ジェネレーターを再初期化したりするなど、適切に対応することができます。自動作成は、API/CLI の作成または更新メソッドによって実行される場合にのみ機能し、設定ファイルを手動で編集する場合には機能しないことに注意してください。

vmstatestorage:<ストレージID>。

VM 状態ボリューム/ファイルのデフォルトストレージ。

watchdog:[[model=]<i6300esb|ib700>][アクション]

仮想ハードウェアウォッチドッグデバイスを作成します。いったん (ゲストのアクションによって) 有効になると、ウォッチドッグはゲスト内部のエージェントによって定期的にポーリングされる必要があります。

action=<debug| none | pause | poweroff | reset | shutdown>です。

アクティブ化後、ゲストが時間内にウォッチドッグのポーリングに失敗した場合に実行するアクション。

model=<i6300esb| ib700>(デフォルト = i6300esb)

エミュレートするウォッチドッグ・タイプ。

オンライン・マイグレーション、スナップショット、およびバックアップ(vzdump)は、影響を受けるVMに対する互換性のない同時アクションを防止するためにロックを設定します。時々、このようなロックを手動で削除する必要があります(電源障害後など)。

# qm unlock <vmid>
Caution ロックを設定したアクションがもう実行されていないことを確認した場合のみ、この操作を行ってください。

ファイル

/etc/pve/qemu-server/<VMID>.conf

VM<VMID> の設定ファイル。

著作権 © 2007-2022 Proxmox Server Solutions GmbH

このプログラムはフリー・ソフトウェアです。あなたは、Free Software Foundationによって発行されたGNU Affero General Public Licenseのバージョン3、またはそれ以降のバージョンのいずれかに従って、このプログラムを再配布したり、変更したりすることができます。

このプログラムは有用であることを期待して配布されていますが、商品性や特定の目的への適合性についての暗黙の保証もなく、いかなる保証もありません。詳細はGNU Affero General Public Licenseをご覧ください。

あなたはこのプログラムとともにGNU Affero General Public Licenseのコピーを受け取っているはずです。 そうでない場合は、https://www.gnu.org/licenses/をご覧ください。