LINUX.ORG.RU
решено ФорумAdmin

клиент отваливается по таймауту

 ,


0

1

С клиента

# mount -vt nfs 192.168.0.1:/home/tests /home/tests -o rw,timeo=30,rsize=4096,wsize=4096
mount.nfs: timeout set for Wed Apr 17 13:17:47 2013
mount.nfs: trying text-based options 'timeo=30,rsize=4096,wsize=4096,vers=4,addr=192.168.0.1,clientaddr=192.168.0.2'
mount.nfs: mount(2): Connection timed out

Настройки сервера:

# grep ^[^#] /etc/conf.d/nfs 
OPTS_RPC_NFSD="1"
OPTS_RPC_MOUNTD="-p 32767"
OPTS_RPC_STATD="-p 32765 -o 32766"
OPTS_RPC_IDMAPD=""
OPTS_RPC_GSSD=""
OPTS_RPC_SVCGSSD=""
OPTS_RPC_RQUOTAD=""
EXPORTFS_TIMEOUT=30

# cat /etc/exports 
# /etc/exports: NFS file systems being exported.  See exports(5).

/home/tests		192.168.0.0/16(rw,all_squash,anonuid=1003,anongid=1003,no_subtree_check)
# cat /etc/hosts.deny
# rpcbind is a replacement for portmap, used for providing NFS service
# Here we forbid all clients to use local RPC services (i.e. NFS) by default,
#   see hosts.allow to see who’s allowed to use’em.
rpcbind: ALL
# cat /etc/hosts.allow 
# Allow local subnets to use local RPC services (i.e. NFS)
rpcbind: 192.168.0.0/255.255.0.0

В /etc/services были добавлены

# Local services

rpc.nfs-cb      32764/tcp                       # RPC nfs callback
rpc.nfs-cb      32764/udp                       # RPC nfs callback
rpc.statd-bc    32765/tcp                       # RPC statd broadcast
rpc.statd-bc    32765/udp                       # RPC statd broadcast
rpc.statd       32766/tcp                       # RPC statd listen
rpc.statd       32766/udp                       # RPC statd listen
rpc.mountd      32767/tcp                       # RPC mountd
rpc.mountd      32767/udp                       # RPC mountd
rpc.lockd       32768/tcp                       # RPC lockd/nlockmgr
rpc.lockd       32768/udp                       # RPC lockd/nlockmgr
rpc.quotad      32769/tcp                       # RPC quotad
rpc.quotad      32769/udp                       # RPC quotad

# netstat -ltupn | grep -E '(2049|327[0-9]+)'
tcp        0      0 0.0.0.0:32765           0.0.0.0:*               LISTEN      20627/rpc.statd     
tcp        0      0 0.0.0.0:32767           0.0.0.0:*               LISTEN      3345/rpc.mountd     
tcp        0      0 0.0.0.0:32768           0.0.0.0:*               LISTEN      -                   
tcp        0      0 0.0.0.0:2049            0.0.0.0:*               LISTEN      -                   
udp        0      0 0.0.0.0:32765           0.0.0.0:*                           20627/rpc.statd     
udp        0      0 0.0.0.0:32767           0.0.0.0:*                           3345/rpc.mountd     
udp        0      0 0.0.0.0:32768           0.0.0.0:*                           -                   
udp        0      0 0.0.0.0:2049            0.0.0.0:*                           -  

Т. к. lockd в ядре, порт для него передаётся вместе с другими параметрами ядру

lockd.nlm_udpport=32768 lockd.nlm_tcpport=32768

# showmount -e
clnt_create: RPC: Unknown host

Что не так?

Deleted

Последнее исправление: fargred (всего исправлений: 1)

Так, clnt_create: RPC: Unknown host теперь показывает что надо, но клиент всё равно отваливается.

