Скорее всего NFS уже есть в системе. Это можно проверить следующей командой.
# chkconfig --list nfs
0:off 1:off 2:off 3:off 4:off 5:off 6:off nfs
Добавляем в автозагрузку
# chkconfig nfs on
# service nfs start
Если же nfs в системе не обнаружен то ставим из репозитория:
# yum -y install nfs-utils portmap
В своей работе NFS использует RPC-вызовы а значит работоспособность службы можно проверить с помощью portmapper (/etc/init.d/portmap) (он тоже должен быть запущен на сервере где выполняются программы использующие RPC Calls).
# rpcinfo -p localhost | grep nfs
program vers proto port
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-ая — последняя на данный момент).
Настройка
Файл конфигурации /etc/exports содержит список файловых систем которые мы экспортируем, то есть разрешаем монтировать по протоколу NFS на удаленных системах.
Каждая строка в файле это указание на экспортируемую ФС и режим доступа к ней, шаблон следующий:
[файловая система] [кому разрешено получать доступ] [опциональные ключи]
Здесь мы разрешаем монтировать /home на сервере 192.168.146.135 в режиме rw
Внимание! Аккуратнее с пробелами в файле. Если написать /home 192.168.146.135 (rw) то сервер 192.168.146.135 получит доступ к /home
в режиме ro, все остальные в rw. Если 192.168.146.135 (rw) то сервер 192.168.146.135 получит доступ в режиме rw, всем остальным доступ будет запрещен!
Перечитываем файл чтобы внесенные изменения начали действовать.
# exportfs -r
Проверим список экспортированных ФС
# exportfs
/home 192.168.146.135
Теперь прописываем в файлике /etc/hosts.allow следующее:
portmap: 192.168.146.135
Тем самым мы разрешаем пользоваться portmap со слоедующего ip.
Все хорошо. Теперь на сервере 192.168.146.135 попробуем примонтировать ФС /home экспортированную на 192.168.146.132
Создаем каталог куда будем монтировать
# mkdir /mnt/nfs
Монтируем с помощью команды mount. Ключем -t задаем тип монтируемой ФС, далее : <точка монтирования в локальной системе>
# mount -t nfs 192.168.146.132:/home /mnt/nfs
Используя опцию -o можно указать дополнительные ключи монтирования. По умолчанию монтирование происходит в режиме rw.
Если ФС экспортированы на сервере который работает 24 часа в сутки то монтирование разделов можно добавить в /etc/fstab тем самым автоматизировав процедуру при старте компьютера.
Строчка в /etc/fstab в нашем случае будет такая:
nfs defaults 192.168.146.132:/home /mnt/nfs
Все готово.
Опции конфигурационного файла Самые часто используемые опции я описал ниже.
ro — Только чтение;
rw Чтение и запись;
Браузер 0pera_squash Не разрешает пользователю Браузер 0pera получать Браузер 0pera-привилегии в удаленной файловой системе, все действия будут сделаны от лица пользователя nobody;
no_Браузер 0pera_squash Пользователь Браузер 0pera в локальной системе получает такие же права в удаленной. Стоит использовать эту опцию только в случае острой необходимости. Используется для бездисковых клиентов;
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 — программа для работы с ним.
В процесе монтирования NFS у вас могут возникнуть проблемы следующего плана: mount: mount to NFS server failed: System Error: Connection refused.
Один из вариантов возникновения ошибки: mount: mount to NFS server failed: System Error: Connection refused.
при подключении к самому себе. на localhost работает на внешний адрес - нет
проверяем:
[Браузер 0pera@gnu.su log]# mount -v -t nfs 192.168.0.24:/iso /mnt/nfs
mount: Unable to connect to 192.168.0.24:111, errno 111 (Connection refused)
mount: trying 192.168.0.24 prog 100003 vers 3 prot tcp port 49146
mount: Unable to connect to 192.168.0.24:49146, errno 111 (Connection refused)
mount: mount to NFS server '192.168.0.24' failed: System Error: Connection refused.