Как я могу заставить сервер nfs поддерживать версию протокола 2 в Ubuntu 17.10?

У меня есть встроенная система Linux, которая (при выполнении активной разработки на нем) монтирует ее корневую файловую систему как долю nfs, экспортируемую из моего поля человечности. Таким образом, только быть дополнителен ясный: встроенный Linux является клиентом nfs, мое поле человечности является сервером nfs. Я не имею большого контроля над встроенной системой, делающей фактическое монтирование nfs.

Когда я обновил до человечности 17.10, я узнал, что это больше не работает.

После большой отладки я думаю, что точно определил проблему к несоответствию версии протокола: при сниффинге трафика с wireshark я узнал, что встроенная система отправляет пакеты NFS со старой версией протокола 2, но сюда - то, что я вхожу в свое поле человечности, которое я выполняю

$ rpcinfo -p localhost
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
 100005    1   udp  43512  mountd
 100005    1   tcp  39783  mountd
 100005    2   udp  35844  mountd
 100005    2   tcp  58287  mountd
 100005    3   udp  48188  mountd
 100005    3   tcp  60599  mountd
 100003    3   tcp   2049  nfs
 100003    4   tcp   2049  nfs
 100227    3   tcp   2049
 100003    3   udp   2049  nfs
 100227    3   udp   2049
 100021    1   udp  44366  nlockmgr
 100021    3   udp  44366  nlockmgr
 100021    4   udp  44366  nlockmgr
 100021    1   tcp  43079  nlockmgr
 100021    3   tcp  43079  nlockmgr
 100021    4   tcp  43079  nlockmgr
 100024    1   udp  50305  status
 100024    1   tcp  42983  status

так никакая версия 2 nfs, только 3 и 4.

Кто-либо знает, как добавить поддержку версии 2 nfs моему серверу nfs?

0
задан 9 November 2017 в 06:20

3 ответа

Вам необходимо изменить / etc / default / nfs-kernel-server, чтобы иметь следующие строки:

RPCNFSDOPTS="--nfs-version 2,3,4 --debug --syslog"
# To confirm above mods are in effect after service restart use
#     cat /run/sysconfig/nfs-utils
#  or 
#    service nfs-kernel-server status
#

и перезапустить службу

service nfs-kernel-server restart

, позаботиться о том, чтобы после перезапуска службы вам может потребоваться перезапустить общие ресурсы

zfs share -a

Наконец, подтвердите, что протокол 2 поддерживается (tcp и udp, если необходимо)

rpcinfo -p servername | fgrep nfs

Вы должны увидеть это

[ 114]
6
ответ дан 1 November 2019 в 06:11

Если вы обновитесь до Ubuntu 18.04, вы обнаружите, что в /etc/default/nfs-kernel-server больше нет переменной RPCNFSDOPTS.

Мне пришлось угнать RPCNFSDCOUNT, чтобы заставить его использовать NFS v2:

RPCNFSDCOUNT="--nfs-version 2 8"

Доказательство того, что это сработало:

$ service nfs-kernel-server restart
$ cat /proc/fs/nfsd/versions
+2 +3 +4 +4.1 +4.2

После этого я мог смонтировать файловая система из OpenVMS Alpha 8.2 (... да, действительно, ...)

$ tcpip mount dnfs2:[000000] /host=beauty /path="/exports/home" /struct=5
%TCPIP$DNFSMOUNT-S-MOUNTED, /exports/home mounted on _DNFS2:[000000]
2
ответ дан 1 November 2019 в 06:11

Я столкнулся с той же проблемой со своей встроенной системой (TI AM5728). Принятие Вас использует uboot, прием должен изменить командную строку, передаваемую ядру. Это установлено содержанием bootargs переменной среды. (см. uboot документацию для деталей),

Зафиксировать Вас должно будет добавить", nfsvers=3" дополнение на конец nfsroot части Вашей командной строки ядра (bootargs переменная)

В моей системе при начальной загрузке в NFS bootargs переменная строка похожа на следующее:

bootargs=console=ttyO2,115200n8 базируются =/dev/nfs rw rootfstype=nfs ip=dhcp nfsroot=192.168.x.x:/path/to/share

Это хорошо работало до 17.10 и затем умерло - следующее изменение вынуждает ядро соединить NFS v3 использования.

bootargs=console=ttyO2,115200n8 базируются =/dev/nfs rw rootfstype=nfs ip=dhcp nfsroot=192.168.x.x:/path/to/share, nfsvers=3

0
ответ дан 1 November 2019 в 06:11

Другие вопросы по тегам:

Похожие вопросы: