Quels sont les avantages / inconvénients des supports rigides par rapport aux supports souples sous UNIX?

23

Cette question peut varier entre les distributions, mais, en général, quels sont les avantages / inconvénients de l'utilisation d'un montage dur ou souple dans le monde UNIX?

Y a-t-il certaines situations où l'on est plus bénéfique ou les utilisations sont-elles assez universelles?

Aaron K
la source

Réponses:

21

Un montage dur est généralement utilisé pour les ressources de bloc comme un disque local ou un SAN. Un montage logiciel est généralement utilisé pour les protocoles de fichiers réseau tels que NFS ou CIFS.

L'avantage d'un montage logiciel est que si votre serveur NFS n'est pas disponible, le noyau expirera l'opération d'E / S après une période préconfigurée. L'inconvénient est que si votre pilote NFS met en cache les données et que le montage progressif expire, votre application peut ne pas savoir quelles écritures sur les volumes NFS ont été réellement validées sur le disque.

duffbeer703
la source
8

montages durs et "intr" (interruptible) est un bon compromis (pour les noyaux avant 2.6.25, voir commentaire de Ryan Horrisberger). L'application n'est pas dupe des écritures réussies, mais vous pouvez les tuer si quelque chose obstrue les tubes.

hayalci
la source
8
l'option intr est déconseillée et ignorée dans les versions récentes sur linux de: linux.die.net/man/5/nfs : L'option de montage intr / nointr est déconseillée après le noyau 2.6.25. Seul SIGKILL peut interrompre une opération NFS en attente sur ces noyaux et, si elle est spécifiée, cette option de montage est ignorée pour assurer une compatibilité descendante avec les noyaux plus anciens.
Ryan Horrisberger
5

Un montage dur utilisant une sorte de système de fichiers réseau (nfs ou fusible) peut (parfois) se bloquer pour toujours tout en essayant de rétablir une connexion rompue. Cela signifie que chaque processus essayant d'accéder à ce montage passe en veille disque (D) jusqu'à ce que le périphérique soit à nouveau disponible ou que le système soit redémarré.

La mise en veille du disque ne peut pas être interrompue ou supprimée. C'est comme le zombie des processus zombies.

En bref, n'utilisez jamais de supports rigides pour les systèmes de fichiers réseau. Vous souhaitez que le système de fichiers échoue (immédiatement, aux processus utilisant des appels système) si les E / S ne sont pas possibles. Sinon, la mémoire qu'ils réclament peut aussi bien être divulguée si le FS échoue.

Tim Post
la source
Je suis d'accord avec votre recommandation générale concernant les supports rigides. Cependant, certaines personnes qui déploient VMWare sur NFS recommandent d'utiliser des montages durs. Je ne sais pas à 100% pourquoi ils le font, mais c'est quelque chose à considérer et à rechercher de près avant la mise en œuvre.
duffbeer703
Étant donné que les montages durs se bloquent pour toujours, et dans les temps anciens, les machines se bloquaient parfois au redémarrage en raison d'un montage NFS dur, n'est-il pas possible de perdre des données sur des montages durs? Imaginez que votre serveur de fichiers NFS tombe en panne, maintenant vos clients ne peuvent pas l'atteindre, ils sont totalement confus, vous les redémarrez ... leurs écritures potentielles ont disparu. À l'époque où les montages souples existaient, les montages durs ont causé des problèmes de redémarrage des ordinateurs. Si vous démarriez un serveur de fichiers avant un client, le client se bloquait. Nous devions parfois les éteindre puis rallumer. Les gens font des fautes. Est-ce toujours un problème aujourd'hui?
Mike S
@MikeS Il existe de nombreuses configurations de ce type qui fonctionnent avec bonheur. Vous ne savez jamais ce que vous rencontrerez dans des laboratoires ou des usines où des machines vieilles de dix ans contrôlent toujours avec plaisir l'équipement. Ce n'est pas tellement un problème pour les gens qui travaillent sur des trucs modernes. Mais oui, les montages durs peuvent vous coûter des données (mais les montages souples peuvent aussi!) - Mais tout système de fichiers réseau qui n'utilise pas les E / S de mise en cache avec batterie a le même potentiel pour ce problème. Les supports durs le rendent encore plus affreux lorsqu'il s'agit d'automatiser la détection et la récupération.
Tim Post
2

soft n'est utilisé que par des personnes qui ne comprennent pas le principe de nfs. soft / hard dépend de l'utilisation du système de fichiers. pour les applications critiques, utilisez toujours des montages rigides pour éviter la corruption des fichiers (c'est la raison pour laquelle c'est la valeur par défaut pour la plupart des systèmes). pour le système de fichiers ro, il est sûr d'utiliser un logiciel et c'est pourquoi il est préférable. d'ailleurs nfsv4 ne supporte plus soft ....

manitou
la source
nfsv4 ne prend plus en charge le logiciel? Selon la page de manuel, "Options prises en charge par toutes les versions Ces options peuvent être utilisées avec n'importe quelle version NFS. Soft / hard Détermine le comportement de récupération du client NFS après expiration d'une demande NFS. Si aucune option n'est spécifiée (ou si le est spécifiée), les requêtes NFS sont réessayées indéfiniment. Si l'option soft est spécifiée, le client NFS échoue à une requête NFS après l'envoi des retransmissions retransmises, ce qui oblige le client NFS à renvoyer une erreur à l'application appelante. " Voir linux.die.net/man/5/nfs
Mike S
Je pense que vous vous contredisez ... "soft n'est utilisé que par des gens qui ne comprennent pas ..." et "pour le système de fichiers ro, il est sûr d'utiliser soft ..." Voir aussi le post de @Tim Post, ci-dessus .
Mike S