编译和部署适配器
1. 下载代码编译生成二进制文件
1.2.1 准备环境
准备一台能连网的服务器或者虚拟机,安装 Go 语言、配置相关环境变量。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| cd download/ wget https://golang.google.cn/dl/go1.22.0.linux-amd64.tar.gz tar -C /usr/local -xzf go1.22.0.linux-amd64.tar.gz
export GOROOT=/usr/local/go export GOPATH=/usr/local/gopath export PATH=$PATH:/$GOROOT/bin:$GOPATH/bin
source /etc/profile
go version
go env -w GOPROXY=https://goproxy.cn,direct
go env -w GO111MODULE=on
|
1.2.2 拉取 Slurm 适配器代码
1 2
| [root@manage01]# cd /root [root@manage01]# git clone https://github.com/PKUHPC/scow-slurm-adapter.git
|
1.2.3 进入代码目录,替换 config.go 源码
将以下命令:
1
| scontrol show node=%s | grep ' Gres=' | awk -F':' '{if ($NF ~ /^[0-9]+$/) {print $NF} else {gsub(/[^0-9]/, "", $(NF-1)); print $(NF-1)}}'
|
替换为:
1
| scontrol show node=%s | awk -F= '/Gres=/ {gsub(/[^0-9]/,"", $2); if($2=="") print "Gres=(null)"; else print $2}'
|
1.2.4 编译项目
1 2 3 4 5 6
| [root@manage01 scow-slurm-adapter]# make build CGO_BUILD=0 GOARCH=amd64 go build -o scow-slurm-adapter-amd64
[root@manage01 scow-slurm-adapter]# ls buf.gen.yaml config docs gen go.mod go.sum main.go Makefile README.md scow-slurm-adapter-amd64 tests utils
|
2. 配置、部署 Slurm 适配器
2.1 拷贝文件至 Slurm 管理节点
将编译生成的二进制文件及 config 目录拷贝至 Slurm 管理节点的部署目录中:
1 2 3
| scp -r scow-slurm-adapter-amd64 config slurm_mn:/adapter
|
2.2 修改 config 目录下的 config.yaml 配置信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| log: level: "info"
mysql: host: 127.0.0.1 port: 3306 user: slurm dbname: slurm_acct_db password: 123456 clustername: hpc databaseencode: latin1
service: addr: 0.0.0.0:8972
slurm: defaultqos: normal slurmBinDir: "/usr/bin"
modulepath: path: /lustre/software/module/5.2.0/init/profile.sh
partitiondesc: - name: compute desc: "这是普通的cpu计算分区"
|
2.3 启动 Slurm 适配器
slurm 适配器二进制文件和 config 目录需在同一目录(部署目录)下
1 2 3 4 5 6 7 8 9
| [root@slurm_mn]# ls /adapter config scow-slurm-adapter-amd64
[root@slurm_mn]# chmod +x /adapter/scow-slurm-adapter-amd64
[root@slurm_mn]# cd /adapter && nohup ./scow-slurm-adapter-amd64 > server.log 2>&1 &
|
3. 运维 Slurm 适配器
3.1 查看 Slurm 适配器进程
1 2
| ps aux | grep [s]cow-slurm-adapter-amd64
|
3.2 查看日志信息
1
| less /adapter/server.log
|
4. 安装和配置 OpenSCOW
4.1 下载 openscow-cli
openscow-cli 是官方维护的 OpenSCOW 部署和运维工具,能够帮助您快速部署、管理和维护 OpenSCOW 集群。
参考 open-cli 下载 openscow-cli,并将其存放到一个用于存放 OpenSCOW 配置文件的目录下。
1 2 3 4 5 6 7
| mkdir scow cd scow
cp /path/to/scow-cli ./ chmod +x scow-cli
|
4.2 生成配置文件
4.3 主要配置文件及说明
按照以下顺序配置系统:
| 顺序 |
配置文件 |
功能说明 |
是否必须 |
备注 |
| 1 |
install.yaml |
安装文件 |
必须 |
按照集群需求修改对应参数 |
| 2 |
{集群ID}.yaml |
集群配置文件 |
必须 |
支持多集群,一个集群一个配置文件 |
| 3 |
auth.yaml |
认证系统 |
必须 |
所有集群同一个认证系统 |
| 4 |
mis.yaml |
管理系统 |
可选 |
|
| 5 |
portal.yaml |
门户系统 |
可选 |
若登录节点不是安装的 xfce,需要对应进行修改 |
| 6 |
audit.yaml |
审计系统 |
可选 |
|
5. 配置文件示例
5.1 install.yaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| port: 80 basePath: / imageTag: master portal: {} mis: dbPassword: "MyScow@2026" log: fluentd: logDir: /var/log/fluentd auth: type: ldap ldap: url: "ldap://10.1.0.64:389" baseDn: "dc=pku,dc=com" userDn: "cn=admin,dc=pku,dc=com" password: "MyLdap@2026" userSearchBase: "ou=hpc" userFilters: "(uid={{username}})" audit: {} gateway: proxyReadTimeout: 36000s
|
5.2 hpc.yaml(集群配置文件)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| displayName: hpc
priority: 0
adapterUrl: "10.1.0.64:8972"
loginNodes: - name: login01 address: "10.1.0.65"
loginDesktop: enabled: true wms: - name: Xfce wm: xfce maxDesktops: 3 desktopsDir: scow/desktops
turboVNCPath: /opt/TurboVNC
crossClusterFileTransfer: enabled: false
hpc: enabled: true
ai: enabled: false
scheduler: type: "slurm" slurm: binPath: "/usr/bin"
storage: homePath: "/data/home" publicPath: "/data/public"
|
5.3 auth.yaml(认证系统配置)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
| authType: ldap
tokenTimeoutSeconds: 36000
ldap: url: ldap://10.1.0.64:389 bindDN: cn=Manager,ou=hpc,o=pku bindPassword: "MyLdap@2026" searchBase: "ou=hpc,o=pku" userFilter: "(uid=*)"
attrs: uid: uid name: cn mail: mail
addUser: userBase: "ou=People,ou=hpc,o=pku" homeDir: /data/home/{{ userId }} userIdDnKey: uid groupStrategy: newGroupPerUser
newGroupPerUser: groupBase: "ou=Group,ou=hpc,o=pku" groupIdDnKey: cn
ui: default: backgroundImagePath: "./assets/background.png" backgroundFallbackColor: "#9a0000" logoType: "dark"
slogan: color: "white" title: i18n: default: "开源算力中心门户和管理平台" en: "Open-source Compute Center Portal and Management Platform" zh_cn: "开源算力中心门户和管理平台" texts: - i18n: default: "图形化界面,使用方便" en: "Graphical user interface, user-friendly" zh_cn: "图形化界面,使用方便" - i18n: default: "功能丰富,管理简单" en: "Feature-rich, easy management" zh_cn: "功能丰富,管理简单" - i18n: default: "一体化部署,开箱即用" en: "Integrated deployment, ready to use out of the box" zh_cn: "一体化部署,开箱即用" - i18n: default: "标准化平台,支持算力融合" en: "Standardized platform, supporting compute integration" zh_cn: "标准化平台,支持算力融合" - i18n: default: "开源中立,独立自主" en: "Open-source neutrality, independent and autonomous" zh_cn: "开源中立,独立自主"
|