Jump to content

Ядерный nfs сервер на кинетике


Recommended Posts

э-э-эх, грусть-печаль... собрать-то собрал, а проверять (оказывается :) ) нечем. будем ждать (или расширять (зоо)парк тестовых железяк)

Link to comment
Share on other sites

Всем спасибо за ответы!

 

@TheBB, только что обновился - проблема с путем до sm-notify решена.

Что ж, ждем новых ядер с поддержкой 4 версии NFS. Но информация от @Le ecureuil, о кривой реализации четвертых версий (ладно, 4.1 в расчет не берем) в 3.4'ом ядре,   повергла в состояние легкого шока.

При том, что NFSv4 был выпущен в 2000-ом году, а ядро 3.4 в 2012, а текущая используемая 3.4.113 вообще в 2016. Неужели NFS настолько никому не нужен, что его за 16 лет не допилили?

Edited by Egor Staver
Link to comment
Share on other sites

8 часов назад, Egor Staver сказал:

Всем спасибо за ответы!

 

@TheBB, только что обновился - проблема с путем до sm-notify решена.

Что ж, ждем новых ядер с поддержкой 4 версии NFS. Но информация от @Le ecureuil, о кривой реализации четвертых версий (ладно, 4.1 в расчет не берем) в 3.4'ом ядре,   повергла в состояние легкого шока.

При том, что NFSv4 был выпущен в 2000-ом году, а ядро 3.4 в 2012, а текущая используемая 3.4.113 вообще в 2016. Неужели NFS настолько никому не нужен, что его за 16 лет не допилили?

Там основные моменты конечно более-менее работают, но спека NFSv4 очень огромная и раздутая. По сравнению с 3.4.0, в 3.4.112 добавлены только совсем критические багфиксы и сильно это ситуацию не улучшило.

Сами посмотрите, сколько нам пришлось бы тащить бэкпортов из текущих ядер (там страницы и страницы коммитов с фиксами): https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/fs/nfs/nfs4proc.c

Ну и на самом деле большинству полностью хватает NFSv3, она умеет и по TCP, и по UDP, а Kerberos и подобные извращения как-то немного не для дома. У вас есть реальный usecase, где дома NFSv4 лучше?

Link to comment
Share on other sites

@Le ecureuil, согласен с Вами, что для домашнего использования NFSv3 хватает полостью, хотя, отсутствие необходимости в portmap/rpcbind для работы четвертой версии сервера - мелочь, а приятно :) Ну и скорости интересно сравнить, но боюсь все упрется в производительность накопителя.

Однако, добавив в прошивку роутера поддержку L2TP/IPsec, GRE, SNMP и прочие плюшки, как-то странно продолжать его позиционировать исключительно в качестве хомячкового устройства )))

В кейсе автоматизации небольших retail точек с бездисковыми тонкими клиентами, и туннелями к центральному офису у меня keenetic пока в фаворитах для реализации задачи.

И вот тут уже, четвертый NFS, с его поддержкой аутентификации, очень бы пригодился.

Link to comment
Share on other sites

В 10/7/2017 в 13:00, Egor Staver сказал:

@Le ecureuil, согласен с Вами, что для домашнего использования NFSv3 хватает полостью, хотя, отсутствие необходимости в portmap/rpcbind для работы четвертой версии сервера - мелочь, а приятно :) Ну и скорости интересно сравнить, но боюсь все упрется в производительность накопителя.

Однако, добавив в прошивку роутера поддержку L2TP/IPsec, GRE, SNMP и прочие плюшки, как-то странно продолжать его позиционировать исключительно в качестве хомячкового устройства )))

В кейсе автоматизации небольших retail точек с бездисковыми тонкими клиентами, и туннелями к центральному офису у меня keenetic пока в фаворитах для реализации задачи.

И вот тут уже, четвертый NFS, с его поддержкой аутентификации, очень бы пригодился.

