Настройка на FreeBSD NFS сервера

Опубликовано:

NFS — Network File System

Задача.

Сбалансировать нагрузку на 2 www+база данных сервера и заставить их использовать одно хранилище www-контента, базы данных и логов.

Вариант решения.

Резолв DNS имени www-сервера на 2 разных ip-адреса используемые www-серверами, и организация для них общего хранилища www-контента, базы данных и логов при помощи NFS

Настройка NFS-сервера

— Ядро должно быть собрано с опцией

options NFSSERVER # Network Filesystem Server

— Необходимо создать файл экспорта, в котором описываются локальные точки системы, доступные для монтирования клиентами, файл /etc/exports
— Формат файла:
/mnt/disk1/www /mnt/disk2/mysql /mnt/disk3/logs -maproot=0 192.168.0.10 192.168.0.11

Если требуется экспортировать более 3-х точек, например — 4, следует описывать их в другой строке файла. Иными словами, в одной строке должно быть не более 3х точек экспорта

Права доступа на точки экспорта в нашем случае описаны следующим образом:
— maproot=user
Права данного пользователя используются для удаленного подключения как root. Права включают все группы в которые входит пользователь на локальной машине. Может быть представлен по имени или uid (как в нашем примере).

192.168.0.10 192.168.0.11 — хосты которым разрешено монтирование.
Подробнее по синтаксису можно прочесть в man 5 exports

запуск сервера осуществляется последовательностью команд
/usr/sbin/rpcbind -l -h 192.168.0.1
/usr/sbin/mountd -r
/usr/sbin/nfsd -h 192.168.0.1 -t -n 8

Описание параметров
rpcbind
— l — Turn on libwrap connection logging
— h — биндинг адреса для UDP requests (если не указать — будет слушать на всех доступных)
mountd
— r — Allow mount RPCs requests for regular files to be served
nfsd
— h — биндинг адреса
— t — параметр, указывающий обслуживать только TCP-клиентов (если требуется работать по протоколу UDP, следует указать параметр -u)
— n — количество создаваемых серверов

Настройка WWW-серверов (NFS клиентов)

— Ядро должно быть собрано с опцией
options NFSCLIENT # Network Filesystem Client

Монтирование осуществляется командами вида
/sbin/mount_nfs -3 -T 192.168.0.1:/mnt/disk1/www /usr/local/www
/sbin/mount_nfs -3 -T 192.168.0.1:/mnt/disk2/mysqk /var/db/mysql
/sbin/mount_nfs -3 -T 192.168.0.1:/mnt/disk3/logs /var/log/httpd

Описание параметров
— 3 — использовать только версию 3 протокола NFS
— T — использовать TCP в качестве траспортного протокола (-U — udp по умолчанию)
192.168.0.1 — адрес nfs-сервера
/mnt/disk1/www — директория на сервере (описываются в /etc/exports на сервере)
/usr/local/www — локальная директория для монтирования на клиенте

Примечания
Для клиентов доступен демон nfsiod, который регулирует максимальное количество запускаемых клиентов (max — 20)
Для просмотра подробной статистики на сервере и клиентах можно использовать утилиту nfsstat.
Монтирование производится поверх локальных ресурсов (т.е. если примонтировать в директорию с данными, локальные данные не будут доступны до размонтирования).

Понравилась статья, расскажи о ней друзьям, нажми кнопку!