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

systemd, монтирование SMB шар

 ,


1

1

Подскажите, кто знает, такую вещь.

Есть сервер в сети с samba, есть centos 7 рабочие станции, которые монтируют с него шары. Монтирование осуществляется посредством systemd, вот таким вот юнитом:

mnt-public.mount

[Unit]
  Description=cifs mount script
  Requires=network-online.target
  After=network-online.service
[Mount]
  What=//10.67.124.1/public
  Where=/mnt/public
  Options=username=nobody@r05,password=1,sec=ntlm,noperm
  Type=cifs
[Install]
  WantedBy=multi-user.target

И всё это успешно работает, практически на всех станциях, но есть несколько «фирменных» машин HP, с которыми это не катит, типа на момент выполнения монтирования - сети нет!

Dec  4 09:07:08 yar03 NetworkManager[886]: <info>  [1575439628.3699] ifcfg-rh: new connection /etc/sysconfig/network-scripts/ifcfg-eno1 (724c5388-edce-48ca-a1bb-a55e5b50d61f,"eno1")
Dec  4 09:07:08 yar03 dbus[877]: [system] Activating via systemd: service name='org.freedesktop.hostname1' unit='dbus-org.freedesktop.hostname1.service'
Dec  4 09:07:08 yar03 dbus-daemon[877]: dbus[877]: [system] Activating via systemd: service name='org.freedesktop.hostname1' unit='dbus-org.freedesktop.hostname1.service'
Dec  4 09:07:08 yar03 systemd[1]: Starting Hostname Service...
Dec  4 09:07:09 yar03 dbus[877]: [system] Successfully activated service 'org.freedesktop.hostname1'
Dec  4 09:07:09 yar03 dbus-daemon[877]: dbus[877]: [system] Successfully activated service 'org.freedesktop.hostname1'
Dec  4 09:07:09 yar03 systemd[1]: Started Hostname Service.
Dec  4 09:07:09 yar03 NetworkManager[886]: <info>  [1575439629.2345] settings: hostname: using hostnamed
Dec  4 09:07:09 yar03 NetworkManager[886]: <info>  [1575439629.2346] settings: hostname changed from (none) to "yar03"
Dec  4 09:07:09 yar03 nm-dispatcher[986]: req:1 'hostname': new request (5 scripts)
Dec  4 09:07:09 yar03 nm-dispatcher[986]: req:1 'hostname': start running ordered scripts...
Dec  4 09:07:09 yar03 NetworkManager[886]: <info>  [1575439629.5349] dhcp-init: Using DHCP client 'dhclient'
Dec  4 09:07:09 yar03 NetworkManager[886]: <info>  [1575439629.5350] manager: rfkill: WiFi enabled by radio killswitch; enabled by state file
Dec  4 09:07:09 yar03 NetworkManager[886]: <info>  [1575439629.5351] manager: rfkill: WWAN enabled by radio killswitch; enabled by state file
Dec  4 09:07:09 yar03 NetworkManager[886]: <info>  [1575439629.5351] manager: Networking is enabled by state file
Dec  4 09:07:09 yar03 NetworkManager[886]: <info>  [1575439629.5408] Loaded device plugin: NMBondDeviceFactory (internal)
Dec  4 09:07:09 yar03 NetworkManager[886]: <info>  [1575439629.5408] Loaded device plugin: NMBridgeDeviceFactory (internal)
Dec  4 09:07:09 yar03 NetworkManager[886]: <info>  [1575439629.5409] Loaded device plugin: NMDummyDeviceFactory (internal)
Dec  4 09:07:09 yar03 NetworkManager[886]: <info>  [1575439629.5409] Loaded device plugin: NMEthernetDeviceFactory (internal)
Dec  4 09:07:09 yar03 NetworkManager[886]: <info>  [1575439629.5409] Loaded device plugin: NMInfinibandDeviceFactory (internal)
Dec  4 09:07:09 yar03 NetworkManager[886]: <info>  [1575439629.5410] Loaded device plugin: NMIPTunnelDeviceFactory (internal)
Dec  4 09:07:09 yar03 NetworkManager[886]: <info>  [1575439629.5411] Loaded device plugin: NMMacsecDeviceFactory (internal)
Dec  4 09:07:09 yar03 NetworkManager[886]: <info>  [1575439629.5411] Loaded device plugin: NMMacvlanDeviceFactory (internal)
Dec  4 09:07:09 yar03 NetworkManager[886]: <info>  [1575439629.6952] Loaded device plugin: NMTunDeviceFactory (internal)
Dec  4 09:07:09 yar03 NetworkManager[886]: <info>  [1575439629.6953] Loaded device plugin: NMVethDeviceFactory (internal)
Dec  4 09:07:09 yar03 NetworkManager[886]: <info>  [1575439629.6953] Loaded device plugin: NMVlanDeviceFactory (internal)
Dec  4 09:07:09 yar03 NetworkManager[886]: <info>  [1575439629.6954] Loaded device plugin: NMVxlanDeviceFactory (internal)
Dec  4 09:07:09 yar03 NetworkManager[886]: <info>  [1575439629.8842] Loaded device plugin: NMWifiFactory (/usr/lib64/NetworkManager/libnm-device-plugin-wifi.so)
Dec  4 09:07:09 yar03 NetworkManager[886]: <info>  [1575439629.8996] Loaded device plugin: NMTeamFactory (/usr/lib64/NetworkManager/libnm-device-plugin-team.so)
Dec  4 09:07:09 yar03 NetworkManager[886]: <info>  [1575439629.9289] device (lo): link connected
Dec  4 09:07:09 yar03 NetworkManager[886]: <info>  [1575439629.9299] manager: (lo): new Generic device (/org/freedesktop/NetworkManager/Devices/1)
Dec  4 09:07:09 yar03 NetworkManager[886]: <info>  [1575439629.9318] manager: (eno1): new Ethernet device (/org/freedesktop/NetworkManager/Devices/2)
Dec  4 09:07:09 yar03 NetworkManager[886]: <info>  [1575439629.9334] device (eno1): state change: unmanaged -> unavailable (reason 'managed') [10 20 2]
Dec  4 09:07:09 yar03 kernel: IPv6: ADDRCONF(NETDEV_UP): eno1: link is not ready
Dec  4 09:07:10 yar03 kernel: IPv6: ADDRCONF(NETDEV_UP): eno1: link is not ready
Dec  4 09:07:15 yar03 NetworkManager[886]: <info>  [1575439635.2754] manager: startup complete
Dec  4 09:07:15 yar03 systemd[1]: Started Network Manager Wait Online.
Dec  4 09:07:15 yar03 systemd[1]: Starting LSB: Bring up/down networking...
Dec  4 09:07:15 yar03 sssd[be[default]][954]: Backend is offline
Dec  4 09:07:15 yar03 network[1016]: Активируется интерфейс loopback:  [  OK  ]
Dec  4 09:07:15 yar03 NetworkManager[886]: <info>  [1575439635.6892] audit: op="connection-activate" uuid="724c5388-edce-48ca-a1bb-a55e5b50d61f" name="eno1" result="fail" reason="No suitable device found for this connection."
Dec  4 09:07:15 yar03 network[1016]: Активируется интерфейс eno1:  Ошибка: сбой активации соединения: No suitable device found for this connection.
Dec  4 09:07:15 yar03 network[1016]: [СБОЙ ]
Dec  4 09:07:15 yar03 systemd[1]: network.service: control process exited, code=exited status=1
Dec  4 09:07:15 yar03 systemd[1]: Failed to start LSB: Bring up/down networking.
Dec  4 09:07:15 yar03 systemd[1]: Unit network.service entered failed state.
Dec  4 09:07:15 yar03 systemd[1]: network.service failed.
Dec  4 09:07:15 yar03 systemd[1]: Reached target Network.

