Инструкция с примерами как настроить NFS сервер и клиента.
NFS — Network File System, то есть Сетевая Файловая Система.
Клиент сервера будет иметь доступ на чтение, запись через сетевую папку, размещенную на NFS сервере.
Пример настройки NFS сервера на дистрибутиве Linux Debian 6 Wheezy
Первоначальные данные
Используется 2 сервера на дистрибутиве Linux Debian 6 Wheezy, где
- NFS Server: server.example.com, IP адрес: 192.168.1.10
- NFS Client: client.example.com, IP адрес: 192.168.1.11
Установка NFS
1 2 |
# Сервер apt-get install nfs-kernel-server nfs-common |
1 2 |
# Клиент apt-get install nfs-common |
После установки нам потребуется настроить директории на сервере, куда мы хотим предоставить доступ клиенту.
Настройка директорий на сервере
Предоставим доступ клиенту к 2 каталогам: /home/client1 и /var/www
Для этого выполним на сервере следующие действия
1 2 3 4 5 6 7 8 |
mkdir /home/client1 chown nobody:nogroup /home/client1 chmod 755 /home/client1 # Обычно каталог /var/www уже создан, если его нет создаём mkdir /var/www chown root:root /var/www chmod 755 /var/www |
Теперь нужно экспортировать созданные шары, для этого настраиваем файл /etc/exports почитать о формате файла и опциях можно командой
1 |
man 5 export |
Открываем файл /etc/exports
1 2 3 |
nano /etc/exports /home/client1 192.168.1.10(rw,sync,no_subtree_check) /var/www 192.168.1.10(rw,sync,fsid=0,crossmnt,no_subtree_check,no_root_squash) |
Для того, чтобы изменения вступили в силу нужно перезапустить службу NFS сервера
1 2 3 |
service nfs-kernel-server restart # или /etc/init.d/nfs-kernel-server restart |
Монтирование NFS каталогов на клиенте
1 2 3 4 5 6 |
mkdir -p /mnt/nfs/home/client1 mkdir -p /var/www # Если каталог /var/www существует и уже используется, # нужно его переименовать и создать новый mv /var/www /var/www_bak mkdir -p /var/www |
Теперь можно выполнить монтирование
1 2 |
mount 192.168.1.10:/home/client1 /mnt/nfs/home/client1 mount 192.168.1.10:/var/www /var/www |
Проверим результаты монтирования
1 2 3 4 5 6 7 8 9 |
df -h [root@client ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_server2-LogVol00 9.7G 1.7G 7.5G 18% / tmpfs 499M 0 499M 0% /dev/shm /dev/sda1 504M 39M 440M 9% /boot 192.168.1.10:/home/client1 9.7G 1.7G 7.5G 19% /mnt/nfs/home/client1 192.168.1.10:/var/www 9.7G 1.7G 7.5G 19% /var/www |
и
1 2 3 4 5 6 7 8 9 10 11 12 |
mount [root@client ~]# mount /dev/mapper/vg_server2-LogVol00 on / type ext4 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) tmpfs on /dev/shm type tmpfs (rw) /dev/sda1 on /boot type ext4 (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw) 192.168.1.10:/home/client1 on /mnt/nfs/home/client1 type nfs (rw,vers=4,addr=192.168.1.10,clientaddr=192.168.1.11) 192.168.1.10:/var/www on /var/www type nfs (rw,vers=4,addr=192.168.1.10,clientaddr=192.168.1.11) |
Теперь проверяем создание файлов в каталогах
На клиенте выполним
1 2 |
touch /mnt/nfs/home/client1/test.txt touch /var/www/test.txt |
Как это выглядит на сервере?
1 2 3 4 5 6 7 |
root@server ~]# ls -l /home/client1 total 0 -rw-r--r-- 1 nobody nogroup 0 Feb 02 16:58 test.txt # и root@server ~]# ls -l /var/www total 0 -rw-r--r-- 1 root root 0 Feb 02 16:58 test.txt |
Обратите внимание на владельца файлов, они разные, т.к. мы так настроили наши каталоги на сервере.
Владельца всегда можно сменить, на того, который нужен, делается это на сервере.
Настройка монтирования NFS каталога при загрузке ОС системы
Для этого нужно внести соответствующие правки в файл /etc/fstab добавив вот это:
1 2 3 4 5 |
nano /etc/fstab 192.168.0.10:/home/client1 /mnt/nfs/home/client1 nfs rw,sync,hard,intr 0 0 192.168.0.10:/var/www /var/www nfs rw,sync,hard,intr 0 0 # больше опций монтирования можно посмотреть командой man nfs |
Протестируем отсоединив каталоги
1 2 3 |
umount /mnt/nfs/home/client1 umount /var/www mount -a |
Проверим результаты монтирования
1 2 3 4 5 6 7 8 9 |
df -h [root@client ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_server2-LogVol00 9.7G 1.7G 7.5G 18% / tmpfs 499M 0 499M 0% /dev/shm /dev/sda1 504M 39M 440M 9% /boot 192.168.1.10:/home/client1 9.7G 1.7G 7.5G 19% /mnt/nfs/home/client1 192.168.1.10:/var/www 9.7G 1.7G 7.5G 19% /var/www |
и
1 2 3 4 5 6 7 8 9 10 11 12 |
mount [root@client ~]# mount /dev/mapper/vg_server2-LogVol00 on / type ext4 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) tmpfs on /dev/shm type tmpfs (rw) /dev/sda1 on /boot type ext4 (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw) 192.168.1.10:/home/client1 on /mnt/nfs/home/client1 type nfs (rw,vers=4,addr=192.168.1.10,clientaddr=192.168.1.11) 192.168.1.10:/var/www on /var/www type nfs (rw,vers=4,addr=192.168.1.10,clientaddr=192.168.1.11) |
Все в порядке. При следующей перезагрузке каталоги будут автоматически монтированы в систему.