From 1942d3f70e92ef54a0807e195de6fccbda83b9ba Mon Sep 17 00:00:00 2001 From: lukas Date: Mon, 2 Jun 2025 17:41:20 +0000 Subject: [PATCH] docs: update virt/vm --- virt/vm.md | 67 +++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 61 insertions(+), 6 deletions(-) diff --git a/virt/vm.md b/virt/vm.md index 6a65c2c..7e19b60 100644 --- a/virt/vm.md +++ b/virt/vm.md @@ -2,7 +2,7 @@ title: Machine definition description: Virtual machine hardware published: true -date: 2025-06-01T17:41:22.711Z +date: 2025-06-02T17:41:18.805Z tags: editor: markdown dateCreated: 2025-06-01T17:37:29.262Z @@ -12,7 +12,29 @@ dateCreated: 2025-06-01T17:37:29.262Z Libvirt uses XML files to define virtual machine hardware. -In the context of libvirt, a virtual machine or guest system is called a domain. In turn, a domain type refers to the hypervisor used for running the virtual machine. +In the context of libvirt, a virtual machine or guest system is called a domain. + +A domain *type* refers to the hypervisor used for running the virtual machine. + +- Truncated snippet of an imaginary virtual machine called *phyllome*: + +``` + + phyllome + 1 + 1 + + + /usr/bin/qemu-system-x86_64 + + + + +``` + +One can identify the domain type, KVM, the machine name, *phyllome*, the allocated memory, 1 GiB, the vCPU allocation, 1vCPU, the firmware type, UEFI. + +These elements are primarily managed by Linux and KVM, whereas the elements within the devices section are managed by QEMU. One can find the keyboard, for instance. ## Domain type @@ -24,8 +46,7 @@ At the moment, Phyllome OS focuses solely on hardware-assisted virtualization wi ``` -Not all QEMU commands are supported by Libvirt. To [pass QEMU commands](https://www.libvirt.org/drvqemu.html#pass-through-of-arbitrary-qemu-commands -), one need to use the following instead and add the QEMU command line at the end : +Not all QEMU commands are supported by Libvirt. To [pass QEMU commands](https://www.libvirt.org/drvqemu.html#pass-through-of-arbitrary-qemu-commands), one need to use the following instead and add the QEMU command line at the end : ``` @@ -40,12 +61,46 @@ Not all QEMU commands are supported by Libvirt. To [pass QEMU commands](https:// ``` -> If QEMU command lines are not immediately provided, it will automatically revert to simply `` upon writing changes to the domain +> If QEMU command lines are not immediately provided, it will automatically revert to simply `` when writing changes to the domain definition {.is-info} -Under QEMU, the said domain definition translates to: +Under QEMU, the said domain definition translates simply to: ``` qemu-system-x86_64 -enable-kvm [...] ``` +## Memory + +There are many ways to allocate memory. For maximum performance, one could reserve memory to virtual machine in such a way that it may not be used by the host or any other virtual machine. + +A sane default, which does not maximize performance, is the following: + +``` + +[...] + 4 + 1 +[...] + + + + +``` + +Up to 4 GiB of memory is allocated to the virtual machine, with a minimum of 1 GiB. + +A memballon device is defined, which can release memory to the host and other virtual machine in case it is not needed anymore. + +``` + +[...] + + + + +[...] + +``` + +What is also done is to mark the memory as shared memory, which is necessary for other features to work, like *virtiofs*. \ No newline at end of file