Я запускаю невеликий сервер для нашої плоскої частки. Це здебільшого файловий сервер з деякими додатковими послугами. Клієнтами є машини Linux (в основному Ubuntu, але деякі інші Distros) і деякі Mac (-Book) між ними (але вони не важливі для питання). На сервері працює Ubuntu 11.10 (Oneiric Ocelot) 'Server Edition', система, з якої я роблю налаштування та тестування, виконує 11.10 'Desktop Edition'. Ми працюємо з акціями Samba (з яким ми більше знайомі) протягом досить тривалого часу, але потім переходимо до NFS (оскільки у нас немає користувачів Windows в локальній мережі та хочемо спробувати це), і поки що все працює добре .
Тепер я хочу налаштувати автоматичне монтування з автофайлами, щоб згладити речі (до цих пір всі монтують спільний доступ вручну за потреби). Автомонтаж, здається, теж працює. Проблема полягає в тому, що наш "сервер" не працює 24/7, щоб заощадити енергію (якщо комусь потрібні речі з сервера, він / він вмикає його і згодом відключає, тому він працює лише пару годин щодня). Але оскільки налаштування автозаписів клієнти зависають, виходять часто, коли сервер не працює.
Я можу запустити всіх клієнтів просто добре, навіть коли сервер не працює.
Але коли я хочу відобразити каталог (у терміналі або nautilus), який містить символічні посилання на спільний доступ,
/nfs
поки сервер не працює, він зависає щонайменше дві хвилини (оскільки автофайли не можуть підключитися до сервера, але зберігають намагаюся, я припускаю).- Чи є спосіб уникнути цього? Так що монтаж затягується до зміни в каталозі або до доступу до вмісту цього каталогу? Не під час "перегляду" посилання на акцію під
/nfs
? Я думаю, що ні, але, можливо, можна так довго не намагатися отримати доступ до нього? І просто дайте мені порожній каталог або "не можу знайти / підключитися до цього dir" або щось подібне.
- Чи є спосіб уникнути цього? Так що монтаж затягується до зміни в каталозі або до доступу до вмісту цього каталогу? Не під час "перегляду" посилання на акцію під
Коли сервер працює, все працює добре.
Але коли сервер вимикається, перш ніж вимкнути папку, інструменти (як-от
df
абоll
) зависають (якщо вважати, оскільки вони думають, що частка все ще входить, але сервер більше не реагуватиме).- Чи є спосіб вимкнути спільний доступ автоматично, коли з'єднання втрачається?
Також клієнти не зупинятимуться або перезавантажуватимуться, коли сервер не працює, і вони все ще змонтовані. Вони зависають (нескінченно, як здається) " вбиваючи процеси, що залишилися ", і, здається, нічого не відбувається.
Я думаю, що все зводиться до акуратних значень тайм-ауту для монтажу та демонтажу. І, можливо, видалити всі спільні папки, коли зникне з’єднання з сервером.
Отже, моє запитання: як впоратися з цим? І як бонус: чи є хороший спосіб встановити зв'язок всередині /nfs
без необхідності монтажу реальних ділянок (опція автофіксації чи, можливо, використання псевдо FS, на /nfs
яку заміняється, коли відбувається монтаж чи щось подібне)?
Моя настройка
Налаштування NFS є досить базовим, але нам добре служило досі (використовуючи NFSv4 ):
/ etc / default / nfs-common
NEED_STATD=
STATDOPTS=
NEED_IDMAPD=YES
NEED_GSSD=
/etc/idmapd.conf
[General]
Verbosity = 0
Pipefs-Directory = /var/lib/nfs/rpc_pipefs
Domain = localdomain
[Mapping]
Nobody-User = nobody
Nobody-Group = nogroup
/ тощо / експорт
/srv/ 192.168.0.0/24(rw,no_root_squash,no_subtree_check,crossmnt,fsid=0)
Під коренем експорту /srv
ми отримали два каталоги bind
:
/ etc / fstab (сервер)
...
/shared/shared/ /srv/shared/ none bind 0 0
/home/Upload/ /srv/upload/ none bind 0 0
Перший - здебільшого лише для читання (але я примушую це через атрибути файлу та права власності замість параметрів NFS), а другий - rw для всіх. Примітка: У них немає додаткових записів у / etc / export , проте їх монтаж окремо працює.
На стороні клієнта вони встановлюються /etc/fstab
та встановлюються вручну в міру необхідності ( morton
це ім'я сервера, і воно вирішує нормально).
/ etc / fstab (клієнт)
morton:/shared /nfs/shared nfs4 noauto,users,noatime,soft,intr,rsize=8192,wsize=8192 0 0
morton:/upload /nfs/upload nfs4 noauto,users,noatime,soft,intr,rsize=8192,wsize=8192 0 0
Для налаштування автофайлів я видалив записи з /etc/fstab
клієнтів, а решту налаштував так:
/etc/auto.master
/nfs /etc/auto.nfs
Спочатку я зв'язав доданий виконуваний файл /etc/auto.net
(ви можете подивитися тут ), але він автоматично нічого не зможе встановити. Тоді я пишу на /etc/auto.nfs
основі деяких HowTos, які я знайшов в Інтернеті:
/etc/auto.nfs
shared -fstype=nfs4 morton:/shared
upload -fstype=nfs4 morton:/upload
І це якось працює ... Або працювало б, якщо сервер працює 24/7. Таким чином, ми отримуємо зависання, коли клієнт завантажується без запуску сервера або коли сервер перебуває вниз, тоді як він ділиться там, де все ще підключений.
hard
іbg
спочатку звучить інтуїтивно зрозуміло для мене. Я хочу, щоб кріплення не повторювалося і повернулося негайно, якщо воно порушило?intr
здається нормальним, але також, здається, більше не працює: " Параметр кріплення intr / nointr застарілий після ядра 2.6.25. Тільки SIGKILL може перервати очікувані операції NFS на цих ядрах, і якщо зазначено, цей параметр монтажу ігнорується для забезпечення зворотної сумісності зі старими ядрами. "?