NFS мы реально не поддерживаем в виде компонента прошивки, потому и нет апдейтов. Ядро все же старое, и тащить туда последние изменения очень тяжело.

Насчет подержки туннелей - все же мы делаем роутер, а не NAS. Поддержку сетевых компонентов мы будем делать всегда в первую очередь, а диски и накопители... уж насколько останется сил.

Link to comment
Share on other sites

  • 4 months later...

делаю по инструкции из первого поста темы.

~ # /opt/etc/init.d/S20nfsd start
mount: mounting nfsd on /proc/fs/nfsd failed: No such device
sysctl: error: 'fs.nfs.nlm_tcpport' is an unknown key
sysctl: error: 'fs.nfs.nlm_udpport' is an unknown key
exportfs: Failed to stat /tmp/mnt/1tb/tftpboot: No such file or directory
rpc.nfsd: Unable to access /proc/fs/nfsd errno 2 (No such file or directory).
Please try, as root, 'mount -t nfsd nfsd /proc/fs/nfsd' and then restart rpc.nfsd to correct the problem

далее проверяю наличие ФС:

~ # grep nfs /proc/filesystems
~ #

т.е. её вроде как нет.

модуль не загружен видимо:

~ # grep nfs /proc/modules
~ #

может быть, этот модуль надо загрузить вручную?

~ # insmod /lib/modules/3.4.113/nfsd.ko
insmod: can't insert '/lib/modules/3.4.113/nfsd.ko': unknown symbol in module, or unknown parameter

 проверю, что за ошибки:

~ # dmesg | tail -20
nfsd: Unknown symbol svc_alien_sock (err 0)
nfsd: Unknown symbol sunrpc_cache_lookup (err 0)
nfsd: Unknown symbol svc_sock_names (err 0)
nfsd: Unknown symbol svc_destroy (err 0)
nfsd: Unknown symbol svcauth_unix_purge (err 0)
nfsd: Unknown symbol cache_check (err 0)
nfsd: Unknown symbol svc_xprt_names (err 0)
nfsd: Unknown symbol svc_set_client (err 0)
nfsd: Unknown symbol svc_seq_show (err 0)
nfsd: Unknown symbol cache_flush (err 0)
nfsd: Unknown symbol cache_register_net (err 0)
nfsd: Unknown symbol nlmsvc_ops (err 0)
nfsd: Unknown symbol svc_find_xprt (err 0)
nfsd: Unknown symbol svc_proc_unregister (err 0)
nfsd: Unknown symbol svc_addsock (err 0)
nfsd: Unknown symbol sunrpc_cache_pipe_upcall (err 0)
nfsd: Unknown symbol svc_print_addr (err 0)
nfsd: Unknown symbol svc_pool_stats_open (err 0)
nfsd: Unknown symbol sunrpc_cache_update (err 0)
nfsd: Unknown symbol auth_domain_put (err 0)

куда копать дальше, или наверное я чего-то не понимаю?

Link to comment
Share on other sites

Да, начиная с 2.12.A.4-0 почти все модули нужно грузить руками. По-умолчанию они не грузятся, чтобы не занимать лишнюю память.

Для файловых систем это:

isofs
udf
cifs
auth_rpcgss
sunrpc
lockd
nfs
nfsd

 

Link to comment
Share on other sites

Значит в дополнение к инструкции следует раскомментировать строки

for module in sunrpc lockd exportfs nfsd; do
      insmod /lib/modules/3.4.113/${module}.ko

В этой последовательности модули должны грузится.

  • Thanks 1
Link to comment
Share on other sites

@zyxmon в инструкции упоминаемый вами файл S57nfs-kernel-server предлагается выкинуть, значит, наверное нужно не раскомментировать в нём строки, а добавить раскомментированные строки в ваш файл S20nfsd ?

Link to comment
Share on other sites

