1

Тема: nfs сервер на Keenetic

Это тема юбилейная 100я на форуме (по числу тем, не по номеру).
Приз за 100ю тему получаю я! tongue

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

2

Re: nfs сервер на Keenetic

Zyxmon :

Собран и выложен nfs-kernel-server.
Для работы необходим запущенный portmap. Запускается с помощью
/media/DISK_A1/system/etc/init.d/S19portmap start
"Шары" настраиваются в файле
/media/DISK_A1/system/etc/exports
Для запуска используйте скрипт
/media/DISK_A1/system/etc/init.d/K20nfsd start

не могу поднять NFS сервер, аппаратный NAT отключил, запускаю:

/media/DISK_A1/system/etc/init.d # ./S19portmap start
/media/DISK_A1/system/etc/init.d # ./K20nfsd start
Cannot register service: RPC: Timed out

Вот лог кинетика:

5 окт 20:56:23    rpc.statd[2558]    unable to register (statd, 1, udp).
5 окт 20:56:58    kernel    rpcbind: server localhost not responding, timed out
5 окт 20:56:58    kernel    RPC: failed to contact local rpcbind server (errno 5).
5 окт 20:57:33    nfsd[2909]    nfssvc: writing fds to kernel failed: errno 5 (Input/output error)
5 окт 20:57:33    kernel    rpcbind: server localhost not responding, timed out
5 окт 20:57:33    kernel    RPC: failed to contact local rpcbind server (errno 5).
5 окт 20:58:09    nfsd[2909]    nfssvc: writing fds to kernel failed: errno 5 (Input/output error)
5 окт 20:58:09    kernel    rpcbind: server localhost not responding, timed out
5 окт 20:58:09    kernel    RPC: failed to contact local rpcbind server (errno 5).
5 окт 20:58:09    kernel    NFSD: Using /var/lib/nfs/v4recovery as the NFSv4 state recovery directory
5 окт 20:58:09    kernel    NFSD: unable to find recovery directory /var/lib/nfs/v4recovery
5 окт 20:58:09    kernel    NFSD: starting 90-second grace period
5 окт 20:58:44    kernel    rpcbind: server localhost not responding, timed out
5 окт 20:58:44    kernel    RPC: failed to contact local rpcbind server (errno 5).
5 окт 20:59:19    kernel    rpcbind: server localhost not responding, timed out
5 окт 20:59:19    kernel    RPC: failed to contact local rpcbind server (errno 5).
5 окт 20:59:19    kernel    lockd_up: makesock failed, error=-5
5 окт 20:59:54    kernel    rpcbind: server localhost not responding, timed out
5 окт 20:59:54    kernel    RPC: failed to contact local rpcbind server (errno 5).
5 окт 20:59:54    kernel    nfsd: last server has exited
5 окт 20:59:54    kernel    nfsd: unexporting all filesystems
5 окт 21:00:29    nfsd[2909]    nfssvc: Input/output error
5 окт 21:00:29    kernel    rpcbind: server localhost not responding, timed out
5 окт 21:00:29    kernel    RPC: failed to contact local rpcbind server (errno 5).
5 окт 21:01:54    udhcpd[980]    Found static lease ip address: 192.168.1.33
5 окт 21:02:29    mountd[3387]    unable to register (mountd, 1, udp).

я прошу объяснить в чем может быть причина?

3

Re: nfs сервер на Keenetic

MaDriver, добавьте в скрипт запуска правило, а еще лучше его в firewall.d

iptables -I INPUT -i lo -j ACCEPT

Уже писал ранее.
Если файловая система ntfs - то работать не будет.

4

Re: nfs сервер на Keenetic

Zyxmon :

MaDriver, добавьте в скрипт запуска правило, а еще лучше его в firewall.d

iptables -I INPUT -i lo -j ACCEPT

В общем добавил эту строку в S19portmap (в firewall не допер пока) Так вот после монипуляций, вроде все запустилось без ошибок, но не могу примонтировать теперь на другом устройстве. В связи с этим 2 вопроса:
1. Каким всетаки должна быть строка в exports?
2. Как посмотреть доступные точки монтирования?
возвращаемая ошибка в telnet после попытки монтирования:

~ # mount -t nfs -o nolock 192.168.1.1:/media/DISK_A1 /tmp/ramfs/volumes/Keenetic
mount: Mounting 192.168.1.1:/media/DISK_A1 on /tmp/ramfs/volumes/Keenetic failed: Input/output error

