Для чего мне это нужно, в моем распоряжении довольно значительный парк серверов с операционной системой Ubuntu и чтобы все файлы/каталоги были под рукой и является основой написания заметки, как настроить сетевую файловую систему (NFS – Network File System). Чтобы пользоваться данной сетевой файловой системой на компьютерах должен быть установлен NFS-клиент. В данной заметке я покажу, как настроить серверную часть. И так поехали:
Информация по текущей системе на которой будет производить настройку:
ekzorchik@ekv:~$ uname -a && lsb_release -a
Linux ekv 2.6.35-22-generic #33-Ubuntu SMP Sun Sep 19 20:34:50 UTC 2010 i686 GNU/Linux
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 10.10
Release: 10.10
Codename: maverick
Текущий IP адрес нашего сервера:
ekzorchik@vekz:~$ ifconfig eth0 | grep -E “inet addr”
inet addr:192.168.1.35 Bcast:192.168.1.255 Mask:255.255.255.0
Устанавливаем необходимые приложения через репозитарии:
ekzorchik@vekz:~$ apt-cache search nfs-kernel-server
nfs-kernel-server – поддержка для сервера NFS на уровне ядра
ekzorchik@vekz:~$ apt-cache search nfs-common
nfs-common – общие для клиента и сервера файлы поддержки NFS
ekzorchik@vekz:~$ apt-cache search portmap
remotetea – Sun ONC/RPC support for Java
rpcbind – converts RPC program numbers into universal addresses
portmap – механизм отображения портов для удалённого вызова процедур (RPC)
ekzorchik@ekv:~$ sudo apt-get install nfs-kernel-server nfs-common portmap
[sudo] password for ekzorchik:
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Будут установлены следующие дополнительные пакеты:
libgssglue1 libnfsidmap2 librpcsecgss3
НОВЫЕ пакеты, которые будут установлены:
libgssglue1 libnfsidmap2 librpcsecgss3 nfs-common nfs-kernel-server portmap
обновлено 0, установлено 6 новых пакетов, для удаления отмечено 0 пакетов, и 384 пакетов не обновлено.
Необходимо скачать 514kБ архивов.
После данной операции, объём занятого дискового пространства возрастёт на 1 589kB.
Хотите продолжить [Д/н]? y
добавляется системный пользователь `statd’ (UID 115) …
Добавляется новый пользователь `statd’ (UID 115) в группу `nogroup’ …
Не создаётся домашний каталог `/var/lib/nfs’.
statd start/running, process 2369
gssd stop/pre-start, process 2392
idmapd stop/pre-start, process 2418
Настраивается пакет nfs-kernel-server (1:1.2.2-1ubuntu1.2) …
Creating config file /etc/exports with new version
Creating config file /etc/default/nfs-kernel-server with new version
* Exporting directories for NFS kernel daemon… [ OK ]
* Starting NFS kernel daemon [ OK ]
Обрабатываются триггеры для libc-bin …
ldconfig deferred processing now taking place
Т.к. Установка прошла успешно, займёмся настройкой. Для начала создадим директорию которая будет видна всем: (можно расположить на выделенном диске подключённом к системе резервного копирования)
ekzorchik@vekz:~$ sudo mkdir /nfs
Все настройки хранятся в файле – /etc/exports:
ekzorchik@vekz:~$ sudo nano /etc/exports
Поясню, как надо его правильно заполнять, сперва указываем директорию которая будет видна всем, дальше нажимаем клавишу “Tab” и указываем маску и подсеть.
/nfs 192.168.1.0/24(rw,no_root_squash,async)
Чтобы расчитать маску и подсеть, воспользуемся утилитой рассматриваемой ранее в заметках на блоге (www.ekzorchik.ru):
ekzorchik@vekz:~$ sudo apt-get install ipcalc
ekzorchik@vekz:~$ ipcalc -c 192.168.1.35 | grep -E “Network:”
Network: 192.168.1.0/24 11000000.10101000.00000001. 00000000 – маску получили для текущего IP адреса установленного для этой системы.
, что означает выставленные мною параметры в круглых скобках:
rw: – разрешает не только чтение файлов, но и запись. По умолчанию работает только для чтения.
no_root_squash: – позволяет пользователю root иметь доступ к примонтированному тому NFS.
async:– Асинхронная обработка всех запросов на запись (отложенная запись); при наличии этой опции повышается производительность операций записи, равно как повышается вероятность потери данных в случае краха сервера
Перезагружаем NFS сервер чтобы изменения вступили в силу:
ekzorchik@vekz:~$ sudo /etc/init.d/nfs-kernel-server restart
* Stopping NFS kernel daemon [ OK ]
* Unexporting directories for NFS kernel daemon... [ OK ]
* Exporting directories for NFS kernel daemon... exportfs: /etc/exports [1]: Neither 'subtree_check' or 'no_subtree_check' specified for export "192.168.1.0/24:/nfs".
Assuming default behaviour ('no_subtree_check').
NOTE: this default has changed since nfs-utils version 1.0.x
[ OK ]
* Starting NFS kernel daemon [ OK ]
можно также использовать команду:
ekzorchik@vekz:~$ sudo exportfs -a
exportfs: /etc/exports [1]: Neither 'subtree_check' or 'no_subtree_check' specified for export "192.168.1.0/24:/nfs".
Assuming default behaviour ('no_subtree_check').
NOTE: this default has changed since nfs-utils version 1.0.x
Вот собственно и всё, nfs-том установлен на сервере. Как ведите ничего сложного нет.