跳到主要内容

SCOW升级:从v0.4.0(及以上)到v1.0.0

· 阅读需 4 分钟
Huangjun
Developer

本文档适用于从v0.4.0(及以上)升级到v1.0.0。

# 两种方式升级cli
# 1. 直接下载替换本地cli
wget https://github.com/PKUHPC/OpenSCOW/releases/download/v1.0.0/cli-x64

# 2. 使用命令升级
./cli update --release v1.0.0

2. 添加审计日志功能

在install.yaml添加如下配置:

# 可添加审计日志功能,并配置审计日志数据库密码
audit:
dbPassword: "must!chang3this"

install.yaml配置参考(极简配置):

port: 80
basePath: /
imageTag: v1.0.0
portal:
portMappings: {}
mis:
dbPassword: must!chang3this
portMappings: {}
log:
fluentd:
logDir: /var/log/fluentd
auth:
portMappings: {}
audit:
dbPassword: "must!chang3this"
gateway:
proxyReadTimeout: 36000s

添加审计日志配置文件,在./config目录下添加audit.yaml

# 审计系统数据库的信息。可以不修改
db:
host: audit-db
port: 3306
user: root
dbName: scow_audit

3. 修改mis.yaml

修改mis.yaml,去掉源作业数据库相关配置,去掉fetchJobs.db配置,类似如下:

fetchJobs:
# 源作业信息数据库的数据库信息
db:
host: 192.168.188.11
port: 3306
user: root
password: "aUTx373~5pU@!&^6"
dbName: hpc
tableName: job_table
type: mysql

mis.yaml配置参考(极简配置):

db:
host: db
port: 3306
user: root
dbName: scow

fetchJobs:
periodicFetch:
enabled: true
cron: "*/10 * * * *"

predefinedChargingTypes:
- 测试

accountNamePattern:
regex: "(a_)[a-z]+$"

4. 部署适配器

适配器编译部署可参考文档

提示

由于github代码仓库下载的适配器可执行程序是由github action生成,glibc版本(2.34)较高,若slurm适配器部署节点的glibc版本低于该版本,建议下载源码,自行编译。

5. 修改集群配置文件

displayName: hpc01

loginNodes:
- name: hpc01_login01
address: hpc01_login01

adapterUrl: "192.168.188.102:8999"
提示

注意将登录节点loginNodes.address参数和适配器urladapterUrl修改为实际集群的值。详细配置可参考该文档

6. 交互式应用增加图标(可选)

支持为交互式应用配置图标:将图标文件上传至./public/apps/目录,并在应用配置文件中添加图标的路径。

例如给jupyter添加一个图标(已将jupyter.png上传至./public/apps/),在jupyter.yaml中添加如下内容:

logoPath: /apps/jupyter.png
提示

多集群下交互式应用配置可参考该文档

7. 登录页面添加slogan(可选)

支持登录界面自定义slogan内容,修改./config/auth.yaml文件,添加如下内容:

ui:
backgroundImagePath: "./assets/background.png"
backgroundFallbackColor: "#9a0000"
logoType: "dark"
slogan:
color: "white"
title: "开源算力中心门户和管理平台"
texts:
- "图形化界面,使用方便"
- "功能丰富,管理简单"
- "一体化部署,开箱即用"
- "标准化平台,支持算力融合"
- "开源中立,独立自主"
提示

详细配置可参考该文档

8. 重启服务

./cli compose down
./cli compose up -d

交互式应用配置更新

· 阅读需 2 分钟
Sun Yixin
Developer

上一个版本,在SCOW门户系统的交互式应用下,我们通过在config/apps下配置的交互式应用,实现创建各个集群下均可以使用的交互式应用。 但是考虑到不同集群的计算机节点下安装环境不同,可能无法满足对所有获取到的交互式应用的正常使用。

为了让大家更方便、高效地管理和使用SCOW集群,我们在新版本的交互式应用配置部分,实现了以下功能:

  • 实现在config/clusters/{集群ID}/apps下对特定集群可以使用的交互式应用进行单独配置
  • 同时有效兼容旧版本config/apps下所有集群均可以使用的交互式应用配置
  • 交互式应用配置增加可选自定义图标配置,在创建应用页面实现交互式应用图标可视化管理

详细说明可参考SCOW部署和配置下的多集群下的应用配置

OpenSCOW调度器适配器

· 阅读需 3 分钟
Qu Han
Qu Han
Developer

什么是调度器适配器

OpenSCOW是建立在底层作业调度器基础上的系统,它通过与底层调度器进行功能对接,向用户提供各种超算功能。

