Файловый сервер FTP и NFS
Помимо файлового сервера SAMBA, установку и настройку которого мы рассмотрели в предыдущей статье, существует ещё несколько альтернативных вариантов организации файлового хранилиша на устройстве под управлением Tiny Core Linux. Но поскольку возможностей SAMBA-сервера более чем достаточно для нужд домашней локальной сети с клиентскими ПК на базе Windows, то о FTP и NFS речь в этой статье пойдет лишь поверхностно.
FTP. Популярный протокол передачи данных. Стабильный, нетребователен к ресурсам сервера, обеспечивает высокую скорость передачи данных. Наивысшую среди остальных протоколов. Единственный его минус - невозможность передачи потоковых данных. Другими словами фильм рамещенный на FTP сервере перед просмотром придется полностью скачать к себе на локальный ПК. Поэтому для медиахранилища FTP мало пригоден, но для нужд обычного файлового архива это идеальный вариант. За организацию FTP-сервера отвечает демон bftpd. Вначале установим его:
tce-load -wi bftpd.tcz
Копируем пример конфигурационного файла /usr/local/etc/bftpd.conf в /home/conf/bftpd.conf и открываем для редактирования. Нам подходит "стоковая" конфигурация bftpd, за исключением определения домашних директорий пользователей. По умолчанию они находятся на системном диске, прямо в RAM мультисервера. Чтобы предотвратить переполнение ОЗУ файлами FTP-пользователей перенесём эти папки на жесткий диск. Сначала создадим директорию /mnt/HDD/ftp/ где будут размещаться домашние папки пользователей. В конфигурационном файле изменим строку:
/home/conf/bftpd.conf
...
ROOTDIR="/mnt/HDD/ftp/%u"
...
С данной конфигурацией bftpd вполне работоспособен, но FTP-пользователей вам придется создавать в самой системе, и объеденить в одну группу. К примеру ftpusers. Однако есть другой, упрощенный вариант организации доступа к ресурсам FTP-сервера. Для этого необходимо раскоментировать строку
/home/conf/bftpd.conf
...
FILE_AUTH="/etc/ftpdpassword"
...
и создать файл /etc/ftpdpassword куда будут записаны все аккаунты FTP-сервера. Заносятся они в текстовом формате одной строкой для каждого пользователя в следующем порядке:
/etc/ftpdpassword
...
[логин] [пароль] [группа] [домашняя папка пользователя]
...
Помимо этого, в базовой конфигурации отключена возможность изменения атрибутов, прав доступа и возможность удаления файлов FTP-пользователем. Чтобы снять эти блокировки замените "no" на "yes" в строках
/home/conf/bftpd.conf
...
ALLOWCOMMAND_DELE="yes"
ALLOWCOMMAND_STOR="yes"
ALLOWCOMMAND_SITE="yes"
...
Осталось теперь внести /etc/ftpdpassword в бэкап-лист и запустить bftpd с нашим конфигурационным файлом:
sudo bftpd -d -c /opt/conf/bftpd.conf
NFS. (Network File System) дословно "Сетевая Файловая Система". Легковесный и нетребовательный к ресурсам протокол сетевого обмена данных популярный в Linux-системах. В противовес SAMBA-серверу, тяжеловесному и перегруженому. Созданому и существующему лишь благодаря распространенности ОС Windows. Хорошим примером может быть мой недавний случай из практики, когда необходимо было скопировать по сети очень много (более 70 000) мелких файлов. SAMBA так и не справилась с задачей, скатившись до скорости в 50 кбит/с на 2/3 пути и загрузив ЦП мультисервера на 100%. Копирование посредством NFS прошло без проблем. Возможно вам NFS придется по душе больше, и вы с легкостью откажетесь от SAMBA. А пока приступим к установке:
tce-load -wi nfs-utils.tcz
tce-load -wi filesystems-4.8.17-tinycore.tcz
Настройка сводится к добавлению директорий которые мы хотим "расшарить" с определенными параметрами доступа в файл /etc/exports. Например чтобы открыть сетевой доступ ко всему жесткому диску достаточно внести строку следующего содержания:
/etc/exports
...
/mnt/HDD 192.168.0.0/24(fsid=0,rw,insecure,nohide,all_squash,anonuid=0,anongid=0,no_subtree_check)
...
Я не буду объяснять смысл этих параметров, поскольку рассматриваю NFS лишь поверхностно. Самой же информации о детальной настройке NFS-сервера в интернете предостаточно. Запускаем:
sudo /usr/local/etc/init.d/nfs-server start
Самое занятное, что в Windows-системах поддержка NFS отсутствовала напрочь вплоть до "семерки". Даже не смотря на почтенный "возраст" Network File System (год создания 1984). Создается впечатление, что Microsoft осознано, принципиально и упорно не хотели поддерживать NFS в своих системах. Даже сейчас, после включения поддержки NFS начиная с Win7, по умолчанию она остается отключеной, а GUI отсутствует напрочь. Это значит, чтобы воспользоваться доступом к удаленым ресурсам посредством NFS, сетевой диск придется монтировать вручную через командный терминал Windows. Теперь на минуточку, вы представляете среднестатистического пользователя домашней Windows монтирующего сетевые диски в терминале? Я - нет. То есть по сути поддержка NFS если и реализована в Win7, сделано с полным отсутствием какого-либо удобства для рядового "виндузятника". Более того, такой пользователь даже никогда не узнает про NFS. Увы, как говорится "кто платит, тот и музыку танцует".
Но оставим лирику и эти войны протоколов, вернемся к нашей задаче. Как вы уже поняли, с подключением по NFS на Win7 придется чуть повозиться. Для начала включим поддержку NFS. Далее запускаем "выполнить" в котором вызываем теримнал командой cmd и в привычном терминале монтируем сетевой диск:
mount 192.168.1.1:/mnt/HDD n:
Тут всё просто. Указываем сетевой адрес и букву диска, к которому будет смонтирована сетевая папка. В моём примере содержимое /mnt/HDD мультисервера будет доступно через диск N.
После подключения к сетевому диску посредством NFS скорость чтения/записи у меня составила 80/20 Мбит/с в локальной Гигабитной сети. Вероятно она ограничена размером буфера чтения/записи самого сервера или другим фактором, по крайней мере беглый поиск в интернете не дал мне ответа на этот вопрос.
Не забудьте внести файл /etc/exports в бэкап-лист, а команду запуска NFS-сервера в /opt/bootlocal.sh чтобы он стартовал каждый раз при загрузке системы.
ранее: "Файловый сервер SAMBA"далее: "Торрент-клиент"Оставить комментарий