NFS сервер

Настройка, программирование, распределённые вычисления

Модераторы: Olej, bellic, vikos

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

NFS сервер

Непрочитанное сообщение Olej » 12 мар 2021, 06:03

Точно так же, как здесь в теме рядом: TFTP сервер - понадобился локальный NFS сервер, для работы всё с теми же embedded девайсами.
Логика простая:
- собираем имиджи, прошивки (из исходников, из GIT репозитория)...
- дело это (компмляция, сборка, ...) - долгое, проект огромный, развивается не один год, сборка, если она не инкрементная (--clean) может идти на хорошем железе минут 40-50 :-o
- заливаем собранное в девайс о TFTP...
- вносим мелкие изменения, отладку ... чтобы не делать полную пересборку - можем разместить изменённые компоненты (библиотеки .so) на NFS сервере...
- подключившись к девайсу по UART, монтируем свой NFS ...
- и вуаля :lol: - запускается изменённый экземпляр.

Вопросы точно те же, что и относительно TFTP сервера:
1). какой выбрать проект (если есть из чего выбирать) и чем они отличаются?
2). установить и настроить
3). собрать сюда, под одну тему, полезные публикации, ссылки, ... чтобы завтра не потерять.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: NFS сервер

Непрочитанное сообщение Olej » 12 мар 2021, 07:30

Olej писал(а):
12 мар 2021, 06:03
1). какой выбрать проект (если есть из чего выбирать) и чем они отличаются?
2). установить и настроить
3). собрать сюда, под одну тему, полезные публикации, ссылки, ... чтобы завтра не потерять.
Вот этого, пожалуй, достаточно:

НАСТРОЙКА NFS В UBUNTU
Обновлено: 17 декабря, 2020
...
По сути, это альтернатива общего доступа Windows для Linux, в отличие от Samba реализована на уровне ядра и работает более стабильно.
ПОДНИМАЕМ NFS СЕРВЕР НА UBUNTU
МАЙ 21, 2018
...
НАСТРОЙКА
Как настроить NFS (Network File System) на RHEL/CentOS/Fedora и Debian/Ubuntu
27 марта 2017
...
Параметры NFS
...
Важные команды для NFS

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: NFS сервер

Непрочитанное сообщение Olej » 14 мар 2021, 01:28

Olej писал(а):
12 мар 2021, 07:30
Вот этого, пожалуй, достаточно:
Но и здесь (как и с TFTP) в DNF (Fedora) всё не так... :-?

Код: Выделить всё

[olej@xenix ~]$ lsb_release -a
LSB Version:	:core-4.1-amd64:core-4.1-noarch
Distributor ID:	Fedora
Description:	Fedora release 32 (Thirty Two)
Release:	32
Codename:	ThirtyTwo

Код: Выделить всё

[olej@xenix Zodiac_Systems]$ dnf list installed '*nfs*' | grep -i ^nfs
nfs-utils.x86_64                       1:2.5.3-0.fc32                   @updates

Код: Выделить всё

[olej@xenix Zodiac_Systems]$ dnf list '*nfs*' | grep -i ^nfs
nfs-utils.x86_64                            1:2.5.3-0.fc32              @updates
NFStest.noarch                              2.1.5-8.fc32                fedora  
nfs-ganesha.i686                            3.5-1.fc32                  updates 
nfs-ganesha.x86_64                          3.5-1.fc32                  updates 
nfs-ganesha-ceph.x86_64                     3.5-1.fc32                  updates 
nfs-ganesha-gluster.x86_64                  3.5-1.fc32                  updates 
nfs-ganesha-gpfs.x86_64                     3.5-1.fc32                  updates 
nfs-ganesha-mem.x86_64                      3.5-1.fc32                  updates 
nfs-ganesha-nullfs.x86_64                   3.5-1.fc32                  updates 
nfs-ganesha-proxy.x86_64                    3.5-1.fc32                  updates 
nfs-ganesha-rados-grace.x86_64              3.5-1.fc32                  updates 
nfs-ganesha-rados-urls.x86_64               3.5-1.fc32                  updates 
nfs-ganesha-rgw.x86_64                      3.5-1.fc32                  updates 
nfs-ganesha-selinux.noarch                  3.5-1.fc32                  updates 
nfs-ganesha-utils.x86_64                    3.5-1.fc32                  updates 
nfs-ganesha-vfs.x86_64                      3.5-1.fc32                  updates 
nfs-utils-coreos.x86_64                     1:2.5.3-0.fc32              updates 
nfs4-acl-tools.x86_64                       0.3.5-3.fc32                fedora  
nfsometer.noarch                            1.9-7.fc32                  fedora  
nfswatch.x86_64                             4.99.11-18.fc32             fedora  

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: NFS сервер

