Привет! Я пробую virtiofsd уже несколько недель и мне действительно нравится этот инструмент, но у меня возникла небольшая проблема. Я использую его с Proxmox в нестандартной конфигурации на своем домашнем сервере с RAID mdadm, чтобы передавать дерево каталогов с хоста на гостевую виртуальную машину. Я знаю, что моя настройка неофициально поддерживается, но учитывая, что есть другие люди, которые используют virtiofsd, надеюсь получить обратную связь. Я также открыл задачу на GitLab virtiofsd, но не уверен, связана ли моя проблема с virtiofsd или Proxmox.
Вот в чем дело: virtiofsd не гарантирует запись пользователям, которые имеют доступ по групповым разрешениям. В Proxmox я запускаю virtiofsd с такой конфигурацией: Код: /usr/lib/kvm/virtiofsd --socket-path=/var/run/virtiofsd-data-VM1.sock -o source=/media/data/vm1/ -o cache=always -o debug -chardev socket,id=char0,path=/var/run/virtiofsd-data-VM1.sock -device vhost-user-fs-pci,chardev=char0,tag=data -object memory-backend-memfd,id=mem,size=4096M,share=on -numa node,memdev=mem.
В моей виртуальной машине я монтирую все с помощью fstab: Код: data /media/data virtiofs rw 0 2. В данный момент моя виртуальная машина — это Debian Buster с ядром из Backports: Код: $ uname -a Linux debian 5.10.0-0.bpo.5-amd64 #1 SMP Debian 5.10.24-1~bpo10+1 (2021-03-29) x86_64 GNU/Linux. Но я также тестировал последнюю версию Ubuntu Server с таким же результатом.
Проблема заключается в том, что источник /media/data/vm1/ с хоста в гостевой системе становится /media/data, и в нем имеется следующая структура каталогов с соответствующими правами: Код: $ ls -la /media/data/ total 16 drwxrwxr-x 4 root root 4096 маг 30 17:15 . drwxr-xr-x 4 root root 4096 апр 27 17:41 .. drwxrwx--- 7 root users 4096 маг 30 17:14 Documents drwxrwxr-x 6 root users 4096 июл 15 2019 www. Но если я попытаюсь записать что-то в /media/data/Documents от имени пользователя, который входит в группу users, у меня появляется ошибка доступа: Код: $ touch /media/data/Documents/test.txt touch: cannot touch ‘/media/data/Documents/test.txt’: Permission denied.
Очевидно, что я не испытываю проблем с записью в ‘/media/data/Documents/’ с sudo, и странно, что даже если я не могу записывать в этот каталог с моим пользователем, я при этом могу читать его содержимое: Код: $ ls -la /media/data/Documents/ total 8 drwxrwx--- 7 root users 4096 маг 30 18:26 . drwxrwxr-x 4 root root 4096 маг 30 17:15 .. -rw-r--r-- 1 root root 0 маг 30 18:26 test2.txt -rw-r--r-- 1 root root 0 маг 30 18:26 test3.txt -rw-r--r-- 1 root root 0 маг 30 18:26 test.txt.
Проблема не должна быть с правами, ведь если я копирую ‘/media/’ с теми же правами (cp -rp) вне точки монтирования, предоставленной virtiofsd, например, в /tmp/media/data/Documents/, тогда все работает правильно, и я могу и читать, и писать с пользователями из группы users. Я также заметил, что если я изменяю владельца /media/data/Documents с root:users на root:myuser, то пользователь 'myuser' может записывать в этот каталог. В данный момент, чтобы решить эту проблему, я изменил права /media/data/Documents с 770 на 777, но это не самое лучшее решение. Я также обнаружил, что если я изменяю права с 777 на 776, ошибка доступа все равно появляется, когда я пытаюсь записывать в каталог. Я также пробовал использовать virtiofsd, скомпилированный из исходников, как из стабильной, так и из дев-ветки, но результат тот же. Также я пробовал использовать бэкенд virtio-fs, написанный на Rust, но проблема осталась. Если честно, мне кажется странным, что virtiofsd не справляется с такой важной задачей, как групповые разрешения, так что я думаю, что это может быть моей ошибкой. С другой стороны, это может быть ошибка, связанная с Proxmox? Допускаю, что я что-то делаю не так. Кто-то еще, кто использует virtiofsd, сталкивался с аналогичной проблемой?