Debian.pro

Блог для пользователей и администраторов Debian


Debian, NFS. Fast way.

В своей работе и экспериментах я постоянно игнорирую Samba. Да, возможно, это не позволит мне внедрять Linux в офисах, хотя я уже и забил на это дело.
У новичков же часто возникает вопрос, что можно использовать для обмена файлами между Linux компами. Навскидку я могу назвать три прозрачных способа — FTP, sshfs/SFTP и NFS. О последней и поговорим.
Поговорим о том, что же такое NFS. Network file system. Уже толкает на некоторые размышления)
Итак. С NFS вы можете работать так же, как с локальной файловой системой. При работе с NFS ничего не записывается в /tmp (в отличии от FTP или SMB). Разработчики NFS стараются сделать своё решение максимально кроссплатформенным. Так же NFS достигла неплохих результатов в плане производительности — скорость работы достаточно высокая, как и в плане отклика, так и в плане фактической скорости копирования. Дома по 100 мегабитной проводной сети я спокойно смотрю hd 1080p фильмы с NFS сервера, а по WiFi — 720p. Собственно, использую я NFS сервер как раз для доступа к NAS-мультимедийному хранилищу. Вполне удобно.
Файловая система — not browsable. То есть работать с ней можно только примонтировав её.
Ну да, статья у нас про Fast Way, поэтому начнём.
Имеется 2 PC.
1 — 192.168.0.1 — он же шлюз, он же — NFS сервер. Хостнейм — Debian
2 — 192.168.0.2 — десктоп, NFS клиент. Хостнейм — Desktop.

Установим на сервере NFS-демон:
root@Debian:~# aptitude install nfs-kernel-server nfs-common portmap
Расшарим каталог /media/hdd1 по NFS. Для этого в файл /etc/exports нужно добавить примерно следующую строку:
/media/hdd1 192.168.0.0/255.255.255.0(rw,no_root_squash,async,subtree_check,insecure)
Поясню, что именно мы сейчас написали:
/media/hdd1 — собственно каталог
192.168.0.0/255.255.255.0 — разрешили монтирование этого каталога для клиентов с IP адресами в диапазоне 192.168.0.1 — 192.168.0.255
rw — каталог у клиентов будет монтироваться с возможностью записи в него (ro — позволит монтировать только для чтения)
no_root_squash — разрешаем удалённым пользователям с именем root изменять что-либо в этом каталоге (дома оставляем, в продакшн — убираем её)
async — повышает отклик сервера при записи
subtree_check — указываем эту опцию для любых каталогов, кроме /home/$user. Для /home/$user — указываем no_subtree_check.
insecure — без этой опции с сервером не смогут соединиться MacOS клиенты. (thanks to LeNsTR за замечание)

Применим изменения из /etc/exports:
root@Debian:~# exportfs -a

Теперь монтируем NFS каталог на клиенте:
Для начала установим необходимые пакеты:
root@Desktop:~# aptitude install portmap nfs-common
Ну и монтируем каталог в заранее подготовленную директорию /mnt/nfs1 на десктопе:
root@Desktop:~# mount 192.168.0.1:/mnt/hdd1 /mnt/nfs1

Не советую монтировать в сабкаталоги каталога /home.
Ну и напоследок. Я не монтирую NFS каталоги автоматически при загрузке системы. Мне это просто не нужно. Но вы можете это сделать, добавив предыдущую команду в /etc/rc.local или добавив следующую строку в /etc/fstab:
192.168.0.1:/mnt/hdd1 /mnt/nfs1 nfs timeo=50,hard,intr


Комментарии (1):

  1. kaa :

    Спасибо за статьи. Вроде все просто, но экономит кучу времени.

Написать комментарий