Acceso de lectura / escritura para sistemas de archivos passthrough (9p) con libvirt / qemu?

14

Recientemente comencé a experimentar con el soporte para sistemas de archivos passthrough en versiones recientes de KVM / QEMU / libvirt. Hacer que los sistemas de archivos estén disponibles para el acceso de lectura "simplemente funcionó", pero estoy un poco desconcertado acerca de cómo se supone que funciona el acceso de escritura. Después de montar el sistema de archivos en el invitado:

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

Puedo modificar un archivo existente si tiene modo 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

Pero independientemente de los permisos del directorio, no puedo crear un nuevo archivo o directorio:

# 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

La documentación que he podido encontrar (por ejemplo, esto ) no aborda explícitamente este problema. Espero que alguien aquí en Serverfault pueda ayudarme a configurar un sistema de archivos de transferencia que me permita otorgar acceso de escritura a un usuario en el invitado a un sistema de archivos host.

larsks
fuente
¿Estás seguro de que montaste el sistema de archivos de lectura / escritura? ¿Puedes crear archivos? ¿Está creando archivos como usuario root o usuario normal (sí, veo su # pero podría haberlo escrito manualmente)?
Janus Troelsen
¿Lograste resolver esto? Tengo un problema similar al no poder escribir en la ruta fs del host montado en el invitado.
Shoan
Realmente nunca hice ningún progreso en esto. Era una especie de aplicación de nicho para mí ... En general, no estoy ejecutando invitados KVM en lugares donde el acceso a un sistema de archivos local sería útil. He empezado a ejecutar VirtualBox en mi escritorio donde realmente quiero esta característica de vez en cuando.
larsks
¿Ves alguna alerta de selinux en el host físico o en el invitado?
c4f4t0r
Esto podría ayudar? linux-kvm.org/page/9p_virtio
Danila Ladner

Respuestas:

5

Esto me parece un problema de permiso en el host:

Por defecto, el proceso qemu / kvm se inicia como un usuario sin privilegios (libvirt-qemu en Debian Wheezy). Por lo tanto, solo los archivos accesibles (o modificables) por ese usuario son accesibles (modificables) por los invitados de la VM.

Puede intentar configurar la propiedad del directorio para que el usuario qemu se ejecute como (vea user = y group = en /etc/libvirt/qemu.conf)

Tal vez esto ayude en tu caso?

matt_gnu
fuente
1
Lo he intentado en mi caso, que es lo mismo que esta pregunta , pero no puedo hacer que funcione, incluso con el apagón apagado.
Diagon
0

cuando inicie su monitor qemu en shell, debe agregar "sudo" como prefijo. Lo hice para resolver el problema de permisos al crear un archivo o carpeta. mi entorno es ubuntu16.04 + qemu-2.12.

ianwang
fuente