Настраиваем NFS сервер и клиент на Debian Lenny

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

Автор: Setting Up An NFS Server And Client On Debian Lenny
Перевод: Сгибнев Михаил

 Как понятно из названия статьи, сейчас мы расскажем про то, как настроить сервер и клиент NFS на ОС Debian Lenny. NFS является сокращением от Network File System и с помощью этой штуки клиент пожет получить доступ (чтение, запись) к общим ресурсам, находящимся на сервере NFS, как буд-то они находятся на его локальном диске.

 Как обычно, не дается никаких гарантий и вы предупреждены о возможных последствиях.

1. Вводные данные

  • NFS Server: server.example.com, IP address: 192.168.0.100
  • NFS Client: client.example.com, IP address: 192.168.0.101

2 Установка NFS

 На машине, выступающей в роли NFS сервера, выполняем:

apt-get install nfs-kernel-server nfs-common portmap

 На машине, выступающей в роли NFS клиента, выполняем:

apt-get install nfs-common portmap

3. Экспортируем каталоги с сервера

 Я хотел бы сделать доступными для клиентов каталоги /home и /var/nfs. Для этого необходимо предпринять следующие нехитрые действия.

 Когда клиент получает доступ к общему NFS ресурсу, то обычно это случается с правами пользователя nobody. Владельцем каталога /home nobody не является (и я не рекомендую это менять), а поскольку мы хотим иметь права на чтение и запись в /home, то нам необходимо указать NFS работать с правами пользователя root (если /home будет доступен только для чтения, то в этом нет необходимости). Каталог /var/nfs не существует, поэтому мы его создадим и назначим владельцем nobody и nogroup:

mkdir /var/nfs
chown nobody:nogroup /var/nfs

 Теперь необходимо отредактировать файл /etc/exports, в котором указываются общие ресурсы. Мы укажем в нем /home и /var/nfs, при этом доступ к /home будет осуществляться с правами пользователя root.

# /etc/exports: the access control list for filesystems which may be exported
# to NFS clients. See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check)
#
/home 192.168.0.101(rw,sync,no_root_squash,no_subtree_check)
/var/nfs 192.168.0.101(rw,sync,no_subtree_check)

 Для получения дополнительной информации, воспользуйтесь командой man 5 exports.

 Для того, чтобы изменения вступили в силу, выполните команду:

exportfs -a

4. Монтируем NFS ресурс на клиенте

 Создаем каталоги, куда мы будем монтировать шары NFS:

mkdir -p /mnt/nfs/home
mkdir -p /mnt/nfs/var/nfs

 Монтируем:

mount 192.168.0.100:/home /mnt/nfs/home
mount 192.168.0.100:/var/nfs /mnt/nfs/var/nfs

 Проверяем:

client:~# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg0-root 19G 676M 17G 4% /
tmpfs 253M 0 253M 0% /lib/init/rw
udev 10M 80K 10M 1% /dev
tmpfs 253M 0 253M 0% /dev/shm
/dev/sda1 471M 20M 427M 5% /boot
192.168.0.100:/home 29G 684M 27G 3% /mnt/nfs/home
192.168.0.100:/var/nfs
29G 684M 27G 3% /mnt/nfs/var/nfs
client:~#

 И:

client:~# mount
/dev/mapper/vg0-root on / type ext3 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
/dev/sda1 on /boot type ext3 (rw)
192.168.0.100:/home on /mnt/nfs/home type nfs (rw,addr=192.168.0.100)
192.168.0.100:/var/nfs on /mnt/nfs/var/nfs type nfs (rw,addr=192.168.0.100)
client:~#

5. Проверка

 На клиенте создадим несколько файлов:

touch /mnt/nfs/home/test.txt
touch /mnt/nfs/var/nfs/test.txt

 Зайдем на сервер и полюбуемся на результат:

server:~# ls -l /home/
total 4
drwxr-xr-x 2 administrator administrator 4096 2009-02-16 13:18 administrator
-rw-r--r-- 1 root root 0 2009-03-12 17:08 test.txt
server:~#

server:~# ls -l /var/nfs
total 0
-rw-r--r-- 1 nobody nogroup 0 2009-03-12 17:08 test.txt
server:~#

 Обратите внимание на то, что владельцы файлов различаются.

6 Монтирование ресурсов NFS во время загрузки

 Вместо ручного монтирования шар, вы можете указать их в файле /etc/fstab для автоматического монтирования во время начальной загрузки.

vi /etc/fstab

[...]
192.168.0.100:/home /mnt/nfs/home nfs rw,sync,hard,intr 0 0
192.168.0.100:/var/nfs /mnt/nfs/var/nfs nfs

 Вместо опций rw,sync,hard,intr вы можете использовать что-то другое, для получения дополнительной информации,
обратитесь к man nfs.

 Для проверки правильности монтирования перезагрузите систему. После этого в очередной раз проверим результат:

df -h

client:~# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg0-root 19G 676M 17G 4% /
tmpfs 253M 0 253M 0% /lib/init/rw
udev 10M 80K 10M 1% /dev
tmpfs 253M 0 253M 0% /dev/shm
/dev/sda1 471M 20M 427M 5% /boot
192.168.0.100:/home 29G 684M 27G 3% /mnt/nfs/home
192.168.0.100:/var/nfs
29G 684M 27G 3% /mnt/nfs/var/nfs

client:~# mount
/dev/mapper/vg0-root on / type ext3 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
/dev/sda1 on /boot type ext3 (rw)
192.168.0.100:/home on /mnt/nfs/home type nfs (rw,sync,hard,intr,addr=192.168.0.100)
192.168.0.100:/var/nfs on /mnt/nfs/var/nfs type nfs (rw,sync,hard,intr,addr=192.168.0.100)
client:~#

Используемая литература:
Linux NFS
Debian


[ad name=»Google Adsense»]



 Уважайте труд автора, сохраняйте копирайты.
Реклама на сайте висит не просто так и если статья Вам понравилась, с ее помощью Вы можете отблагодарить автора за проделанную работу. Спасибо!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

*