]> git.proxmox.com Git - pve-docs.git/blobdiff - qm.adoc
fix #5429: network: override device names: include Type=ether
[pve-docs.git] / qm.adoc
diff --git a/qm.adoc b/qm.adoc
index 97d2f7234f142e5b30bcb9a521a9be43feb943ff..42c26dbef9fa0a532780cc5e0a52d7e0f119b8d6 100644 (file)
--- a/qm.adoc
+++ b/qm.adoc
@@ -152,6 +152,7 @@ https://en.wikipedia.org/wiki/Intel_440FX[Intel 440FX] or the
 https://ark.intel.com/content/www/us/en/ark/products/31918/intel-82q35-graphics-and-memory-controller.html[Q35]
 chipset, which also provides a virtual PCIe bus, and thus may be
 desired if you want to pass through PCIe hardware.
+Additionally, you can select a xref:qm_pci_viommu[vIOMMU] implementation.
 
 Machine Version
 +++++++++++++++
@@ -385,22 +386,22 @@ Notes section for references and implementation details.
 
 *affinity*
 
-With the *affinity* option you can specify the physical CPU cores which are
-used to run the VM's vCPUs. Periphal VM processes, such as those for I/O, are
-not affected by this setting. Note that the *CPU affinity is not a security
+With the *affinity* option, you can specify the physical CPU cores that are used
+to run the VM's vCPUs. Peripheral VM processes, such as those for I/O, are not
+affected by this setting. Note that the *CPU affinity is not a security
 feature*.
 
-Forcing a CPU *affinity* can make sense in certain cases, but is accompanied by
+Forcing a CPU *affinity* can make sense in certain cases but is accompanied by
 an increase in complexity and maintenance effort. For example, if you want to
 add more VMs later or migrate VMs to nodes with fewer CPU cores. It can also
 easily lead to asynchronous and therefore limited system performance if some
 CPUs are fully utilized while others are almost idle.
 
-The *affinity* is set by calling `taskset`. It accepts the host CPU numbers
-(see `lscpu`) in the `List Format` from `man cpuset`. This ASCII decimal list
-can contain numbers but also number ranges. E.g., the *affinity* `0-1,8-11` (or
-alternatively `0,1,8,9,10,11`) only allow the VM to run on these six host
-cores.
+The *affinity* is set through the `taskset` CLI tool. It accepts the host CPU
+numbers (see `lscpu`) in the `List Format` from `man cpuset`. This ASCII decimal
+list can contain numbers but also number ranges. For example, the *affinity*
+`0-1,8-11` (expanded `0, 1, 8, 9, 10, 11`) would allow the VM to run on only
+these six specific host cores.
 
 CPU Type
 ^^^^^^^^
@@ -770,14 +771,25 @@ vhost driver. With this option activated, it is possible to pass _multiple_
 network queues to the host kernel for each NIC.
 
 //https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Virtualization_Tuning_and_Optimization_Guide/sect-Virtualization_Tuning_Optimization_Guide-Networking-Techniques.html#sect-Virtualization_Tuning_Optimization_Guide-Networking-Multi-queue_virtio-net
-When using Multiqueue, it is recommended to set it to a value equal
-to the number of Total Cores of your guest. You also need to set in
-the VM the number of multi-purpose channels on each VirtIO NIC with the ethtool
-command:
+When using Multiqueue, it is recommended to set it to a value equal to the
+number of vCPUs of your guest. Remember that the number of vCPUs is the number
+of sockets times the number of cores configured for the VM. You also need to set
+the number of multi-purpose channels on each VirtIO NIC in the VM with this
+ethtool command:
 
 `ethtool -L ens1 combined X`
 
-where X is the number of the number of vcpus of the VM.
+where X is the number of the number of vCPUs of the VM.
+
+To configure a Windows guest for Multiqueue install the
+https://pve.proxmox.com/wiki/Windows_VirtIO_Drivers[Redhat VirtIO Ethernet
+Adapter drivers], then adapt the NIC's configuration as follows. Open the
+device manager, right click the NIC under "Network adapters", and select
+"Properties". Then open the "Advanced" tab and select "Receive Side Scaling"
+from the list on the left. Make sure it is set to "Enabled". Next, navigate to
+"Maximum number of RSS Queues" in the list and set it to the number of vCPUs of
+your VM. Once you verified that the settings are correct, click "OK" to confirm
+them.
 
 You should note that setting the Multiqueue parameter to a value greater
 than one will increase the CPU load on the host and guest systems as the
