Я построил кластер NFS с OCFS2 в качестве резервной файловой системы.
Это работает достаточно хорошо, за исключением того, что когда узел перезагружается / завершается чисто, это вызывает операцию ограждения, поскольку сеть отключается перед размонтированием файловых систем OCFS2, чтобы сообщить другому узлу, что он покидает кластер.
Сеть настроена как соединение LACP с двумя физическими адаптерами и двумя интерфейсами VLAN, обеспечивающими IP-соединение. Все это было настроено в nmtui с потенциально парочкой небольших настроек файлов конфигурации, находящихся в / etc / sysconfig / network-scripts.
Независимо от того, какие зависимости я добавляю (до / после / требует и т. Д.), Включая network-online.target и другие, или добавляя мою собственную службу systemd и скрипт для обработки размонтирования, могу ли я заставить сервер размонтировать файловые системы _netdev OCFS2 через systemd прежде, чем сеть будет разрушена.
Я добавил debug.sh в / usr / lib / systemd / system-shutdown, чтобы записать некоторые детали, здесь начинается последовательность завершения работы, «ocfs unmount device» - это точка, в которой размонтируется OCFS2 ..
[ 309.286479] bonding: bond0: Warning: the permanent HWaddr of ens2f1 - 0c:c4:7a:bb:93:3f - is still in use by bond0. Set the HWaddr of ens2f1 to a different address to avoid conflicts. [ 309.286484] bonding: bond0: releasing active interface ens2f1 [ 309.288270] ixgbe 0000:02:00.1: removed PHC on ens2f1 [ 309.806098] pps pps0: new PPS source ptp0 [ 309.806100] ixgbe 0000:02:00.1: registered PHC device on ens2f1 [ 310.028112] IPv6: ADDRCONF(NETDEV_UP): ens2f1: link is not ready [ 310.028114] 8021q: adding VLAN 0 to HW filter on device ens2f1 [ 310.028750] bonding: bond0: Removing an active aggregator [ 310.028754] bonding: bond0: releasing active interface ens2f0 [ 310.028755] bonding: bond0: Warning: clearing HW address of bond0 while it still has VLANs. [ 310.028756] bonding: bond0: When re-adding slaves, make sure the bond's HW address matches its VLANs'. [ 310.028773] device bond0 entered promiscuous mode [ 310.028818] device ens2f0 entered promiscuous mode [ 310.030895] ixgbe 0000:02:00.0: removed PHC on ens2f0 [ 310.328057] nfsd: last server has exited, flushing export cache [ 310.549842] pps pps1: new PPS source ptp1 [ 310.549844] ixgbe 0000:02:00.0: registered PHC device on ens2f0 [ 310.772136] IPv6: ADDRCONF(NETDEV_UP): ens2f0: link is not ready [ 310.772137] 8021q: adding VLAN 0 to HW filter on device ens2f0 [ 310.773358] IPv6: ADDRCONF(NETDEV_UP): bond0.3xxx: link is not ready [ 310.774187] IPv6: ADDRCONF(NETDEV_UP): bond0.31xx: link is not ready [ 310.775060] IPv6: ADDRCONF(NETDEV_UP): bond0: link is not ready [ 310.775560] IPv6: ADDRCONF(NETDEV_UP): bond0.3xxx: link is not ready [ 310.779437] IPv6: ADDRCONF(NETDEV_UP): bond0.31xx: link is not ready [ 310.832053] IPv6: ADDRCONF(NETDEV_UP): eno2: link is not ready [ 310.883931] IPv6: ADDRCONF(NETDEV_UP): eno1: link is not ready [ 312.995508] o2dlm: Leaving domain 78D2C50072B84C8899E6CA71D23E24CC [ 313.010803] ocfs2: Unmounting device (252,3) on (node 1) [ 313.022493] o2dlm: Leaving domain 4EBC5792914B4DC0B5C548A94924F48A [ 313.039052] ocfs2: Unmounting device (252,5) on (node 1) [ 314.108160] o2dlm: Leaving domain 0B217FA1ACA5452397F9DA8A8B792DA0 [ 314.122868] ocfs2: Unmounting device (252,4) on (node 1) [ 314.231817] ixgbe 0000:02:00.0: removed PHC on ens2f0 [ 314.893756] ixgbe 0000:02:00.1: removed PHC on ens2f1 [ 315.709225] audit_printk_skb: 321 callbacks suppressed [ 315.709227] type=1305 audit(1476683800.733:156): audit_pid=0 old=1053 auid=4294967295 ses=4294967295 res=1 [ 315.718254] type=1130 audit(1476683800.742:157): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=auditd comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success' [ 315.718271] type=1131 audit(1476683800.742:158): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=auditd comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success' [ 315.726152] type=1130 audit(1476683800.750:159): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=systemd-tmpfiles-setup comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success' [ 315.726161] type=1131 audit(1476683800.750:160): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=systemd-tmpfiles-setup comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success' [ 315.734233] type=1130 audit(1476683800.758:161): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=rhel-import-state comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success' [ 315.734251] type=1131 audit(1476683800.758:162): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=rhel-import-state comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success' [ 315.743145] type=1130 audit(1476683800.767:163): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=rhel-readonly comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success' [ 315.743153] type=1131 audit(1476683800.767:164): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=rhel-readonly comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success' [ 315.782154] type=1130 audit(1476683800.806:165): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=lvm2-monitor comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success' [ 315.954555] systemd-shutdown[1]: Sending SIGTERM to remaining processes... [ 315.958696] systemd-journald[720]: Received SIGTERM from PID 1 (systemd-shutdow). [ 315.965900] systemd-shutdown[1]: Sending SIGKILL to remaining processes... [ 315.981786] systemd-shutdown[1]: Unmounting file systems. [ 316.002080] systemd-shutdown[1]: All filesystems unmounted. [ 316.002083] systemd-shutdown[1]: Deactivating swaps.
Причиной этого было слишком быстрое завершение работы remote-fs.target, поскольку из-за сетевой природы OCFS2 для надлежащего отключения файловой системы потребовалось немного больше времени, чем фактический возврат команды unmount.
Следующим шагом в последовательности отключения для отключения сети это означало, что последняя файловая система всегда считалась подключенной к другим узлам, что создавало препятствия.
Мое исправление заключалось в том, чтобы создать собственный сценарий монтирования / размонтирования и службу systemd с соответствующими задержками в скрипте, в зависимости от NetworkManager-wait-online.target.