Типа нет устройства/сетевухи - eno1, соответственно шары не подключаются, хотя в юните же вроде прописано " After=network-online.service".

Dec  4 09:07:16 yar03 mount[1210]: mount error(101): Network is unreachable
Dec  4 09:07:16 yar03 mount[1210]: Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
Dec  4 09:07:16 yar03 kernel: CIFS VFS: Error connecting to socket. Aborting operation.
Dec  4 09:07:16 yar03 kernel: CIFS VFS: cifs_mount failed w/return code = -101
Dec  4 09:07:16 yar03 mount[1202]: mount error(101): Network is unreachable
Dec  4 09:07:16 yar03 systemd[1]: mnt-public.mount mount process exited, code=exited status=32
Dec  4 09:07:16 yar03 systemd[1]: Failed to mount cifs mount script.
Dec  4 09:07:16 yar03 systemd[1]: Unit mnt-public.mount entered failed state.
Dec  4 09:07:16 yar03 systemd[1]: Started GNOME Display Manager.
...

Потом уже после загрузки «Гуя» нетворк-менеджер видит сетевуху и получает на неё дарес по dhcp, но юнит монтирования уже не запускается повторно..

Dec  4 09:07:30 yar03 NetworkManager[886]: <info>  [1575439650.5204] device (eno1): link connected
Dec  4 09:07:30 yar03 kernel: e1000e: eno1 NIC Link is Up 100 Mbps Full Duplex, Flow Control: Rx/Tx
Dec  4 09:07:30 yar03 kernel: e1000e 0000:00:19.0 eno1: 10/100 speed: disabling TSO
Dec  4 09:07:30 yar03 kernel: IPv6: ADDRCONF(NETDEV_CHANGE): eno1: link becomes ready
Dec  4 09:07:30 yar03 NetworkManager[886]: <info>  [1575439650.5210] device (eno1): state change: unavailable -> disconnected (reason 'carrier-changed') [20 30 40]
Dec  4 09:07:30 yar03 NetworkManager[886]: <info>  [1575439650.5224] policy: auto-activating connection 'eno1'
Dec  4 09:07:30 yar03 NetworkManager[886]: <info>  [1575439650.5320] device (eno1): Activation: starting connection 'eno1' (724c5388-edce-48ca-a1bb-a55e5b50d61f)
Dec  4 09:07:30 yar03 NetworkManager[886]: <info>  [1575439650.5348] device (eno1): state change: disconnected -> prepare (reason 'none') [30 40 0]
Dec  4 09:07:30 yar03 NetworkManager[886]: <info>  [1575439650.5364] manager: NetworkManager state is now CONNECTING
Dec  4 09:07:30 yar03 NetworkManager[886]: <info>  [1575439650.5374] device (eno1): state change: prepare -> config (reason 'none') [40 50 0]
Dec  4 09:07:30 yar03 NetworkManager[886]: <info>  [1575439650.5419] device (eno1): state change: config -> ip-config (reason 'none') [50 70 0]
Dec  4 09:07:30 yar03 NetworkManager[886]: <info>  [1575439650.5428] dhcp4 (eno1): activation: beginning transaction (timeout in 45 seconds)
Dec  4 09:07:30 yar03 NetworkManager[886]: <info>  [1575439650.5903] dhcp4 (eno1): dhclient started with pid 4123
Dec  4 09:07:30 yar03 dhclient[4123]: DHCPDISCOVER on eno1 to 255.255.255.255 port 67 interval 5 (xid=0x1f1867b8)
Dec  4 09:07:31 yar03 dhclient[4123]: DHCPREQUEST on eno1 to 255.255.255.255 port 67 (xid=0x1f1867b8)
Dec  4 09:07:31 yar03 dhclient[4123]: DHCPOFFER from 10.67.125.129
Dec  4 09:07:31 yar03 dhclient[4123]: DHCPACK from 10.67.125.129 (xid=0x1f1867b8)
Dec  4 09:07:31 yar03 NetworkManager[886]: <info>  [1575439651.8049] dhcp4 (eno1):   address 10.67.125.221
Dec  4 09:07:31 yar03 NetworkManager[886]: <info>  [1575439651.8050] dhcp4 (eno1):   plen 25 (255.255.255.128)
Dec  4 09:07:31 yar03 NetworkManager[886]: <info>  [1575439651.8050] dhcp4 (eno1):   gateway 10.67.125.129
Dec  4 09:07:31 yar03 NetworkManager[886]: <info>  [1575439651.8050] dhcp4 (eno1):   lease time 6000
Dec  4 09:07:31 yar03 NetworkManager[886]: <info>  [1575439651.8051] dhcp4 (eno1):   nameserver '10.67.12.134'
Dec  4 09:07:31 yar03 NetworkManager[886]: <info>  [1575439651.8051] dhcp4 (eno1):   nameserver '10.67.4.18'
Dec  4 09:07:31 yar03 NetworkManager[886]: <info>  [1575439651.8051] dhcp4 (eno1):   domain name 'r05.ru'
Dec  4 09:07:31 yar03 NetworkManager[886]: <info>  [1575439651.8051] dhcp4 (eno1): state changed unknown -> bound
Dec  4 09:07:31 yar03 avahi-daemon[874]: Joining mDNS multicast group on interface eno1.IPv4 with address 10.67.125.221.
Dec  4 09:07:31 yar03 avahi-daemon[874]: New relevant interface eno1.IPv4 for mDNS.
Dec  4 09:07:31 yar03 avahi-daemon[874]: Registering new address record for 10.67.125.221 on eno1.IPv4.
Dec  4 09:07:31 yar03 dhclient[4123]: bound to 10.67.125.221 -- renewal in 2770 seconds.
Dec  4 09:07:31 yar03 NetworkManager[886]: <info>  [1575439651.8087] device (eno1): state change: ip-config -> ip-check (reason 'none') [70 80 0]
Dec  4 09:07:31 yar03 NetworkManager[886]: <info>  [1575439651.8102] device (eno1): state change: ip-check -> secondaries (reason 'none') [80 90 0]
Dec  4 09:07:31 yar03 NetworkManager[886]: <info>  [1575439651.8119] device (eno1): state change: secondaries -> activated (reason 'none') [90 100 0]
Dec  4 09:07:31 yar03 NetworkManager[886]: <info>  [1575439651.8122] manager: NetworkManager state is now CONNECTED_LOCAL
Dec  4 09:07:31 yar03 NetworkManager[886]: <info>  [1575439651.8633] manager: NetworkManager state is now CONNECTED_SITE
Dec  4 09:07:31 yar03 NetworkManager[886]: <info>  [1575439651.8635] policy: set 'eno1' (eno1) as default for IPv4 routing and DNS
Dec  4 09:07:31 yar03 NetworkManager[886]: <info>  [1575439651.9390] device (eno1): Activation: successful, device activated.
Dec  4 09:07:31 yar03 dbus-daemon[877]: dbus[877]: [system] Activating via systemd: service name='org.freedesktop.nm_dispatcher' unit='dbus-org.freedesktop.nm-dispatcher.service'
Dec  4 09:07:31 yar03 dbus[877]: [system] Activating via systemd: service name='org.freedesktop.nm_dispatcher' unit='dbus-org.freedesktop.nm-dispatcher.service'
Dec  4 09:07:31 yar03 systemd[1]: Starting Network Manager Script Dispatcher Service...
Dec  4 09:07:31 yar03 NetworkManager[886]: <info>  [1575439651.9482] manager: NetworkManager state is now CONNECTED_GLOBAL
Dec  4 09:07:31 yar03 dbus-daemon[877]: dbus[877]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher'
Dec  4 09:07:31 yar03 dbus[877]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher'
Dec  4 09:07:31 yar03 nm-dispatcher[4135]: req:1 'up' [eno1]: new request (5 scripts)
Dec  4 09:07:31 yar03 nm-dispatcher[4135]: req:1 'up' [eno1]: start running ordered scripts...
Dec  4 09:07:31 yar03 nm-dispatcher[4135]: req:2 'connectivity-change': new request (5 scripts)
Dec  4 09:07:31 yar03 systemd[1]: Started Network Manager Script Dispatcher Service.
Dec  4 09:07:31 yar03 systemd[1]: Unit iscsi.service cannot be reloaded because it is inactive.
Dec  4 09:07:32 yar03 nm-dispatcher[4135]: req:2 'connectivity-change': start running ordered scripts...