Непрочитанное сообщение Olej » 14 мар 2021, 02:44

Olej писал(а):
14 мар 2021, 01:28
Но и здесь (как и с TFTP) в DNF (Fedora) всё не так...

Код: Выделить всё

Здесь, как обещают, всё будет более проще, потому как Fedora/RedFat - более UNIX-овые системы...
Делаю каталог который буду заполнять загружаемыми имиджами и расшаривать по NFS:
[olej@xenix Zodiac_Systems]$ sudo mkdir /nfs_builds
[sudo] пароль для olej:.

[olej@xenix Zodiac_Systems]$ sudo chmod a+w /nfs_builds

[olej@xenix Zodiac_Systems]$ ls -ld /nfs_builds
drwxrwxrwx 1 root root 0 мар 14 00:37 /nfs_builds
Прописываю NFS-разделяемый ресурсы ... пока так:

Код: Выделить всё

[root@xenix etc]# cat /etc/exports 
/nfs_builds 192.168.1.0/24(rw,sync,no_root_squash)
/home/olej  192.168.1.0/24(ro,no_root_squash)

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: NFS сервер

Непрочитанное сообщение Olej » 14 мар 2021, 02:48

Olej писал(а):
14 мар 2021, 02:44
Прописываю NFS-разделяемый ресурсы
Старт NFS сервера:

Код: Выделить всё

[root@xenix etc]# systemctl start rpcbind nfs-server

[root@xenix etc]# systemctl enable rpcbind nfs-server
Created symlink /etc/systemd/system/multi-user.target.wants/rpcbind.service → /usr/lib/systemd/system/rpcbind.service.
Created symlink /etc/systemd/system/multi-user.target.wants/nfs-server.service → /usr/lib/systemd/system/nfs-server.service.
Проверка:

Код: Выделить всё

[root@xenix etc]# systemctl status rpcbind nfs-server
● rpcbind.service - RPC Bind
     Loaded: loaded (/usr/lib/systemd/system/rpcbind.service; enabled; vendor preset: disabled)
     Active: active (running) since Sun 2021-03-14 00:44:49 EET; 1min 20s ago
TriggeredBy: ● rpcbind.socket
       Docs: man:rpcbind(8)
   Main PID: 34845 (rpcbind)
      Tasks: 1 (limit: 9497)
     Memory: 1.5M
     CGroup: /system.slice/rpcbind.service
             └─34845 /usr/bin/rpcbind -w -f

мар 14 00:44:49 xenix.localdomain systemd[1]: Starting RPC Bind...
мар 14 00:44:49 xenix.localdomain systemd[1]: Started RPC Bind.

● nfs-server.service - NFS server and services
     Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabled; vendor preset: disabled)
    Drop-In: /run/systemd/generator/nfs-server.service.d
             └─order-with-mounts.conf
     Active: active (exited) since Sun 2021-03-14 00:44:50 EET; 1min 20s ago
   Main PID: 34870 (code=exited, status=0/SUCCESS)
      Tasks: 0 (limit: 9497)
     Memory: 0B
     CGroup: /system.slice/nfs-server.service

мар 14 00:44:50 xenix.localdomain systemd[1]: Starting NFS server and services...
мар 14 00:44:50 xenix.localdomain systemd[1]: Finished NFS server and services.
И ещё более проверка по сетевым портам:

Код: Выделить всё

[olej@xenix INT1902-168-NSK]$ rpcinfo -p | grep nfs
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100227    3   tcp   2049  nfs_acl
И проверка того, что NFS поддерживается в ядре:

Код: Выделить всё

[olej@xenix INT1902-168-NSK]$ cat /proc/filesystems | grep nfs
nodev       nfsd

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: NFS сервер

