munge是认证服务,用于生成和验证证书。应用于大规模的HPC集群中。它允许进程在【具有公用的用户和组的】主机组中,对另外一个【本地或者远程的】进程的UID和GID进行身份验证。这些主机构成由共享密钥定义的安全领域。在此领域中的客户端能够在不使用root权限,不保留端口,或其他特定平台下进行创建凭据和验证.
简而言之,在集群中,munge能够实现本地或者远程主机进程的GID和UID验证。
- 采用munge用户运行进程
- 采用命令行方式启动
- 支持开机启动
1 安装
这次安装还是yum直接进行安装,首先删除之前安装的munge-0.5.13
1 | pssh -i -h root_cpu2-64 "yum install -y rpm-build rpmdevtools bzip2-devel openssl-devel zlib-devel openssl openssl-devel" |
手动创建目录,这些目录在munge安装时不会自动创建,分别用于munge的配置、运行、日志等需求。
1 | #单节点 |
如果我们在root下执行munge进程,那么
1 | chown root:root -R /etc/munge |
但是后来发现其实这些都是没有必要的,如果在root下运行,并且在root下创建,那么所有者都是root,不需要做什么改变
之后COMPUTE-1-1作为master节点生成key文件,这里munge.key可以手动创建,但是必须保证其内容在32个字节以上,且文件权限为400方可
1 | echo "helloeveryone,I'ammungekeyonkvmcluster." >/etc/munge/munge.key && chmod 400 /etc/munge/munge.key |
之后munge服务一直无法生成,发现了很多网站上没有提到的一个问题,就是需要修改munge服务的生成配置文件
1 | vim /usr/lib/systemd/system/munge.service |
启动munge服务,之后就可以自启动了
1 | #首先在1节点上启动,然后在后面所有节点启用 |
至此munge在1-64号节点上全部启动完毕
2检测munge
1 | ps -ef|grep munge #grep 可以通过各个节点查看munge进程验证 |
在slurmadmin用户下验证本机:
1 | $ munge -n | unmunge |
munge自动认证的是相同的用户,即UID和GID相同,并不是按照用户名称来匹配,所以在创建slurm用户时必须指定相同的UID和GID.
如果遇到munge认证失败的问题 Invalid credential
1 | pssh -i -h root_cpu2-64 "systemctl restart munge" |