Назад | Перейти на главную страницу

Есть ли способ (не связанный с сетью) совместно использовать файловую систему хоста (ubuntu) с гостевой (centos 7) с помощью libvirt?

Я пытаюсь использовать virsh и domain xml для запуска гостя Centos 7 с хоста ubuntu 16.04 LTS. Узел "файловая система", который я использую в домене xml, выглядит следующим образом:

<filesystem type='mount' accessmode='passthrough'>
    <driver type='path' wrpolicy='immediate'/>
     <source dir='/opt/test'/>
     <target dir='testlabel'/>
</filesystem>

С приведенной выше конфигурацией "testlabel" не отображается в гостевой системе, и поэтому я не могу ее смонтировать. Что мне не хватает?

Я пробовал иметь модули 9p в гостевой системе, но они, похоже, не всегда доступны в centos 7. Требуется перекомпиляция ядра [пытается сейчас]. Я узнал, что virtio-vsock будет доступен в будущем. Так что пока это не вариант.

Я также не хочу использовать сетевой обмен файлами, например SSHFS, NFS или glusterfs.

Есть ли какой-либо другой драйвер файловой системы, который может работать с опцией "файловая система" домена xml с libvirt?

В настоящее время 9p - единственный вариант совместного использования файловой системы, поддерживаемый libvirt и KVM. К сожалению, поддерживаемый 9p отключен в CentOS, так как он в течение многих лет в основном не поддерживался в апстриме и содержал ряд недостатков безопасности - только в последние несколько месяцев новый сопровождающий 9p начал работу по устранению этого. Однако, если вы перекомпилируете ядро ​​centos или соберете модуль 9p самостоятельно, должно быть возможно заставить его работать.

Пока не появится virtio-vsock с поддержкой NFS, вы не сможете использовать другие варианты, не связанные с сетью.

Согласно документация libvirt, возможно, вам просто нужно настроить target.

В документации приведены следующие примеры:

  <filesystem type='mount' accessmode='passthrough'>
    <driver type='path' wrpolicy='immediate'/>
    <source dir='/export/to/guest'/>
    <target dir='/import/from/host'/>
    <readonly/>
  </filesystem>
  <filesystem type='file' accessmode='passthrough'>
    <driver name='loop' type='raw'/>
    <driver type='path' wrpolicy='immediate'/>
    <source file='/export/to/guest.img'/>
    <target dir='/import/from/host'/>
    <readonly/>
  </filesystem>

Который кажется работать без надобности 9р.

Однако для centos на самом деле есть легко доступный помощник 9p:

Available Packages
Name        : nfs-ganesha-mount-9P
Arch        : x86_64
Version     : 2.3.2
Release     : 1.el7
Size        : 11 k
Repo        : epel/x86_64
Summary     : a 9p mount helper
URL         : https://github.com/nfs-ganesha/nfs-ganesha/wiki
Licence     : LGPLv3+
Description : This package contains the mount.9P script that clients can use
            : to simplify mounting to NFS-GANESHA. This is a 9p mount helper.