Akses baca / tulis untuk sistem berkas passthrough (9p) dengan libvirt / qemu?

14

Saya baru-baru ini mulai bereksperimen dengan dukungan untuk passthrough filesystems dalam versi terbaru KVM / QEMU / libvirt. Membuat filesystem yang tersedia untuk akses baca "baru saja berfungsi", tapi saya agak bingung bagaimana seharusnya akses tulis berfungsi. Setelah memasang sistem file di tamu:

# mount -t 9p -o trans=virtio /fs/data /mnt

Saya dapat memodifikasi file yang ada jika memiliki mode o+w:

# cd /mnt/work
# ls -l foo
-rw-rw-rw-. 1 root root 17 Dec 20 11:16 foo
# cat foo
this is line one
# echo this is line two >> foo
# cat foo
this is line one
this is line two

Tetapi terlepas dari izin direktori, saya tidak dapat membuat file atau direktori baru:

# ls -ld /mnt/work
drwxrwxrwx. 2 root root 4096 Dec 20 11:16 /mnt/work
# cd /mnt/work
# touch bar
touch: setting times of `bar': No such file or directory
# mkdir bar
# mkdir: cannot create directory `bar': Operation not permitted

Dokumentasi yang saya dapat temukan (misalnya, ini ) tidak secara eksplisit membahas masalah ini. Saya berharap seseorang di sini di Serverfault dapat membantu saya mengatur filesystem passthrough yang akan memungkinkan saya memberikan akses tulis ke pengguna di guest ke host filesystem.

larsks
sumber
Apakah Anda yakin memasang sistem file baca / tulis? Bisakah Anda membuat file? Apakah Anda membuat file sebagai root atau pengguna biasa (ya saya melihat # Anda tetapi Anda mungkin telah menulisnya secara manual)?
Janus Troelsen
Apakah Anda berhasil menyelesaikan ini? Saya memiliki masalah yang sama yaitu tidak dapat menulis ke jalur host fs yang dipasang pada tamu.
Shoan,
Saya tidak pernah benar-benar membuat kemajuan dalam hal ini. Itu semacam aplikasi niche bagi saya ... Saya biasanya tidak menjalankan tamu KVM di tempat-tempat di mana akses ke sistem file lokal akan berguna. Saya telah menjalankan VirtualBox di desktop tempat saya sebenarnya menginginkan fitur ini dari waktu ke waktu.
larsks
Apakah Anda melihat tanda selinux pada host fisik atau pada tamu?
c4f4t0r
Ini mungkin membantu? linux-kvm.org/page/9p_virtio
Danila Ladner

Jawaban:

4

Bagi saya ini sepertinya masalah izin pada host:

Secara default, proses qemu / kvm dimulai sebagai pengguna yang tidak memiliki hak istimewa (libvirt-qemu di Debian Wheezy). Jadi hanya file yang dapat diakses (atau dapat ditulisi) oleh pengguna tersebut yang dapat diakses (dapat ditulis) oleh tamu VM.

Anda dapat mencoba mengatur kepemilikan direktori untuk menjalankan qemu pengguna sebagai (lihat pengguna = dan grup = di /etc/libvirt/qemu.conf)

Mungkin ini membantu dalam kasus Anda?

matt_gnu
sumber
Saya sudah mencobanya dalam kasus saya, yang sama dengan pertanyaan ini , tetapi saya tidak bisa membuatnya bekerja, bahkan dengan mematikan apparmor.
Diagon
0

saat memulai monitor qemu Anda di shell, seharusnya menambahkan "sudo" sebagai awalan. Saya melakukannya untuk menyelesaikan masalah izin saat membuat file atau folder. lingkungan saya adalah ubuntu16.04 + qemu-2.12.

ianwang
sumber