38 votos

Me voy a cortar el automontaje de FreeBSD en pequeños trozos y se ponen a hervir en aceite

Estoy tratando de exponer una jerarquía de directorios de inicio a una serie de jaulas en FreeBSD. Los directorios principales están configurados de tal manera que cada uno es un único conjunto de datos ZFS. Las cárceles son utilizados para el desarrollo del trabajo y, por tanto, se crea y se destruye en una base regular.

Mi primer pensamiento fue, simplemente, el uso de nullfs para montar /home dentro de la cárcel, pero nullfs no proporciona ninguna manera de acceder a los subordinados de los sistemas de ficheros.

Mi segundo pensamiento fue para exportar los directorios a través de NFS y, a continuación, ejecute el automontaje de demonio (amd) dentro de cada jaula. Esto habría Funcionado...si fuera posible realizar montajes de NFS en el interior de una cárcel. Pero no lo es.

Mi tercer pensamiento fue para ejecutar amd en el host y disposición nullfs se monta en las cárceles...pero amd apoyo para nullfs no existe.

Mi cuarto pensé que iba a volver a exportar los directorios usando NFS, porque, por supuesto, amd trabaja con NFS, ¿verdad? Lamentablemente, en vez de montar un directorio en el objetivo de punto de montaje, amd le gusta montar cosas en una ubicación temporal (/.amd_mnt/...) y, a continuación, cree un enlace simbólico...que, por supuesto, es inútil en el interior de la cárcel de medio ambiente.

Así que tal vez usted podría utilizar nullfs para exponer un subdirectorio de /.amd_mnt a la cárcel? No! Esto nos trae de vuelta a mi primer intento, en el que nos encontramos con que no hay manera de acceder a los subordinados de los sistemas de ficheros utilizando nullfs.

Y entonces mi cabeza explotó.

Hay una buena solución para lo que yo estoy tratando de hacer? Una mala solución sería ejecutar una secuencia de comandos después de arrancar de la cárcel que crear varias nullfs puntos de montaje para cada directorio home, pero esto es bastante torpe -- que sería necesario ejecutar periódicamente para tomar en cuenta nuevos directorios o eliminado directorios. Así que, básicamente, tendría que escribir un mal de automontaje.

Debe haber una mejor manera. Me ayudan, Serverfault, tú eres mi única esperanza!

ACTUALIZACIÓN 1: Se me ocurrió que yo podría ser capaz de resolver una parte del problema con pam_mount, aunque esto sería en el mejor de ser incompleta. Además, no es claro a partir de la documentación si es o no pam_mount puede crear de forma automática el objetivo de punto de montaje. Si se requiere el punto de montaje de existir a priori, esta solución no sería mejor que el malo de automontaje ya he propuesto.

ACTUALIZACIÓN 2: Como se discutió en las respuestas a continuación, ajuste VFCF_JAIL en el sistema de archivos NFS permite a las cárceles para realizar montajes de NFS. Por desgracia, el automontaje continúa comportándose que son inútiles, y cuando se ejecuta en una cárcel parece ser muy bueno para que la cuña de tal manera que un sistema es necesario reiniciar el equipo para eliminar la entrada del proceso.

25voto

Eric Noob Puntos 531

Por qué, hola Lars! Esa es una pregunta fascinante que he preguntado, y después de algunas investigaciones que han encontrado una respuesta para usted.

De acuerdo a este y los demás puestos que existen, puede ser posible establecer el VFCF_JAIL atributo en el sistema de archivos NFS proveedor, que, en teoría, permitir cárceles para realizar montajes de NFS. Esto puede, a su vez, permiten ejecutar amd dentro de la cárcel...que sería perfectamente a resolver este problema.

Voy a tratar de reconstruir el kernel de esta noche para ver cómo funcionan las cosas . No es necesariamente la mejor solución (ya que significa que usted necesita para asegurarse de que este cambio persiste a través de futuras actualizaciones del kernel), pero sería interesante si funciona.

Y recuerde...

           ___________    ____                                           
    ______/   \__//   \__/____\                             
  _/   \_/  :           //____\\                             
 /|      :  :  ..      /        \                         
| |     ::     ::      \        /                             
| |     :|     ||     \ \______/     Don't try to rebuild the
| |     ||     ||      |\  /  |        kernel remotely because
 \|     ||     ||      |   / | \         you know you're just
  |     ||     ||      |  / /_\ \        going to hose the server.
  | ___ || ___ ||      | /  /    \    
   \_-_/  \_-_/ | ____ |/__/      \   
                _\_--_/    \      /   
               /____             /  
              /     \           /    
              \______\_________/     

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: