问题背景
客户报告一个奇怪的问题:将一台主机加入LSF集群以后,在其上运行LSF命令,发现b*命令报错误“User permission denied”.
原因分析
在主机上启动LSF服务进程时,进程会向LSF主管理节点发送数据申请加入LSF集群。LSF主管理节点上的服务进程接收到主机发送来的数据时,首先要对对方的合法性进行判别。判别的项目之一就是根据对方的IP地址解析主机名称,然后再根据解析出的主机名称解析出对方的IP地址,如果IP地址一致并且在合法主机列表中则接收对方的数据,否则会拒绝对方。
而在上面的案例中,主机名称解析是通过DNS实现,但DNS中有主机的正向解析记录,没有反向解析记录,而且在主管理节点上的 /etc/hosts 文件中也没有主机IP地址和主机名称的记录,因此主管理节点认为主机为非法主机,不允许加入LSF集群,从而导致在主机上运行LSF命令报错。
解决方法
查清了原因后,解决方法也非常直接,在DNS里增加主机的反向解析记录。