X-Git-Url: https://git.proxmox.com/?p=pve-docs.git;a=blobdiff_plain;f=qm.adoc;h=4f9ae15f9710102bbae15da40154fc733d0f75a7;hp=0d453c8bc5c94356b84f768b06e6c32802b3d74e;hb=7d6078845fa6a3bd308c7dc843273e56be33f315;hpb=6e4c46c4cb08bcd49c4384c2b0817923b1d63585 diff --git a/qm.adoc b/qm.adoc index 0d453c8..4f9ae15 100644 --- a/qm.adoc +++ b/qm.adoc @@ -193,16 +193,21 @@ As of {pve} 5.0, replication requires the disk images to be on a storage of type configured requires to skip replication for this disk image. If your storage supports _thin provisioning_ (see the storage chapter in the -{pve} guide), and your VM has a *SCSI* controller you can activate the *Discard* -option on the hard disks connected to that controller. With *Discard* enabled, -when the filesystem of a VM marks blocks as unused after removing files, the -emulated SCSI controller will relay this information to the storage, which will -then shrink the disk image accordingly. +{pve} guide), you can activate the *Discard* option on a drive. With *Discard* +set and a _TRIM_-enabled guest OS footnote:[TRIM, UNMAP, and discard +https://en.wikipedia.org/wiki/Trim_%28computing%29], when the VM's filesystem +marks blocks as unused after deleting files, the controller will relay this +information to the storage, which will then shrink the disk image accordingly. +For the guest to be able to issue _TRIM_ commands, you must either use a +*VirtIO SCSI* (or *VirtIO SCSI Single*) controller or set the *SSD emulation* +option on the drive. Note that *Discard* is not supported on *VirtIO Block* +drives. If you would like a drive to be presented to the guest as a solid-state drive rather than a rotational hard disk, you can set the *SSD emulation* option on that drive. There is no requirement that the underlying storage actually be backed by SSDs; this feature can be used with physical media of any type. +Note that *SSD emulation* is not supported on *VirtIO Block* drives. .IO Thread The option *IO Thread* can only be used when using a disk with the @@ -432,7 +437,7 @@ will allow proper distribution of the VM resources on the host system. This option is also required to hot-plug cores or RAM in a VM. If the NUMA option is used, it is recommended to set the number of sockets to -the number of sockets of the host system. +the number of nodes of the host system. vCPU hot-plug ^^^^^^^^^^^^^ @@ -479,7 +484,7 @@ host. .Fixed Memory Allocation [thumbnail="screenshot/gui-create-vm-memory.png"] -When setting memory and minimum memory to the same amount +ghen setting memory and minimum memory to the same amount {pve} will simply allocate what you specify to your VM. Even when using a fixed memory size, the ballooning device gets added to the @@ -698,6 +703,29 @@ you need to set the client resolution in the OVMF menu(which you can reach with a press of the ESC button during boot), or you have to choose SPICE as the display type. +[[qm_ivshmem]] +Inter-VM shared memory +~~~~~~~~~~~~~~~~~~~~~~ + +You can add an Inter-VM shared memory device (`ivshmem`), which allows one to +share memory between the host and a guest, or also between multiple guests. + +To add such a device, you can use `qm`: + + qm set -ivshmem size=32,name=foo + +Where the size is in MiB. The file will be located under +`/dev/shm/pve-shm-$name` (the default name is the vmid). + +NOTE: Currently the device will get deleted as soon as any VM using it got +shutdown or stopped. Open connections will still persist, but new connections +to the exact same device cannot be made anymore. + +A use case for such a device is the Looking Glass +footnote:[Looking Glass: https://looking-glass.hostfission.com/] project, +which enables high performance, low-latency display mirroring between +host and guest. + [[qm_startup_and_shutdown]] Automatic Start and Shutdown of Virtual Machines ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -824,7 +852,7 @@ migrate a VM to a totally different storage. You can also change the disk image *Format* if the storage driver supports several formats. + -NOTE: A full clone need to read and copy all VM image data. This is +NOTE: A full clone needs to read and copy all VM image data. This is usually much slower than creating a linked clone. + @@ -835,7 +863,7 @@ never includes any additional snapshots from the original VM. Linked Clone:: -Modern storage drivers supports a way to generate fast linked +Modern storage drivers support a way to generate fast linked clones. Such a clone is a writable copy whose initial contents are the same as the original data. Creating a linked clone is nearly instantaneous, and initially consumes no additional space. @@ -852,8 +880,8 @@ can convert any VM into a read-only <>). Such templates can later be used to create linked clones efficiently. + -NOTE: You cannot delete the original template while linked clones -exists. +NOTE: You cannot delete an original template while linked clones +exist. + It is not possible to change the *Target storage* for linked clones, @@ -864,7 +892,7 @@ The *Target node* option allows you to create the new VM on a different node. The only restriction is that the VM is on shared storage, and that storage is also available on the target node. -To avoid resource conflicts, all network interface MAC addresses gets +To avoid resource conflicts, all network interface MAC addresses get randomized, and we generate a new 'UUID' for the VM BIOS (smbios1) setting. @@ -1025,6 +1053,16 @@ ifndef::wiki[] include::qm-pci-passthrough.adoc[] endif::wiki[] +Hookscripts +~~~~~~~~~~~ + +You can add a hook script to VMs with the config property `hookscript`. + + qm set 100 -hookscript local:snippets/hookscript.pl + +It will be called during various phases of the guests lifetime. +For an example and documentation see the example script under +`/usr/share/pve-docs/examples/guest-example-hookscript.pl`. Managing Virtual Machines with `qm` ------------------------------------