5

Re: nfs сервер на Keenetic

MaDriver :

В общем добавил эту строку в S19portmap (в firewall не допер пока)

Правильное решение, добавлять нужно в функцию start. Если делать еще правильней, то в S19portmap (в функцию stop) нужно добавить удаление, добавленного ранее правила iptables.

iptables -D INPUT -i lo -j ACCEPT
MaDriver :

Каким всетаки должна быть строка в exports?

У меня все работало с такой

/media/DISK_A1  *(ro,no_subtree_check,no_root_squash,insecure,sync,anonuid=0,anongid=0)

Монтировал "шару" с linux машины командой

mount -t nfs <тут ip кинетика>:/media/DISK_A1 <тут точка монтирования>

Как писали на ixbt с windows машины монтирование не проходило. Еще один владелец кинетика отписал в личке

теперь проблема с монтированием на телевизор. На компе нормально монтируется, а телеку нужно nfs 2 версии

Потом

Заработал по tcp почему-то..

6

Re: nfs сервер на Keenetic

nfs-kernel-server на Кинетике из репозитория с настройками по умолчанию. Штатный nfs клиент в W 7 Ult x86 монтирует любые папки из корня /media/DISK_A1

mount 192.168.1.1:"/media/DISK_A1/+ BD_K" Z:

Там же rpcinfo пишет

C:\Users\HomePC>rpcinfo -p 192.168.1.1
программа  версия протокол     порт
--------------------------------------------------
    100000       2      tcp      111    portmapper
    100003       2      udp     2049    nfs
    100003       3      udp     2049    nfs
    100003       4      udp     2049    nfs
    100005       2      udp    32780    mountd
    100005       2      tcp    32780    mountd
    100021       1      udp    32777    nlockmgr
    100021       3      udp    32777    nlockmgr
    100021       4      udp    32777    nlockmgr
    100021       1      tcp    32777    nlockmgr
    100021       3      tcp    32777    nlockmgr
    100021       4      tcp    32777    nlockmgr
    100003       2      tcp     2049    nfs
    100003       3      tcp     2049    nfs
    100003       4      tcp     2049    nfs
    100005       1      udp    32828    mountd
    100005       1      tcp    58370    mountd
    100005       3      udp    32828    mountd
    100005       3      tcp    58370    mountd
    100024       1      udp    32778    status
    100024       1      tcp    32778    status

т.е. как бы запущены все три версии nfs сервера.
PotPlayer в W 7 отлично воспроизводит с кинетика образ BD, но в WDTV Live примонтировать шару Кинетика пока не получается, хотя он (WDTV Live) без проблем работает с Hane Win NFS сервером, поднятым в тех же Windows. В выходные поиграюсь с ключами -V -N ... и unfs3.

7

Re: nfs сервер на Keenetic

Mounting 192.168.1.1:/media/DISK_A1 on /tmp/ramfs/volumes/Keenetic failed: Input/output error

О чем ошибка? До этого на этом же девайсе (asus HD-R1) примонтировал шару на NASе, теми же командами, все работает.
Насчет как посмотреть открытые точки монтирования, щас пришла мысль можно использовать

showmount -e <ip интересующего ресурса>

из cmd на 7-ке...
P.S. Спасибо за отдельную тему, поддерживаю тема нужная...

В общем попробовал с предложенным текстом exports и функцию стоп воткнул куда надо. Примонтировал из 7-ки, но не могу примонтировать в плеере sad Я так понимаю искать нужно в плеере, но блин чета не могу понять где?

Отредактировано MaDriver (2011-10-07 15:08:15)

8

Re: nfs сервер на Keenetic

vovic67 :

т.е. как бы запущены все три версии nfs сервера.

4я версия nfs в Makefile из транка openwrt отмечена как "broken" (сломанная).

9

Re: nfs сервер на Keenetic

Воевал с nfs-kernel-server, запускал с разными ключами и пр., но примонтировать удалось только в Windows, медиа-плеер WDTV Live не цепляется.

Собрал unfs3 v.0.9.22, в Windows монтируется, но содержимое не отображает и почти подвешивает explorer, зато прекрасно монтируется и работает в медиа-плеере WDTV Live.
Запуск выглядит так (exports2 - чтобы не бился с nfs-kernel-server):
S19portmap
S21unfs3
...