Собственно вопрос, как победить данную проблему? На не HP станциях в этой же сети с аналогичной версией ОС и настройкой - всё ОК. И попутно вопросик, можно ли решить проблему перемонтирования шары при пропадании «сети» в рамках юнита монтирования? Т.е. комутатор выключили-включили, всё, шара отвалилась и пока не перезагрузишься, повторно она не перемонтируется при «возобновлении» физического линка.



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

Ответ на: комментарий от anonymous
Dec  5 09:32:44 yar03 systemd[1]: [/etc/systemd/system/mnt-public.mount:10] Unknown lvalue 'Restart' in section 'Mount'
karasic
() автор топика
Ответ на: комментарий от surefire

Тоже не катит. Чую что надо копать в сторону операций с NetworkManager, чтобы после его операций исполнялся юнит.

After=NetworkManager-wait-online.service Что-ли?!

Ваще не понимаю в чем различия между сервисами network и networkmanager разве второе, это не «гуйная морда» для первого просто?

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

разве второе, это не «гуйная морда» для первого просто?

Эээ, нет. NetworkManager это демон такой, за сеть отвечает. Его можно при помощи nmcli конфигурять. А первый это наверное systemd-networkd.

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

network-online.sevice ? Есть он в системе, да и NetworkManager-wait-online.service тоже есть, правда их прописывание в юнит монтирования всё равно не приводит к желаемому результату

