Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Оплата
Новости
Доставка
Загрузки
Форум
Настройка
    info@proxmox.su
    +7 (495) 320-70-49
    Заказать звонок
    Аспро: ЛайтШоп
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Аспро: ЛайтШоп
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Аспро: ЛайтШоп
    Телефоны
    +7 (495) 320-70-49
    Заказать звонок
    0
    0
    0
    Аспро: ЛайтШоп
    • +7 (495) 320-70-49
      • Назад
      • Телефоны
      • +7 (495) 320-70-49
      • Заказать звонок
    • info@proxmox.su
    • Москва, Бакунинская улица, 69с1
    • Пн-Пт: 09-00 до 18-00
      Сб-Вс: выходной
    • 0 Сравнение
    • 0 Избранное
    • 0 Корзина
    Главная
    Форум
    Proxmox Виртуальная Среда
    VirtioFS поддержка

    Форумы: Proxmox Виртуальная Среда, Proxmox Backup Server, Proxmox Mail Gateway, Proxmox Datacenter Manager
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    VirtioFS поддержка, Proxmox Виртуальная Среда
     
    yaro014
    Guest
    #1
    0
    22.10.2020 20:05:00
    Новая версия qemu поддерживает VirtioFS. Есть ли планы по внедрению этого в proxmox? Возможность делиться дисками между виртуальными машинами так же, как это делается с точками монтирования в контейнерах, станет очень полезной функцией, если будет реализована. Спасибо.
     
     
     
    Rphoton
    Guest
    #2
    0
    28.07.2021 11:52:00
    Привет, у меня это работает, когда я запускаю процесс virtiofsd вручную перед запуском виртуальной машины. Я могу читать и записывать файлы из Ubuntu ВМ на хост. Но я не могу запустить virtiofsd автоматически с помощью хук-скрипта. Я постоянно получаю эту ошибку: Код: 28 июля 11:38:44 archive pvedaemon[1461]: <root@pam> начало задачи UPID:archive:0000296E:000290AE:610125A4:qmstart:102:root@pam: 28 июля 11:38:44 archive pvedaemon[10606]: запуск ВМ 102: UPID:archive:0000296E:000290AE:610125A4:qmstart:102:root@pam: 28 июля 11:38:44 archive pvedaemon[10606]: ошибка хук-скрипта для 102 на этапе pre-start: команда '/var/lib/vz/snippets/virtiofs.pl 102 pre-start' завершилась с кодом выхода 255 28 июля 11:38:44 archive pvedaemon[1461]: <root@pam> завершение задачи UPID:archive:0000296E:000290AE:610125A4:qmstart:102:root@pam: ошибка хук-скрипта для 102 на этапе pre-start: команда '/var/lib/vz/snippets/virtiofs.pl 102 pre-start' завершилась с кодом выхода 255. Мой /vz/snippets/virtiofs.pl — это просто копия шаблона /usr/share/pve-docs/examples/guest-example-hookscript.pl с добавленным моим скриптом на этапе pre-start Код: if ($phase eq 'pre-start') {

       # Первый этап 'pre-start' будет выполнен перед запуском гостя
       # Завершение с кодом != 0 прервет старт

       print "$vmid запускается, делаю приготовления.\n";
       
       /usr/lib/vz/snippets/launch-virtio-daemon.sh

       # print "приготовления не удались, прерываю."
       # exit(1); а в моем launch-virtio-daemon.sh я стараюсь установить статус выхода 0, чтобы избежать ошибки, но что бы я ни делал, я все равно получаю "pre-start' не удался: код выхода 255" Код: #!/usr/bin/bash

    function launch() {
       /usr/lib/kvm/virtiofsd --daemonize --socket-path=/var/run/vm102-vhost-fs.sock -o source=/rpool/exchange/ -o cache=always & disown
       return 0
    }
    launch Я просто пробую разные вещи, но ничего не работает, есть кто-то с большим опытом в хук-скриптах?
     
     
     
    yaro014
    Guest
    #3
    0
    28.07.2021 11:57:00
    Это полезно? https://forum.proxmox.com/threads/vm-hookscripts.87119/
     
     
     
    Rphoton
    Guest
    #4
    0
    28.07.2021 12:17:00
    Ладно, похоже, это моя вина за то, что я не знаю Perl... одно простое изменение и всё равно сломал
     
     
     
    yaro014
    Guest
    #5
    0
    28.07.2021 12:27:00
    Можешь выложить весь свой virtiofs.pl?
     
     
     
    Rphoton
    Guest
    #6
    0
    28.07.2021 12:29:00
    Да, похоже, что правильный синтаксис для вызова другого скрипта из Perl — это system('скрипт'); Я это сделал, и теперь Perl-скрипт работает, но bash-скрипт зависает... хотя я пытаюсь отправить демон в фоновый режим с помощью --daemonize и " > /dev/null 2>&1".
     
     
     
    Rphoton
    Guest
    #7
    0
    28.07.2021 12:36:00
    это теперь работает. Perl: #!/usr/bin/perl

    # Пример хук-скрипта для гостей PVE (опция конфигурации хук-скрипта)
    # Вы можете установить это через pct/qm с помощью
    # pct set <vmid> -hookscript <volume-id>
    # qm set <vmid> -hookscript <volume-id>
    # где <volume-id> должен быть исполняемым файлом в папке snippets
    # любого хранилища с директориями, например:
    # qm set 100 -hookscript local:snippets/hookscript.pl

    use strict;
    use warnings;

    print "ХУК ГОСТЯ: " . join(' ', @ARGV). "\n";

    # Первый аргумент это vmid

    my $vmid = shift;

    # Второй аргумент это фаза

    my $phase = shift;

    if ($phase eq 'pre-start') {

       # Первая фаза 'pre-start' будет выполнена перед запуском гостя
       # Выход с кодом != 0 прервет запуск

       print "$vmid запускается, выполняем подготовку.\n";
           
       system('/var/lib/vz/snippets/launch-virtio-daemon.sh');

       # print "подготовка не удалась, прерываем."
       # exit(1);

    } elsif ($phase eq 'post-start') {

       # Вторая фаза 'post-start' будет выполнена после успешного запуска гостя.

       print "$vmid успешно запустился.\n";

    } elsif ($phase eq 'pre-stop') {

       # Третья фаза 'pre-stop' будет выполнена перед остановкой гостя
       # через API. Не будет выполнена, если гость остановлен
       # изнутри, например, с помощью 'poweroff'

       print "$vmid будет остановлен.\n";

    } elsif ($phase eq 'post-stop') {

       # Последняя фаза 'post-stop' будет выполнена после остановки гостя.
       # Это должно быть выполнено даже в случае, если гость аварийно завершился
       # или остановился неожиданно.

       print "$vmid остановлен. Выполняем очистку.\n";

    } else {
       die "получена неизвестная фаза '$phase'\n";
    }

    exit(0); но мне нужно исправить это /var/lib/vz/snippets/launch-virtio-daemon.sh Bash: #!/usr/bin/bash


    function launch() {

       /usr/lib/kvm/virtiofsd --syslog --daemonize --socket-path=/var/run/vm102-vhost-fs.sock -o source=/rpool/exchange/ -o cache=always > /dev/null 2>&1
       return 0
    }

    launch
     
     
     
    azeth
    Guest
    #8
    0
    13.02.2021 14:49:00
    Привет, есть какие-нибудь предложения, как гарантировать, чтобы virtiofsd запускался до начала работы VM на pve и перезапускался каждый раз при перезагрузке VM? Есть ли какой-то хук для пред- и пост-старта/остановки, к которому я могу получить доступ? Есть ли планы добавить эту функцию в будущие релизы Proxmox вместе с новыми версиями QEMU?
     
     
     
    azeth
    Guest
    #9
    0
    17.02.2021 02:37:00
    Было бы здорово, если бы нужный инструмент (virtiofsd) вошёл в пакет QEMU 5.2, который собираются выпустить следующим. Он уже добавлен в пакеты debian qemu-system-common https://packages.debian.org/buster-backports/amd64/qemu-system-common/filelist. Спасибо за всю работу, проделанную для поддержания жизни малой домашней лабораторной community.
     
     
     
    t.lamprecht
    Guest
    #10
    0
    17.02.2021 07:07:00
    Звучит разумно, обратите внимание, что QEMU 5.2 уже доступен в репозитории pvetest несколько дней, но пока не включает бинарный файл virtiofsd, посмотрим, сможем ли мы собрать и отправить его с этой сборкой.
     
     
     
    Chris-j
    Guest
    #11
    0
    11.03.2021 20:54:00
    Похоже, что это также работает с виртуальной машиной Windows. Использую WinFsp v1.9B2. Бинарный файл virtiofsd в Proxmox: Code: /usr/lib/kvm/virtiofsd -f --socket-path=/var/run/vm001-vhost-fs.sock -o source=/tmp/shared/ -o cache=always
     
     
     
    sg23
    Guest
    #12
    0
    31.03.2021 17:23:00
    Есть какие-нибудь новости по этому поводу? Это будет в следующем релизе продукции?
     
     
     
    t.lamprecht
    Guest
    #13
    0
    01.04.2021 10:34:00
    Это уже доступно, начиная с версии pve-qemu-kvm 5.2.0-2, и в указанной записи описано, как это можно использовать. Однако на данный момент не планируется внедрение GUI/API для интеграции VirtioFSd, если это то, о чем вы говорили.
     
     
     
    sg23
    Guest
    #14
    0
    01.04.2021 13:56:00
    Я имел в виду доступность virtiofsd, и я вижу его по пути /usr/lib/kvm/virtiofsd. Спасибо. Я не думал о графическом интерфейсе, но это было бы здорово.
     
     
     
    tecufanujacu
    Guest
    #15
    0
    31.05.2021 21:46:00
    Привет! Я пробую 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, сталкивался с аналогичной проблемой?
     
     
     
    sg23
    Guest
    #16
    0
    05.06.2021 13:37:00
    Является ли идентификатор группы 'users' одинаковым как в виртуальной машине, так и на хосте? Когда я выполняю команду Code: grep users /etc/group, я получаю Code: users:x:100: на своем хосте, и идентификатор также 100 на моей Debian виртуальной машине. Я протестировал ваш сценарий в директории, смонтированной через virtiofs с правами записи для группы 'users' и принадлежащей root, и смог создать файл с обычным пользователем в этой директории.
     
     
     
    tecufanujacu
    Guest
    #17
    0
    07.06.2021 14:37:00
    Это не должно быть существенно, но да, они одинаковы, только в хосте у меня нет пользователей, присутствующих в госте. Можешь подробнее объяснить, что ты сделал? Потому что то, что я сообщил, похоже на проблему, связанную с virtiofsd. Какие у тебя права на директорию?
     
     
     
    sg23
    Guest
    #18
    0
    11.06.2021 04:25:00
    Код: $ id uid=1012(dockeruser) gid=100(users) группы=100(users) $ pwd /mnt/findable/stuff/util/test $ ls -la всего 34 drwxrwx--- 2 root users 2 Июн 10 22:21 . drwxr-sr-x 6 root users 6 Июн 10 22:08 .. $ mount|grep util stuff на /mnt/findable/stuff/util тип virtiofs (rw,relatime) $ touch foo $ ls -la всего 35 drwxrwx--- 2 root users 3 Июн 10 22:22 . drwxr-sr-x 6 root users 6 Июн 10 22:08 .. -rw-r--r-- 1 dockeruser users 0 Июн 10 22:22 foo
     
     
     
    tecufanujacu
    Guest
    #19
    0
    11.06.2021 12:07:00
    Одно из условий, чтобы эта проблема возникла, следующее: - Процесс имеет gid B, но в его списке дополнительных групп есть A. В вашем случае ваша основная группа пользователя и дополнительные группы совпадают, и я тоже замечал, что при схожих условиях всё работает правильно.
     
     
     
    Страницы: 1
    Читают тему
    +7 (495) 320-70-49
    info@proxmox.su

    Конфиденциальность Оферта
    © 2026 Proxmox.su
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры