Настройка NFS сервера и его клиентов на базе CentOS

NFS очень полезная штука, в тех случаях, когда у нас есть несколько серверов, и нужно организовать совместный доступ к конкретному хранилищу с каждого из них.
NFS позволяет делать доступными папки и файлы по сети для других серверов.

Итак рассмотрю следующий пример:
Имеется несколько 2 сервера:
web01, ip: 10.0.0.10
web02, ip: 10.0.0.20
На нах находится 2 сайта. Один сайт сделан на WordPress, второй - Joomla.
Мне нужно, что следующий папки были одинаковы на обоих серверах и содержали одинаковый контент:

  • /var/www/html/wordpress-site.com/wp-content/uploads
  • /var/www/html/joomla-site.com/cache
  • /var/www/html/joomla-site.com/media

Я буду настраивать шаринг этих папок с web01 на web02.

Итак приступаем. Подключаемся на web01 и ставим нужные пакеты:

yum install nfs-utils nfs-utils-lib

Ставим nfs на автозагрузку и запускаем:

chkconfig nfs on  
/etc/init.d/nfs start

Запустите rpcbind если при этом получаете вот такую ошибку:

Starting NFS daemon: rpc.nfsd: writing fd to kernel failed: errno 111 (Connection refused)

Еще лучше поставить его на автозагрузку:

chkconfig rpcbind on  
/etc/init.d/rpcbind start

Открываем любимым редактором файл /etc/exports и вставляем в него следующие строки:

/var/www/html/wp-site.com/wp-content/uploads  	10.0.0.20(rw,sync,no_root_squash,no_subtree_check)
/var/www/html/joomla-site.com/cache           	10.0.0.20(rw,sync,no_root_squash,no_subtree_check)
/var/www/html/joomla-site.com/media           	10.0.0.20(rw,sync,no_root_squash,no_subtree_check)

Пример для подсети:

/var/www 10.10.0.0/16(rw,sync,no_root_squash,no_subtree_check)

Не буду вдаваться в подробности на счет опций. Вся информация доступна здесь

Сохраняем файл и закрываем. Для применения изменений делаем выполняем:

exportfs -a

Переходим на второй сервер web02 и ставим нужные пакеты:

yum install nfs-utils nfs-utils-lib

Ставим nfs на автозагрузку и запускаем:

chkconfig nfs on  
/etc/init.d/nfs start

Дальше нужно подредактировать файл fstab для того что бы наши папки монтировались при старте сервера.
Открываем любимым редактором файл /etc/fstab

10.0.0.10:/var/www/html/wp-site.com/wp-content  /var/www/html/wp-site.com/wp-content   nfs      rw,sync,hard,intr  0     0
10.0.0.10:/var/www/html/joomla-site.com/cache   /var/www/html/joomla-site.com/cache    nfs      rw,sync,hard,intr  0     0
10.0.0.10:/var/www/html/joomla-site.com/media   /var/www/html/joomla-site.com/media    nfs      rw,sync,hard,intr  0     0

Сохраняем. Закрываем. Выполняем:

mount -a

Если папки уже существуют - ничего страшного. Их можно переименовать на всякий случай или очистить. Можно ничего с ними не делать - новые папки будут смонтированы поверх старых.

Для проверки можно на сервере web01 создать тестовые файлы в папках и посмотреть появились ли они на web02.