Запобігання порушенню з'єднання NFS від заморожування клієнтської системи


21

У нас є спільний доступ до NFS 4, який обмінюється між кількома серверами (сервер NFS та клієнтами Debian 8). Останнім часом у нас виникли деякі проблеми, коли відключення мережі заморозили б клієнтські системи.

Параметри Нашого NFS були мінімальними, просто rw(і так за замовчуванням hard, fgі т.д.).

Зараз я експериментую з цими варіантами, але не отримую очікуваної поведінки: rw,soft,bg,retrans=6,timeo=150

(Я збільшив ретрансляцію, щоб компенсувати частину м'якого ризику)

Процедура, яку я слід перевірити, - це:

  • Завантажувальна машина
  • cd до /mnt/mountpoint
  • Перевірте з'єднання NFS добре
  • cd /
  • вбити мережу ifdown eth0
  • cd до /mnt/mountpoint
  • ls

У цей момент командний рядок застигає, і я не можу переплутати його. Через деякий час повідомлення 'nfs: сервер [ім'я сервера] не відповідає, вимкнеться', яке, схоже, повторюється раз на хвилину (невизначено).

Що б я хотів / очікував, що трапиться операція, що не вдасться, і повернути контроль.

Скажіть, будь ласка, хтось скаже мені, де я помиляюся з цими налаштуваннями?

(PS: Я також спробував встановити з автофайлами, але побачив подібну поведінку)

Дякую


3
Я б не рекомендував ні softза яких обставин. Це дозволяє відкидати дані при помилці . Замість цього я б запропонував hard,intr.
roaima

2
@roaima - спасибі Ця думка, здається, дуже поширена в Інтернеті :) Проблема - це ситуація, з якою ми маємо ситуацію, для нас hardтак само погана (системи вмирають і залишаються мертвими до перезавантаження). intrне підтримується в NFS4 відповідно до людини.
UpTheCreek

2
(Виправлення, здається, intrвін підтримується NFS4, але не ядрами> 2.6.25)
UpTheCreek

Я думаю, що те, що відрізняється від "стандартних" відповідей, полягає в тому, що ви змінюєте поточну робочу директорію на точку монтажу. Ви отримуєте таку саму поведінку без того cd, а натомість робите ls /mnt/mountpoint? Можливо, що після lsвідмови ваша оболонка намагається виконати операції з файловою системою залежно від PWD. (Ще гірше, якщо ви були досить нерозумні, щоб вкластися .в нього $PATH)
Toby Speight

Відповіді:


4

intrповинен дозволяти вам знову отримати контроль під час удару ^C, але зазвичай не відразу.

   intr           If an NFS file operation has a major timeout and it is hard mounted, then allow signals to interupt the
                  file  operation  and cause it to return EINTR to the calling program.  The default is to not allow file
                  operations to be interrupted.

Як ви кажете, очікування тут проблеми. Проблеми з мережею можуть бути тимчасовими, але помилка операції є постійною. Тож більшість операцій за замовчуванням просто блокуються, поки операція не завершиться.

Це стандартна відповідь, але переглядаючи поточну сторінку чоловіка, я бачу таке:

                  The  intr / nointr mount option is deprecated after ker-
                  nel 2.6.25.  Only SIGKILL can interrupt  a  pending  NFS
                  operation on these kernels, and if specified, this mount
                  option is ignored  to  provide  backwards  compatibility
                  with older kernels.

Отже, мені здається, це не проблема NFS3 / NFS4, а рішення про те, як це intrпрацює. Таким чином, ви повинні мати можливість KILLпроцесу, але це може не дати вам великої корисності.

Мені не вдалося знайти дискусію про те, чому варіант був видалений. Чи можете ви вбити -Убити свій процес?


Дякую, але, за словами людини intr, підтримується nfs 2/3, але не 4.
UpTheCreek

@UpTheCreek, я не розумію, чому це було б. У мене немає тут системи debian, але вона прямо вказана як доступна. Ви пробували? "intr Це дозволить операціям NFS4 (на жорстких кріпленнях) перерватися під час очікування відповіді від сервера."
BowlOfRed

2
Так, я спробував це, і, схоже, це не мало ефекту. Людина каже, що її ігнорують в останніх версіях ядра.
UpTheCreek

Убити процес неможливо, оскільки вся система замерзає. За моїм досвідом команди не можна видавати. (Хоча в деяких випадках можливо потрапляння SSH у таку замерзлу машину.)
MountainX для Моніки Стейліо

3

Частина моєї відповіді - це думка, заснована на досвіді. Там, де у мене є факти, я буду (намагаюся пам'ятати) посилання на них.

  1. NFS 4 вважається вдосконаленням у порівнянні з версіями 2 та 3. Однак я ще не бачив серйозного випадку використання необхідних удосконалень. Можливо, це тому, що я прагну експортувати файлові системи до клієнтів Windows із Samba та до клієнтів Unix / Linux з NFS.
  2. Я б не рекомендував ні softза яких обставин. Це дозволяє відкидати дані при помилці . Замість цього я б запропонував hard,intr.
  3. Як ви зазначаєте, intrце не дійсно для NFS 4, але, схоже, це зміна ядра, а не NFS.
  4. NFS Automounter ( autofs) добре працює для моїх випадків використання з версіями 2 та 3 NFS і допомагає захистити мої клієнтські системи від збою сервера, монтуючи файлові системи NFS лише тоді, коли вони потрібні.

Я б вам запропонував розглянути можливість переходу від NFS 4 до NFS 3 і побачити, чи це допомагає вашому конкретному випадку використання. Не думайте про це як про пониження рівня.


1
Дякую, але я не в змозі перейти на NFS3, і навіть якби мене, як ви кажете, intrне підтримували останні версії ядра.
UpTheCreek

2
Ага так, схоже, intr він підтримується в NFS4 (він перерахований як в 2/3 лише опціях, так і в 4-х лише параметрах man, що трохи заплутано), але просто не підтримується в останніх версіях ядра.
UpTheCreek

1
"Я б не рекомендував м'яку ні за яких обставин" - справді? У моєму випадку у мене зайнятий веб-сервер, який монтує каталог зображень. Якщо хост зображень знижується і ми використовуємо hard, весь веб-сайт знижується. Якщо ми використовуємо soft, можливо, ми можемо отримати декілька зламаних зображень (хоча наша система кешування зменшує це майже повністю). Ризик softдозволити пошкодження файлів насправді не так вже й великий. Я б набагато скоріше мав один корумпований файл зображення, ніж сайт!
Дуг Маклін

1
@DougMcLean також потрапив у подібну ситуацію (зайнята веб-ферма, сервери зображень, NFS ...), я б сказав, що це дещо спеціалізований випадок. Якби мої сервери зображень були такими ж ненадійними, я підозрюю, що я цілком міг би визнатись softприйнятним рішенням. Відповідь змінено з "ніколи" на "майже ніколи". Спасибі!
roaima

1
Якщо моя пам'ять правильна, ця проблема із заморожуванням системи також була присутня в NFS v3.
MountainX для Моніки Стейліо
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.