Deleted
()
# rpcinfo -p
   program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper
    100024    1   udp  32765  status
    100024    1   tcp  32765  status
    100005    1   udp  32767  mountd
    100005    1   tcp  32767  mountd
    100005    2   udp  32767  mountd
    100005    2   tcp  32767  mountd
    100005    3   udp  32767  mountd
    100005    3   tcp  32767  mountd
    100003    2   tcp   2049  nfs
    100003    3   tcp   2049  nfs
    100003    2   udp   2049  nfs
    100003    3   udp   2049  nfs
    100021    1   udp  32768  nlockmgr
    100021    3   udp  32768  nlockmgr
    100021    4   udp  32768  nlockmgr
    100021    1   tcp  32768  nlockmgr
    100021    3   tcp  32768  nlockmgr
    100021    4   tcp  32768  nlockmgr

Четвёртой версии для nfs как бы и нет. Но клиентский mount не хочет монтировать ни с vers=3, ни с nfsvers=3. Ядра 3.6 на клиенте и 3.8 на сервере. Конифги:

сервера

# zgrep ^[^#].*NFS /proc/config.gz 
CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
CONFIG_NFS_V4=y
CONFIG_NFS_V4_1=y
CONFIG_PNFS_FILE_LAYOUT=m
CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
CONFIG_NFS_FSCACHE=y
CONFIG_NFS_USE_KERNEL_DNS=y
CONFIG_NFSD=y
CONFIG_NFSD_V3=y
CONFIG_NFS_COMMON=y
клиента
CONFIG_NFS_FS=y
CONFIG_NFS_V2=y
CONFIG_NFS_V3=y
CONFIG_NFS_V3_ACL=y
CONFIG_NFS_V4=y
CONFIG_ROOT_NFS=y
CONFIG_NFS_USE_KERNEL_DNS=y
CONFIG_NFSD=y
CONFIG_NFSD_V2_ACL=y
CONFIG_NFSD_V3=y
CONFIG_NFSD_V3_ACL=y
CONFIG_NFSD_V4=y
CONFIG_NFS_ACL_SUPPORT=y
CONFIG_NFS_COMMON=y
Что ещё нужно, чтобы поднять NFS? Как я понял, NFSv4 работает в режиме NFSv3 овер tcp, когда не указано запускать idmapd и прочие, кроме того, что в простыне выше (хотя я запускал nfs и с idmapd, но 4 в колонке vers для nfs в выхлопе rpcinfo от этого не появилось.)

Дебаг логи с сервера в ответ на таймаутищайся запрос

Apr 17 19:11:57 home rpcbind: connect from 192.168.0.2 to getport/addr(nfs)
Apr 17 19:11:57 home rpcbind: connect from 192.168.0.2 to getport/addr(mountd)

Deleted
()
Ответ на: комментарий от Deleted

Пересобрал ядро на сервере с поддержкой сервера для NFSv4

# rpcinfo -p
   program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper
    100024    1   udp  32765  status
    100024    1   tcp  32765  status
    100005    1   udp  32767  mountd
    100005    1   tcp  32767  mountd
    100005    2   udp  32767  mountd
    100005    2   tcp  32767  mountd
    100005    3   udp  32767  mountd
    100005    3   tcp  32767  mountd
    100003    2   tcp   2049  nfs
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100003    2   udp   2049  nfs
    100003    3   udp   2049  nfs
    100003    4   udp   2049  nfs
    100021    1   udp  32768  nlockmgr
    100021    3   udp  32768  nlockmgr
    100021    4   udp  32768  nlockmgr
    100021    1   tcp  32768  nlockmgr
    100021    3   tcp  32768  nlockmgr
    100021    4   tcp  32768  nlockmgr
Но, как и раньше, в логах сервера глухо, если в опциях монтирования у клиента нет vers=3.

Deleted
()
Ответ на: комментарий от Deleted

Но, как и раньше, в логах сервера глухо, если в опциях монтирования у клиента нет vers=3.

Потому что надо было использовать mount.nfs4. Тем не менее, всё равно таймаут.

Deleted
()
Ответ на: комментарий от Deleted

Ё-моё, нужные порты на клиенте блокировались его фаерволом.

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.