aboutsummaryrefslogtreecommitdiff
path: root/DOCS.md
blob: 145f9f28953d79eee03243e9e185b7983daff36c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
# KVMX Documentation

Misc documentation on kvmx and QEMU.

## USB hotplug support

* Good to have `usbutils` package in the guest.

* Docs:
  * https://qemu.readthedocs.io/en/latest/system/usb.html
  * https://github.com/qemu/qemu/blob/master/docs/usb2.txt
  * https://wiki.gentoo.org/wiki/QEMU/Windows_guest
  * https://www.linux-kvm.org/page/USB_Host_Device_Assigned_to_Guest
  * https://en.wikibooks.org/wiki/QEMU/Devices/USB/Root
  * https://wiki.archlinux.org/index.php/QEMU#Pass-through_host_USB_device

* Issues:
  * https://serverfault.com/questions/666210/attaching-usb-dongle-to-kvm-vm
  * https://unix.stackexchange.com/questions/119335/how-can-i-simulate-usb-storage-device-connection-with-qemu#119530
  * https://unix.stackexchange.com/questions/452934/can-i-pass-through-a-usb-port-via-qemu-command-line#452946
    kvm - Can I pass through a USB Port via qemu Command Line? - Unix & Linux Stack Exchange

  * https://unix.stackexchange.com/questions/310271/camera-passthrough-in-qemu-kvm-linux-guest-machine
    Camera passthrough in QEMU/KVM (linux) guest machine - Unix & Linux Stack Exchange

  * https://bugs.launchpad.net/qemu/+bug/1377163/
    Bug #1377163 “Does not add usb-host devices as they are hotplugg...” : Bugs : QEMU

  * https://bugzilla.redhat.com/show_bug.cgi?id=955438
    955438 – qemu should fail to boot guest when speed mismatch trying to attach low speed usb device to xHCI high speed controller

  * https://bugs.launchpad.net/qemu/+bug/1550743
    Bug #1550743 “connect low speed host devices to qemu ehci does n...” : Bugs : QEMU

  * https://bugzilla.redhat.com/show_bug.cgi?id=949505
    949505 – Assign 3.0 usb device to ehci and uhci or usb hub got applied anyway with warning but fails to function

  * https://www.reddit.com/r/linuxadmin/comments/7a7bgl/when_adding_usb_redirection_in_a_vm_it_resets_the/
    When adding USB redirection in a vm it resets the USB device and errors with speed mismatch. Any idea how to change speed? : linuxadmin

  * https://bugs.launchpad.net/qemu/+bug/1810000
    qemu system emulator crashed when using xhci usb controller

## Manually resizing an image

Nowadays this can be done with `kvmx growpart <device> <partition> <additional_size>`, but
here goes some manual procedures if needed.

* Image resize action, doing something like this, thanks to
  https://ahelpme.com/linux/online-resize-of-a-root-ext4-file-system-increase-the-space/

        # poweroff
        kvmx poweroff $guest

        # resize image
        qemu-img resize `kvmx list_image $guest` +5G

        # power up
        kvmx up $guest

        # ensure parted is installed
        #sudo apt-get install -y parted
        kvmx ssh $guest sudo apt-get install -y cloud-guest-utils

        # resize virtual machine root fs - while the partition is mounted!
        # this parted command currently need to be done manually
        #echo resizepart 2 -1 | kvmx ssh $guest sudo parted /dev/vda

        # See https://unix.stackexchange.com/questions/373063/auto-expand-last-partition-to-use-all-unallocated-space-using-parted-in-batch-m
        #     https://unix.stackexchange.com/questions/190317/gnu-parted-resizepart-in-script#202872
        #     https://bugs.launchpad.net/ubuntu/+source/parted/+bug/1270203
        #     https://techtitbits.com/2018/12/using-parteds-resizepart-non-interactively-on-a-busy-partition/
        #     https://serverfault.com/questions/870594/resize-partition-to-maximum-using-parted-in-non-interactive-mode
        #kvmx ssh $guest sudo parted /dev/vda resizepart 2 -1 Yes
        kvmx ssh $guest sudo growpart /dev/vda 2

        kvmx ssh $guest sudo resize2fs /dev/vda2
        kvmx ssh $guest sudo touch /forcefsck
        kvmx restart $guest

## Folder sharing

### With virtio and 9p

References on virtio:

