Jump to content

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


Recommended Posts

17 часов назад, psbnt сказал:

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

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

Железка? Версия пакета?

Пробовали ли запустить rpc.mountd с помощью strace? Выхлоп strace на pastebin plz.

Link to comment
Share on other sites

6 часов назад, zyxmon сказал:

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

Кинетик точно обновился - с 3.1.6 до 3.1.7. Пакеты тоже недавно обновлялись, но не помню, относились ли они к rpcbind. В течение недели же в репе этот пакет не обновлялся? Точно помню, что неделю назад шара работала, в течение недели обновился на новую прошивку, так же обновлял пакеты. Но обновляю их не реже раза в неделю. Мне кажется, дело не в пакетах. 

Linux Keenetic_Giga 4.9-ndm-3 #2 SMP Mon Oct 7 17:59:49 MSK 2019 mips GNU/Linux (Giga 1010)

# rpc.mountd -v
rpc.mountd version 2.3.4
# df -hT
/dev/sda1            ext4          292.4G    115.4G    162.1G  42% /tmp/mnt/bc14cb6c-d6d3-4623-ac76-ad73d5331fd5
# cat /opt/etc/exports
/tmp/mnt/bc14cb6c-d6d3-4623-ac76-ad73d5331fd5    *(rw,no_root_squash,insecure,sync,no_subtree_check)

 

# cat /opt/etc/init.d/S19rpcbind
#!/bin/sh

ENABLED=yes
PROCS=rpcbind
ARGS="-f -w"
PREARGS=""
DESC=$PROCS
PATH=/opt/sbin:/opt/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

. /opt/etc/init.d/rc.func
# cat /opt/etc/init.d/S20nfsd
#!/bin/sh
# Copyright (C) 2006 OpenWrt.org
        PATH=/opt/sbin:/opt/bin:/opt/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
NFS_D=/opt/var/lib/nfs
LOCK_D=/opt/var/lib/nfs/sm
        start() {
        insmod /lib/modules/4.9-ndm-3/sunrpc.ko
        insmod /lib/modules/4.9-ndm-3/lockd.ko
        insmod /lib/modules/4.9-ndm-3/nfsd.ko
        insmod /lib/modules/4.9-ndm-3/nfs.ko
        grep -q /proc/fs/nfsd /proc/mounts || \
                mount -t nfsd nfsd /proc/fs/nfsd
        mkdir -p $LOCK_D
        touch $NFS_D/rmtab
        sysctl -w fs.nfs.nlm_tcpport=32777 fs.nfs.nlm_udpport=32777 > /dev/null
        rpc.statd -p 32778 -o 32779
        exportfs -r
        rpc.nfsd
        rpc.mountd -p 32780
}
        stop() {
        killall rpc.mountd 2> /dev/null
        rpc.nfsd 0 2> /dev/null
        exportfs -au
        killall rpc.statd 2> /dev/null
        grep -q /proc/fs/nfsd /proc/mounts && \
                umount /proc/fs/nfsd
}
        reload() {
        exportfs -r
}

case "$1" in
        start)
            start
            ;;
        stop)
            stop
            ;;
        restart)
            stop
            start
            ;;
        reload)
                reload
            ;;
        link_up)
                ;;
        ppp_up)
            ;;
        link_down)
            ;;
        ppp_down)
            ;;
        *)
            echo "Usage: $0 {start|stop|restart|reload|link_up|link_down|ppp_up|ppp_down}"
            ;;
esac⏎

strace rpcbind 

https://pastebin.com/JVAfiisq

strace rpcbind -f -w

https://pastebin.com/z5fTJxUQ

Edited by Floppik
Link to comment
Share on other sites

! $$$ Model: Keenetic Ultra
! $$$ Version: 2.06.1

strace че то для меня непонятное, если честно) отделил момент где монтирую

https://pastebin.com/ZP70WRfy

S57nfs-kernel-server 