root@Keenetic_Extra ~# insmod /lib/modules/3.4.113/sunrpc.ko 
root@Keenetic_Extra ~# insmod /lib/modules/3.4.113/lockd.ko 
root@Keenetic_Extra ~# insmod /lib/modules/3.4.113/exportfs.ko 
insmod: can't insert '/lib/modules/3.4.113/exportfs.ko': File exists
root@Keenetic_Extra ~# insmod /lib/modules/3.4.113/nfsd.ko 

Как оказалось exportfs уже загружен. Так что проверьте ручками и добавтье нужное.....

Link to comment
Share on other sites

  • 2 months later...

Ознакомился с данной веткой . Проделал все как написано по поднятию nfs сервера. S20nfsd стартует, на обеих устройствах в дом.сети появляется 192.168.1.1 opt , но внутри ничего. Собственно к Ultra 2 подсоединен диск (назв. Elements) с аудио/видео и хочется его расшарить для BD плеера Pioneer 450 ,  который кроме NFS ничего более не понимает. DLNA  не в счет -   образы ISO не поддерживает.

PS на  Hanewin NFS поднял, работает с компа, но тоже не вариант - не интересно.

Спасибо

Link to comment
Share on other sites

  • 1 month later...
В 10.05.2018 в 23:46, genaff сказал:

Ознакомился с данной веткой . Проделал все как написано по поднятию nfs сервера. S20nfsd стартует, на обеих устройствах в дом.сети появляется 192.168.1.1 opt , но внутри ничего. Собственно к Ultra 2 подсоединен диск (назв. Elements) с аудио/видео и хочется его расшарить для BD плеера Pioneer 450 ,  который кроме NFS ничего более не понимает. DLNA  не в счет -   образы ISO не поддерживает.

PS на  Hanewin NFS поднял, работает с компа, но тоже не вариант - не интересно.

Спасибо

Отчего-то NFS сервер показывает только содержимое каталогов с аттрибутом execute. Т.е. сделайте, например, chmod -R +x /opt/media, если вам нужно засветить содержимое папки /opt/media и не показать остальные - всё увидите.

Link to comment
Share on other sites

И да, для ядерного сервера мне не хватило 

 nfs     2049/tcp    # Network File System
 nfs     2049/udp    # Network File System

в /opt/etc/services. Иначе оно не стартовало с ошибкой

rpc.nfsd: unable to resolve ANYADDR:nfs: Servname not supported for ai_socktype
rpc.nfsd: unable to set any sockets for nfsd

 

Link to comment
Share on other sites

А самой удивительной для меня оказалась скорость передачи.

UNFS3 - самый медленный, точно не помню, но до 30 МБ/с

kernel NFS - 31-32 МБ/с

Встроенный CIFS - 34-36 МБ/с

И самое вкусное: встроенный CIFS при запущенном kernel NFS - 37-38 МБ/с.

Отчего разница в работе CIFS при запущенном и остановленном kernel nfs server - лично для меня загадка. В скрипте запуска ничего удивительного не нашёл. Впрочем, возможно так совпало. Но сегодня совершенно точно лидер - nqcs.

Кстати, диск seagate 3.5" с независимым питанием и USB 3.0, включен в USB 3.0, отформатирован в EXT4. Тестирую по гигабитному линку.

Edited by middlegear
Link to comment
Share on other sites

  • 1 month later...

Друзья, а как прикрутить udp к ядерному nfs. Просто не видит его мой плеер pioneer 450, который работает по udp. По tcp проверял, все монтируется и в винде и в убунту. А по udp не хочет. Убунту говорит requested nfs version or ptotocol not supported. Ставил по иструкции. Также ставил unfs3. Но с ним плеер жутко тормозит, скорее всего из-за max block size, который я не нашел чтобы посмотреть и изменить.

Link to comment
Share on other sites

1 час назад, zyxmon сказал:

На момент написания инструкции udp работал.

А можно все-таки поподробнее рассказать, что можно исправить или дописать какую-нибудь строку в скрипте или доставить модуль. В линуксе не очень силен, но инструкции и советы соблюдать умею. Просто в логах кинетика никакой ошибки не выдает при попытке подключиться по udp, а по tcp говорит, что все подключилось. роутер гига2 с последней прошивкой 2.13.

