2009-10-27 12 views
6

Mi proyecto consiste en simular un dispositivo de bloque por host remoto.Simulación de dispositivo de bloque de Linux y fusible

Para las pruebas Estoy usando FUSE, mi sistema de archivos es un simple cambio de la aplicación de ejemplo "hola", donde en lugar de devolver una cadena constante acabo de leer los datos directamente desde un archivo.

Cuando intento montar el archivo normalmente (mount -o loop =/dev/loop1) funciona bien. Cuando cargo el fusible y expongo este archivo a través de él, funcionan todas las operaciones normales de archivos. Pero el montaje falla con "Permiso denegado".

¿Alguien tiene una idea de dónde viene el "permiso denegado"?

¿Algún otro método me permitirá crear un dispositivo virtual (solo acceso de bloque de soporte) en el espacio de los usuarios, que se pueda montar?

Gracias de antemano

+0

lo distro ¿estás usando para desarrollar? Podría ser tan simple como necesitar agregar tu usuario al grupo 'fusible' –

+0

Ubuntu 9. Mount ing con la raíz. – Boris

Respuesta

1

El comando mount es un verdadero infierno para usar cuando empieza a imprimir errores. Tratar "-v", pero más a menudo que no, la producción adicional no ayudará :(

+0

Lamentablemente, "v" no muestra ningún problema hasta el temido "Permiso denegado" – Boris

4

Es de suponer que el problema es que el sistema de archivos fusible no admite las funciones necesarias para tener en bucle se monta en él.

¿usted ha considerado el uso de un dispositivo de bloque de red en lugar, como NBD o iSCSI objetivo?

+0

Desafortunadamente, eso no parece ajustarse, ya que el servidor NBD satisfará las solicitudes de bloqueo. Mientras necesito mi aplicación para proporcionar los bloques. – Boris

+0

Su aplicación puede proporcionar los bloques implementando un servidor NBD o un destino iscsi; luego puede usar los controladores NBD o iscsi existentes del kernel para que estén disponibles a través de la red y luego montarlos. – MarkR

+0

Supuse erróneamente que escribir mi propio servidor NBD sería demasiado doloroso. acaba de encontrar un proyecto de NBD-servidor en Python: "http://lists.canonical.org/pipermail/kragen-hacks/2004-May/000397.html" Trajes perfecto con mi experimento "prototipo en Python" ¡Gracias! – Boris

2

¿Está ejecutando con permisos de root. usted puede seguir el programa con "strace" y después comprobar dónde exactamente esto falla.

Cuestiones relacionadas