FreeBSD поддерживает сетевую файловую систему (NFS), которая позволяет серверу обмениваться каталогами и файлами с клиентами по сети. С помощью NFS пользователи и программы могут получать доступ к файлам в удаленных системах, как если бы они хранились локально.
Эти службы использует NFS сервер:
Служба | Описание |
---|---|
nfsd |
Демон NFS, который обслуживает запросы от клиентов NFS. |
mountd |
Демон монтирования NFS, который выполняет запросы, полученные от nfsd. |
rpcbind |
Этот демон позволяет клиентам NFS определять, какой порт использует сервер NFS. |
Следующий пример открывает папку /home, с ограничением для одной подсети. Флаг -alldirs
позволяет использовать подкаталоги в качестве точек монтирования. Другими словами, позволит клиенту монтировать все внутренние подкаталоги, не перечисляя их здесь. vi /etc/exports:
1 |
/usr/home -alldirs -network=192.168.37.0/24 |
Добавляем в автозапуск /etc/rc.conf:
1 2 3 |
rpcbind_enable="YES" nfs_server_enable="YES" mountd_enable="YES" |
Теперь сервер можно запустить, выполнив эту команду:
1 |
<span class="c"># service nfsd start</span> |
Всякий раз, когда сервер NFS запускается, mountd работает и запускается автоматически, но внесении изменений в файле /etc/exports, перезапускаем:
1 |
<span class="c"># service mountd reload</span> |
Готово!
Теперь подключим IP камеру, к NFS хранилищу. Настройка пути до NFS сервера, пример:
Ну вот и все, боже мой, как просто. Надо же, никогда не пользовался NFS, а это рядом лежало… оказалось так просто и удобно! Можно не использовать SD-карты на Hikvision и Xiaomi.
Журнал ошибок подключений и запуска службы NFS сервера можно смотреть здесь:
1 |
# tail -f -n 10 /var/log/messages |
Возможные ошибки:
symbolic link in export path or statfs failed – путь в /etc/exports использует символические ссылки, нужно исправить на прямые пути. Изначально взял из Инета у кого-то в статье путь /home/user , а для фрибсд это символическая ссылка, правильно: /usr/home/user
No mask specified for 192.168.37.0, using out-of-date default – возникала при содеражании /etc/exports(тоже на просторах Инета ошибки в статьях):
1 2 |
<span style="color: #ff0000;">/ext -network=192.168.99.1 -mask=255.255.255.240 </span> |
такой формат работает без ошибок:
1 |
<span style="color: #008000;">/ext -network=192.168.99.0/24</span> |