Можно ли разместить домашнюю папку в NFS?


30

Я планирую развернуть несколько компьютеров с киосками и хотел бы оставить их с небольшим pendrive в качестве загрузочного диска, оставляя остальные на простом резервном сервере, а именно LTSP .

Прямо сейчас я обдумываю два варианта. NFSed / home / или локальная копия ~ /, скопированная при входе в систему, rsynced при выходе из системы.

Я опасаюсь, что работа с файлами может быть слишком медленной, или моя сеть может забиться .


Не могли бы вы заменить слово «безопасный» другим словом, которое менее связано с безопасностью? Может быть, осуществимо merriam-webster.com/dictionary/feasible ?
Кристиан Чиупиту

1
Небольшое чувство дежа вю. Это не совсем то же самое, но у них есть интересная тема. hardware.slashdot.org/story/09/06/23/1823201/…
voyager

Ответы:


30

Я использую NFS для своих домашних каталогов в нашей производственной среде. Есть несколько хитростей.

  1. Не подключайте NFS /home- таким образом, вы можете иметь локального пользователя, который позволит вам войти в случае, если сервер NFS выйдет из строя. Мы поднимаемся на/mnt/nfs/home

  2. Используйте мягкое монтирование и очень короткое время ожидания - это предотвратит блокирование процессов навсегда.

  3. Используйте автомонтер . Это снизит использование ресурсов, а также означает, что вам не нужно беспокоиться о перезапуске служб, когда сервер NFS запускается, если он по какой-то причине отключается.

    auto.master:
      +auto.master
      /mnt/nfs /etc/auto.home --timeout=300
    
    auto.home
       home -rw,soft,timeo=5,intr      home.bzzprod.lan:/home
    
  4. Используйте систему единого входа, чтобы не сталкиваться с проблемами, связанными с разрешениями. У меня есть сервер OpenLDAP.


Я всегда считал автомонтер ужасно ненадежным и склонным к блокировке, особенно если сервер NFS выходит из строя. Если вы монтируете в / mnt / nfs / home, это место, где вы устанавливаете дом пользователя в / etc / passwd?
pjc50

2
Что ж, использование / etc / passwd и NFS для монтирования домашних каталогов - плохая идея, так как вы должны синхронизировать UID и GID - используйте что-то вроде OpenLDAP, но да, домашний каталог пользователя установлен в / mnt / nfs / home / имя пользователя.
Аарон Браун

@AaronBrown Я согласен с тем, что если вы собираетесь разместить $ HOME в сети, вам также следует включить идентификацию пользователя и аутентификацию в сети. Независимо от того, как вы это делаете, $ HOME должен быть где-то определен, и вы указали, что предпочитаете его установить, /mnt/nfs/homeно как тогда вы используете свой локальный /homeресурс во время простоя? В частности, см. Unix.stackexchange.com/questions/189404/…
JFlo

8

http://www.howtoforge.com недавно опубликовал статью об использовании GlusterFS в качестве замены / альтернативы NFS, вы можете проверить это.

http://www.howtoforge.com/creating-an-nfs-like-standalone-storage-server-with-glusterfs-on-debian-lenny

Вот краткое описание того, почему это хорошая «выполнимая» альтернатива NFS, со страницы проекта GlusterFS http://www.gluster.org/ :

«GlusterFS самовосстанавливается на лету. Fsck отсутствует. Бэкэнд хранилища доступен напрямую как обычные файлы и папки (стиль NFS). При включенной репликации GlusterFS может противостоять аппаратным сбоям».

Более подробную информацию можно найти в проектной документации.

Кроме того, еще одна приятная вещь об использовании GlusterFS - если вам нужно больше места в вашей SAN, вы просто добавляете еще один блок хранения (серверный узел) и можете параллельно масштабировать / увеличивать объем хранилища, когда это необходимо.

Надеюсь, что это помогает или, по крайней мере, помогает направить вас в правильном направлении!


7

Будьте осторожны с мягкими креплениями! Мягкое монтирование файловой системы NFS означает, что IO не выполнится после истечения времени ожидания. Будьте уверены, что именно этого вы хотите в домашних каталогах пользователей! Я предполагаю, что ты не. Использование жесткого монтирования в домашних каталогах в сочетании с опцией intr здесь намного безопаснее.

Жесткий не будет тайм-аут: операции ввода-вывода будут повторяться бесконечно. Опция intr позволяет прервать процесс монтажа. Поэтому, если вы смонтируете экспорт и столкнетесь с ошибкой, аппаратное монтирование заблокирует ваш сеанс. Опция intr позволит прервать монтирование, поэтому комбинация довольно безопасна и гарантирует, что вы не потеряете данные пользователя.

В любом случае, autofs делает все это еще проще.


1
обратите внимание, что intrопция монтирования устарела в linux после ядра 2.6.2, см., например, access.redhat.com/solutions/157873
myrdd,

4

Единственное, что следует отметить, это то, что когда сервер NFS отключен - ваши монтирования будут зависать - мягкое монтирование не будет блокироваться, поэтому можно избежать самого «зависания», однако это не решит проблему домашних каталогов, как без домашнего каталог, пользователь все равно прикручен.

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