Непрочитанное сообщение Olej » 14 мар 2021, 02:51

Olej писал(а):
14 мар 2021, 02:48
Проверка:
Проверка клиентом на совсем другом хосте LAN (там Fedora 32, а здесь Mint 20.1):

Код: Выделить всё

olej@nvidia:~$ sudo mkdir /mnt/nfs
[sudo] пароль для olej:

olej@nvidia:~$ sudo mount 192.168.1.20:/nfs_builds /mnt/nfs
mount: /mnt/nfs: bad option; for several filesystems (e.g. nfs, cifs) you might need a /sbin/mount.<type> helper program
И тут получаем облом... :-o
Такой облом указывает, что на этом компьютере не была установлена клиентская часть.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: NFS сервер

Непрочитанное сообщение Olej » 14 мар 2021, 02:58

Olej писал(а):
14 мар 2021, 02:51
Такой облом указывает, что на этом компьютере не была установлена клиентская часть.
Заодно и серверная часть, в DEB дистрибутиве, она мне и здесь понадобится...

Код: Выделить всё

olej@nvidia:~$ sudo apt install nfs-kernel-server nfs-common
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Будут установлены следующие дополнительные пакеты:
  libnfsidmap2 libtirpc-common libtirpc3 rpcbind
Предлагаемые пакеты:
  open-iscsi watchdog
Следующие НОВЫЕ пакеты будут установлены:
  libnfsidmap2 libtirpc-common libtirpc3 nfs-common nfs-kernel-server rpcbind
Обновлено 0 пакетов, установлено 6 новых пакетов, для удаления отмечено 0 пакетов, и 1 пакетов не обновлено.
Необходимо скачать 458 kB архивов.
После данной операции объём занятого дискового пространства возрастёт на 1 782 kB.
Хотите продолжить? [Д/н] y
Пол:1 http://archive.ubuntu.com/ubuntu focal/main amd64 libtirpc-common all 1.2.5-1 [7 632 B]
Пол:2 http://archive.ubuntu.com/ubuntu focal/main amd64 libtirpc3 amd64 1.2.5-1 [77,2 kB]
Пол:3 http://archive.ubuntu.com/ubuntu focal/main amd64 rpcbind amd64 1.2.5-8 [42,8 kB]
Пол:4 http://archive.ubuntu.com/ubuntu focal/main amd64 libnfsidmap2 amd64 0.25-5.1ubuntu1 [27,9 kB]
Пол:5 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 nfs-common amd64 1:1.3.4-2.5ubuntu3.3 [204 kB]
Пол:6 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 nfs-kernel-server amd64 1:1.3.4-2.5ubuntu3.3 [98,9 kB]
Получено 458 kB за 1с (421 kB/s)
Выбор ранее не выбранного пакета libtirpc-common.
(Чтение базы данных … на данный момент установлено 443185 файлов и каталогов.)
Подготовка к распаковке …/0-libtirpc-common_1.2.5-1_all.deb …
Распаковывается libtirpc-common (1.2.5-1)
Выбор ранее не выбранного пакета libtirpc3:amd64.
Подготовка к распаковке …/1-libtirpc3_1.2.5-1_amd64.deb …
Распаковывается libtirpc3:amd64 (1.2.5-1) …
Выбор ранее не выбранного пакета rpcbind.
Подготовка к распаковке …/2-rpcbind_1.2.5-8_amd64.deb …
Распаковывается rpcbind (1.2.5-8) …
Выбор ранее не выбранного пакета libnfsidmap2:amd64.
Подготовка к распаковке …/3-libnfsidmap2_0.25-5.1ubuntu1_amd64.deb …
Распаковывается libnfsidmap2:amd64 (0.25-5.1ubuntu1) …
Выбор ранее не выбранного пакета nfs-common.
Подготовка к распаковке …/4-nfs-common_1%3a1.3.4-2.5ubuntu3.3_amd64.deb …
Распаковывается nfs-common (1:1.3.4-2.5ubuntu3.3) …
Выбор ранее не выбранного пакета nfs-kernel-server.
Подготовка к распаковке …/5-nfs-kernel-server_1%3a1.3.4-2.5ubuntu3.3_amd64.deb …
Распаковывается nfs-kernel-server (1:1.3.4-2.5ubuntu3.3) …
Настраивается пакет libtirpc-common (1.2.5-1) …
Настраивается пакет libnfsidmap2:amd64 (0.25-5.1ubuntu1) …
Настраивается пакет libtirpc3:amd64 (1.2.5-1) …
Настраивается пакет rpcbind (1.2.5-8) …
Created symlink /etc/systemd/system/multi-user.target.wants/rpcbind.service → /lib/systemd/system/rpcbind.service.
Created symlink /etc/systemd/system/sockets.target.wants/rpcbind.socket → /lib/systemd/system/rpcbind.socket.
Настраивается пакет nfs-common (1:1.3.4-2.5ubuntu3.3) …

