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

打印 上一主题 下一主题

主题 924|帖子 924|积分 2772

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。
安装步调



  • 安装 slurmrestd
  1. $ sudo apt install slurmrestd
  2. $ sudo systemctl enable slurmrestd
  3. $ sudo systemctl start slurmrestd
复制代码
列出可用的 API 版本
  1. # sinfo --version
  2. slurm-wlm 23.11.4
  3. root@andrew-HP:~# slurmrestd -d list -u slurm
  4. Possible data_parser plugins:
  5. data_parser/v0.0.39
  6. data_parser/v0.0.40
复制代码

  • 利用unix套接字测试 API
  1. # curl --unix-socket /run/slurmrestd/slurmrestd.socket http://slurm/slurm/v0.0.40/diag
  2. {
  3.   "statistics": {
  4.     "parts_packed": 1,
  5.     "req_time": {
  6.       "set": true,
  7.       "infinite": false,
  8.       "number": 1736735146
  9.     },
  10.     "req_time_start": {
  11.       "set": true,
  12.       "infinite": false,
  13.       "number": 1736728764
  14.     },
  15.     "server_thread_count": 2,
  16.     "agent_queue_size": 0,
  17.     "agent_count": 0,
  18.     "agent_thread_count": 0,
  19.     "dbd_agent_queue_size": 0,
  20.     "gettimeofday_latency": 15,
  21.     "schedule_cycle_max": 44,
  22.     "schedule_cycle_last": 43,
  23.     "schedule_cycle_total": 107,
  24.     "schedule_cycle_mean": 14,
  25.     "schedule_cycle_mean_depth": 0,
  26.     "schedule_cycle_per_minute": 1,
  27.     "schedule_queue_length": 0,
  28.     "schedule_exit": {
  29.       "end_job_queue": 107,
  30.       "default_queue_depth": 0,
  31.       "max_job_start": 0,
  32.       "max_rpc_cnt": 0,
  33.       "max_sched_time": 0,
  34.       "licenses": 0
  35.     },
  36.     "jobs_submitted": 0,
  37.     "jobs_started": 0,
  38.     "jobs_completed": 0,
  39.     "jobs_canceled": 0,
  40.     "jobs_failed": 0,
  41.     "jobs_pending": 0,
  42.     "jobs_running": 0,
  43.     "job_states_ts": {
  44.       "set": true,
  45.       "infinite": false,
  46.       "number": 1736735127
  47.     },
  48.     "bf_backfilled_jobs": 0,
  49.     "bf_last_backfilled_jobs": 0,
  50.     "bf_backfilled_het_jobs": 0,
  51.     "bf_cycle_counter": 0,
  52.     "bf_cycle_mean": 0,
  53.     "bf_depth_mean": 0,
  54.     "bf_depth_mean_try": 0,
  55.     "bf_cycle_sum": 0,
  56.     "bf_cycle_last": 0,
  57.     "bf_last_depth": 0,
  58.     "bf_last_depth_try": 0,
  59.     "bf_depth_sum": 0,
  60.     "bf_depth_try_sum": 0,
  61.     "bf_queue_len": 0,
  62.     "bf_queue_len_mean": 0,
  63.     "bf_queue_len_sum": 0,
  64.     "bf_table_size": 0,
  65.     "bf_table_size_mean": 0,
  66.     "bf_when_last_cycle": {
  67.       "set": true,
  68.       "infinite": false,
  69.       "number": 0
  70.     },
  71.     "bf_active": false,
  72.     "bf_exit": {
  73.       "end_job_queue": 0,
  74.       "bf_max_job_start": 0,
  75.       "bf_max_job_test": 0,
  76.       "bf_max_time": 0,
  77.       "bf_node_space_size": 0,
  78.       "state_changed": 0
  79.     },
  80.     "rpcs_by_message_type": [
  81.       {
  82.         "message_type": "MESSAGE_NODE_REGISTRATION_STATUS",
  83.         "type_id": 1002,
  84.         "count": 4,
  85.         "average_time": 117,
  86.         "total_time": 470
  87.       },
  88.       {
  89.         "message_type": "ACCOUNTING_REGISTER_CTLD",
  90.         "type_id": 10003,
  91.         "count": 1,
  92.         "average_time": 93108,
  93.         "total_time": 93108
  94.       },
  95.       {
  96.         "message_type": "REQUEST_PING",
  97.         "type_id": 1008,
  98.         "count": 297,
  99.         "average_time": 91,
  100.         "total_time": 27259
  101.       },
  102.       {
  103.         "message_type": "REQUEST_JOB_INFO",
  104.         "type_id": 2003,
  105.         "count": 297,
  106.         "average_time": 61,
  107.         "total_time": 18125
  108.       },
  109.       {
  110.         "message_type": "REQUEST_NODE_INFO",
  111.         "type_id": 2007,
  112.         "count": 299,
  113.         "average_time": 72,
  114.         "total_time": 21815
  115.       },
  116.       {
  117.         "message_type": "REQUEST_PARTITION_INFO",
  118.         "type_id": 2009,
  119.         "count": 299,
  120.         "average_time": 48,
  121.         "total_time": 14621
  122.       }
  123.     ],
  124.     "rpcs_by_user": [
  125.       {
  126.         "user": "root",
  127.         "user_id": 0,
  128.         "count": 4,
  129.         "average_time": 117,
  130.         "total_time": 470
  131.       },
  132.       {
  133.         "user": "slurm",
  134.         "user_id": 1052,
  135.         "count": 1193,
  136.         "average_time": 146,
  137.         "total_time": 174928
  138.       }
  139.     ]
  140.   },
  141.   "meta": {
  142.     "plugin": {
  143.       "type": "openapi\/slurmctld",
  144.       "name": "Slurm OpenAPI slurmctld",
  145.       "data_parser": "data_parser\/v0.0.40",
  146.       "accounting_storage": "accounting_storage\/slurmdbd"
  147.     },
  148.     "client": {
  149.       "source": "\/run\/slurmrestd\/slurmrestd.socket->socket:[78242] (fd 8)",
  150.       "user": "root",
  151.       "group": "root"
  152.     },
  153.     "command": [],
  154.     "slurm": {
  155.       "version": {
  156.         "major": "23",
  157.         "micro": "4",
  158.         "minor": "11"
  159.       },
  160.       "release": "23.11.4",
  161.       "cluster": "cluster"
  162.     }
  163.   },
  164.   "errors": [],
  165.   "warnings": []
复制代码
参考资料

安装 slurm-web


  • 下载软件包的密钥
  1. $ curl -sS https://pkgs.rackslab.io/keyring.asc | gpg --dearmor | tee /usr/share/keyrings/rackslab.gpg > /dev/null
  2. $ vi  /etc/apt/sources.list.d/rackslab.sources
  3. Types: deb
  4. URIs: https://pkgs.rackslab.io/deb
  5. Suites: ubuntu24.04
  6. Components: maindp
  7. Architectures: amd64
  8. Signed-By: /usr/share/keyrings/rackslab.gpg
  9. $ sudo apt update
  10. $ sudo apt install slurm-web-agent slurm-web-gateway
复制代码

  • JWT 密钥
slurm-web 利用 JWT 令牌在组件之间进行身份验证。
  1. $ /usr/libexec/slurm-web/slurm-web-gen-jwt-key
复制代码

  • RacksDB
Slurm-web 利用 RacksDB 生成数据中央机架与计算节点的图形表示。
  1. $ apt install racksdb
  2. $ cp -r /usr/share/doc/python3-racksdb/examples/db/* /var/lib/racksdb/
  3. $ racksdb datacenters
复制代码

  • Slurm-web 配置文件
  1. # vi /etc/slurm-web/agent.ini
  2. [service]
  3. cluster=cluster
  4. interface=localhost
  5. port=5012
  6. # vi /etc/slurm-web/gateway.ini
  7. [service]
  8. interface=0.0.0.0
  9. port=5011
  10. [ui]
  11. host=http://172.16.37.34:5011
  12. [agents]
  13. url=http://localhost:5012
  14. $ sudo systemctl restart slurm-web-agent.service
  15. $ sudo systemctl restart slurm-web-gateway.service
复制代码
从浏览器访问 Web UI http://:5011
Slurm-web 仅支持 LDAP 身份验证(默认身份验证已禁用)

选择集群

群集和正在运行的作业概览

作业状态

作业详情

节点状态

服务质量(默认正常)


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

汕尾海湾

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表