#. Home Directories
/usr/users \
  192.168.16.0/22(rw,sync,no_root_squash,fsid=1) \
  192.168.80.0/22(rw,sync,no_root_squash,fsid=1)

#. Scratch Space
/var/ftp/scratch \
  192.168.16.0/22(rw,async,no_root_squash,fsid=3) \
  192.168.80.0/22(rw,async,no_root_squash,fsid=3) \
  172.28.24.151(rw,async,root_squash,fsid=3)

На exports(5)странице руководства говорится ...

fsid=num
          This option forces the filesystem identification portion of the file handle
          and  file attributes used on the wire to be num instead of a number derived
          from the major and minor number of the block device on which the filesystem
          is  mounted.   Any 32 bit number can be used, but it must be unique amongst
          all the exported filesystems.

          This can be useful for NFS failover, to ensure that  both  servers  of  the
          failover  pair use the same NFS file handles for the shared filesystem thus
          avoiding stale file handles after failover.

... Хотя это указывает на то, что до тех пор, пока основные / второстепенные числа не меняются (чего они обычно не делают, за исключением случаев, когда вы экспортируете тома SAN / многолучевого распространения, где они могут меняться), я обнаружил, что мы Я полностью устранил проблему - то есть, если сервер NFS возвращается - соединение было восстановлено быстро - я все еще действительно не знаю, почему это имело значение для устройств, таких как, /dev/sdaXнапример.

Теперь я должен указать на то, что мой аргумент в значительной степени анекдотичен - на самом деле не имеет смысла, почему он исправил проблему, но «кажется» решил - почему-то - здесь, вероятно, есть другие переменные, которые я еще не обнаружен. знак равно


Вы уверены, что этот «случайный» fsid используется сервером?
Кристиан Чиупиту

Привет, Кристиан - я пытался объяснить выше - но я не могу полностью объяснить поведение по отношению к описанию флага на странице руководства. Вы пробовали это и видели иначе?
Ксеркс

4

Несколько общих советов, которые будут применяться независимо от того, какую сетевую файловую систему вы используете: многие программы кэшируют данные в домашнем каталоге пользователя, что обычно приносит больше вреда, чем пользы, когда к домашнему каталогу обращаются по сети.

В наши дни вы можете сказать многим программам хранить свои кэши в другом месте (например, на локальном диске), установив XDG_CACHE_HOMEпеременную среды в сценарии входа в систему. Многие программы (например, Firefox) по-прежнему требуют ручной настройки, поэтому вам, вероятно, придется проделать дополнительную работу, чтобы идентифицировать и настроить их единообразно для всех ваших пользователей.


+1 У меня были проблемы с производительностью домашних каталогов Google Chrome и NFS. исправили это, переместив рабочие каталоги Chrome обратно в локальную систему, а затем поместив символическую ссылку из домашнего каталога NFS (где Chrome ожидает найти каталоги), обратно в локальный каталог. Возможно, есть лучший способ сделать то, что я сделал, но это решило проблему для меня.
Брайан

Брайан (9 марта) оставил хороший частичный ответ, однако я хочу подробнее остановиться на этом вопросе. Пожалуйста ... Спасибо. Как вы переместили рабочие каталоги на локальный компьютер и разместили символические ссылки.
Джейсон

Также XDG_RUNTIME_DIRознакомьтесь с описанным расположением базы данных Dconf по адресу: developer.gnome.org/dconf/unstable/dconf-overview.html
JKnight

3

Во многих местах, где я работал, используются смонтированные NFS домашние каталоги. Как правило, нет большой разницы в производительности (и пользователи киосков, вероятно, немного менее требовательны, чем разработчики, которые знают, как достать своего местного ИТ-специалиста). Одна проблема, с которой я столкнулся, это то, что происходит, когда я захожу на рабочий стол Gnome и NFS-сервер отключается по тем или иным причинам. Вещи становятся действительно безразличными.


2

Я использую NFSed дома, и он отлично работает. но вы должны убедиться, что сеть достаточно быстра и никогда не будет отключена.


2

На практике NFS хорошо работает для домашнего каталога, если есть коммутируемая сеть 100 Мбит или лучше. Для более чем 10-20 киосков сервер должен иметь гигабитное соединение. Вы не будете выигрывать конкурсы производительности, но такие вещи, как Firefox и Open Office будут работать нормально.

Копирование в домашний каталог будет основной проблемой с точки зрения задержек при входе в систему (в сети с пропускной способностью 100 Мбит / с, максимальная скорость которой составляет 12 МБ / с. Домашний каталог со скоростью 100 МБ близок к 10 секундам.) Rsync ускорит синхронизацию кэша веб-браузера ... 10 минут и 500 файлов болят.


1

Посмотрите на cachefilesd . Я не использовал это сам, но это выглядит многообещающим.

Демон cachefilesd управляет файлами и каталогами кэширования, которые используются сетевыми файловыми системами, такими как AFS и NFS, для постоянного кэширования на локальный диск.

Кроме того, не забудьте настроить параметры rsize и wsize и по возможности использовать Jumbo-кадры.


Я пробовал cachefilesd в течение нескольких лет, но сдался из-за всей нестабильности, которую он принес. YMMV
JFlo
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.