Поиск по сайту:

Настройка стандартных файловых систем Linux и настройка сервера NFSv4. Часть 2.


Сертифицированный инженер Linux Foundation (LFCE) обучен установке, настройке, управлению и устранению неполадок сетевых служб в системах Linux. Он отвечает за проектирование и реализацию системной архитектуры, а также решение повседневных проблем. проблемы.

Представляем программу сертификации Linux Foundation (LFCE).

В первой части этой серии мы объяснили, как установить сервер NFS (сетевая файловая система) и настроить автоматический запуск службы при загрузке. Если вы еще этого не сделали, прочтите эту статью и выполните описанные шаги, прежде чем продолжить.

  1. Установка сетевых служб и настройка автоматического запуска при загрузке – часть 1

Сейчас я покажу вам, как правильно настроить сервер NFSv4 (без аутентификации), чтобы вы могли настроить общие сетевые ресурсы для использования в клиентах Linux, как если бы эти файловые системы были установлены локально. Обратите внимание, что вы можете использовать LDAP или NIS для целей аутентификации, но оба варианта выходят за рамки сертификации LFCE.

Настройка сервера NFSv4

Как только сервер NFS будет запущен и заработает, мы сосредоточим наше внимание на:

  1. указание и настройка локальных каталогов, которыми мы хотим поделиться по сети, и
  2. автоматически монтируют эти сетевые ресурсы на клиентах либо через файл /etc/fstab, либо с помощью утилиты автоматического монтирования на основе ядра (autofs).

Позже мы объясним, когда следует выбирать тот или иной метод.

Прежде чем приступить к делу, нам необходимо убедиться, что демон idmapd запущен и настроен. Эта служба выполняет сопоставление имен NFSv4 (user@mydomain) с идентификаторами пользователей и групп и необходима для реализации сервера NFSv4.

Отредактируйте /etc/default/nfs-common, чтобы включить idmapd.

NEED_IDMAPD=YES

И отредактируйте /etc/idmapd.conf, указав имя своего локального домена (по умолчанию используется полное доменное имя хоста).

Domain = yourdomain.com

Затем запустите idmapd.

service nfs-common start 	[sysvinit / upstart based systems]
systemctl start nfs-common 	[systemd based systems]

Экспорт сетевых ресурсов

Файл /etc/exports содержит основные директивы конфигурации нашего NFS-сервера, определяет файловые системы, которые будут экспортироваться на удаленные хосты, и указывает доступные параметры. В этом файле каждый сетевой ресурс обозначается отдельной строкой, которая по умолчанию имеет следующую структуру:

/filesystem/to/export client1([options]) clientN([options])

Где /filesystem/to/export — абсолютный путь к экспортированной файловой системе, тогда как client1 (до clientN) представляет конкретного клиента (имя хоста или IP-адрес) или сеть. (допускаются подстановочные знаки), в который экспортируется доля. Наконец, options — это список значений (опций), разделенных запятыми, которые учитываются при экспорте доли соответственно. Обратите внимание, что между каждым именем хоста и скобками, которые ему предшествуют, нет пробелов.

Вот список наиболее частых опций и их соответствующее описание:

  1. ro (сокращение от «только для чтения»). Удаленные клиенты могут монтировать экспортированные файловые системы только с разрешениями на чтение.
  2. rw (сокращение от «чтение-запись»): позволяет удаленным хостам вносить изменения в экспортированные файловые системы при записи.
  3. wdelay (сокращение от «задержка записи»). Сервер NFS задерживает фиксацию изменений на диске, если подозревает, что другой соответствующий запрос на запись неизбежен. Однако если сервер NFS получает несколько небольших несвязанных запросов, этот параметр снизит производительность, поэтому для его отключения можно использовать параметр no_wdelay.
  4. синхронизация: сервер NFS отвечает на запросы только после того, как изменения были зафиксированы в постоянном хранилище (т. е. на жестком диске). Его противоположность, опция async, может повысить производительность, но за счет потери или повреждения данных после нечистого перезапуска сервера.
  5. root_squash: запрещает удаленным пользователям root иметь привилегии суперпользователя на сервере и назначает им идентификатор пользователя для пользователя none. Если вы хотите «сжать» всех пользователей (а не только root), вы можете использовать опцию all_squash.
  6. annuid/anongid: явно устанавливает UID и GID анонимной учетной записи (никто).
  7. subtree_check: если экспортируется только подкаталог файловой системы, этот параметр проверяет, находится ли запрошенный файл в этом экспортированном подкаталоге. С другой стороны, если экспортируется вся файловая система, отключение этой опции с помощью no_subtree_check ускорит передачу. В настоящее время по умолчанию используется опция no_subtree_check, поскольку проверка поддерева имеет тенденцию вызывать больше проблем, чем пользы, согласно экспорту man 5.
  8. fsid=0 | корень (ноль или корень): указывает, что указанная файловая система является корнем нескольких экспортируемых каталогов (применяется только в NFSv4).

