Come funziona l'opzione di mount _netdev in / etc / fstab?


24

Mi piacerebbe sapere qual è l'esatto meccanismo (implementazione) utilizzato per rinviare il montaggio fino a quando l'interfaccia di rete è attiva quando si utilizza l' _netdevopzione in /etc/fstab?
Non systemdmodificare questo comportamento?
Inoltre, cosa offre l' delay_connectopzione a sshfs cosa _netdevno?

Dalla mount pagina man :

_netdev
Il filesystem risiede su un dispositivo che richiede l'accesso alla rete (utilizzato per impedire al sistema di tentare di montare questi filesystem fino a quando la rete non è stata abilitata sul sistema).

Dalla sshfs pagina man :

-o delay_connect
ritardare la connessione al server

Risposte:


25

SysV Init

Lo /etc/init.d/mountall.shscript init monta solo i filesystem locali:

mount -a -t nonfs,nfs4,smbfs,cifs,ncp,ncpfs,coda,ocfs2,gfs,gfs2,ceph -O no_netdev

Altri filesystem sono montati da script init separati, come ad esempio /etc/init.d/mountnfs.sh, che dichiarano (tramite le intestazioni LSB) la loro dipendenza $network. Quindi questi vengono programmati in seguito, dopo che la rete è stata aperta, mentre mountall.shpossono essere eseguiti molto prima.

systemd

Le unità di montaggio locali vengono trascinate da local-fs.target, quelle remote da remote-fs.target. systemd-fstab-generatoresegue la scansione /etc/fstab, genera unità di montaggio e le assegna ai target sopra in base a condizioni simili a quelle sopra.

delay_connect

Questa opzione significa che sshfs non avvierà la connessione SSH al server remoto al momento del montaggio, ma lo farà solo sulla prima operazione del filesystem che lo richiede effettivamente. Ciò ritarda la segnalazione degli errori, ma in alcuni casi potrebbe essere utile una soluzione alternativa, ad esempio se il sistema init non dispone di informazioni sufficienti per ordinare correttamente l'operazione di montaggio. "La rete" essendo "up" è un termine piuttosto lento , e anche se si possono aggiungere dipendenze extra arbitrarie per montare unità che non aiutano se l'evento trigger non fa parte della transazione di avvio (in modo sistematico).


Quindi, stai dicendo che _netdevnon è pensato per essere un argomento passato al processo che esegue mount (e che è specifico per il tipo di mount come ext4/btrfs/cifs/fuse) ma che deve essere letto da altri processi / script che sulla base di questo flag decidono quando durante il processo di avvio, questi supporti devono essere eseguiti. Sì? In tal caso, sospetto che questo sia il motivo per cui questo argomento inizia con il trattino basso in modo da differenziarlo da altri argomenti formali .
Piotr Dobrogost,

Sì. Se passi l' _netdevopzione al mountcomando, sarà visibile in /proc/mountsma non avrà altri effetti.
Ferenc Wágner,

Domanda bonus; è documentato da qualche parte?
Piotr Dobrogost,

1
Il manuale di montaggio contiene: "OPZIONI DI MONTAGGIO INDIPENDENTI DA FILESYSTEM - Alcune di queste opzioni sono utili solo quando compaiono nel /etc/fstabfile." Bene, _netdev(documentato un po 'più tardi) è un ottimo esempio per questo.
Ferenc Wágner,

2
L'opzione _netdev è ignorata in mount (8) per impostazione predefinita. Le opzioni sono utilizzate solo da initscripts. - bugzilla.redhat.com/show_bug.cgi?id=607309#c4
Piotr Dobrogost,

18

Da man systemd.mountper la versione 231 di systemd:

Le unità di montaggio che fanno riferimento ai file system locali e di rete si distinguono per le specifiche del tipo di file system. In alcuni casi ciò non è sufficiente (ad esempio montaggi basati su dispositivi a blocchi di rete, come iSCSI), nel qual caso _netdev può essere aggiunto alla stringa di opzioni di montaggio dell'unità, il che forza systemd a considerare l'unità di montaggio come un montaggio di rete.


Stupendo! Non ho idea del perché questa risposta non sia ancora stata votata per eccesso.
Valentin Bajrami,

1

Upstart/Udev

Per upstarte / o udevsistemi basati questo è leggermente diverso.

Sembra che udevproverà comunque a montare i filesystem NFS ed netfsè una rete di sicurezza per quando ciò fallisce.

Per favore correggimi se sbaglio. in entrambi i casi, questa risposta è rilevante solo per alcuni sistemi legacy recenti (Ubuntu 14.04 LTS, RHEL6).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.