#!/bin/sh
# Copyright © 2006 OpenWrt.org
    PATH=/opt/sbin:/opt/bin:/opt/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    NFS_D=/opt/var/lib/nfs
    LOCK_D=/opt/var/lib/nfs/sm
    start() {
        for a in sunrpc lockd exportfs nfsd ; do
            if [ $(lsmod | grep -c $a) -eq 0 ]; then
                insmod /lib/modules/4.9-ndm-3/${a}.ko
            fi
        done
        grep -q /proc/fs/nfsd /proc/mounts || \
                mount -t nfsd nfsd /proc/fs/nfsd
        mkdir -p $LOCK_D
        touch $NFS_D/rmtab
        sysctl -w fs.nfs.nlm_tcpport=32777 fs.nfs.nlm_udpport=32777 > /dev/null
        rpc.statd -p 32778 -o 32779
        exportfs -r
        rpc.nfsd -t -u -V 3 -N 4
        rpc.mountd -p 32780
}
    stop() {
        killall rpc.mountd 2> /dev/null
        rpc.nfsd 0 2> /dev/null
        exportfs -au
        killall rpc.statd 2> /dev/null
        grep -q /proc/fs/nfsd /proc/mounts && \
                umount /proc/fs/nfsd
}
    reload() {
        exportfs -r
}

case "$1" in
        start)
            start
            ;;
        stop)
            stop
            ;;
        restart)
            stop
            start
            ;;
        reload)
                reload
            ;;
        link_up)
                ;;
        ppp_up)
            ;;
        link_down)
            ;;
        ppp_down)
            ;;
        *)
            echo «Usage: $0 {start|stop|restart|reload|link_up|link_down|ppp_up|ppp_down}»
            ;;
esac

 

Edited by psbnt
Link to comment
Share on other sites

Осталось еще выяснить - кто виноват - прошивка или пакет(ы).

Просьба сделать downgrade всех пакетов nfs-kernel-server версии 2.4.1 на версию 2.3.4 (обновление было с неделю назад).

Старые версии в архиве. Для mipsel это http://bin.entware.net/mipselsf-k3.4/archive/

  
  • Thanks 1
Link to comment
Share on other sites

28 минут назад, zyxmon сказал:

Осталось еще выяснить - кто виноват - прошивка или пакет(ы).

Просьба сделать downgrade всех пакетов nfs-kernel-server версии 2.4.1 на версию 2.3.4 (обновление было с неделю назад).

Старые версии в архиве. Для mipsel это http://bin.entware.net/mipselsf-k3.4/archive/


  

Заработало! Сделал downgrade этих пакетов на версию 2.3.4:

nfs-kernel-server-utils_2.3.4-1_mipsel-3.4.ipk  
nfs-kernel-server_2.3.4-1_mipsel-3.4.ipk 
nfs-utils-libs_2.3.4-1_mipsel-3.4.ipk
nfs-utils_2.3.4-1_mipsel-3.4.ipk
Link to comment
Share on other sites

да, у меня тоже заработало. спасибо!!!

готов предположить, что дело именно в пакетах. потому что пробовал откатываться до версии 2.16 (legacy которая...), ошибка была та же "is not a directory or regular file"

Link to comment
Share on other sites

Заинтересованных, просьба проверить

nfs-kernel-server_2.4.1-1a_mipsel-3.4.ipk nfs-kernel-server-utils_2.4.1-1a_mipsel-3.4.ipk nfs-utils_2.4.1-1a_mipsel-3.4.ipk nfs-utils-libs_2.4.1-1a_mipsel-3.4.ipk

upd

отправлено в бинарные репы

Edited by TheBB
upd
  • Thanks 1
Link to comment
Share on other sites

21 час назад, TheBB сказал:

Здравствуйте, подтверждаю работает. Спасибо

  • Thanks 1
Link to comment
Share on other sites

  • 2 weeks later...

Мне кажется, что-то с производительностью этого сервера не все гладко. Делаю бэкапы debian систем через nfs сервер и rsync - минут через 5 disk utilization становится 95-98%, а скорость записи 0,6 мб/сек. По ssh и rsync все работает намного быстрее. 

Link to comment
Share on other sites

  • 2 months later...

Добрый день всем.

После обновления Кинетиков на 3.3 NFS перестает работать, т. к. пути в инит скрипте уже другие.

Предлагаю заменить в нем "4.9-ndm-3" на "$(uname -r)", что бы в будущем не менять каждый раз.

И еще хорошо-бы инструкцию в шапке темы переписать на работающую на данный момент.

Link to comment
Share on other sites

  • 5 months later...