...
start() {
    iptables -I INPUT -i lo -j ACCEPT
    $MOUNT/usr/sbin/unfsd -e /media/DISK_A1/system/etc/exports2 -n 2049 -m 1058 &

Файл exports2 для unfs3 у меня такой:

/media/DISK_A1/_Videos (ro,no_root_squash,insecure)

В WDTV Live монтирую командой:

xmount 192.168.1.1:/media/DISK_A1/_Videos _Videos nfs udp,rsize=32768,wsize=32768

Домашние погоняют на предмет стабильности, и если нормально, то буду заниматься дальше.

10

Re: nfs сервер на Keenetic

Zyxmon,
может дело в версии NFS, сейчас я так понял с пакетами качается версия 1.1.6, но где-то читал что есть версия по-новее, как можно обновить пакет?

vovic67,
как установить unfs в пакете opkg такой не нашел... Попробую на своем Asus примонтировать с этим сервером...

11

Re: nfs сервер на Keenetic

MaDriver, я собирал ту версию, что лежит в репозитарии openwrt. Тут
http://sourceforge.net/projects/nfs/files/nfs-utils/
есть и новее. По какой причине эта версия выбрана в openwrt - не знаю. Или руки не дошли у разработчиков, или проблемы есть с новыми версиями. Будут время - посмотрю на эти версии.
Под unfs иммется в виду user space nfs сервер? Для его сборки потребуется сделать много патчей под кинетик. Работать (если удастся собрать) будет медленней.

12

Re: nfs сервер на Keenetic

Zyxmon :

Работать (если удастся собрать) будет медленней.

Не медленней нельзя, тогда теряется смысл поднятия NFS, я тогда подожду версии по-новее, а пока попробую поковыряться в плеере своем, может там тоже нужно iptables разрешить...
О прошел по ссылке, а как можно прикрутить версию по-новее?

Отредактировано MaDriver (2011-10-09 08:37:12)

13

Re: nfs сервер на Keenetic

MaDriver, я уже давно смотрел более новые версии. Не помню по какой причине, но не стал их собирать. По ссылке только исходные коды. Для прикручивания нужно их патчить (изменять), компилировать.

Имеющийся nfs сервер по моим замерам медленнее ftp, ожидал большего.

14

Re: nfs сервер на Keenetic

Оставил на ночь WDTV Live с unfs3 проигрывать фильмы, обрыва коннекта и подвисания не произошло, работает.
- nfs-kernel-server, пробовал ночью собрать последнюю версию 1.2.5, тупо переписал четыре существующих патча под измененный код. Не собирается, пишет что-то вида "all recursive", поковыряться смогу только в следующие выходные.
-  unfs3, сейчас хочу посмотреть последнюю версию из cvs репозитория. MaDriver, если хотите попробовать unfs3, то могу выложить архив с бинарниками.

15

Re: nfs сервер на Keenetic

vovic67
unfs3 - это этот проект? http://unfs3.sourceforge.net/
Просто в репозитарии openwrt другой user space nfs сервер:
http://ftp.debian.org/debian/pool/main/ … ser-server

Наверное, стоит сравнить по скорости (и загрузке cpu) имеющийся kernel-server и unfs3. Если различия небольшие, жду папки в test-packages.

16

Re: nfs сервер на Keenetic

Zyxmon, именно этот пакет. Готов провести тесты, но пока не соображу, как сравнить nfs-kernel-server и unfs3. Первый у меня монтируется только из Windows, второй - только из Linux WDTVLIVE 2.6.22.19. Не знаю, насколько корректным будет сравнение загрузки Кинетика при просмотре одного и того же фильма в PotPlayer и WDTV Live.
Потребляемые при работе unfs3 Кинетиком ресурсы могу сравнить только с самбой. Могу запустить копирование с WDTV Live на Кинетик большого файла (и наоборот), но чем измерить скорость копирования? В голову приходит только секундомер.

Отредактировано vovic67 (2011-10-09 09:23:21)

17

Re: nfs сервер на Keenetic

vovic67, сравните из linux на ББ. Хоть под виртуальной машиной. Я выше писал про сравнение ftp/nfs из под debian на virtualbox.

18

Re: nfs сервер на Keenetic

ufc3, оказывается, есть в репозитарии openwrt, раньше не замечал.

19

Re: nfs сервер на Keenetic

Примонтировал unfs3 на Кинетике в Ubuntu

sudo mount -t nfs -o rw,hard,intr,rsize=32768,wsize=32768 192.168.1.1:/media/DISK_A1/_Videos /home/homepc/Desktop/Keenetic-nfs

копировал один и тот же файл в nfs и samba, все в "попугаях", привожу худшие для нас результаты (самая большая загрузка CPU и самая низкая скорость копирования)

unfsd
Ubuntu->Keenetic CPU-80%, 5.5 MB/sec
Keenetic->Ubuntu CPU-80%, 5.0 MB/sec

smbd
Ubuntu->Keenetic CPU-80%, 4.3 MB/sec
Keenetic->Ubuntu CPU-80%, 4.2 MB/sec

20

Re: nfs сервер на Keenetic

vovic67, на мой взгляд очень неплохо. Может быть и nfs-kernel-server будет хуже unfs3? Тогда точно стоит заняться unfs3.

it should be as fast as possible. It is impossible to outmatch in-kernel NFS servers from user-space, but UNFS3 should not lag too far behind.

21

Re: nfs сервер на Keenetic

Zyxmon, vovic67,
Ну ладно ребята, по-матерились и хватит, а теперь объясните пожалуйста как? и что не мало важно какой? все таки прикрутить NFS сервер. Мне вот как раз надо чтобы небыло подвисаний при просмотре контента, особенно в HD. Заранее спасибо за четкие инструкции! smile vovic67, спасибо конечно за предложение бинарников, но я не знаю что с ним делать, если инструкция по применению прилагается то примного благодарен.

22

Re: nfs сервер на Keenetic

MaDriver, Вы подождите немного. Если unfs сравним по скорости с имеющемя сервером, то скоро будет в пакетах. Тогда и инструкция будет.

23

Re: nfs сервер на Keenetic

Собрал пакет unfs3 из репозитория cvs, сделал по-простому, обозвал его unfs3_0.9.23-1_keenetic.ipk http://rghost.ru/24851061
Установка (модератор много раз уже описывал, но на всяк. сл.):
- скопировать файл unfs3_0.9.23-1_keenetic.ipk на USB носитель, подключенный к Кинетику, и выполнить в SSH
opkg install /путь к пакету/unfs3_0.9.23-1_keenetic.ipk
- отредактировать в файле /media/DISK_A1//system/etc/exports2 путь к медиа контенту (сейчас там мой путь /media/DISK_A1/_Videos)
Запуск:
Запускаем в SSH (если еще не запущен) portmap (/media/DISK_A1/system/etc/init.d/K(S)19portmap start), затем
/media/DISK_A1/system/etc/init.d/K21unfs3 start
Если есть возможность, то смотрим что получилось, у меня так:

homepc@homepc-desktop:~/Desktop/compare-(create-patch)$ rpcinfo -p 192.168.1.1
   program vers proto   port
    100000    2   tcp    111  portmapper
    100000    2   udp    111  portmapper
    100003    3   udp   2049  nfs
    100003    3   tcp   2049  nfs
    100005    1   udp   1058  mountd
    100005    3   udp   1058  mountd
    100005    1   tcp   1058  mountd
    100005    3   tcp   1058  mountd

Пробуем примонтировать расшаренную папку к клиенту, но помним, что nfs только версии 3 (цифра 3 в имени пакета).
У программы есть ключ -p, позже посмотрю, можно ли отвязаться от portmap.

Набор для самостоятельной сборки (также включает в себя исходники
cvs -d:pserver:anonymous@cvs.lysator.liu.se:/cvsroot/unfs3 co unfs3)
unfs3-cvs.zip (174 KB) http://rghost.net/24836771
P.S. У меня USB ж.д. с ф.с. EXT2, на NTFS не проверял.

Отредактировано vovic67 (2011-10-09 16:25:38)

24

Re: nfs сервер на Keenetic

Zyxmon,
Спасибо подожду.

vovic67 :

Собрал пакет unfs3 из репозитория cvs, сделал по-простому, обозвал его unfs3_0.9.23-1_keenetic.ipk

Спасибо за оперативность, тоже попробую пока нет готового пакета smile
И у меня еще один вопрос родился smile Дело в том, что у меня на домашнем сервере уже запущен NFS сервер, который прекрасно монтируется на моем плеере. Как можно узнать какой NFS сервер стоит на моем НАСе (он там шел в стандартной прошивке)?

25

Re: nfs сервер на Keenetic

vovic67 :

Набор для самостоятельной сборки (также включает в себя исходники)

А можно без исходников. Определенную версию из cvs вроде как можно брать из Makefile. Как пример -
packages/net/transocks (из openwrt). Да и RPC из Makefile поудалять нужно.