Slurm HPC 集群安装 Slurm-web(python Flask开源项目)

slurm-web,也称为 slurm-wlm-web,是为 Slurm 工作负载管理器提供的一个 Web 界面。Slurm 是一个用于管理大型和小型 Linux 集群的开源、容错且高度可扩展的集群管理和作业调度系统。slurm-web 的主要功能是提供一个方便用户监控和管理 Slurm 集群的途径,而无需直接使用命令行工具。

Slurm-web 在 Slurm 的基础上提供了一个 Web 界面,具有直观的图形视图、清晰的洞察力和先进的可视化功能,可用于跟踪作业和监控组织内 HPC 超级计算机的状态。Slurm-web要求Slurmdbd(版本 >= 23.02)的功能强大的 slurm HPC 集群。

Slurm-web的地址:https://github.com/rackslab/Slurm-web,前端采用vue,后端为Python的Flask。

安装步骤

Slurm HPC 集群安装 Slurm-web(python Flask开源项目)

  • 安装 slurmrestd

    python
    $ sudo apt install slurmrestd
    $ sudo systemctl enable slurmrestd
    $ sudo systemctl start slurmrestd

列出可用的 API 版本

```python
# sinfo --version
slurm-wlm 23.11.4
root@andrew-HP:~# slurmrestd -d list -u slurm
Possible data_parser plugins:
data_parser/v0.0.39
data_parser/v0.0.40
```
  • 使用unix套接字测试 API

    ```python

    curl --unix-socket /run/slurmrestd/slurmrestd.socket http://slurm/slurm/v0.0.40/diag

    {
    "statistics": {
    "parts_packed": 1,
    "req_time": {
    "set": true,
    "infinite": false,
    "number": 1736735146
    },
    "req_time_start": {
    "set": true,
    "infinite": false,
    "number": 1736728764
    },
    "server_thread_count": 2,
    "agent_queue_size": 0,
    "agent_count": 0,
    "agent_thread_count": 0,
    "dbd_agent_queue_size": 0,
    "gettimeofday_latency": 15,
    "schedule_cycle_max": 44,
    "schedule_cycle_last": 43,
    "schedule_cycle_total": 107,
    "schedule_cycle_mean": 14,
    "schedule_cycle_mean_depth": 0,
    "schedule_cycle_per_minute": 1,
    "schedule_queue_length": 0,
    "schedule_exit": {
    "end_job_queue": 107,
    "default_queue_depth": 0,
    "max_job_start": 0,
    "max_rpc_cnt": 0,
    "max_sched_time": 0,
    "licenses": 0
    },
    "jobs_submitted": 0,
    "jobs_started": 0,
    "jobs_completed": 0,
    "jobs_canceled": 0,
    "jobs_failed": 0,
    "jobs_pending": 0,
    "jobs_running": 0,
    "job_states_ts": {
    "set": true,
    "infinite": false,
    "number": 1736735127
    },
    "bf_backfilled_jobs": 0,
    "bf_last_backfilled_jobs": 0,
    "bf_backfilled_het_jobs": 0,
    "bf_cycle_counter": 0,
    "bf_cycle_mean": 0,
    "bf_depth_mean": 0,
    "bf_depth_mean_try": 0,
    "bf_cycle_sum": 0,
    "bf_cycle_last": 0,
    "bf_last_depth": 0,
    "bf_last_depth_try": 0,
    "bf_depth_sum": 0,
    "bf_depth_try_sum": 0,
    "bf_queue_len": 0,
    "bf_queue_len_mean": 0,
    "bf_queue_len_sum": 0,
    "bf_table_size": 0,
    "bf_table_size_mean": 0,
    "bf_when_last_cycle": {
    "set": true,
    "infinite": false,
    "number": 0
    },
    "bf_active": false,
    "bf_exit": {
    "end_job_queue": 0,
    "bf_max_job_start": 0,
    "bf_max_job_test": 0,
    "bf_max_time": 0,
    "bf_node_space_size": 0,
    "state_changed": 0
    },
    "rpcs_by_message_type": [
    {
    "message_type": "MESSAGE_NODE_REGISTRATION_STATUS",
    "type_id": 1002,
    "count": 4,
    "average_time": 117,
    "total_time": 470
    },
    {
    "message_type": "ACCOUNTING_REGISTER_CTLD",
    "type_id": 10003,
    "count": 1,
    "average_time": 93108,
    "total_time": 93108
    },
    {
    "message_type": "REQUEST_PING",
    "type_id": 1008,
    "count": 297,
    "average_time": 91,
    "total_time": 27259
    },
    {
    "message_type": "REQUEST_JOB_INFO",
    "type_id": 2003,
    "count": 297,
    "average_time": 61,
    "total_time": 18125
    },
    {
    "message_type": "REQUEST_NODE_INFO",
    "type_id": 2007,
    "count": 299,
    "average_time": 72,
    "total_time": 21815
    },
    {
    "message_type": "REQUEST_PARTITION_INFO",
    "type_id": 2009,
    "count": 299,
    "average_time": 48,
    "total_time": 14621
    }
    ],
    "rpcs_by_user": [
    {
    "user": "root",
    "user_id": 0,
    "count": 4,
    "average_time": 117,
    "total_time": 470
    },
    {
    "user": "slurm",
    "user_id": 1052,
    "count": 1193,
    "average_time": 146,
    "total_time": 174928
    }
    ]
    },
    "meta": {
    "plugin": {
    "type": "openapi/slurmctld",
    "name": "Slurm OpenAPI slurmctld",
    "data_parser": "data_parser/v0.0.40",
    "accounting_storage": "accounting_storage/slurmdbd"
    },
    "client": {
    "source": "/run/slurmrestd/slurmrestd.socket->socket:[78242] (fd 8)",
    "user": "root",
    "group": "root"
    },
    "command": [],
    "slurm": {
    "version": {
    "major": "23",
    "micro": "4",
    "minor": "11"
    },
    "release": "23.11.4",
    "cluster": "cluster"
    }
    },
    "errors": [],
    "warnings": []
    ```

