Страница 1 из 1

NFS - общая файловая система

Добавлено: 28 июл 2016, 13:59
RomA
Введение:
И наступили времена тяжелые, и не стало места на серверах... И было решено поскрести по сусекам.

Задача:
В связи с нехваткой места на сервере, где крутится с десяток серверов FreeBSD и низкой скоростью интернета сделать так, что бы дерево портов было и обновлялось на одном сервере, а остальные этим только пользовались.

Решение:
Для предоставления доступа другим серверам было решено использовать NFS, как наиболее нативную для оси.

Настройки клиента совершенно просты - надо в файл /etc/fstab добавить следующее:

Код: Выделить всё

192.168.6.5:/usr/ports /usr/ports nfs rw,-b,tcp,soft,intr 0 0
Где:
192.168.6.5 - ИП сервера, на котором расшарен каталог
/usr/ports - пусть до расшаренного каталога на сервере
/usr/ports - локальная точка монтирования удаленного каталога
ну а дальше уже по вкусу :-)
Важную функцию тут играет ключик -b - он говорит о том, что если в момент запуска сервера сетевая файловая система будет не доступна, то загрузка продолжентся, а данное задание уйдет в фон. В противном случае у вас не загрузится весь сервер.

Так же в файле /etc/rc.conf надо обьявить о запуске NFS клинта:

Код: Выделить всё

nfs_client_enable="YES"
Этих настроек клиенту будет достаточно, что бы при загрузке сервера подключить шару и успешно с ней работать. Для подключения нужно или перегрузиться или перемонтировать

Код: Выделить всё

mount -a
Теперь настроим сервер
Для начала поймем что и кому мы собираемся экспортировать, а так же с какими правами. Я собираюсь экспортировать всё дерево портов, а что бы еще и все скаченные дистрибутивы лежали в одном месте - права должны быть на запись, в том числе. Создадим файл /etc/exports и впишем в него путь до нашей папки

Код: Выделить всё

/usr/ports -alldirs -maproot=root 192.168.6.6 192.168.6.7 192.168.6.10
То есть рут другой машины сможет писать в этот каталог, ну а подключаться смогут только вот эти ИП адреса.
Теперь в файл /etc/rc.conf впишем параметры запуска сервера

Код: Выделить всё

nfs_server_enable="YES"
portmap_enable="YES"
nfs_server_flags="-u -t -n 5"
mountd_enable="YES"
mountd_flags="-r"
rpc_lockd_enable="YES"
rpc_statd_enable="YES"
Две последнии строки не нужны, если вы собираетесь экспортировать только для чтения - он нужен для работы некоторых программ, в том числе и для пересборки портов, в противном случае ваш сервер просто будет перегружаться.

запускаем сервер

Код: Выделить всё

/etc/rc.d/mountd start
Литература:
http://www.freebsd.org/cgi/man.cgi?quer ... ease-ports