Общая папки на хосте Proxmox для доступа из ВМ через VirtioFS

В релизе Proxmox VE 8.4 появилась возможность создавать общие директории на хосте для прямого доступа из виртуальных машин (аналог общих папок в VMware Workstation). Виртуальные машины могут получать прямой доступ (без использования сети) к общим директориям (файлам) на хосте Proxmox с помощью файловой системы VirtIOFS. В этой статье мы рассмотрим, как создать общую директорию на Proxmox и смонтировать ее в виртуальных машинах с гостевыми Linux или Windows.

Общие папки удобны, когда нужно быстро получить доступ из ВМ к файлам на локальном хосте Proxmox без использования сетевых протоколов типа SMB или NAS. Такая общая папка может содержать утилитами, образы, конфигурационные файлы, обновлениями, доступ к которым можно получить, не копирую их в каждую ВМ.

Для проброса директорий с хоста Proxmox в ВМ используется демон virtiofsd, встроенная поддержка которого появилась в версии 8.4.

Проверьте версию Proxmox на хосте:

# pveversion -v

pveversion - проверить версию proxmox

Если версия ниже, чем 8.4, выполните обновление Proxmox.

Проверьте, что virtiofsd установлен на хосте:

# dpkg -l | grep virtiofsd

Создайте общую директорию на хосте Proxmox, к которой вы хотите предоставить доступ для виртуальных машин:

# mkdir /mnt/VMShare

Откройте Proxmox web UI и перейдите в раздел Datacenter -> Directory Mappings. Добавьте новое сопоставление для ресурса, который ссылается на локальную папку /mnt/VMShare. Создать общую папку на хосте Proxmox

Теперь нужно в настройках виртуальной машины добавить общую ресурс (папку) VirtioFS. Отройте настройки ВМ -> Hardware -> Virtiofs.

Добавить устройство Virtiofs

Укажите локальную директорию, которую вы хотите пробросить в ВМ.

Подключение устройства Virtiofs в ВМ proxmox

Virtiofsd поддерживает проброс ACL и xattr атрибутов объектов общей директории в гостевую ВМ. Так вы можете управлять правами доступа к объектам, конечно если гостевая файловая система их поддерживает (имеет смысл только для файловых систем Linux).

Виртуальные машины с ядром Linux 5.4+ по умолчанию поддерживают virtiofs. Проверьте, что драйвер загружен:

# lsmod | grep virtiofs

Чтобы в ВМ с гостевой Linux временно смонтировать директорию с хоста Proxmox с помощью драйвера virtiofs, выполните в гостевой ВМ команду:

# mount -t virtiofs VMShare /mnt/hostshare

mount virtiofs в linux

Или добавьте запись в fstab, чтобы иметь постоянную смонтированную директорию:

VMShare /mnt/hostshare virtiofs rw,relatime 0 0
При запуске команды монтирования virtiofs может появится ошибкаL

mount: /mnt/hostshare: wrong fs type, bad option, bad superblock on vmshare, missing codepage or helper program, or other error. dmesg(1) may have more information after failed mount system call.

ошибка монтирования virtiofs

Дело в том, чтобы виртуальное устройство virtiofs появилось в оборудовании ВМ, ее нужно выключить (простой перезагрузки ВМ недостаточно).

После включения выведем конфигурацию ВМ, проверим что в настройках появилось устройство virtiofs:

# qm config 154 --current

virtiofs0: VMShare

устройство virtiofs0 в параметрах ВМ

В гостевой ВМ с Windows для использования virtiofs нужно дополнительно установить VirtioFS Guest Tools, которые включаю в себя драйвер для доступа к устройству. Смонтируйте в ВМ последую версию ISO образа Virtio ISO ( virtio-win-0.1.271.iso или выше). Запустите установщик virtio-win-gt-x64.msi , установите драйвера viofs/VirtioFS (подробнее в статье об установке Windows в виртуальную машину Proxmox).

установка компонентов viofs в windows

Проверим, что драйвер службы установлен и само устройство Virtio FS доступно из гостевой Windows:

Get-Service VirtioFsDrv
Get-PnpDevice | Where-Object { $_.FriendlyName -like "*VirtioFS*" -or $_.FriendlyName -like "*Virtio FS*" }

драйвер VirtioFsDrv в Windows

Для монтирования директории VirtioFS в Windows понадобится утилита WinFSP (Windows File System Proxy), которая позволяет подключать файловые системы в пользовательском режиме (аналог FUSE для Linux)

Скачайте и установите WinFSP https://github.com/winfsp/winfsp/releases

Пример использования WinFSP утилиты был в статье про монтирование дисков по SSH (SSHFS) в Windows.

Перезапустите службу VirtIO-FS Service (VirtioFsSvc), которая через winfsp смонтирует общую папку virtiofs.

Общий диск Proxmox появится в проводнике Windows

Общая папка хоста Proxmox появится в виде отдельного диска в проводнике гостевой Windows в виртуальной машине.

Виртуальные машины с подключенной общей папкой virtiofs не поддерживают live migration между хостами.

Предыдущая статья Следующая статья


Комментариев: 0 Оставить комментарий

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)