Які переваги / недоліки жорстких та м'яких кріплень у UNIX?


23

Це питання може відрізнятися між дистрибутивами, але, загалом, які переваги / недоліки використання жорсткого або м'якого кріплення у світі UNIX?

Чи існують певні ситуації, коли один є більш корисним або використання є досить універсальним?

Відповіді:


21

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

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


8

жорсткі кріплення та "intr" (переривчастий) - хороший компроміс (для ядер до 2.6.25 див. коментар Райана Хоррісбергера). Додаток не обманює успішні записи, але ви можете вбити їх, якщо щось забиває трубки.


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

5

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

Сон диска не можна переривати чи вбивати. Це як зомбі в зомбі-процесах.

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


Я погоджуюся з вашою загальною рекомендацією щодо жорстких кріплень. Однак деякі люди, які розміщують VMWare на NFS, рекомендують використовувати жорсткі кріплення. Я не на 100% знайомий з тим, чому вони роблять це, але це щось, що слід уважно вивчити та вивчити, перш ніж реалізувати.
duffbeer703

З огляду на те, що жорсткі кріплення вішають назавжди, а в Olden Days машини іноді зависають при перезавантаженні через жорстке кріплення NFS, чи не можливо втратити дані на жорстких кріпленнях? Уявіть, що ваш сервер файлів NFS знижується, тепер ваші клієнти не можуть цього досягти, вони повністю заплутані, ви перезавантажуєте їх ... їхні потенційні записи втрачені. Ще за часи до існування м'яких кріплень жорсткі кріплення викликали проблеми перезавантаження комп'ютерів. Якщо ви завантажили файл-сервер перед клієнтом, клієнт зависне. Іноді нам доведеться їх циклічно живити. Люди роблять помилки. Це все ще проблема сьогодні?
Майк S

@MikeS Є багато таких налаштувань, які працюють із задоволенням. Ніколи не знаєш, на що ти наткнешся в лабораторіях чи на фабриках, де старі десятилітні машини досі радісно контролюють обладнання. Це не стільки питання для людей, які працюють над сучасними речами. Але так, жорсткі кріплення можуть коштувати вам даних (але м'які кріплення теж можуть!) - але будь-яка мережева файлова система, яка не використовує кешоване введення / виведення, підтримувана батареєю, має однаковий потенціал для цієї проблеми. Жорсткі кріплення просто роблять це надзвичайно жахливо, коли справа доходить до автоматизації виявлення та відновлення.
Тім Пост

2

soft використовується лише людям, які не розуміють принципу nfs. soft / hard залежить від використання файлової системи. для критично важливих програм використовуйте завжди жорсткі кріплення, щоб запобігти пошкодженню файлів (це причина, що для більшості систем це за замовчуванням). для файлової системи ro можна використовувати м'які та віддалені переваги. до речі nfsv4 вже не підтримує soft ....


nfsv4 більше не підтримує soft? Згідно з довідковою сторінкою, "Параметри, що підтримуються всіма версіями. Ці параметри дійсні для використання з будь-якою версією NFS. Soft / hard Визначає поведінку відновлення клієнта NFS після відключення запиту NFS. Якщо жоден параметр не вказаний (або якщо вказано жорсткий варіант), запити NFS повторно повторюються. Якщо вказана опція опції, то клієнт NFS не відповідає запиту NFS після відправлення повторної повторної передачі, внаслідок чого клієнт NFS повертає помилку до виклику програми. " Дивіться linux.die.net/man/5/nfs
Mike S

Я думаю, що ви суперечите собі ... "soft використовується лише людям, які не розуміють ..." і "для файлової системи ro безпечно використовувати soft ..." Також див. Публікацію @Tim Post, вище .
Майк S
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.