Link to comment
Share on other sites

  • 1 month later...

Если вдруг у кого nfsd не захочет стартовать с ошибкой:

Цитата

rpc.nfsd: Setting version failed: errno 22 (Invalid argument)

То в скрипте в функции start добавьте к запуску rpc.nfsd ключи запуска.

Цитата

rpc.nfsd -t -u -V 3 -N 4

 Версия прошивки 2.13.C.0.0-0

Link to comment
Share on other sites

On 6/18/2016 at 12:22 PM, zyxmon said:

Второе- установим и запустим pormap


opkg install portmap
/opt/etc/init.d/S55portmap start

Добрый день!

Все делаю по указанной процедуре. Дошел до:

opkg install portmap

Отзыв:

opkg_install_cmd: Cannot install package portmap.

Прошу подсказать, в чем может быть проблема и как ее решить.

Link to comment
Share on other sites

 

On 9/25/2018 at 12:51 PM, TheBB said:

в openwrt выбросили portmap, заменив его libtirpc

Очень благодарен!

Правильно ли я понимаю, что для того, чтобы теперь реализовать NFS сервер, надо вместо portmap установить libtirpc?

opkg install libtirpc

После чего запустить libtirpc командой start?

Link to comment
Share on other sites

1 час назад, Denis Demchenko сказал:

Правильно ли я понимаю, что для того, чтобы теперь реализовать NFS сервер, надо вместо portmap установить libtirpc?

oops! ошибся в названии пакета. пакет называется rpcbind. для запуска `/opt/etc/init.d/S19rpcbind start`

пакет должен был быть установлен по зависимостям (libtirpc - так же)

Link to comment
Share on other sites

  • 5 months later...

Добрый день,поделитесь пожалуйста  опытом настройки nfs-kernel-server 2.3.3-2

Какие пакеты нужно установить и какие конфиги править?

Link to comment
Share on other sites

  • 4 months later...
В 05.10.2017 в 07:07, Egor Staver сказал:

ждем новых ядер с поддержкой 4 версии NFS

Дождались?

ndm: kernel: RPC: Registered tcp NFSv4.1 backchannel transport module.

 

Link to comment
Share on other sites

  • 2 months later...

всем привет!

nfs-kernel-server на kn-1810 с ОС 3.1.6 выдает:

rpc.mountd[3547]
/opt/nfs is not a directory or regular file

на клиенте:

root@netbook:~# mount.nfs 192.168.1.1:/opt/nfs/ /tmp/1/ -v -o vers=3
mount.nfs: timeout set for Wed Oct  9 15:11:29 2019
mount.nfs: trying text-based options 'vers=3,addr=192.168.1.1'
mount.nfs: prog 100003, trying vers=3, prot=6
mount.nfs: trying 192.168.1.1 prog 100003 vers 3 prot TCP port 2049
mount.nfs: prog 100005, trying vers=3, prot=17
mount.nfs: trying 192.168.1.1 prog 100005 vers 3 prot UDP port 32780
mount.nfs: mount(2): Not a directory
mount.nfs: mount spec 192.168.1.1:/opt/nfs/ or point /tmp/1 is not a directory

встречал кто нибудь такое? шара честная папка, никаких линков и т.д.

Link to comment
Share on other sites

Аналогично, после обновы перестала монтироваться шара 

mount.nfs: mount spec 192.168.1.1:/tmp/mnt/bc14cb6c-d6d3-4623-ac76-ad73d5331fd5 or point /mnt/Backup is not a directory

Хотя 

# grep nfs /proc/filesystems
nodev   nfsd
nodev   nfs
nodev   nfs4

 

Link to comment
Share on other sites

13 часа назад, Floppik сказал:

Аналогично, после обновы перестала монтироваться шара 

Гадалки в отпуске - расшифруйте. После обновы пакета кинетика или после обновы прошивки?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...