CentOS 7 - проблемы с зависимостью Systemctl при монтировании сети и OpenSM
У меня есть следующая проблема. Я хочу смонтировать общий ресурс glusterfs поверх Infiniband на клиенте CentOS 7. Общий ресурс glusterfs "/data" разделяется хостом с именем storage1. Для настройки клиента II и минимальной системы CentOS. Я установил rdma
а также opensm
чтобы запустить InfinBand. Оба добавляются в последовательность загрузки через
systemctl enable rdma.service
systemctl enable opensm.service
Сетевые устройства управляются с помощью NetworkManager и ping storage1
отлично работает в сети Infiniband. Затем я добавил, как описано в документации по кластеру, запись fstab:
storage1:/data /net/data glusterfs defaults,acl,_netdev 0 0
Когда я теперь перезапустил систему net-data.mount
служба не удалась. После завершения загрузки я могу войти и запустить вручную:
systemctl start net-data.mount
и все работает отлично. Проанализировав проблему, я обнаружил, что все другие сетевые ресурсы (nfs, gluster), использующие обычное соединение Ethernet клиента, монтируются во время загрузки. в journalctl
Я обнаружил, что OpenSM, который необходим для Inifiniband, слишком медленный во время запуска. Монтирование вышеупомянутого общего ресурса выполняется за 5 секунд до завершения запуска OpenSM. Но описание сервиса OpenSM говорит о том, что он разыскивается network.target
и поэтому он просматривается до подключения сетевых ресурсов.
Поэтому мой вопрос заключается в том, как я могу ввести таймер отключения где-нибудь в последовательности загрузки, который ожидает, пока сеть Inifiniband действительно не будет готова /OpenSM читает.
Я не использую функции RDMA Gluster.
Файл службы OpenSM, как установлено yum/rpm:
[Unit]
Description=Starts the OpenSM InfiniBand fabric Subnet Manager
Documentation=man:opensm
DefaultDependencies=false
Before=network.target remote-fs-pre.target
Requires=rdma.service
After=rdma.service
[Service]
Type=forking
ExecStart=/usr/libexec/opensm-launch
[Install]
WantedBy=network.target
Изменить: я нашел рабочую среду, которая кажется очень плохой. Я отредактировал /usr/libexec/opensm-launch и добавляю sleep 15 в его и systemd ждет, пока не будет завершен скрипт запуска.
Можно ли интегрировать такое поведение в systemd?