Иногда не всегда уместно создавать для виртуалки отдельный диск для хранения данных, т.к. он занимает много места и в нем вообще может не быть необходимости, а когда этим диском надо поделиться с кем-нибудь еще, начиная от соседней виртуалки и заканчивая lxc контейнером, с ним совсем неудобно.
Мало инфы нашел об этом в интернете, поэтому напишу тут.
Fast setup
Дока есть тут: https://wiki.qemu.org/Documentation/9psetup
Добавляем в конфиг виртуалки:
<filesystem type="mount" accessmode="mapped">
<source dir="/mnt/asdf/"/>
<target dir="mounttag"/>
</filesystem>
Где source
— Путь до директории на хосте, а target
— произвольный тег для гостя.
Монтируем на госте папку таким образом:
losted@adm:~$ sudo mount -t 9p -o trans=virtio mounttag /mnt
Готово, папка примонтирована:
losted@adm:~$ ll /mnt
total 4536096
drwxr-xr-x 5 losted root 4096 Sep 27 12:57 ./
drwxr-xr-x 22 root root 4096 Aug 10 20:15 ../
drwxrwxr-x 2 losted losted 12288 Sep 21 22:28 devops/
drwxrwxr-x 2 losted losted 20480 Sep 23 11:00 dev_ops_true/
drwxrwxr-x 3 losted losted 4096 Sep 27 12:57 streams/
-rw-rw-r-- 1 losted losted 639952799 Mar 24 2021 'Настоящее и будущее DevOps-gvN-XW6jmSM.mkv'
-rw-rw-r-- 1 losted losted 4004952357 Sep 20 16:28 'Трансляция Saint HighLoad++ 2021, 20.09, Гриффиндор-wG4u5XEl-vo.mkv'
losted@adm:~$ df -h /mnt/
Filesystem Size Used Avail Use% Mounted on
mounttag 2.7T 2.2T 355G 87% /mnt
Qemu-guest-agent для работы проброса необязателен.
Подробнее
Права доступа
При монтировании надо следить за правами доступа. Чтобы это все вообще работало, надо чтобы папка на хосте принадлежала тому же юзеру/группе, что и владельцу процесса qemu-system.
root@microsrv >> /mnt/lxc/storage/home >> ll
итого 20K
...
drwxrwxrwx+ 7 libvirt-qemu libvirt-qemu 4,0K сен 27 16:41 streams/
Если надо, чтобы несколько юзеров/групп были владельцами файлов/папок, то удобно воспользоваться ACL:
root@microsrv /mnt/lxc/storage/home setfacl -R -m u:www-data:rwx streams/
root@microsrv /mnt/lxc/storage/home getfacl streams
# file: streams
# owner: libvirt-qemu
# group: libvirt-qemu
user::rwx
user:www-data:rwx
group::rwx
mask::rwx
other::rwx
Теперь права на владение имеют юзеры www-data
и libvirt-qemu
. Таким образом дали доступ для веб-сервера и qemu
Опции монтирования
Вот тут и тут есть параметры XMLки для хоста и монтирования на госте. Из важных могу отметить security_model
и access
— настройки доступа к содержимому. Я оставил все по умолчанию — mapped
и user
.