я тут https://www.linux.org.ru/forum/admin/14910312

нашел похожую проблему, то как я понял до конца с ней так и не разобрались.

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

На свежеустановленной CentOS 7.6:

[root@localhost ~]# systemctl |grep network
  network.service                                                                          loaded active exited    LSB: Bring up/down networking
  rhel-domainname.service                                                                  loaded active exited    Read and set NIS domainname from /etc/sysconfig/network
  rhel-import-state.service                                                                loaded active exited    Import network configuration from initramfs
  network-online.target                                                                    loaded active active    Network is Online
  network-pre.target                                                                       loaded active active    Network (Pre)
  network.target                                                                           loaded active active    Network

redwagon
()

Буду неоригинальным - а через autofs решить задачу, не?

Pinkbyte ★★★★★
()
Requires=network-online.target
After=network-online.service

тут не нужны. Systemd умеет понимать по типу ФС (в данном случае cifs), что она сетевая, и автоматически прописывает нужные зависимости.

Насчет проблемы - я бы как минимум настроил automount, а как максимум полез бы разбираться, почему networkmanager-wait-online.service (как я понимаю, сетью там рулит именно NM?) начинает считать сеть поднятой.

anonymous
()
22 января 2021 г.

«Открыл для себя» фичу, automount посредством systemd, я её описание встречал на просторах инета, но никак не мог вкурить как именно она работает, но в итоге разобрался...

