web-dev-qa-db-fra.com

Comment fonctionne l'option de montage _netdev dans / etc / fstab?

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 _netdev option dans /etc/fstab?
systemd modifie-t-il ce comportement?
De plus, qu'est-ce que delay_connect option pour sshfs fournir ce que _netdev ne fait pas?

De mountpage de manuel :

_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).

De sshfspage de manuel :

-o delay_connect
retarde la connexion au serveur

28
Piotr Dobrogost

SysV Init

Le /etc/init.d/mountall.sh le script init ne monte que 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, une fois le réseau mis en place, tandis que mountall.sh peut s'exécuter beaucoup plus tôt.

systemd

Les unités de montage locales sont tirées par local-fs.target, distants par remote-fs.target. systemd-fstab-generator scanne /etc/fstab, génère des unités de montage et les affecte 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" étant "en place" est plutôt terme lâche , et même si on peut ajouter des arbitraires dépendances supplémentaires pour monter des unités qui n'aident pas si l'événement déclencheur est ne fait pas partie de la transaction de démarrage (dans le langage systemd).

28
Ferenc Wágner

De man systemd.mount pour la version 231 de systemd:

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 la unité de montage un montage réseau.

20
Piotr Dobrogost

Upstart/Udev

Pour les systèmes basés sur upstart et/ou udev, cela est légèrement différent.

Il semble que udev essaiera toujours de monter les systèmes de fichiers NFS et netfs est 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).

1
Quattro