Comment fonctionne l'option de montage _netdev dans / etc / fstab?
24
Je voudrais savoir quel est le mécanisme exact (implémentation) utilisé pour différer le montage jusqu'à ce que l'interface réseau soit en place lorsque l'on utilise l' _netdevoption dans /etc/fstab?
Modifie-t-il systemdce comportement?
De plus, qu'est-ce que l' delay_connectoption sshfs fournit ce _netdevqui ne fonctionne pas?
_netdev
Le système de fichiers réside sur un périphérique qui nécessite un accès réseau (utilisé pour empêcher le système de tenter de monter ces systèmes de fichiers jusqu'à ce que le réseau soit activé sur le système).
Le /etc/init.d/mountall.shscript init monte uniquement les systèmes de fichiers locaux:
mount -a -t nonfs,nfs4,smbfs,cifs,ncp,ncpfs,coda,ocfs2,gfs,gfs2,ceph -O no_netdev
D'autres systèmes de fichiers sont montés par des scripts d'initialisation séparés, comme par exemple /etc/init.d/mountnfs.sh, qui déclarent (via les en-têtes LSB) leur dépendance $network. Ainsi, ceux-ci sont planifiés plus tard, après la mise en place du réseau, alors qu'ils mountall.shpeuvent s'exécuter beaucoup plus tôt.
systemd
Les unités de montage locales sont tirées par local-fs.target, les unités distantes par remote-fs.target. systemd-fstab-generatorscanne /etc/fstab, génère des unités de montage et les attribue aux cibles ci-dessus en fonction de conditions similaires à celles ci-dessus.
delay_connect
Cette option signifie que sshfs n'initiera pas la connexion SSH au serveur distant au moment du montage, mais ne le fera que lors de la première opération du système de fichiers qui l'exige. Cela retarde le rapport d'erreurs, mais peut être une solution de contournement utile dans certains cas, par exemple si votre système init n'a pas suffisamment d'informations pour commander correctement l'opération de montage. "Le réseau" en cours "est un terme plutôt vague , et même si l'on peut ajouter des dépendances supplémentaires arbitraires pour monter des unités, cela n'aide pas si l'événement déclencheur ne fait pas partie de la transaction de démarrage (dans le langage systemd).
Donc, vous dites que ce _netdevn'est pas censé être un argument passé au processus qui effectue le montage (et qui est spécifique au type de montage comme ext4/btrfs/cifs/fuse) mais est destiné à être lu par d'autres processus / scripts qui, en fonction de cet indicateur, décident quand pendant le processus de démarrage, ces montages doivent être exécutés. Oui? Si c'est le cas, je soupçonne que c'est la raison pour laquelle cet argument commence par un soulignement afin de le différencier des autres arguments formels .
Piotr Dobrogost
Oui. Si vous passez l' _netdevoption à la mountcommande, elle sera visible dans /proc/mountsmais n'aura aucun autre effet.
Ferenc Wágner
Question bonus; est-ce documenté quelque part?
Piotr Dobrogost
1
Le manuel de montage contient: "OPTIONS DE MONTAGE INDÉPENDANT DU SYSTÈME DE FICHIERS - Certaines de ces options ne sont utiles que lorsqu'elles apparaissent dans le /etc/fstabfichier." Eh bien, _netdev(documenté un peu plus tard) en est un bel exemple.
Les unités de montage faisant référence aux systèmes de fichiers locaux et réseau se distinguent par leur spécification de type de système de fichiers. Dans certains cas, cela n'est pas suffisant (par exemple, les montages basés sur des périphériques de bloc réseau, tels que iSCSI), auquel cas _netdev peut être ajouté à la chaîne d'options de montage de l'unité, ce qui oblige systemd à considérer l'unité de montage comme un montage réseau.
Impressionnant! Aucune idée pourquoi cette réponse n'a pas encore été votée.
Valentin Bajrami
1
Upstart/Udev
Pour les systèmes upstartet / ou udevbasés, cela est légèrement différent.
Il semble udevqu'il essayera toujours de monter les systèmes de fichiers NFS et netfsconstitue un filet de sécurité en cas d'échec.
Corrigez-moi si j'ai tort, s'il-vous plait. de toute façon, cette réponse n'est pertinente que pour certains systèmes hérités récents (Ubuntu 14.04 LTS, RHEL6).
_netdev
n'est pas censé être un argument passé au processus qui effectue le montage (et qui est spécifique au type de montage commeext4/btrfs/cifs/fuse
) mais est destiné à être lu par d'autres processus / scripts qui, en fonction de cet indicateur, décident quand pendant le processus de démarrage, ces montages doivent être exécutés. Oui? Si c'est le cas, je soupçonne que c'est la raison pour laquelle cet argument commence par un soulignement afin de le différencier des autres arguments formels ._netdev
option à lamount
commande, elle sera visible dans/proc/mounts
mais n'aura aucun autre effet./etc/fstab
fichier." Eh bien,_netdev
(documenté un peu plus tard) en est un bel exemple.De la
man systemd.mount
version 231 de systemd:la source
Upstart/Udev
Pour les systèmes
upstart
et / ouudev
basés, cela est légèrement différent.Il semble
udev
qu'il essayera toujours de monter les systèmes de fichiers NFS etnetfs
constitue un filet de sécurité en cas d'échec.Corrigez-moi si j'ai tort, s'il-vous plait. de toute façon, cette réponse n'est pertinente que pour certains systèmes hérités récents (Ubuntu 14.04 LTS, RHEL6).
la source