¿Cómo funciona la opción de montaje _netdev en / etc / fstab?
24
Me gustaría saber cuál es el mecanismo exacto (implementación) utilizado para diferir el montaje hasta que la interfaz de red esté activa cuando se usa la _netdevopción /etc/fstab.
¿ systemdAltera este comportamiento?
Además, ¿qué ofrece la delay_connectopción a sshfs y qué _netdevno?
_netdev
El sistema de archivos reside en un dispositivo que requiere acceso a la red (utilizado para evitar que el sistema intente montar estos sistemas de archivos hasta que la red se haya habilitado en el sistema).
El /etc/init.d/mountall.shscript de inicio solo monta sistemas de archivos locales
mount -a -t nonfs,nfs4,smbfs,cifs,ncp,ncpfs,coda,ocfs2,gfs,gfs2,ceph -O no_netdev
Otros sistemas de archivos están montados por scripts de inicio separados, como por ejemplo /etc/init.d/mountnfs.sh, que declaran (a través de encabezados LSB) su dependencia $network. Por lo tanto, estos se programan más tarde, una vez que se abre la red, mientras que mountall.shpueden ejecutarse mucho antes.
systemd
Las unidades de montaje locales son arrastradas por las local-fs.targetremotas remote-fs.target. systemd-fstab-generatorescanea /etc/fstab, genera unidades de montaje y las asigna a los objetivos anteriores en función de condiciones similares a las anteriores.
delay_connect
Esta opción significa que sshfs no iniciará la conexión SSH al servidor remoto en el momento del montaje, sino que solo lo hará en la primera operación del sistema de archivos que realmente lo requiera. Esto retrasa el informe de errores, pero podría ser una solución útil en algunos casos, por ejemplo, si su sistema init no tiene suficiente información para ordenar la operación de montaje correctamente. "La red" estar "activa" es un término bastante laxo , y aunque se pueden agregar dependencias adicionales arbitrarias para montar unidades que no ayudan si el evento desencadenante no es parte de la transacción de arranque (en el lenguaje systemd).
Entonces, está diciendo que _netdevno está destinado a ser un argumento pasado al proceso que realiza el montaje (y que es específico para el tipo de montaje ext4/btrfs/cifs/fuse), sino que está destinado a ser leído por otros procesos / scripts que, en función de este indicador, deciden cuándo durante el proceso de arranque, estos montajes deben ejecutarse. ¿Sí? Si es así, sospecho que esta es la razón por la cual este argumento comienza con un guión bajo para diferenciarlo de otros argumentos formales .
Piotr Dobrogost
Sí. Si pasa la _netdevopción al mountcomando, será visible /proc/mountspero no tendrá otro efecto.
Ferenc Wágner
Pregunta extra; ¿Está esto documentado en alguna parte?
Piotr Dobrogost
1
El manual de montaje contiene: "OPCIONES DE MONTAJE INDEPENDIENTES DEL SISTEMA DE ARCHIVO: algunas de estas opciones solo son útiles cuando aparecen en el /etc/fstabarchivo". Bueno, _netdev(documentado un poco más tarde) es un buen ejemplo para esto.
Las unidades de montaje que se refieren a sistemas de archivos locales y de red se distinguen por su especificación de tipo de sistema de archivos. En algunos casos, esto no es suficiente (por ejemplo, montajes basados en dispositivos de bloques de red, como iSCSI), en cuyo caso _netdev puede agregarse a la cadena de opciones de montaje de la unidad, lo que obliga a systemd a considerar la unidad de montaje como un montaje de red.
Impresionante! No tengo idea de por qué esta respuesta aún no ha sido votada.
Valentin Bajrami
1
Upstart/Udev
Para upstarty / o udevsistemas basados esto es ligeramente diferente.
Parece udevque todavía intentará montar los sistemas de archivos NFS y netfses una red de seguridad para cuando eso falla.
Por favor corrígeme si estoy equivocado. De cualquier manera, esta respuesta solo es relevante para algunos sistemas heredados recientes (Ubuntu 14.04 LTS, RHEL6).
_netdev
no está destinado a ser un argumento pasado al proceso que realiza el montaje (y que es específico para el tipo de montajeext4/btrfs/cifs/fuse
), sino que está destinado a ser leído por otros procesos / scripts que, en función de este indicador, deciden cuándo durante el proceso de arranque, estos montajes deben ejecutarse. ¿Sí? Si es así, sospecho que esta es la razón por la cual este argumento comienza con un guión bajo para diferenciarlo de otros argumentos formales ._netdev
opción almount
comando, será visible/proc/mounts
pero no tendrá otro efecto./etc/fstab
archivo". Bueno,_netdev
(documentado un poco más tarde) es un buen ejemplo para esto.Desde la
man systemd.mount
versión 231 de systemd:fuente
Upstart/Udev
Para
upstart
y / oudev
sistemas basados esto es ligeramente diferente.Parece
udev
que todavía intentará montar los sistemas de archivos NFS ynetfs
es una red de seguridad para cuando eso falla.Por favor corrígeme si estoy equivocado. De cualquier manera, esta respuesta solo es relevante para algunos sistemas heredados recientes (Ubuntu 14.04 LTS, RHEL6).
fuente