Creating config file /etc/idmapd.conf with new version
Добавляется системный пользователь «statd» (UID 132) ...
Добавляется новый пользователь «statd» (UID 132) в группу «nogroup» ...
Не создаётся домашний каталог «/var/lib/nfs».
Created symlink /etc/systemd/system/multi-user.target.wants/nfs-client.target → /lib/systemd/system/nfs-client.target.
Created symlink /etc/systemd/system/remote-fs.target.wants/nfs-client.target → /lib/systemd/system/nfs-client.target.

Created symlink /etc/systemd/system/sockets.target.wants/rpcbind.socket → /lib/systemd/system/rpcbind.socket.
Настраивается пакет nfs-common (1:1.3.4-2.5ubuntu3.3) …

Creating config file /etc/idmapd.conf with new version
Добавляется системный пользователь «statd» (UID 132) ...
Добавляется новый пользователь «statd» (UID 132) в группу «nogroup» ...
Не создаётся домашний каталог «/var/lib/nfs».
Created symlink /etc/systemd/system/multi-user.target.wants/nfs-client.target → /lib/systemd/system/nfs-client.target.
Created symlink /etc/systemd/system/remote-fs.target.wants/nfs-client.target → /lib/systemd/system/nfs-client.target.
nfs-utils.service is a disabled or a static unit, not starting it.
Настраивается пакет nfs-kernel-server (1:1.3.4-2.5ubuntu3.3) …
Created symlink /etc/systemd/system/multi-user.target.wants/nfs-server.service → /lib/systemd/system/nfs-server.service.
Job for nfs-server.service canceled.

Creating config file /etc/exports with new version

Creating config file /etc/default/nfs-kernel-server with new version
Job for nfs-server.service canceled.
invoke-rc.d: initscript nfs-kernel-server, action "start" failed.
● nfs-server.service - NFS server and services
     Loaded: loaded (/lib/systemd/system/nfs-server.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Sun 2021-03-14 00:56:07 EET; 3ms ago
    Process: 960704 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS)
    Process: 960705 ExecStart=/usr/sbin/rpc.nfsd $RPCNFSDARGS (code=exited, status=1/FAILURE)
    Process: 960707 ExecStopPost=/usr/sbin/exportfs -au (code=exited, status=0/SUCCESS)
    Process: 960710 ExecStopPost=/usr/sbin/exportfs -f (code=exited, status=0/SUCCESS)
   Main PID: 960705 (code=exited, status=1/FAILURE)

мар 14 00:56:07 nvidia systemd[1]: Starting NFS server and services...
мар 14 00:56:07 nvidia rpc.nfsd[960705]: error starting threads: errno 12 (Cannot allocate memory)
мар 14 00:56:07 nvidia systemd[1]: nfs-server.service: Main process exited, code=exited, status=1/FAILURE
мар 14 00:56:07 nvidia systemd[1]: nfs-server.service: Failed with result 'exit-code'.
мар 14 00:56:07 nvidia systemd[1]: Stopped NFS server and services.
Failed to start nfs-kernel-server, ignoring.
Обрабатываются триггеры для systemd (245.4-4ubuntu3.4) …
Обрабатываются триггеры для man-db (2.9.1-1) …
Обрабатываются триггеры для ureadahead (0.100.0-21) …
Обрабатываются триггеры для libc-bin (2.31-0ubuntu9.2) …
И вот теперь сетевое монтирование состоялось:

