Назад | Перейти на главную страницу

CentOS 7 - проблемы зависимости Systemctl при подключении к сети и OpenSM

У меня следующая проблема. Я хочу установить общий ресурс glusterfs поверх Infiniband на клиенте CentOS 7. Общий ресурс glusterfs «/ data» разделен хостом с именем storage1. Для клиента я установил минимальную систему CentOS. Я установил rdma и opensm чтобы запустить Infiniband. Оба добавляются в последовательность загрузки через

systemctl enable rdma.service 
systemctl enable opensm.service 

Сетевые устройства управляются с помощью NetworkManager и ping storage1 отлично работает в сети Infiniband. Затем я добавил, как описано в документации по gluster, запись 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?