本项目开发和运维团队为中国工程物理研究院成都科学技术发展中心第四研究室,是基于OpenSCOW和ABHPC单层RDMA网络无盘超算集群开发的用户与管理门户系统,同时也适配于采用Slurm调度系统的集群,旨在将该框架广泛应用于科研、教育和工程行业。
按照木兰宽松协议v2要求,本项目更名为ASCOW且不开源,以保障OpenSCOW的商标权,但发布的公共镜像允许任意用户下载并免费使用,本项目的基础配置文件和OpenSCOW完全兼容(可参考OpenSCOW的安装与配置),增加的部分字段可参考更新日志说明。
本系统完全沿用OpenSCOW框架,感谢北京大学OpenSCOW开发团队的无私贡献,向他们致敬!
本系统推荐使用ASCOW-slurm适配器,可避免交互式作业中文乱码和GPU资源分配等问题,还可实现基于
Environment Module的模块调用统计。
本项目欢迎任意形式的技术合作和研讨,可联系四室主任刘晓毅(邮件:xyliu#mechx.ac.cn)和陈洁高级工程师(邮件:jchen#mechx.ac.cn)。
20250901版本起,ND和SAND功能均在通用版本中实现,因此这两个版本不再更新,后续只更新通用版本。
latest-ND:禁用下载版本(已合并到通用版本)
latest-SAND: 单点登录且禁用下载版本(已合并到通用版本)
首先拉取镜像:
docker pull xyliucd/ascow:latest使用scow-cli生成docker-compose.yml文件:
./cli generate替换为ascow镜像:
sed -i s "@mirrors.pku.edu.cn/pkuhpc-icode/scow:v1.6.4@xyliucd/ascow:latest@g" docker-compose.yml启动容器:
docker compose up -d- [功能优化]显示上传进度与速度
- [功能优化]支持作业计费精度热生效
- [bug修复]http单点登录强制登录提示。
- [功能优化]批量创建用户
- [功能优化]机时价格允许在线设置小数位数(0-4)
- [功能优化]创建用户时重名识别
- [功能优化]信息提醒侧边栏一键已读
- [功能优化]支持在线配置单点登录
- [bug修复]http单点登录强制登录失败。
- [bug修复]http无法信任设备。
- [bug修复]单点登录被踢没有提示
- [bug修复]操作日志中的ip会被解析为容器ip
- [功能优化]冻结费用
- [Bug修复]计量方式删详情查看
- [功能优化]提醒通知加导出excel功能
- [功能优化]系统信息批量删除
- [布局优化]修改操作列图标
- [功能优化]用户名限制只能小写
-
[功能优化]增加CPU和GPU分项计费策略
-
[功能优化]增加平台安全提示
-
[安全]禁止通过网页直接访问文件和文件上传
-
[安全]设置文件上传后缀黑名单
-
[安全]按账号限制登录失败(含非法账号)
-
[安全]前端安全-隐藏敏感运行配置
-
[安全]允许用户信任设备(信任设备不再要求2FA认证),用户查看信任设备列表并删除信任设备。
-
[安全]登录安全增强-2FA+图片验证码+登录限制
注意:启用2FA时,要修改docker-compose.yml,增加mis-server:environment:MIS_CONFIG_ENCRYPT_KEY=请替换为固定的高强度随机字符串
-
[安全]运行httos协议
注意:需要配置docker-compose.yml
gateway: restart: always environment: # 添加 - HTTPS_ENABLED=true - HTTPS_PORT=443 - HTTPS_CERT_PATH=/etc/scow/ssl/fullchain.pem - HTTPS_KEY_PATH=/etc/scow/ssl/privkey.pem - HTTPS_REDIRECT_HTTP_TO_HTTPS=true - HTTPS_HSTS_ENABLED=false - HTTPS_HSTS_MAX_AGE=31536000 - ALLOWED_SERVER_NAME=mx.yinhe596.cn - DEFAULT_SERVER_BLOCK=server {\n listen 80 default_server;\n return 444;\n }\n\n server {\n listen 443 ssl default_server;\n ssl_certificate /etc/scow/ssl/fullchain.pem;\n ssl_certificate_key /etc/scow/ssl/privkey.pem;\n return 444;\n } ports: # 修改端口号为443 - '88:443' volumes: # 添加ssl证书路径 - ./ssl:/etc/scow/ssl:ro auth: environment: - PUBLIC_ORIGIN=https://mx.yinhe596.cn:20388 # 实际访问地址 portal-web: environment: - PROTOCOL=https mis-web: environment: - PROTOCOL=https然后重启 docker compose up -d --force-recreate gateway auth portal-web mis-web
-
[Bug修复]修复信息中心查看更多跳转(因隐藏配置出现的bug)
-
[Bug修复]修复管理员修改用户信息修改被相同邮箱阻断
-
[Bug修复]邮箱验证通过后旧邮箱才失效
-
[功能优化]管理员可查看邮箱验证状态
-
[功能优化]增加站内信和邮件通知统计曲线
-
[功能优化]增加找回密码功能
- [功能优化]资源使用监控,允许管理员查看作业负载
- [功能优化]新建应用时添加临时邮箱接收提醒
- [功能优化]在线配置发送邮箱
- [Bug修复]未设置邮箱时,发送验证邮箱失败提醒
- [功能优化]新增站内信系统
- [Bug修复]删除用户以后同步封锁状态,已经删除的用户会卡死封锁同步
- [功能优化]限制作业名称为:_-数字、大小写字母、中文
- [Bug修复]删除账户和用户时同时删除数据库里账户用户关系
- [重要] 增加用户、账户和租户删除功能。需要更新adapter。
- [Bug修复]设置目录白名单后,作业默认跳转到根目录。
- [功能优化]大于3%用量用户太多时,显示溢出
- [重要] 修复OpenSCOW修改邮箱渗透漏洞:任意登录用户可绕过权限修改其他用户邮箱。
- 修复账号管理员查看计算资源统计部分接口报错
- 仪表盘显示CPU、GPU和节点数情况:
- [Pro]通过设置用户目录白名单,修复任意文件读取漏洞,避免用户选择任意文件点击下载,拼接
../../../etc/passwd,便能读取到passwd。
- 增加版本号;
- 修改系统默认logo。
- 在
应用的yml文件(config/apps/*.yml)的visible字段增加ban_accounts和ban_users字段:
visible:
public: no # 如果public值为yes,则所有用户可见
allow_accounts: caep,mechx # 如果public为no,allow_accounts中账户下的所有用户可见APP
allow_users: user1,uesr2 # 如果public为no,allow_users中的用户可见APP
ban_accounts: xxx1,xxx2 # 如果public为yes,ban_accounts中账户下的所有用户不可见APP
ban_users: xxx1,xxx2 # 如果public为yes,ban_users中的用户不可见APP- 修复bug:文件选择器选择中间位置,前面会丢失反斜杠。
- 去掉夜间模式。
- 在
mis.yml中修正错误提示:
createUser:
builtin:
userIdPattern:
regex: "^[a-z][a-z0-9_]{2,39}$"
errorMessage:
i18n:
default: "用户名只能包含小写字母、数字和下划线,且必须以小写字母开头"
zh_cn: "用户名只能包含小写字母、数字和下划线,且必须以小写字母开头"
en: "Username can only contain lowercase letters, numbers and underscores, and must start with a lowercase letter"- 优化
作业->提交作业页面布局,新增保存为模板前的命名:
- 调整了
作业—>提交作业页面的布局。
- 优化管理员界面的作业显示列表,给用户名和账户加上中文备注,方便识别用户和单位。
- 在
文件目录选择框中新增上传文件和新文件按钮:
- 优化
用户列表显示
- 优化
账户列表显示
- 增加应用搜索栏。
- 账户备注变为可编辑。
- 增加用户单位信息,需要在
auth.yml中添加单位信息:
ldap:
attrs:
uid: uid
name: cn
mail: mail
affiliation: description #新加的- 修正了修改文件时,改变文件权限的Bug
- 修复导入用户管理界面显示姓名为
userID的问题,正常应显示为LDAP中的中文名。
- 美化界面。
- 优化NGINX的websockets超时参数,避免VNC经常断线的问题。
- 优化图标显示,增加最大作业时长统计。
- 优化筛选时间。
- 修正了不正确显示用户登录IP的Bug。
- 优化了应用同步页面,如下所示:
- 优化应用加载页面在APP数量较多时载入缓慢的问题,采用
redis缓存机制。
- 优化
portal-web和portal-server的并发度,全部采用pm2 cluster来实现高并发度。
- 修改最大导出条目为50000条(原来设计为10000条)
- 应用图标大小默认修改为小
- 优化计算资源统计表显示
- 新增计算资源统计板块,可统计不同module核时情况:
- 限制前后缀为
slm.*、*.slm、*.sh、*.bash、*.slurm、slurm.*六种文件可提交,其他文件不可提交。
- 新增已完成作业应用模块的csv导出功能,以统计不同软件模块的机时占比。
- 保存用户作业调取
Environment Module记录,便于后期做软件使用分析。如用户主节点未配置Environment Module记录器,则记录值为unknown。需要配合最新的abhpc-scow-slurm-adapter使用,参见效果图:
- ND和SAND版本合并到通用版本中来。其中,单点登录在
auth.yml文件中新增以下字段实现单点登录:
singleSession: on # on为开通单点登录,off为关闭单点登录通过在portal.yml文件中增加以下字段实现文件下载权限控制:
# 是否允许文件下载
file:
download:
enable: false
#enableAccounts: account1,account2,account3
#enableUsers: user1,user2,user3
# enable为true的情况下,禁止哪些账户或用户下载
#disableAccounts: account1,account2,account3
#disableUsers: user1,user2- 忽略
config/apps/*.yml的错误配置,避免某个交互式应用配置出错时,整个集群报500错误。 - 新增交互式应用的图标大小调整。
- 在交互式应用的
yml文件(config/apps/*.yml)中增加visible字段,使交互式应用可设置为公开或部分账户、用户可见。
visible:
public: no # 如果public值为yes,则所有用户可见
allow_accounts: caep,mechx # 如果public为no,allow_accounts中账户下的所有用户可见APP
allow_users: user1,uesr2 # 如果public为no,allow_users中的用户可见APP- 增加了Portal的pm2并发性能,解决交互式应用在线用户数大于20时系统崩溃的问题。
- 修改文件和文件夹的图标,以方便区分文件夹和文件。
- 文件选择器默认路径设置为用户家目录,而不是根目录/。
- ND版本:禁用文件下载,适用于特殊教学或培训场景。
- SAND版本:增加用户单点登录功能,禁用同一账户在不同电脑上登录,且禁止用户下载文件。
- VNC单点登录和分辨率优化:禁用VNC多点登录,初始分辨率设置为3840x2160以避免部分程序窗口无法放大。
- 交互式应用新增文件和目录选择器,以支持基于后台的非交互式应用,例如:
attributes:
- type: file
name: input
label: 输入文件
required: true
placeholder: "比如:/home/user/fds/test.fds"- 新增目录链接识别,可在交互式应用中直接链接到用户算例目录。
- 优化资源选择,默认CPU和GPU核数独立设置,以方便用户选择资源。