Подскажите, пожалуйста, а как завести NFS на свежей прошивке вроде "3.5 Alpha 5" и ядре 4.9? Аппарат KN-1810 (Ultra).

Ставлю opkg install nfs-kernel-server, после этого пытаюсь стартовать /opt/etc/init.d/S57nfs-kernel-server start, но оно ругается, что portmap'а нет (его в репе даже нет), если закомментить его проверку в скрипте, оно падает на modprobe и т.п.

И даже принудительные приседания с insmod /lib/modules/4.9-ndm-4/nfs.ko и insmod /lib/modules/4.9-ndm-4/nfsd.ko просто не работают, ругаются вот таким: insmod: can't insert '/lib/modules/4.9-ndm-4/nfsd.ko': unknown symbol in module, or unknown parameter.

Edited by REVERSE
  • Upvote 1
Link to comment
Share on other sites

  • 2 months later...
В 26.09.2018 в 19:42, TheBB сказал:

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

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

А скрипт запуска ./S57nfs-kernel-server проверяет наличие запущенного portmap.

Достаточно ли тогда просто променять строку на if [ -z "`pidof rpcbind`" ] ; then ?

  • Thanks 1
Link to comment
Share on other sites

В 24.08.2020 в 10:02, Александр Сухоруков сказал:

Достаточно ли тогда просто променять строку на if [ -z "`pidof rpcbind`" ] ; then ?

можно просто вырезать "мёртвый код"

Link to comment
Share on other sites

19 часов назад, TheBB сказал:

можно просто вырезать "мёртвый код"

Тогда как уже писали падает на modprobe

./S57nfs-kernel-server start
Starting NFS server
./S57nfs-kernel-server: line 13: modprobe: not found
mount: mounting rpc_pipefs on /opt/var/lib/nfs/rpc_pipefs failed: No such device
mount: mounting nfsd on /proc/fs/nfsd failed: No such device
./S57nfs-kernel-server: line 25: can't create /proc/fs/nfsd/max_block_size: nonexistent directory
exportfs: Failed to stat /mnt: 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
rpc.nfsd: unable to set any sockets for nfsd

Link to comment
Share on other sites

4 часа назад, Александр Сухоруков сказал:

./S57nfs-kernel-server: line 13: modprobe: not found

`opkg install kmod` или `opkg install kmod_ndms` (второй подтянет прошивки для USB-TV)

+

4 часа назад, Александр Сухоруков сказал:

Please try, as root, 'mount -t nfsd nfsd /proc/fs/nfsd' and then restart rpc.nfsd to correct the problem
rpc.nfsd: unable to set any sockets for nfsd

выполнить то, что просят.

вариации на тему ))) :

забрать скрипт запуска из проекта buildroot , адаптировать и запустит, e.g.:

~ # /opt/etc/init.d/S60nfs restart
Shutting down NFS mountd: OK
Shutting down NFS daemon: OK
Shutting down NFS services: OK
Stopping NFS statd: OK
Starting NFS statd: OK
Starting NFS services: OK
Starting NFS daemon: OK
Starting NFS mountd: OK
~ #

 

Link to comment
Share on other sites

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

Please try, as root, 'mount -t nfsd nfsd /proc/fs/nfsd'

opkg install kmod
Installing kmod (20-2) to root...
Downloading http://bin.entware.net/mipselsf-k3.4/kmod_20-2_mipsel-3.4.ipk
Configuring kmod.
root@Giga /o/e/init.d# mount -t nfsd nfsd /proc/fs/nfsd
mount: mounting nfsd on /proc/fs/nfsd failed: No such device

Однако никак.

 

Link to comment
Share on other sites

У меня giga 3

Текущая версия KeeneticOS: 3.3.16

не знаю то ли я делаю но модули, если они нужны, не подгружаются.

lsmod | grep nfs не выводит ничего

insmod дает ошибку

root@Giga /l/m/4.9-ndm-4# insmod nfsd.ko
insmod: ERROR: could not insert module nfsd.ko: Unknown symbol in module
root@Giga /l/m/4.9-ndm-4# insmod nfs.ko
insmod: ERROR: could not insert module nfs.ko: Unknown symbol in module

modprobe на эти модули ничего не пишет, но и модули не загружает.

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.

 Share

  • Recently Browsing   0 members

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