Код: Выделить всё

olej@nvidia:~$ sudo mount 192.168.1.20:/nfs_builds /mnt/nfs

olej@nvidia:~$ mount | grep nfs
nfsd on /proc/fs/nfsd type nfsd (rw,relatime)
192.168.1.20:/nfs_builds on /mnt/nfs type nfs4 (rw,relatime,vers=4.2,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.11,local_lock=none,addr=192.168.1.20)

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: NFS сервер

Непрочитанное сообщение Olej » 14 мар 2021, 03:00

Olej писал(а):
14 мар 2021, 02:58
И вот теперь сетевое монтирование состоялось:
На клиенте создаю тестовый файл в разделяемом каталоге (по записи!):

Код: Выделить всё

olej@nvidia:~$ echo 2222222222222222222222222222222222222 > /mnt/nfs/test2.txt

olej@nvidia:~$ ls -l /mnt/nfs
итого 4
-rw-rw-r-- 1 olej olej 38 мар 14 00:58 test2.txt
Нахожу этот файл непосредственно в разделяемом каталоге сервера:

Код: Выделить всё

olej@xenix ~]$ hostname
xenix.localdomain

[olej@xenix ~]$ ls -l /nfs_builds/
итого 4
-rw-rw-r-- 1 olej olej 38 мар 14 00:58 test2.txt
Ура! :lol:

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: NFS сервер

Непрочитанное сообщение Olej » 14 мар 2021, 03:03

Olej писал(а):
14 мар 2021, 03:00
Ура!
То же самое на embedded железке (TV box) весьма давнего года выпуска:

Код: Выделить всё

-sh-3.2# hostname
(none)

-sh-3.2# pwd
/mnt/flash

-sh-3.2# mkdir nfs

-sh-3.2# ls -l 
-rw-r--r--    1 root     root     10006528 Mar 10 10:48 92c0cf76b2d61f6b411c1bf35e21bf38b60a88e9
drwxr-xr-x    2 root     root         1024 Jan  1  2000 dhcpc
drwx------    2 root     root        12288 Jan  1  2000 lost+found
drwxr-xr-x    2 root     root         1024 Mar 13 23:01 nfs
drwxr-xr-x    4 root     root         1024 Jan  1  2000 zodiac
И тут ожидает облом:

Код: Выделить всё

-sh-3.2# mount 192.168.1.20:/nfs_builds /mnt/flash/nfs
mount: mounting 192.168.1.20:/nfs_builds on /mnt/flash/nfs failed: Input/output error
Хотя сетевая доступность хоста-сервера есть (проверяем в первую очередь!):

Код: Выделить всё

-sh-3.2# ping -c2 192.168.1.20
PING 192.168.1.20 (192.168.1.20): 56 data bytes
64 bytes from 192.168.1.20: seq=0 ttl=64 time=0.346 ms
64 bytes from 192.168.1.20: seq=1 ttl=64 time=0.241 ms

--- 192.168.1.20 ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 0.241/0.293/0.346 ms

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: NFS сервер

Непрочитанное сообщение Olej » 14 мар 2021, 03:11

Olej писал(а):
14 мар 2021, 03:03
И тут ожидает облом:
Читаем такое про древние железки - https://www.linux.org.ru/forum/general/14453819
И правим (дописали) конфиги сервера:

Код: Выделить всё

[root@xenix etc]# tail -n9 /etc/nfs.conf 
udp=y
tcp=n
vers2=y
vers3=y
vers4=n
vers4.0=n
vers4.1=n
vers4.2=n
Перезапустили:

Код: Выделить всё

[root@xenix etc]# systemctl restart rpcbind nfs-server
Проверили по протоколам:

Код: Выделить всё

[root@xenix etc]# rpcinfo -p | grep nfs
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100227    3   tcp   2049  nfs_acl
А вот это мне не нравится ... нужно будет перепроверить!
И опять на embedded облом!

Код: Выделить всё

-sh-3.2# mount 192.168.1.20:/nfs_builds /mnt/flash/nfs
mount: mounting 192.168.1.20:/nfs_builds on /mnt/flash/nfs failed: Input/output error

Ответить

Вернуться в «Сети»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 25 гостей