Установка и настройка NFS-сервера и NFS-клиента на Centos
1.Установка NFS
Проверка, установлен ли nfs уже в системе
[root@guk5 ~]# chkconfig —list nfs
nfs 0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
Аналогично проверяем службу portmap
[root@kit ~]# chkconfig —list portmap
portmap 0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
Если нет, то устанавливаем ,добавляем в автозагрузку, запускаем
yum -y install nfs-utils portmap
chkconfig —level 2345 portmap on
chkconfig —level 2345 nfs on
/etc/init.d/portmap start
/etc/init.d/nfs start
В своей работе NFS использует RPC-вызовы а значит работоспособность службы можно проверить с помощью portmapper (/etc/init.d/portmap) (он тоже должен быть запущен на сервере где выполняются программы использующие RPC Calls).
[root@guk5 ~]# rpcinfo -p localhost | grep nfs
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
Как видим на моем сервере обслуживаются NFS-запросы всех версий NFS (4-ая — последняя на данный момент).
2.Настройка NFS-сервера
Файл конфигурации /etc/exports содержит список файловых систем которые мы экспортируем, то есть разрешаем монтировать по протоколу NFS на удаленных системах.
Каждая строка в файле это указание на экспортируемую ФС и режим доступа к ней, шаблон следующий:
[файловая система] [кому разрешено получать доступ] [опциональные ключи]
[root@kit ~]# cat /etc/exports
/home 192.168.1.16(rw,no_root_squash)
Здесь мы разрешаем монтировать /home на сервере 192.168.1.16 в режиме rw
После изменения в /etc/exports обязательно перечитываем, чтобы изменения вступили в силу
exportfs –r
Проверка списка экспортируемых файловых систем
[root@guk5 ~]# exportfs
/home 192.168.1.17
3.Настройка
NFS-
клиента
На стороне клиента так же должна быть поддержка NFS в ядре. В случае с CentOS 5 и выше и стандартным ядром такая поддержка имеется.
создаем точку монтировании
mkdir /mnt/nfs
Ручное монтирование
mount
-
t
nfs
192.168.1.16:/
home
/
mnt
/
nfs
Монтируем с помощью команды mount. Ключем -t задаем тип монтируемой ФС, далее : <точка монтирования в локальной системе>
Используя опцию -o можно указать дополнительные ключи монтирования. По умолчанию монтирование происходит в режиме rw.
Проверяем наличие файлов в /
mnt
/
nfs
ls
–
al
/
mnt
/
nfs
Для автоматического монтирования на клиенте добавляем в /
etc
/
fstab
192.168.1.16:/home /mnt/nfs nfs defaults 0 0
Источники
:
1.http://gnu.su/e107_plugins/forum/forum_viewtopic.php?137.0#post_535
2.http://metalcandy.ru/how-to-forge-centos/286-setting-up-an-nfs-server-and-client-on-c
3.http://www.denni.org/blog/2012/bystraya-nastrojka-nfs-servera-i-klienta-v-centos-/
5.http://berghowto.info/django-blog/2011/05/18/ustanovka-i-nastrojka-nfs-v-linux-centos/
Дополнительная информация
Опции конфигурационного файла
Самые часто используемые опции я описал ниже.
ro — Только чтение;
rw Чтение и запись;
root_squash Не разрешает пользователю root получать root-привилегии в удаленной файловой системе, все действия будут сделаны от лица пользователя nobody;
no_root_squash Пользователь root в локальной системе получает такие же права в удаленной. Стоит использовать эту опцию только в случае острой необходимости. Используется для бездисковых клиентов;
all_squash Все запросы происходят от анонимного пользователя, что способствует повышению безопасности. Актуально для публичных разделов;
anonuid/anongid Позволяет задать UID и GID пользователя от лица которого будут выполняться все запросы;
sync Синхронный режим работы, ответы на запросы происходят только после того, как данные будут надежно записаны на диск. Надежность выше, производительность меньше;
async Асинхронный режим работы, ответы на запросы происходят сразу, не дожидаясь записи на диск. Надежность ниже, производительность выше;
insecure Разрешать запросы с портов более чем 1024;
no_subtree_check Если экспортируется подкаталог файловой системы, но не вся файловая система, сервер, проверяет, находится ли запрошенный файл в экспортированном подкаталоге. Эта проверка называется проверкой подкаталога. Отключение проверки уменьшает безопасность, но увеличивает скорость передачи данных.
Указать каким хостам разрешено монтировать наши разделы можно несколькими способами:
1. Указать hostname или просто IP-адрес;
2. Указать “*”, что означает разрешено всем. Если указать *.gnu.su то будет разрешено test.gnu.su но запрещено aandreika.test.gnu.su . Чтобы этого избежать нужно написать *.*.gnu.su;
3. В нужных местах использовать “?”, что заменяет любой символ (не применимо к IP-адресам);
4. Использовать маски подсетей, например 192.168.146.32/27;
5. Использовать NIS-группы, например @nisgroup2.
Дополнительная информация
Описанного выше должно хватить сполна, но если хочется больше то:
# man nfs
# man exports
# man exportfs
Не путайте exports и exportfs.
exports – это конфигурационный файл, exportfs — программа для работы с ним.