Каковы преимущества / недостатки жесткого и мягкого монтирования в UNIX?

23

Этот вопрос может различаться в зависимости от дистрибутива, но, в общем, каковы преимущества / недостатки использования жесткого или мягкого монтирования в мире UNIX?

Существуют ли ситуации, когда кто-то более полезен, или использование достаточно универсально?

Аарон К
источник

Ответы:

21

Жесткое монтирование обычно используется для блочных ресурсов, таких как локальный диск или SAN. Мягкое монтирование обычно используется для сетевых файловых протоколов, таких как NFS или CIFS.

Преимущество мягкого монтирования состоит в том, что если ваш NFS-сервер недоступен, ядро ​​прекратит операцию ввода-вывода по истечении предварительно настроенного периода времени. Недостатком является то, что если ваш драйвер NFS кэширует данные и время ожидания мягкого монтирования истекает, ваше приложение может не знать, какие записи на тома NFS были фактически зафиксированы на диске.

duffbeer703
источник
8

hard mounts и "intr" (interruptible) - хороший компромисс (для ядер до 2.6.25 см. комментарий Райана Хоррисбергера). Приложение не обманывает успешные записи, но вы можете убить их, если что-то засорит трубы.

hayalci
источник
8
опция intr устарела и игнорируется в последних версиях linux: linux.die.net/man/5/nfs : опция монтирования intr / nointr устарела после ядра 2.6.25. Только SIGKILL может прервать ожидающую операцию NFS на этих ядрах, и если указано, эта опция монтирования игнорируется для обеспечения обратной совместимости со старыми ядрами.
Райан Хоррисбергер
5

Жесткое монтирование с использованием некоторой сетевой файловой системы (nfs или fuse) может (иногда) навсегда блокировать при попытке восстановить разорванное соединение. Это означает, что каждый процесс, пытающийся получить доступ к этому монтированию, переходит в режим ожидания диска (D) до тех пор, пока устройство снова не станет доступным или система не будет перезагружена.

Дисковый сон не может быть прерван или убит. Это как зомби зомби процессов.

Короче говоря, никогда не используйте жесткие крепления для сетевых файловых систем. Вы хотите, чтобы файловая система перестала работать (немедленно, процессам, использующим системные вызовы), если ввод / вывод невозможен. В противном случае память, на которую они претендуют, может также просочиться в случае сбоя FS.

Тим Пост
источник
Я согласен с вашей общей рекомендацией относительно жестких креплений. Однако некоторые люди, которые развертывают VMWare в NFS, рекомендуют использовать жесткие крепления. Я не на 100% знаком с тем, почему они это делают, но это стоит рассмотреть и тщательно изучить перед внедрением.
duffbeer703
Учитывая, что жесткие монтирования зависают вечно, а в старые времена машины иногда зависали при перезагрузке из-за жесткого монтирования NFS, разве нельзя потерять данные на жестких монтировках? Представьте, что ваш файловый сервер NFS вышел из строя, теперь ваши клиенты не могут его найти, они полностью сбиты с толку, вы перезагружаете их ... их потенциальные записи исчезли. В те дни, когда существовали мягкие монтирования, жесткие монтирования вызывали проблемы с перезагрузкой компьютеров. Если вы загрузили файловый сервер перед клиентом, клиент зависнет. Нам бы иногда приходилось их включать и выключать. Люди делают ошибки. Это все еще проблема сегодня?
Майк С
@MikeS Есть много таких установок, которые работают счастливо. Вы никогда не знаете, с чем столкнетесь в лабораториях или на заводах, где десятилетние машины все еще успешно управляют оборудованием. Это не такая большая проблема для людей, которые работают над современными вещами. Но да, жесткое монтирование может стоить вам данных (но мягкое монтирование тоже может!), Но любая сетевая файловая система, которая не использует кэшируемый ввод-вывод с резервным питанием от батареи, имеет такой же потенциал для этой проблемы. Жесткие крепления делают его еще более ужасным, когда дело доходит до автоматизации обнаружения и восстановления.
Тим Пост
2

Софт используется только людьми, которые не понимают принцип NFS. soft / hard зависит от использования файловой системы. для критически важных приложений всегда используйте жесткое монтирование, чтобы предотвратить повреждение файлов (это причина, по которой он используется по умолчанию для большинства систем). для файловой системы ro безопасно использовать soft и thermof предпочтительно. кстати nfsv4 больше не поддерживает софт ....

маниту
источник
nfsv4 больше не поддерживает софт? Согласно справочной странице «Параметры, поддерживаемые всеми версиями. Эти параметры действительны для использования с любой версией NFS. Soft / hard Определяет поведение восстановления клиента NFS после истечения времени ожидания запроса NFS. Если ни одна из этих опций не указана (или если указана жесткая опция), запросы NFS повторяются бесконечно. Если задана мягкая опция, то клиент NFS не выполнит запрос NFS после отправки повторных передач ретрансляции, в результате чего клиент NFS вернет ошибку вызывающему приложению ». Смотрите linux.die.net/man/5/nfs
Майк С
Я думаю, что вы противоречите себе ... "софт используется только людьми, которые не понимают ..." и "для файловой системы ro безопасно использовать софт ..." Также см. Пост @Tim Post выше ,
Майк С