NFS4

Заметил, что многие монтируют удаленные папки через nfs, стандартные утилиты, по умолчанию, используют старую 3 версию.

Тем не менее давно уже вышла 4ая, и судя по ее описанию — более быстрая, и более стабильная. Что же.. давайте попробуем =)


1. Настройка сервера:

ставим:

SAM@main-server:~$ sudo aptitude install nfs-kernel-server

Далее, создаем папку, которую хотим «расшарить»(ну или не создаем, если такая уже есть):

---
SAM@main-server:~$ sudo mkdir /mnt/nfs-share
---

правим файл /etc/exports, где добавляем строку, примерно такого содержания:

/mnt/nfs-share xx.xx.xx.xx(rw,async,no_root_squash,no_all_squash,no_subtree_check,fsid=0)

где /mnt/nfs-share — путь к папке, что «расшариваем»,  xx.xx.xx.xx — ип адрес, с которого будет доступ(может быть и сеть и вообще все, если не указывать ничего), и, параметры — rw,async,no_root_squash,no_all_squash,no_subtree_check,fsid=0

Описывать все параметры не буду, их очень много, опишу только текущие: rw — разрешено чтение/запись; async  — асинхронная работа, работает быстрее, хотя и менее надежно; no_root_squash — позволяет пользователю на стороне клиента получить полный доступ к файлам; no_subtree_check — отключает доп проверку на наличие прав, если фал находится в подкаталогах; no_all_squash — не отображать пользовательские uid/gid в анонимные; для NFS4 fsid=0 обозначает корень экспортируемых систем(не будем вникать в это).

Более подробно и более обширно можно увидеть тут:

http://www.bog.pp.ru/work/NFS.html

Для настройки сохранения прав, нужно настроить маппинг прав, для этого приводим файл /etc/idmapd.conf  к следующему виду:

[General]

Verbosity = 1
Pipefs-Directory = /var/lib/nfs/rpc_pipefs
Domain = hostname_server

[Mapping]

Nobody-User = nobody
Nobody-Group = nogroup

[Translation]
Method = nsswitch

Где в строке Domain ставим имя сервера.

Перезапускаем:

sudo /etc/init.d/nfs-common restart

sudo /etc/init.d/nfs-kernel-server restart

В дальнейшем, для создания новых «расшар» перезапускать демоны не обязательно, достаточно выполнить команду:

sudo exportfs -a


2. Настройка клиента:

Ставим доп пакет aptitude install nfs-common

Добавляем строку в /etc/fstab

yy.yy.yy.yy:/ /mnt/nsf_cli nfs4 soft,intr,rsize=8192,wsize=8192,rw,noatime,nodiratime 0 0

Правим /etc/idmapd.conf:

[General]

Verbosity = 1
Pipefs-Directory = /var/lib/nfs/rpc_pipefs
Domain = hostname_server

[Mapping]

Nobody-User = nobody
Nobody-Group = nogroup

[Translation]
Method = nsswitch

где опять же ставим имя сервера в строке Domain.

Перезапускаем:

sudo /etc/init.d/nfs-common restart

Создаем папку и монтируем

sudo mkdir /mnt/nsf_cli

sudo mount /mnt/nsf_cli

Пользуемся =)