Создаем два юнита mnt-public.mount и mnt-public.automount в /etc/systemd/system причем имена этих юнитов - важны, они «повторяют» путь куда монтируется шара «/mnt/public» - «mnt-public»

== mnt-public.mount ==

[Unit]
  Description=cifs mount script
  Requires=network-online.target
  After=network-online.service
[Mount]
  What=//10.254.4.1/public
  Where=/mnt/public
  Options=username=nobody,password=1,sec=ntlm,noperm,workgroup=workgroup,dir_mode=0777,file_mode=0777,vers=1.0
  Type=cifs
[Install]
  WantedBy=multi-user.target

== mnt-public.automount ==

[Unit]
  Description=cifs mount script
[Automount]
  Where=/mnt/public
  TimeoutIdleSec=301
[Install]
  WantedBy=multi-user.target

Затем «енейблим» оба юнита. Ключи enable --now означается что разрешить запуск юнита при загрузке и сразу же его запустить (аналог systemctl start ...)

systemctl enable --now mnt-public.mount
systemctl enable mnt-public.automount

Всё, миссия выполнена. Даже если в процессе загрузки машины, не было сети и шара не примонтировалась, то в дальнейшем, когда пользователь обращается к каталогу /mnt/public то шара автоматически пермонтируется, даже если она отключилась(или не примонтировалась при загрузке).

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

Просто через fstab не пробовал?

//ip/share /path/to/share cifs credentials=/path/to/file,uid=1000,gid=1000,noauto,x-systemd.automount,x-systemd.mount-timeout=30,_netdev
0 0

Работает с год. Фейлов не видел. С сетью разбирается правильно. Сначала поднимает сеть, потом монтирует. На HP не пробовал, их нету у меня (с)

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