参考资料

安装 slurm-web

  • 下载软件包的密钥

    ```sh
    $ curl -sS https://pkgs.rackslab.io/keyring.asc | gpg --dearmor | tee /usr/share/keyrings/rackslab.gpg > /dev/null
    $ vi /etc/apt/sources.list.d/rackslab.sources
    Types: deb
    URIs: https://pkgs.rackslab.io/deb
    Suites: ubuntu24.04
    Components: maindp
    Architectures: amd64
    Signed-By: /usr/share/keyrings/rackslab.gpg

    $ sudo apt update
    $ sudo apt install slurm-web-agent slurm-web-gateway
    ```

  • JWT 密钥

slurm-web 使用 JWT 令牌在组件之间进行身份验证。

```sh
$ /usr/libexec/slurm-web/slurm-web-gen-jwt-key
```
  • RacksDB

Slurm-web 使用 RacksDB 生成数据中心机架与计算节点的图形表示。

```sh
$ apt install racksdb
$ cp -r /usr/share/doc/python3-racksdb/examples/db/* /var/lib/racksdb/
$ racksdb datacenters
```
  • Slurm-web 配置文件

    ```sh

    vi /etc/slurm-web/agent.ini

    [service]
    cluster=cluster
    interface=localhost
    port=5012

    vi /etc/slurm-web/gateway.ini

    [service]
    interface=0.0.0.0
    port=5011

    [ui]
    host=http://172.16.37.34:5011

    [agents]
    url=http://localhost:5012

    $ sudo systemctl restart slurm-web-agent.service
    $ sudo systemctl restart slurm-web-gateway.service
    ```

从浏览器访问 Web UI http://:5011

Slurm-web 仅支持 LDAP 身份验证(默认身份验证已禁用)

Slurm HPC 集群安装 Slurm-web(python Flask开源项目)

选择集群
Slurm HPC 集群安装 Slurm-web(python Flask开源项目)

群集和正在运行的作业概览
Slurm HPC 集群安装 Slurm-web(python Flask开源项目)

作业状态
Slurm HPC 集群安装 Slurm-web(python Flask开源项目)

作业详情
Slurm HPC 集群安装 Slurm-web(python Flask开源项目)

节点状态
Slurm HPC 集群安装 Slurm-web(python Flask开源项目)

服务质量(默认正常)
Slurm HPC 集群安装 Slurm-web(python Flask开源项目)

文章整理自互联网,只做测试使用。发布者:Lomu,转转请注明出处:https://www.it1024doc.com/6506.html

(0)
LomuLomu
上一篇 2025 年 1 月 15 日 下午5:44
下一篇 2025 年 1 月 15 日 下午6:46

相关推荐

  • 从混沌到秩序:Python的依赖管理工具分析

    “`markdownPython的依赖管理工具尚未形成统一标准,其原因主要包括: 历史发展的随意性:Python在早期发展过程中,对于依赖管理的重视不足,缺乏从一开始就进行统一规划和设计的意识。 社区的分散性:Python社区庞大且分散,众多开发者和团队各自为政,根据自己的需求和偏好开发工具,缺乏统一的协调和整合机制。 多样化的使用场景:Python应用场…

    未分类 2024 年 12 月 26 日
    52200
  • Java通过百度地图API获取定位-普通IP定位

    登录邮箱提醒功能实现:基于IP定位的实践指南 在本项目中,我们旨在通过用户的IP地址获取其地理位置信息,以便在登录邮箱时提供更精确的提醒。以下是实现该功能的详细步骤和代码示例。 百度地图开放平台 本文将详细介绍如何利用百度地图开放平台的API来实现IP定位功能。首先,访问百度地图开放平台官网了解更多信息。 开始前的准备工作 在开始之前,我们需要完成以下步骤:…

    未分类 2024 年 12 月 27 日
    61800
  • Java 零基础入门学习(小白也能看懂!)

    📚博客主页:爱敲代码的小杨. ✨专栏:《Java SE语法》 | 《数据结构与算法》 | 《C生万物》 |《MySQL探索之旅》 |《Web世界探险家》 ❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️ 🙏小杨水平有限,欢迎各位大佬指点,相互学习进步! 小杨近些在学习人工智能方面的知识,发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默…

    2025 年 1 月 14 日
    39500
  • 常见的图形库对比 Echarts Highcharts AntV

    图形库 图形库 特点 图表类型 适用场景 依赖项 官网/文档 ECharts 功能丰富,支持大规模数据,交互性强 折线图、柱状图、饼图、地图、雷达图、散点图、热力图等 复杂数据可视化 无 https://echarts.apache.org/ Chart.js 简单易用,轻量级,支持响应式设计 折线图、柱状图、饼图、雷达图、散点图等 简单图表,快速开发 无 …

    未分类 2025 年 1 月 11 日
    60000
  • WxPython跨平台开发框架之列表数据的通用打印处理

    在WxPython跨平台开发框架中,我们大多数情况下,数据记录通过wx.Grid的数据表格进行展示,其中表格的数据记录的显示和相关处理,通过在基类窗体 BaseListFrame 进行统一的处理,因此对于常规的数据记录打印,我们也可以在其中集成相关的打印处理,本篇随笔介绍如何利用WxPython内置的打印数据组件实现列表数据的自定义打印处理,以及对记录进行分…

    2024 年 12 月 31 日
    51600

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信