* [Virtio on Linux — The Linux Kernel documentation](https://www.kernel.org/doc/html/v6.8/driver-api/virtio/virtio.html)
  * [linux kernel - VIRTIO: How it increase performance - Stack Overflow](https://stackoverflow.com/questions/24737882/virtio-how-it-increase-performance)
      * [Virtual I/O Device (VIRTIO) Version 1.1](https://docs.oasis-open.org/virtio/virtio/v1.1/cs01/virtio-v1.1-cs01.html#x1-240006)

Some references on 9p folder sharing:

* [v9fs: Plan 9 Resource Sharing for Linux — The Linux Kernel documentation](https://www.kernel.org/doc/html/latest/filesystems/9p.html)
  * [Documentation/9p - QEMU](https://wiki.qemu.org/Documentation/9p)
  * [Documentation/9psetup - QEMU](https://wiki.qemu.org/Documentation/9psetup)
  * [v9fs · GitHub](https://github.com/v9fs)

Performance limitations:

* [linux/net/9p/trans_virtio.c at master · torvalds/linux · GitHub](https://github.com/torvalds/linux/blob/master/net/9p/trans_virtio.c)
  * [linux/net/9p/trans_virtio.c at master - L803 · torvalds/linux · GitHub](https://github.com/torvalds/linux/blob/master/net/9p/trans_virtio.c#L803)
    * [History for net/9p/trans_virtio.c - torvalds/linux · GitHub](https://github.com/torvalds/linux/commits/master/net/9p/trans_virtio.c)
* [Can not set high msize with virtio-9p (Was: Re: virtiofs vs 9p performan](https://lists.gnu.org/archive/html/qemu-devel/2021-02/msg06343.html)
  * [Re: Can not set high msize with virtio-9p (Was: Re: virtiofs vs 9p perfo](https://lists.gnu.org/archive/html/qemu-devel/2021-02/msg06850.html)

Discussion an proposals to overcome this limit:

* [remove msize limit in virtio transport - LWN.net](https://lwn.net/Articles/901523/)
  * [New Patches Aim To Boost Linux 9p Performance By ~10x - Phoronix](https://www.phoronix.com/news/Linux-9p-10x-Performance)
    * [9p performance increase by ~10x reflected in WSL? · microsoft/WSL · Discussion #9412 · GitHub](https://github.com/microsoft/WSL/discussions/9412)
    * [VM: 9p: degraded performance: a reasonable high msize should be chosen on client/guest side · Issue #10219 · canonical/lxd · GitHub](https://github.com/canonical/lxd/issues/10219)
      * [Add msize configuration for windows-side 9P client (=higher WSL2 disk speed) · Issue #9125 · microsoft/WSL · GitHub](https://github.com/microsoft/WSL/issues/9125)
  * [[Virtio-fs] Can not set high msize with virtio-9p (Was: Re: virtiofs vs 9p performance)](https://listman.redhat.com/archives/virtio-fs/2021-March/002811.html)

Patches:

* [[PATCH v6 00/11] remove msize limit in virtio transport [LWN.net]](https://lwn.net/ml/linux-kernel/cover.1657920926.git.linux_oss@crudebyte.com/)
* [[PATCH v5 00/11] remove msize limit in virtio transport - Christian Schoenebeck](https://lore.kernel.org/all/cover.1657636554.git.linux_oss@crudebyte.com/)
* [Performance fixes for 9p filesystem - LWN.net](https://lwn.net/Articles/918213/)
* Other (untriaged list):
  * [Re: [PATCH v5 00/11] remove msize limit in virtio transport - Christian Schoenebeck](https://lore.kernel.org/all/7468612.NupLhYsxyy@silver/)
  * [[PATCH v3 0/7] net/9p: remove msize limit in virtio transport - Christian Schoenebeck](https://lore.kernel.org/netdev/cover.1632327421.git.linux_oss@crudebyte.com/)
  * [[PATCH v2 1/7] net/9p: show error message if user 'msize' cannot be satisfied — Netdev](https://www.spinics.net/lists/netdev/msg768036.html)
  * [[PATCH v2 00/10] Performance fixes for 9p filesystem - Eric Van Hensbergen](https://lore.kernel.org/lkml/20221218232217.1713283-1-evanhensbergen@icloud.com/)
  * [[Virtio-fs] [PATCH v2 0/3] virtio: increase VIRTQUEUE_MAX_SIZE to 32k](https://listman.redhat.com/archives/virtio-fs/2021-October/004135.html)
  * [[v4,08/12] net/9p: limit 'msize' to KMALLOC_MAX_SIZE for all transports - Patchwork](https://patchwork.kernel.org/project/netdevbpf/patch/39f81db5e5b25a1e4f94ad3b05552044209aff21.1640870037.git.linux_oss@crudebyte.com/)
  * [Thread: [V9fs-developer] [PATCH] Improve 9p performance for read operations | Plan 9 Resource Sharing for Linux](https://sourceforge.net/p/v9fs/mailman/v9fs-developer/thread/B272E6A0-C349-4B23-BE6F-7CBA8D6C4B6B%40icloud.com/)

### With virtiofs

* [virtiofs - shared file system for virtual machines](https://virtio-fs.gitlab.io/)
  * [virtiofs - shared file system for virtual machines / Standalone usage](https://virtio-fs.gitlab.io/howto-qemu.html)
    * [Debian -- Details of package virtiofsd in trixie](https://packages.debian.org/trixie/virtiofsd)
      * [rust-virtiofsd - Debian Package Tracker](https://tracker.debian.org/pkg/rust-virtiofsd)
  * [libvirt: Sharing files with Virtiofs](https://libvirt.org/kbase/virtiofs.html)
    * [virtio-fs / virtiofsd · GitLab](https://gitlab.com/virtio-fs/virtiofsd)
    * [VirtIO-FS Is Looking Quite Good For Shared File-System With VMs - Phoronix](https://www.phoronix.com/news/VirtIO-FS-Looking-Good-2020)