В этой статье мы будем использовать каталоги /NFS-SHARE и /NFS-SHARE/mydir на 192.168.0.10 (сервер NFS) в качестве нашего тестовые файловые системы.

Мы всегда можем перечислить доступные сетевые ресурсы на сервере NFS, используя следующую команду:

showmount -e [IP or hostname]

В приведенном выше выводе мы видим, что общие ресурсы /NFS-SHARE и /NFS-SHARE/mydir на 192.168.0.10 были экспортированы. клиенту с IP-адресом 192.168.0.17.

Наша первоначальная конфигурация (см. каталог /etc/exports на вашем сервере NFS) для экспортируемого каталога следующая:

/NFS-SHARE  	192.168.0.17(fsid=0,no_subtree_check,rw,root_squash,sync,anonuid=1000,anongid=1000)
/NFS-SHARE/mydir    	192.168.0.17(ro,sync,no_subtree_check)

После редактирования файла конфигурации необходимо перезапустить службу NFS:

service nfs-kernel-server restart 		[sysvinit / upstart based system]
systemctl restart nfs-server			[systemd based systems]
Монтирование экспортированных сетевых ресурсов с помощью autofs

Вы можете обратиться к Части 5 серии LFCS («Как монтировать/размонтировать локальные и сетевые (Samba и NFS) файловые системы в Linux») для получения подробной информации о монтировании удаленных общих ресурсов NFS по требованию с помощью командой mount или навсегда через файл /etc/fstab.

Обратной стороной монтирования сетевой файловой системы с использованием этих методов является то, что система должна выделять необходимые ресурсы, чтобы общий ресурс оставался подключенным постоянно или, по крайней мере, до тех пор, пока мы не решим размонтировать их вручную. Альтернативой является автоматическое монтирование нужной файловой системы по требованию (без использования команды mount) с помощью autofs, который может монтировать файловые системы, когда они используются, и размонтировать их после период бездействия.

Autofs читает /etc/auto.master, который имеет следующий формат:

[mount point]	[map file]

Где [файл карты] используется для обозначения нескольких точек монтирования в пределах [точка монтирования].

Этот главный файл карты (/etc/auto.master) затем используется для определения определенных точек монтирования, а затем запускается процесс автоматического монтирования с указанными параметрами для каждой точки монтирования.

Монтирование экспортированных общих ресурсов NFS с помощью autofs

Отредактируйте свой /etc/auto.master следующим образом:

/media/nfs	/etc/auto.nfs-share	--timeout=60

и создайте файл карты с именем /etc/auto.nfs-share со следующим содержимым:

writeable_share  -fstype=nfs4 192.168.0.10:/
non_writeable_share  -fstype=nfs4 192.168.0.10:/mydir

Обратите внимание, что первое поле в /etc/auto.nfs-share — это имя подкаталога внутри /media/nfs. Каждый подкаталог создается динамически с помощью autofs.

Теперь перезапустите службу autofs:

service autofs restart 			[sysvinit / upstart based systems]
systemctl restart autofs 			[systemd based systems]

и, наконец, чтобы autofs запускался при загрузке, выполните следующую команду:

chkconfig --level 345 autofs on
systemctl enable autofs 			[systemd based systems]
Проверка смонтированных файловых систем после запуска демона autofs

Когда мы перезапускаем autofs, команда mount показывает нам, что файл карты (/etc/auto.nfs-share) смонтирован на указанном каталог в /etc/auto.master:

Обратите внимание, что на самом деле ни один каталог еще не был смонтирован, но он будет смонтирован автоматически, когда мы попытаемся получить доступ к общим ресурсам, указанным в /etc/auto.nfs-share:

Как мы видим, служба autofs, так сказать, «монтирует» файл карты, но ждет, пока не будет сделан запрос к файловым системам, чтобы фактически смонтировать их.

Выполнение тестов записи в экспортированных файловых системах.

Параметры annuid и anongid, а также параметр root_squash, установленный в первом общем ресурсе, позволяют нам сопоставлять запросы, выполняемые пользователем root, в клиент к локальной учетной записи на сервере.

Другими словами, когда root на клиенте создает файл в этом экспортированном каталоге, его право собственности будет автоматически сопоставлено с учетной записью пользователя с UID и GID=1000, при условии, что такая учетная запись существует на сервере:

Заключение

Я надеюсь, что вы смогли успешно настроить сервер NFS, подходящий для вашей среды, используя эту статью в качестве руководства. Вы также можете обратиться к соответствующим страницам руководства для получения дополнительной помощи (например, man Exports и man idmapd.conf).

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