X-Git-Url: https://git.proxmox.com/?p=pve-docs.git;a=blobdiff_plain;f=qm.adoc;h=43f250a4d7c7875f526cbd5743a45bf22b04fcd7;hp=343dfee31e1b158758573f26c16eee3eb2a81581;hb=168665d4d45a09ef5dcf43b2283ca2f5e7604400;hpb=6cb67d7fd0a8d981c7fdb2cd3c4e926b0188a5dc diff --git a/qm.adoc b/qm.adoc index 343dfee..43f250a 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 ^^^^^^^^^^^^^ @@ -602,27 +607,32 @@ Display QEMU can virtualize a few types of VGA hardware. Some examples are: * *std*, the default, emulates a card with Bochs VBE extensions. +* *cirrus*, this was once the default, it emulates a very old hardware module +with all its problems. This display type should only be used if really +necessary footnote:[https://www.kraxel.org/blog/2014/10/qemu-using-cirrus-considered-harmful/ +qemu: using cirrus considered harmful], e.g., if using Windows XP or earlier * *vmware*, is a VMWare SVGA-II compatible adapter. * *qxl*, is the QXL paravirtualized graphics card. Selecting this also enables SPICE for the VM. You can edit the amount of memory given to the virtual GPU, by setting -the *memory* option. This can enable higher resolutions inside the VM, +the 'memory' option. This can enable higher resolutions inside the VM, especially with SPICE/QXL. -Selecting Multi-Monitor mode for SPICE (e.g., qxl2 for dual monitors) has -some implications: +As the memory is reserved by display device, selecting Multi-Monitor mode +for SPICE (e.g., `qxl2` for dual monitors) has some implications: -* Windows needs a device for each monitor, so if your ostype is some -version of windows, {pve} gives the VM an extra device per monitor. +* Windows needs a device for each monitor, so if your 'ostype' is some +version of Windows, {pve} gives the VM an extra device per monitor. Each device gets the specified amount of memory. + * Linux VMs, can always enable more virtual monitors, but selecting a Multi-Monitor mode multiplies the memory given to the device with the number of monitors. -Selecting *serialX* as display disables the VGA output, and redirects -the Web Console to the selected serial port. A configured memory setting -will be ignored in that case. +Selecting `serialX` as display 'type' disables the VGA output, and redirects +the Web Console to the selected serial port. A configured display 'memory' +setting will be ignored in that case. [[qm_usb_passthrough]] USB Passthrough @@ -819,7 +829,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. + @@ -830,7 +840,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. @@ -847,8 +857,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, @@ -859,7 +869,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. @@ -878,7 +888,7 @@ clone and modify that. VM Generation ID ---------------- -{pve} supports Virtual Machine Generation ID ('vmgedid') footnote:[Official +{pve} supports Virtual Machine Generation ID ('vmgenid') footnote:[Official 'vmgenid' Specification https://docs.microsoft.com/en-us/windows/desktop/hyperv_v2/virtual-machine-generation-identifier] for virtual machines. @@ -1016,6 +1026,9 @@ ifndef::wiki[] include::qm-cloud-init.adoc[] endif::wiki[] +ifndef::wiki[] +include::qm-pci-passthrough.adoc[] +endif::wiki[] Managing Virtual Machines with `qm`