CentOS 7 – networking挂载和OpenSM的Systemctl依赖问题

我有以下问题。 我想在CentOS 7客户端上通过Infiniband挂载glusterfs共享。 glusterfs共享“/ data”被名为storage1的主机切断。 对于客户端II设置和最小的CentOS系统。 我安装rdmaopensm来运行opensm 。 两者都通过添加到引导序列

 systemctl enable rdma.service systemctl enable opensm.service 

networking设备使用NetworkManager进行pipe理, ping storage1ping storage1networking上正常工作。 然后我按照gluster文档中的描述添加了一个fstab条目:

 storage1:/data /net/data glusterfs defaults,acl,_netdev 0 0 

当我现在重新启动系统时, net-data.mount服务失败。 启动完成后,我可以login并手动启动:

 systemctl start net-data.mount 

一切正常。 在分析问题后,我发现所有使用客户端的普通以太网连接的其他networking共享(nfs,gluster)都是在启动时挂载的。 在这个journalctl我发现,对于Inifiniband来说,OpenSM在启动时太慢了。 在OpenSM完成启动之前5秒,上述共享的安装将被执行。 但是OpenSM的服务描述表明它是被network.target ,所以在networking共享被挂载之前就被盯上了。

所以我的问题是如何在引导序列的某个地方引入一个睡眠定时器,等待Inifinibandnetworking真的准备好/ OpenSM正在读取。

我不使用gluster的RDMAfunction。

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 

编辑:我发现了一个似乎是非常糟糕的workround。 我编辑了/ usr / libexec / opensm-launch,并且在它的系统等待中追加了sleep 15,直到启动脚本完成。

是否有可能在systemd中整合这样的行为?