@@ -1506,8 +1518,64 @@ replicate services (such as databases or domain controller
 footnote:[https://docs.microsoft.com/en-us/windows-server/identity/ad-ds/get-started/virtual-dc/virtualized-domain-controller-architecture])
 on snapshot rollback, backup restore or a whole VM clone operation.
 
-Importing Virtual Machines and disk images
-------------------------------------------
+[[qm_import_virtual_machines]]
+Importing Virtual Machines
+--------------------------
+
+Importing existing virtual machines from foreign hypervisors or other {pve}
+clusters can be achieved through various methods, the most common ones are:
+
+* Using the native import wizard, which utilizes the 'import' content type, such
+  as provided by the ESXi special storage.
+* Performing a backup on the source and then restoring on the target. This
+  method works best when migrating from another {pve} instance.
+* using the OVF-specific import command of the `qm` command-line tool.
+
+If you import VMs to {pve} from other hypervisors, it’s recommended to
+familiarize yourself with the
+https://pve.proxmox.com/wiki/Migrate_to_Proxmox_VE#Concepts[concepts of {pve}].
+
+Import Wizard
+~~~~~~~~~~~~~
+
+[thumbnail="screenshot/gui-import-wizard-general.png"]
+
+{pve} provides an integrated VM importer using the storage plugin system for
+native integration into the API and web-based user interface. You can use this
+to import the VM as a whole, with most of its config mapped to {pve}'s config
+model and reduced downtime.
+
+NOTE: The import wizard was added during the {pve} 8.2 development cycle and is
+in tech preview state. While it's already promising and working stable, it's
+still under active development, focusing on adding other import-sources, like
+for example OVF/OVA files, in the future.
+
+To use the import wizard you have to first set up a new storage for an import
+source, you can do so on the web-interface under _Datacenter -> Storage -> Add_.
+
+Then you can select the new storage in the resource tree and use the 'Virtual
+Guests' content tab to see all available guests that can be imported.
+
+[thumbnail="screenshot/gui-import-wizard-advanced.png"]
+
+Select one and use the 'Import' button (or double-click) to open the import
+wizard. You can modify a subset of the available options here and then start the
+import. Please note that you can do more advanced modifications after the import
+finished.
+
+TIP: The import wizard is currently (2024-03) available for ESXi and has been
+tested with ESXi versions 6.5 through 8.0. Note that guests using vSAN storage
+cannot be directly imported directly; their disks must first be moved to another
+storage. While it is possible to use a vCenter as the import source, performance
+is dramatically degraded (5 to 10 times slower).
+
+For a step-by-step guide and tips for how to adapt the virtual guest to the new
+hyper-visor see our
+https://pve.proxmox.com/wiki/Migrate_to_Proxmox_VE#Migration[migrate to {pve}
+wiki article].
+
+Import OVF/OVA Through CLI
+~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 A VM export from a foreign hypervisor takes usually the form of one or more disk
  images, with a configuration file describing the settings of the VM (RAM,
@@ -1538,7 +1606,7 @@ that we cannot guarantee a successful import/export of Windows VMs in all
 cases due to the problems above.
 
 Step-by-step example of a Windows OVF import
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 Microsoft provides
 https://developer.microsoft.com/en-us/windows/downloads/virtual-machines/[Virtual Machines downloads]
@@ -1546,19 +1614,19 @@ https://developer.microsoft.com/en-us/windows/downloads/virtual-machines/[Virtua
 to demonstrate the OVF import feature.
 
 Download the Virtual Machine zip
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+++++++++++++++++++++++++++++++++
 
 After getting informed about the user agreement, choose the _Windows 10
 Enterprise (Evaluation - Build)_ for the VMware platform, and download the zip.
 
 Extract the disk image from the zip
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
++++++++++++++++++++++++++++++++++++
 
 Using the `unzip` utility or any archiver of your choice, unpack the zip,
 and copy via ssh/scp the ovf and vmdk files to your {pve} host.
 
 Import the Virtual Machine
-^^^^^^^^^^^^^^^^^^^^^^^^^^
+++++++++++++++++++++++++++
 
 This will create a new virtual machine, using cores, memory and
 VM name as read from the OVF manifest, and import the disks to the +local-lvm+
@@ -1571,7 +1639,7 @@ VM name as read from the OVF manifest, and import the disks to the +local-lvm+
 The VM is ready to be started.
 
 Adding an external disk image to a Virtual Machine
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+++++++++++++++++++++++++++++++++++++++++++++++++++
 
 You can also add an existing disk image to a VM, either coming from a
 foreign hypervisor, or one that you created yourself.
@@ -1771,6 +1839,13 @@ Same as above, but only wait for 40 seconds.
 # qm shutdown 300 && qm wait 300 -timeout 40
 ----
 
+If the VM does not shut down, force-stop it and overrule any running shutdown
+tasks. As stopping VMs may incur data loss, use it with caution.
+
+----
+# qm stop 300 -overrule-shutdown 1
+----
+
 Destroying a VM always removes it from Access Control Lists and it always
 removes the firewall configuration of the VM. You have to activate
 '--purge', if you want to additionally remove the VM from replication jobs,