LINUX.ORG.RU

NFS - Input/output error


0

0

Возникла необходимость поднять nfs.

Вроде nfs настроен на данный момент верно - т.к. mount 127.0.0.1:/data/1 ~/test -t nfs работает на ура.

НО: с удаленных машин (и с локальной, через внешний адрес) - не выходит соединиться.

mount some_ip:/data/1 ~/test -v -t nfs
mount.nfs: timeout set for Sun Nov 9 15:50:09 2008
mount.nfs: text-based options: 'addr=some_ip'
mount.nfs: mount(2): Input/output error
mount.nfs: mount system call failed

dmesg|tail -3
mount: server some_ip not responding, timed out
mount: server some_ip not responding, timed out
mount: server some_ip not responding, timed out

В роутере - открыты на входящие соединения порты 111, 2049-2050; внешний адрес в наличии есть.

/etc/exports:

/data/1 *(ro,sync,no_subtree_check)
/data/2 *(ro,sync,no_subtree_check)
/data/3 *(ro,sync,no_subtree_check)
/data/4 *(ro,sync,no_subtree_check)

И еще, только что заметил. При этом частинчно игнорируются настройки в /etc/exports: mount 127.0.0.1:/data/1 ~/test маунтит в режиме rw, а не как указано для всех адресов в /etc/exports.

Ну ещё бывает файл "/etc/hosts.allow". А nfsd не всегда слушает на 2049,2050 порту (так как есть portmap), посмотрите netstat'ом какие порты слушаются.

P.S. Какая операционка

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

cat /etc/hosts.allow
portmap: ALL
lockd: ALL
rquotad: ALL
mountd: ALL
statd: ALL

OS: Gentoo, клиент - arch; в ядре gentoo все ок -
zgrep NFS /proc/config
CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
# CONFIG_NFS_V3_ACL is not set
# CONFIG_NFS_V4 is not set
# CONFIG_NFS_DIRECTIO is not set
CONFIG_NFSD=y
CONFIG_NFSD_V3=y
# CONFIG_NFSD_V3_ACL is not set
# CONFIG_NFSD_V4 is not set
CONFIG_NFSD_TCP=y
# CONFIG_ROOT_NFS is not set
CONFIG_NFS_COMMON=y


Спасибо за netstat - по гуглу, дефолтные порты 2049/2050, но netstat на 127.0.0.1 смонтированный показывает 940. Надо смотреть в сторону настройки портов, судя по всему.

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

Порты, вроде не настраивались. При запуске nfsd берет первые свободные непривилегированные порты и сообщает их portmap'у. Вместо netstat можно было использовать "rpcinfo -p localhost".

ИМХО, популярный в различных FAQ подход "открыть порт 2049" неверен, нужно писать скрипт, который будет править настрйки iptables при запуске nfsd.

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

Проблема в том, что не iptables нужен, а роутер. Iptables отсуствует как класс, все порты - пробиваются через роутер. Можно попробовать curl'ом роутеру передавать порт и открывать его, а при отмонтировании - закрывать, но вероятность того, что у меня это выйдет - низка =_=

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

хм.
rpcinfo -p localhost|grep nfs
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs

netstat|grep nfs
tcp 0 0 localhost:739 localhost:nfs ESTABLISHED
tcp 0 0 localhost:nfs localhost:739 ESTABLISHED

netstat|grep 2049
ничего не выдает.

NekoExMachina
() автор топика

Итого: * в exports - не пашет. Жестко указанный адрес - нормально работает.

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