2020-10 upd: we reached the first fundraising goal and rented a server in Hetzner for development! Thank you for donating !
Внимание! Данные страницы описывают CBSD версии 13.0.x. Если вы используете более раннюю версию, рекомендуется сначала обновиться.
Общие папки для виртуальных машин bhyve через virtio-p9
Commands bhyve-p9shares
% cbsd bhyve-p9shares
Описание:
Эта возможность доступна в CBSD версии 11.1.7 и выше.
Общие папки служат для обмена файлами между виртуальными машинами или между виртуальной машиной и хост системой.
Данная возможность работает только если ваша система поддерживает VirtFS/P9 и bhyve поддерживает virtio-p9.
На момент написания этой статьи (2017-10-01), такой системой является TrueOS, тогда как для FreeBSD подготовлен патч и загружен в Phabricator: D10335
Кроме этого, работа с общими папками будет доступна только в том случае, если ваши гостевые ОС имеют поддержку монтирования p9 файловой системы через virtio.
Для настройки, вам необходимо иметь на файловой системе непосредственно сам каталог, который будет презентован виртуальной машине и придумать имя (одно слово) шары, по которому будете подключать его в гостевой ОС.
Для просмотра существующих shared folders, используется команда:
% cbsd bhyve-p9shares mode=list JNAME P9PATH P9DEVICE f111 /root root debian1 /tmp/share1 share1 debian1 /tmp/share2 share2
Или для индивидуальной виртуальной машины:
% cbsd bhyve-p9shares mode=list jname=XXX
Для включения shared folders для конкретной виртуальной машины, используйте mode=attach и аргументы p9path,p9device для задания каталога и наименования shared, например:
% cbsd bhyve-p9shares mode=attach p9device=share1 p9path=/tmp/share1 jname=debian1
Для отключения shared folders для конкретной виртуальной машины, используйте mode=detach и аргумент p9device.
После запуска виртуальной машины, подключить shared folders можно разными способами, в зависимости от конкретного дистрибутива. Например в Debian-based дистрибутиве Linux это осуществляется через пакет 9mount и эту команду:
% mount -t 9p -o trans=virtio sharename /mnt
или:
% 9mount -i 'virtio!sharename' /mnt
bhyve shared folders via VirtFS/virtio-p9: