发布于: Jul 30, 2021
如何通过ParallelCluster部署高性能运算集群,接下来我们将为您一一说明。ParallelCluster的安装步骤在这里不再赘述,在参考资料中有ParallelCluster的配置链接。
使用ParallelCluster创建两个集群,集群名称分别为 parallelcluster和pcluster2,每个节点初始配置为一个master node和两个compute node。
1.创建第一个集群
配置文件中需要增加EFS的配置,完整的配置文件参考附录。
[efs customfs] shared_dir = efs encrypted = false performance_mode = generalPurpose
创建第一个集群:
88e9fe506815:~ liangmao$ pcluster create parallelcluster
2.创建第二个集群
创建第二个集群时,需要在集群配置文件中指定第一个集群的efs_fs_id,efs_fs_id需要根据实际情况进行修改。
[efs customfs] shared_dir = efs encrypted = false performance_mode = generalPurpose efs_fs_id = fs-165884bd
创建第二个集群:
88e9fe506815:~ liangmao$ pcluster create pcluster2
创建Slurm 管理节点
Slurm管理节点需要部署在单独的服务器上,运行SlurmDBD进程,并且通过Munge进行身份认证,Slurm管理节点可以使用pcluster集群的master node创建AMI,再从AMI中创建,这样做有以下几个好处:
- 不用安装Munge和Slurm,master node中已经包含。
- 管理节点的Slurm和Munge用户的uid和gid和pcluster集群保持一致
- 不用再额外配置Munge key,使用pcluster创建的key即可。
1.使用集群的master node创建AMI
可以在管理控制台上创建AMI:
2.使用AMI创建管理节点
在管理控制台上创建管理节点,使用上一步创建的AMI。
注意:要把管理节点加入两个slurm master的安全组。
另外,两个slurm master的安全组需要增加一条规则,允许安全组内的实例互相访问。
3.在管理节点上安装和配置MySQL
sudo yum install mysql sudo yum install mysql-server sudo yum install mysql-devel service mysqld start /usr/bin/mysqladmin -u root password <password> chkconfig –add /etc/init.d/mysqld chkconfig mysqld on mysql -u root -p create database slurm_acct_db; create user ‘slurm’@’localhost’ identified by ‘<password>’; create user ‘slurm’@’%’ identified by ‘<password>’; GRANT ALL PRIVILEGES ON slurm_acct_db.* TO ‘slurm’@’localhost’; GRANT ALL PRIVILEGES ON slurm_acct_db.* TO ‘slurm’@’%’ ;
4.修改SlurmDBD配置文件/opt/slurm/etc/slurmdbd.conf
[ec2-user@ip-172-31-30-63 ~]$ more /opt/slurm/etc/slurmdbd.conf # # slurmDBD info #DbdAddr=192.168.80.13 DbdHost=localhost #DbdBackupHost=node14 DbdPort=6819 SlurmUser=slurm #MessageTimeout=60 #DebugLevel=6 #DefaultQOS=normal LogFile=/var/log/SlurmdbdLogFile PidFile=/var/run/slurmdbd.pid PluginDir=/opt/slurm/lib/slurm #PrivateData=accounts,users,usage,jobs #TrackWCKey=yes # # Database info StorageType=accounting_storage/mysql StorageHost=localhost StoragePort=3306 StoragePass=<password> StorageUser=slurm StorageLoc=slurm_acct_db
5.启动slurmdbd进程
#/opt/slurm/sbin/slurmdbd
可以查看日志文件/var/log/SlurmdbdLogFile是否有报错。
2019-05-27T06:45:59.410] error: Processing last message from connection 10(172.31.23.185) uid(496) [2019-05-27T06:45:59.494] error: Processing last message from connection 10(172.31.23.185) uid(496) [2019-05-27T13:24:08.546] error: Problem getting jobs for cluster test [2019-05-27T14:45:34.646] error: Problem getting jobs for cluster test [2019-05-28T02:45:39.496] error: Database settings not recommended values: innodb_buffer_pool_size innodb_log_file_size innodb_lock_wait_timeout [2019-05-28T02:45:39.537] error: chdir(/var/log): Permission denied [2019-05-28T02:45:39.537] chdir to /var/tmp [2019-05-28T02:45:39.538] slurmdbd version 18.08.6-2 started
注:日志建议修改innodb的参数innodb_buffer_pool_size innodb_log_file_size innodb_lock_wait_timeout,可以按实际要求修改。
6.修改/opt/slurm/etc/slurm.conf
测试中发现要在管理节点上执行slurm 相关命令,会检查slurm.conf文件中的配置。因管理节点没有集群,可以把ClusterName和ControlMachine改成任意一个名称和地址,以免和另外两个集群冲突,并注释最后两行配置。
ClusterName=dummy ControlMachine=dummyip … #include slurm_parallelcluster_nodes.conf #PartitionName=compute Nodes=ALL Default=YES MaxTime=INFINITE State=UP
注册第一个集群到管理节点
1.修改master node slurm.conf配置文件
修改/opt/slurm/etc/slurm.conf配置,主要是以下几个配置,其中ip-172-31-30-63为管理节点的主机名。
ClusterName=parallelcluster ControlMachine=ip-172-31-20-39 # JobComp JobCompType=jobcomp/mysql JobCompHost=ip-172-31-30-63 JobCompPort=3306 JobCompPass=<password> JobCompUser=slurm JobCompLoc=slurm_acct_db # # ACCOUNTING JobAcctGatherType=jobacct_gather/linux #JobAcctGatherFrequency=30 # AccountingStorageType=accounting_storage/slurmdbd AccountingStorageHost=ip-172-31-30-63
2.重启slurmctld进程
[root@ip-172-31-20-39 ~]# /etc/init.d/slurm stop stopping slurmctld: [ OK ] slurmctld is stopped slurmctld is stopped [root@ip-172-31-20-39 ~]# /etc/init.d/slurm start starting slurmctld: [ OK ]
3.查看/var/log/slurmctld.log日志是否有报错
4.注册集群到管理节点
#sacctmgr add cluster parallelcluster
5.查看是否注册成功
用sacctmgr list cluster 查看ControlHost,ControlPort的信息是否为空,如果为空,表示注册失败,可以尝试重启slurmctld。
注册成功的日志如下:
检查 /var/log/slurmctld.log:
[2019-05-27T14:35:17.062] cons_res: select_p_node_init [2019-05-27T14:35:17.062] cons_res: preparing for 1 partitions [2019-05-27T14:35:17.062] Running as primary controller [2019-05-27T14:35:17.062] Registering slurmctld at port 6817 with slurmdbd. [2019-05-27T14:35:17.326] No parameter for mcs plugin, default values set [2019-05-27T14:35:17.326] mcs: MCSParameters = (null). ondemand set.
注册第二个集群到管理节点
1.修改master node slurm.conf配置文件
修改/opt/slurm/etc/slurm.conf配置,主要是以下几个配置,其中ip-172-31-30-63为管理节点的主机名。
ClusterName=pcluster2 ControlMachine=ip-172-31-23-185 # JobComp JobCompType=jobcomp/mysql JobCompHost=ip-172-31-30-63 JobCompPort=3306 JobCompPass=slurm JobCompUser=slurm JobCompLoc=slurm_acct_db # # ACCOUNTING JobAcctGatherType=jobacct_gather/linux #JobAcctGatherFrequency=30 # AccountingStorageType=accounting_storage/slurmdbd AccountingStorageHost=ip-172-31-30-63
2.重启slurmctld进程
[root@ip-172-31-20-39 ~]# /etc/init.d/slurm stop stopping slurmctld: [ OK ] slurmctld is stopped slurmctld is stopped [root@ip-172-31-20-39 ~]# /etc/init.d/slurm start starting slurmctld: [ OK ]
3.查看/var/log/slurmctld.log日志是否有报错
4.注册集群到管理节点
#sacctmgr add cluster pcluster2
5.查看是否注册成功
用sacctmgr list cluster 查看ControlHost,ControlPort的信息是否为空,如果为空,表示注册失败,可以尝试重启slurm。
注册成功的日志如下:
检查 /var/log/slurmctld.log:
[2019-05-27T14:42:31.654] cons_res: select_p_reconfigure [2019-05-27T14:42:31.654] cons_res: select_p_node_init [2019-05-27T14:42:31.654] cons_res: preparing for 1 partitions [2019-05-27T14:42:31.654] Running as primary controller [2019-05-27T14:42:31.654] Registering slurmctld at port 6817 with slurmdbd. [2019-05-27T14:42:31.912] No parameter for mcs plugin, default values set [2019-05-27T14:42:31.912] mcs: MCSParameters = (null). ondemand set.
运行测试任务
登陆管理节点,执行以下脚本:
可以在管理节点上看到两个集群,并且可以把测试命令hostname发送到不同的集群。
相关文章