在之前的实现中,OpenSCOW直接与作业调度器本身交互,因此OpenSCOW必须知道底层调度器内部的某些细节, 导致OpenSCOW内部的某些代码是与调度器种类直接相关的(如最先适配的slurm),这会使适配其它调度器时比较麻烦。

调度器适配器(scheduler-adapter)则是为了解决这一问题,通过一层适配器层,OpenSCOW只与适配器进行交互, 适配器再对接作业调度器,实现OpenSCOW需要的调度器功能。

怎样实现调度器适配器

调度器适配器本质上是一个gRPC服务器,它实现了OpenSCOW定义的一套接口, OpenSCOW只会调用这套接口来实现调度器功能。

因此,只需要为对应种类的作业调度器实现这样一个gRPC服务器,满足上述接口定义,就能够轻松对接OpenSCOW系统

我们已经实现的调度器适配器:

如何平滑升级

这一部分介绍如何从旧版本OpenSCOW升级至新版本,使用调度器适配器

1. 部署调度器适配器

首先需要确保您的集群上部署了对应的调度器适配器,得到访问它的地址及端口号

部署适配器可参考文档:

2. 修改OpenSCOW配置文件

首先确保您使用了最新的OpenSCOW镜像(可查看install.yaml中的imageTag字段)

在用于部署OpenSCOW的scow-deployment文件夹中,修改配置文件:

  • 首先修改集群配置文件

    主要变化为删除slurm配置项, 将loginNodes配置项作为独立的一项配置。新增adapterUrl配置项,标识适配器地址

  • 修改管理系统配置文件

    删除了fetchJobs配置项中的db项,即不再采用源作业信息数据库,通过适配器同步作业信息

3. 不再使用源作业信息数据库

部署使用适配器后,可以不再部署export-jobs项目,同步作业信息的功能由适配器完成

scow-cli

· 阅读需 2 分钟
Chen Junda
Developer

我们致力于以让大家更方便地部署、运维和管理SCOW集群。

之前的scow-deployment为了保证无需安装依赖均可使用,所以采用了和SCOW其他部分不一样的python语言开发,且无法使用第三方包的功能,限制了scow-deployment的功能。

为了解决这些问题,我们重新编写了scow-cli。此工具有以下特点:

  • 使用install.yaml进行配置,配置方式和系统其他部分相同
  • 可自由使用第三方包,功能扩展起来更加方便
  • 此工具采用和系统其他部分相同的技术栈编写,方便后续功能开发和维护
  • 打包为一个可以直接执行的可执行文件,同样无需安装任何依赖即可使用

scow-cli是后续增加更多命令行维护功能的基础,建议大家尽快从scow-deployment迁移到scow-cli

请参考scow-cli文档以下载scow-cli,以及了解如何从scow-deployment迁移到scow-cli

scow-deployment平滑升级指导

· 阅读需 3 分钟
Huangjun
Developer

上一个版本,PKUHPC/scow-deployment项目是纯通过Docker Compose实现的,主要用到了Docker Compose内置的profile功能、读取环境变量以及变量替换功能来实现类似不同配置。但是Docker Compose的这些功能较弱,无法满足未来更多自定义需求。

为简化部署的参数配置,同时为用户提供更易懂和灵活的参数配置,最新版本的PKUHPC/scow-deployment项目使用python动态生成Docker Compose文件,根据用户的需求生成更易理解的Docker Compose文件。

接下来,主要介绍如何平滑的从旧版本升级至新版本。

1. 停止scow服务

# 进入scow-deployment项目目录
cd scow-deployment

# 停止scow服务
docker-compose down

2. 备份配置文件

主要备份.env配置文件:

# 1. 创建备份目录
mkdir /path/to/backup

# 2. 备份部署的环境变量
cp .env /path/to/backup

3. 升级

拉取master分支最新代码:

cd /path/to/scow-deployment
# 同步最新代码
git pull

目录结构如下:

tree -L 1
├── compose.sh # 程序执行入口,执行该脚本会生成docker-compose.json、db.sh文件
├── config-example # scow业务配置模板文件目录
├── config-example.py # scow系统部署参数配置文件模板
├── fluent # fluent配置文件存放目录
├── generate.py # 部署配置文件生成python脚本
└── README.md

编写配置文件:

# 1. 复制配置文件
cp config-example.py config.py

# 2. 配置参数
# 根据和备份的.env文件和config.py中的参数说明,修改config.py文件中的参数

服务启动与停止:

# 启动服务
./compose.sh up -d

# 停止服务
./compose.sh down

./compose.sh支持所有基于Docker Compose文件的docker-compose命令,如:up、down、ps、restart等。

详细说明可参考PKUHPC/scow-deployment项目的README.md