Сетевая файловая система в Linux

Опубликовано: 16 Февраль, 2015 в разделе: Обучение

На этом уроке мы научимся использовать сетевую файловую систему в операционных системах Linux. В общем виде эта система представляет собой один или несколько каталогов, экспортируемых на стороне сервера. Клиентский же компьютер, в свою очередь, монтирует эти каталоги так, как если бы они являлись его собственными файловыми системами.

Своего рода «расшаренные» каталоги в Windows. Интересно? Конечно! Приступим.

Воспользуемся двумя виртуальными машинами. Первая будет предоставлять нам сетевые шары, вторая будет клиентом — подключать их.

На серверной машине нужно установить соответствующий софт (nfs-server и portmap).

Далее, откроем файл /etc/exports и добавим экспортируемый каталог:

_etc_exports

/home/dmitry 192.168.1.0/24(rw,async,all_squash,anonuid=500,anongid=500,no_subtree_check)

Внимание на пробелы!

Что это значит. Первое — собственно каталог, который мы будем экспортировать. Дальше идёт IP-адрес сети, для которой эта шара будет доступна. Можно оставить пустое (*), тогда будет доступ для всех. Нам это не нужно, сделаем доступ для подсети.

Далее, в скобках указываются опции, аналогичные опциям монтирования. Но тут есть маленькие поправки. Сейчас последовательно расскажу. Опции rw — доступ на чтение и запись, async — асинхронные запросы, менее надежно, зато намного быстрее, all_squash — заменяет права доступа на права указанные далее — anonuid,anongid = 500 — на этот uid/gid будут заменены все обращения к фс, ну и отключение проверки принадлежности файла каталогу, если экспортируется часть файловой системы — no_subtree_check.

А что же это за uid/gid такие? Так как мы экспортируем каталог /home/dmitry (домашний каталог пользователя), то я взял его собственные uid/gid, они равны 500. Можно посмотреть в /etc/passwd.

Так, теперь выполняем команду

# exportfs -ar

Чтобы обновить список экспортируемых файловых систем. Готово! Запомним IP адрес серверного хоста, он нам пригодится. 192.168.1.104!

Пришёл черед настраивать клиентскую машину.

На клиенте пишем:

# showmount -e 192.168.1.104

Получаем ошибку

mount clntupd_create: RPC: Program not registered

Ммм.. Кажется надо ещё перезапустить службу на сервере! Сейчас!

1

Отлично! Видим свою шару. Теперь осталось примонтировать её и попробовать что-нибудь записать.

# mkdir /mnt/nfs-dir
# mount -t nfs 192.168.1.104:/home/dmitry /mnt/nfs-dir
# cat /mnt/nfs-dir/hello.txt

2

Собственно возможность записи продемонстрирована.

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

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

Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.