У меня следующая проблема. Я хочу установить общий ресурс 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?