欢迎光临
我们一直在努力

Slurm 集群构建实战(控制 / 计算 / 登录 / 存储节点)---高性能HPC

        本次构建为生产级轻量 Slurm 集群,采用CentOS 7/8/Rocky Linux 8(主流企业级发行版,兼容性最好),节点分工为:1 台控制节点 + N 台计算节点 + 1 台登录节点 + 1 台存储节点,实现资源调度、用户接入、数据共享、作业执行全流程,所有操作均为可执行命令,适配 x86_64 架构,GPU/CPU 节点通用。

核心架构说明

节点类型节点名核心作用关键组件硬件建议
控制节点 slurm-master 集群调度核心、节点管理、作业控制 slurmctld、slurmdbd、mysql 4 核 8G 以上,稳定优先
登录节点 slurm-login 用户接入、作业提交 / 查询、编译 slurm 客户端、Lmod、编译器 4 核 16G 以上,多用户共享
计算节点 slurm-com01~N 作业执行、计算资源承载 slurmd、nvidia-docker(GPU) 按需配置(CPU/GPU/ 大内存)
存储节点 slurm-storage 集群共享存储、数据持久化 NFS 服务、大容量硬盘 多核 16G+TB 级 SSD/HDD,RAID5

前置统一要求(所有节点执行)

  • 关闭防火墙 & SELinux(集群内部简化,生产可按需配置规则)

    # 关闭防火墙
    systemctl stop firewalld && systemctl disable firewalld
    # 关闭SELinux
    sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
    setenforce 0

  • 配置主机名与 hosts 解析(必须保证所有节点互相解析)

    # 各节点分别执行(替换为对应节点名/IP)
    # 控制节点:hostnamectl set-hostname slurm-master
    # 登录节点:hostnamectl set-hostname slurm-login
    # 计算节点:hostnamectl set-hostname slurm-com01(依次类推)
    # 存储节点:hostnamectl set-hostname slurm-storage

    # 所有节点添加hosts(替换为实际IP)
    cat >> /etc/hosts << EOF
    192.168.1.100 slurm-master # 控制节点IP
    192.168.1.101 slurm-login # 登录节点IP
    192.168.1.102 slurm-storage # 存储节点IP
    192.168.1.201 slurm-com01 # 计算节点1
    192.168.1.202 slurm-com02 # 计算节点2(按需添加)
    EOF

  • 配置免密登录(控制节点→所有节点,登录节点→所有计算节点)

    # 控制节点生成密钥并分发(登录节点执行相同操作)
    ssh-keygen -t rsa -N '' -f ~/.ssh/id_rsa
    ssh-copy-id root@slurm-login
    ssh-copy-id root@slurm-storage
    ssh-copy-id root@slurm-com01
    ssh-copy-id root@slurm-com02

  • 安装基础依赖 & 同步时间(所有节点)

    yum install -y wget ntpdate net-tools vim gcc gcc-c++ make libssh2-devel
    ntpdate ntp.aliyun.com && hwclock -w
    echo "*/10 * * * * ntpdate ntp.aliyun.com > /dev/null 2>&1" | crontab –

  • 禁用 Swap(提升性能,Slurm 推荐)

    swapoff -a && sed -i '/swap/s/^/#/' /etc/fstab

  • 第一步:存储节点(slurm-storage)搭建 NFS 共享存储

            集群所有节点共用一份存储,实现数据互通(作业脚本、输入输出、软件环境均存放在共享存储),这是集群的基础。

    1. 安装 NFS 服务

    yum install -y nfs-utils rpcbind

    2. 创建共享目录并配置权限

    # 创建共享目录(按需规划,如作业目录、软件目录、用户目录)
    mkdir -p /nfs/slurm/{jobs,soft,home}
    # 赋予所有节点访问权限(192.168.1.0/24为集群网段,按需修改)
    chmod -R 777 /nfs/slurm
    cat >> /etc/exports << EOF
    /nfs/slurm 192.168.1.0/24(rw,sync,no_root_squash,no_all_squash)
    EOF

    3. 启动 NFS 服务并设置开机自启

    systemctl start rpcbind && systemctl enable rpcbind
    systemctl start nfs-server && systemctl enable nfs-server
    # 生效配置
    exportfs -rv

    4. 验证 NFS 服务

    showmount -e localhost
    # 输出如下即正常:Export list for localhost: /nfs/slurm 192.168.1.0/24

    第二步:控制节点(slurm-master)搭建(集群核心)

            控制节点是 Slurm 的大脑,部署slurmctld(调度服务)、slurmdbd(记账服务)、MySQL(记账数据库),同时挂载 NFS 共享存储,并生成 Slurm 集群配置文件(所有节点共用)。

    阶段 1:挂载 NFS 共享存储(永久挂载,所有节点均需执行)

    # 所有节点执行(控制/登录/计算),先安装nfs-utils
    yum install -y nfs-utils
    # 创建挂载目录
    mkdir -p /nfs/slurm
    # 配置永久挂载(重启不丢失)
    echo "slurm-storage:/nfs/slurm /nfs/slurm nfs defaults 0 0" >> /etc/fstab
    # 立即挂载
    mount -a
    # 验证挂载:df -h 看到/nfs/slurm即正常

    阶段 2:安装 MySQL 数据库(slurmdbd 依赖)

    # 安装mariadb(CentOS自带,兼容MySQL)
    yum install -y mariadb-server mariadb
    # 启动并开机自启
    systemctl start mariadb && systemctl enable mariadb
    # 初始化数据库(按提示操作,设置root密码,如slurm@123456)
    mysql_secure_installation
    # 登录数据库,创建slurm账户和数据库
    mysql -uroot -p
    # 执行SQL语句(替换密码为实际密码,如slurm@123456)
    CREATE DATABASE slurm_acct_db;
    CREATE USER 'slurm'@'localhost' IDENTIFIED BY 'slurm@123456';
    CREATE USER 'slurm'@'%' IDENTIFIED BY 'slurm@123456';
    GRANT ALL PRIVILEGES ON slurm_acct_db.* TO 'slurm'@'localhost';
    GRANT ALL PRIVILEGES ON slurm_acct_db.* TO 'slurm'@'%';
    FLUSH PRIVILEGES;
    EXIT;

    阶段 3:安装 Slurm 软件(所有节点统一版本,控制节点编译后分发)

            Slurm 建议源码编译(版本最新、兼容性最好),这里选择slurm-23.11.5(LTS 长期支持版)。

    下载链接:https://download.schedmd.com/slurm/

    # 安装编译依赖
    yum install -y wget tar gcc gcc-c++ make munge munge-devel libuuid-devel \\
    readline-devel ncurses-devel perl-ExtUtils-MakeMaker mysql-community-devel \\
    openssl-devel hwloc-devel numactl-devel
    # 下载源码包
    cd /usr/local/src
    wget https://download.schedmd.com/slurm/slurm-23.11.5.tar.bz2
    tar -jxf slurm-23.11.5.tar.bz2 && cd slurm-23.11.5
    # 配置编译参数(指定MySQL路径,替换数据库密码)
    ./configure –prefix=/usr/local/slurm \\
    –with-mysql-config=/usr/bin/mysql_config \\
    –with-slurmdbd-user=slurm \\
    –with-slurmdbd-group=slurm
    # 编译并安装(-j后接CPU核数,加速编译)
    make -j4 && make install

    阶段 4:配置 Munge 认证(Slurm 节点间通信加密,所有节点必须一致)

            Munge 是 Slurm 的核心认证组件,所有节点的munge.key必须完全相同,由控制节点生成并分发。

    # 1. 控制节点创建munge用户和组
    groupadd -r munge
    useradd -r -g munge -d /var/lib/munge -s /sbin/nologin munge
    # 2. 生成munge.key
    yum install -y munge
    dd if=/dev/urandom bs=1 count=1024 > /etc/munge/munge.key
    chown munge:munge /etc/munge/munge.key
    chmod 400 /etc/munge/munge.key
    # 3. 启动munge并开机自启
    systemctl start munge && systemctl enable munge
    # 4. 分发munge.key到所有节点(控制节点执行,免密已配置)
    scp /etc/munge/munge.key root@slurm-login:/etc/munge/
    scp /etc/munge/munge.key root@slurm-storage:/etc/munge/
    scp /etc/munge/munge.key root@slurm-com01:/etc/munge/
    scp /etc/munge/munge.key root@slurm-com02:/etc/munge/
    # 5. 所有节点执行(设置权限+启动munge)
    # 登录其他节点执行:
    groupadd -r munge
    useradd -r -g munge -d /var/lib/munge -s /sbin/nologin munge
    chown munge:munge /etc/munge/munge.key
    chmod 400 /etc/munge/munge.key
    yum install -y munge
    systemctl start munge && systemctl enable munge
    # 验证munge:所有节点执行 munge -n | unmunge ,无报错即正常

    阶段 5:创建 Slurm 用户和组(所有节点执行)

    groupadd -r slurm
    useradd -r -g slurm -d /var/lib/slurm -s /sbin/nologin slurm
    # 创建Slurm日志和运行目录
    mkdir -p /var/log/slurm /var/run/slurm
    chown -R slurm:slurm /var/log/slurm /var/run/slurm
    chmod -R 755 /var/log/slurm /var/run/slurm

    阶段 6:生成 Slurm 核心配置文件(最关键,控制节点编写后分发)

            Slurm 所有配置文件统一放在/usr/local/slurm/etc/,核心文件为slurm.conf(主配置)、slurmdbd.conf(记账配置)、cgroup.conf(资源限制),配置文件所有节点必须完全一致。

    1. 编写 slurmdbd.conf(记账服务配置,控制节点)

    cat > /usr/local/slurm/etc/slurmdbd.conf << EOF
    AuthType=auth/munge
    AuthInfo=/var/run/munge/munge.socket.2
    DbdHost=slurm-master
    DbdPort=6819
    SlurmUser=slurm
    LogFile=/var/log/slurm/slurmdbd.log
    PidFile=/var/run/slurm/slurmdbd.pid
    StorageType=accounting_storage/mysql
    StorageHost=localhost
    StorageUser=slurm
    StoragePass=slurm@123456 # 与MySQL中slurm用户密码一致
    StorageDatabase=slurm_acct_db
    EOF
    chown slurm:slurm /usr/local/slurm/etc/slurmdbd.conf
    chmod 600 /usr/local/slurm/etc/slurmdbd.conf

    2. 编写 slurm.conf(主配置,核心!按实际集群修改)

            重点修改:NodeName(计算节点名 + 资源)、PartitionName(分区配置)、ClusterName(集群名),以下为2 台计算节点示例(CPU 节点,GPU 节点需额外配置Gres.conf)。

    cat > /usr/local/slurm/etc/slurm.conf << EOF
    # 集群基础配置
    ClusterName=slurm-cluster
    SlurmctldHost=slurm-master
    SlurmdbdHost=slurm-master
    AuthType=auth/munge
    StateSaveLocation=/var/run/slurm
    SlurmdSpoolDir=/var/run/slurm/slurmd
    LogFile=/var/log/slurm/slurmctld.log
    SlurmdLogFile=/var/log/slurm/slurmd.log
    PidFile=/var/run/slurm/slurmctld.pid
    SlurmdPidFile=/var/run/slurm/slurmd.pid
    # 通信配置
    SlurmctldPort=6817
    SlurmdPort=6818
    MpiDefault=none
    ProctrackType=proctrack/cgroup
    ReturnToService=1
    # 资源调度配置
    SchedulerType=sched/backfill
    SelectType=select/cons_res
    SelectTypeParameters=CR_Core_Memory
    # 计算节点配置(NodeName=节点名 CPUs=核数 MemPerCPU=每核内存M 节点地址)
    NodeName=slurm-com01 CPUs=32 MemPerCPU=8192 State=UNKNOWN NodeAddr=192.168.1.201
    NodeName=slurm-com02 CPUs=32 MemPerCPU=8192 State=UNKNOWN NodeAddr=192.168.1.202
    # 分区配置(PartitionName=分区名 Nodes=所属节点 Default=YES 默认分区 MaxTime=作业最大运行时间)
    PartitionName=cpu-part Nodes=slurm-com[01-02] Default=YES MaxTime=INFINITE State=UP
    # 记账配置
    AccountingStorageType=accounting_storage/slurmdbd
    AccountingStorageHost=slurm-master
    AccountingStoreJobComment=YES
    JobAcctGatherType=jobacct_gather/cgroup
    JobAcctGatherFrequency=30
    EOF

    3. 编写 cgroup.conf(资源限制配置,防止作业占满节点)

    cat > /usr/local/slurm/etc/cgroup.conf << EOF
    CgroupPlugin=cgroup/v2
    CgroupAutomount=yes
    ConstrainCores=yes
    ConstrainMemory=yes
    ConstrainDevices=yes
    AllowedDevices=/dev/null,/dev/zero,/dev/random,/dev/urandom,/dev/tty,/dev/pts,/dev/sysfs,/dev/proc,/dev/fuse
    EOF

    4. 分发 Slurm 配置文件到所有节点(控制节点执行)

    # 先把编译好的Slurm程序分发到所有节点(控制节点执行)
    scp -r /usr/local/slurm root@slurm-login:/usr/local/
    scp -r /usr/local/slurm root@slurm-com01:/usr/local/
    scp -r /usr/local/slurm root@slurm-com02:/usr/local/
    # 分发配置文件
    scp /usr/local/slurm/etc/* root@slurm-login:/usr/local/slurm/etc/
    scp /usr/local/slurm/etc/* root@slurm-com01:/usr/local/slurm/etc/
    scp /usr/local/slurm/etc/* root@slurm-com02:/usr/local/slurm/etc/
    # 所有节点设置Slurm环境变量(永久生效)
    cat >> /etc/profile << EOF
    export PATH=/usr/local/slurm/bin:/usr/local/slurm/sbin:\\$PATH
    export LD_LIBRARY_PATH=/usr/local/slurm/lib64:\\$LD_LIBRARY_PATH
    EOF
    source /etc/profile

    阶段 7:启动控制节点 Slurm 服务并设置开机自启

    # 1. 启动slurmdbd(记账服务,先启动)
    systemctl start slurmdbd && systemctl enable slurmdbd
    # 2. 启动slurmctld(调度服务,核心)
    systemctl start slurmctld && systemctl enable slurmctld
    # 3. 创建systemd服务文件(所有节点需创建,控制节点创建后分发)
    # 控制节点创建slurmdbd.service
    cat > /usr/lib/systemd/system/slurmdbd.service << EOF
    [Unit]
    Description=Slurm Database Daemon
    After=network.target mariadb.service munge.service
    Requires=mariadb.service munge.service

    [Service]
    Type=forking
    ExecStart=/usr/local/slurm/sbin/slurmdbd
    ExecReload=/bin/kill -HUP \\$MAINPID
    PIDFile=/var/run/slurm/slurmdbd.pid
    Restart=on-failure
    User=slurm
    Group=slurm

    [Install]
    WantedBy=multi-user.target
    EOF

    # 控制节点创建slurmctld.service
    cat > /usr/lib/systemd/system/slurmctld.service << EOF
    [Unit]
    Description=Slurm Controller Daemon
    After=network.target munge.service slurmdbd.service
    Requires=munge.service slurmdbd.service

    [Service]
    Type=forking
    ExecStart=/usr/local/slurm/sbin/slurmctld
    ExecReload=/bin/kill -HUP \\$MAINPID
    PIDFile=/var/run/slurm/slurmctld.pid
    Restart=on-failure
    User=slurm
    Group=slurm

    [Install]
    WantedBy=multi-user.target
    EOF

    # 控制节点创建slurmd.service(计算节点用)
    cat > /usr/lib/systemd/system/slurmd.service << EOF
    [Unit]
    Description=Slurm Node Daemon
    After=network.target munge.service
    Requires=munge.service

    [Service]
    Type=forking
    ExecStart=/usr/local/slurm/sbin/slurmd
    ExecReload=/bin/kill -HUP \\$MAINPID
    PIDFile=/var/run/slurm/slurmd.pid
    Restart=on-failure
    User=slurm
    Group=slurm

    [Install]
    WantedBy=multi-user.target
    EOF

    # 分发service文件到所有节点
    scp /usr/lib/systemd/system/slurm* root@slurm-login:/usr/lib/systemd/system/
    scp /usr/lib/systemd/system/slurm* root@slurm-com01:/usr/lib/systemd/system/
    scp /usr/lib/systemd/system/slurm* root@slurm-com02:/usr/lib/systemd/system/
    # 所有节点重新加载systemd
    systemctl daemon-reload

    阶段 8:验证控制节点服务

    # 查看slurmdbd状态
    systemctl status slurmdbd
    # 查看slurmctld状态
    systemctl status slurmctld
    # 查看Slurm版本
    sinfo -V
    # 无报错、版本正常即成功

    第三步:计算节点(slurm-com01~N)搭建

            计算节点仅需启动slurmd 服务(执行作业),无需部署调度 / 记账服务,操作极简,所有计算节点执行相同命令。

    1. 确认前置条件(已完成)

    • 挂载 NFS 共享存储

    • 同步 hosts 解析和免密登录

    • 安装 munge 并同步 munge.key

    • 接收控制节点分发的 Slurm 程序和配置文件

    • 配置 Slurm 环境变量

    • 创建 slurm/munge 用户和目录

    2. 启动 slurmd 服务并设置开机自启

    systemctl start slurmd && systemctl enable slurmd
    # 验证服务状态
    systemctl status slurmd

    3. GPU 计算节点额外配置(可选)

            若为 GPU 节点,需安装NVIDIA 驱动 + CUDA,并配置 Slurm 的Gres.conf(GPU 资源管理),控制节点编写后分发到所有节点:

    # 控制节点编写Gres.conf
    cat > /usr/local/slurm/etc/Gres.conf << EOF
    NodeName=slurm-com01 Name=gpu Count=4 # 4块GPU
    NodeName=slurm-com02 Name=gpu Count=2 # 2块GPU
    EOF
    # 分发到所有节点
    scp /usr/local/slurm/etc/Gres.conf root@slurm-login:/usr/local/slurm/etc/
    scp /usr/local/slurm/etc/Gres.conf root@slurm-com01:/usr/local/slurm/etc/
    scp /usr/local/slurm/etc/Gres.conf root@slurm-com02:/usr/local/slurm/etc/
    # 所有节点重启slurm服务
    systemctl restart slurmctld (控制节点)
    systemctl restart slurmd (所有计算节点)

    第四步:登录节点(slurm-login)搭建

            登录节点为用户操作入口,无需启动 slurmctld/slurmdbd/slurmd 服务,仅需安装 Slurm 客户端,同时配置用户环境、编译器、软件库,提升用户体验。

    1. 确认前置条件(已完成)

    • 挂载 NFS 共享存储

    • 接收控制节点分发的 Slurm 程序和配置文件

    • 配置 Slurm 环境变量

    • 同步 munge.key 并启动 munge 服务

    2. 安装用户常用工具(编译器、包管理、环境管理)

    # 安装编译器和开发工具
    yum groupinstall -y "Development Tools"
    yum install -y wget curl git zip unzip bzip2
    # 安装Anaconda(统一Python环境,用户无需单独安装)
    cd /usr/local/src
    wget https://repo.anaconda.com/archive/Anaconda3-2023.09-0-Linux-x86_64.sh
    bash Anaconda3-2023.09-0-Linux-x86_64.sh -b -p /usr/local/anaconda3
    # 配置Anaconda环境变量(所有用户可用)
    cat >> /etc/profile << EOF
    export PATH=/usr/local/anaconda3/bin:\\$PATH
    EOF
    source /etc/profile
    # 安装Lmod(模块管理,切换不同软件版本)
    yum install -y Lmod

    3. 配置用户目录(映射到 NFS 共享存储,数据持久化)

    # 新建集群用户(示例,如user01),家目录放在NFS
    useradd -d /nfs/slurm/home/user01 user01
    echo "user01:123456" | chpasswd
    # 所有用户家目录均在NFS,实现节点间用户数据互通

    4. 验证登录节点功能

    # 登录节点执行,查看集群节点状态
    sinfo
    # 输出如下即成功(节点状态为IDLE,空闲)
    PARTITION AVAIL TIMELIMIT NODES STATE NODELIST
    cpu-part* up infinite 2 IDLE slurm-com[01-02]

    第五步:集群整体验证(核心操作,登录节点执行)

            所有节点搭建完成后,在登录节点执行以下命令,验证集群全功能是否正常,普通用户也可执行(如 user01)。

    1. 查看集群节点状态

    sinfo # 查看节点和分区状态
    scontrol show node # 查看节点详细信息
    scontrol show partition # 查看分区详细信息

    2. 提交交互式作业(测试计算节点执行)

    # 申请1核1G内存,交互式终端
    srun –cpus-per-task=1 –mem=1G –pty bash
    # 进入计算节点后,执行hostname,会显示计算节点名(如slurm-com01)
    # 执行exit退出交互式终端

    3. 提交批处理作业(测试完整作业流程)

    # 编写作业脚本(存放在NFS的jobs目录)
    cat > /nfs/slurm/jobs/test_job.sh << EOF
    #!/bin/bash
    #SBATCH –job-name=test_job
    #SBATCH –cpus-per-task=2
    #SBATCH –mem=2G
    #SBATCH –output=/nfs/slurm/jobs/test_job_%j.out
    #SBATCH –error=/nfs/slurm/jobs/test_job_%j.err

    # 作业内容
    echo "Job start time: \\$(date)"
    echo "Job run on node: \\$(hostname)"
    echo "CPU cores: \\$SLURM_CPUS_PER_TASK"
    sleep 10
    echo "Job end time: \\$(date)"
    EOF

    # 赋予执行权限
    chmod +x /nfs/slurm/jobs/test_job.sh
    # 提交作业
    sbatch /nfs/slurm/jobs/test_job.sh
    # 查看作业状态
    squeue -u \\$USER
    # 作业完成后,查看输出日志
    cat /nfs/slurm/jobs/test_job_*.out

    4. 查看作业历史和记账信息

    sacct # 查看作业历史
    sacct -j 作业ID –format=JobID,JobName,Elapsed,CPUs,Mem,State # 查看指定作业详情
    sreport cluster utilization # 查看集群资源利用率

    第六步:集群日常维护与常用命令

    1. 服务启停命令

    # 控制节点
    systemctl start/stop/restart slurmctld # 调度服务
    systemctl start/stop/restart slurmdbd # 记账服务
    # 计算节点
    systemctl start/stop/restart slurmd # 执行服务
    # 所有节点
    systemctl start/stop/restart munge # 认证服务

    2. 节点状态管理

    scontrol update NodeName=slurm-com01 State=DOWN # 标记节点为下线
    scontrol update NodeName=slurm-com01 State=UP # 标记节点为上线
    scontrol reboot NodeName=slurm-com01 # 远程重启计算节点

    3. 作业管理

    squeue # 查看所有作业
    scancel 作业ID # 取消指定作业
    scancel -u 用户名 # 取消指定用户的所有作业
    scontrol hold 作业ID # 挂起作业
    scontrol release 作业ID # 释放作业

    4. 日志查看(排错核心)

    tail -f /var/log/slurm/slurmctld.log # 控制节点调度日志
    tail -f /var/log/slurm/slurmdbd.log # 控制节点记账日志
    tail -f /var/log/slurm/slurmd.log # 计算节点执行日志

    第七步:生产集群优化建议

  • 高可用部署:控制节点部署双主(slurm-master01/slurm-master02),开启 Slurmctld 高可用,防止单节点故障;

  • 多登录节点:部署 2 台以上登录节点,做负载均衡(如 Nginx/HAProxy),提升多用户并发体验;

  • 存储优化:生产环境用Lustre/Ceph替代 NFS,支持更高吞吐和更大容量,适配海量作业数据;

  • 监控告警:部署Prometheus+Grafana+slurm-exporter,监控集群节点状态、资源使用率、作业运行情况,配置邮件 / 钉钉告警;

  • 用户权限:通过 Slurm 的Accounting功能配置用户 / 组资源配额(如最大作业数、最大 CPU/GPU 数),防止个别用户占用过多资源;

  • GPU 优化:安装nvidia-slurm,实现 GPU 精细化调度(如指定 GPU 卡号、显存限制);

  • 备份配置:定期备份 Slurm 配置文件(/usr/local/slurm/etc/)和 MySQL 记账数据库,防止配置丢失。

  • 集群搭建成功标准

    munge -n | unmunge

  • 所有节点munge 认证正常(munge -n | unmunge 无报错);

  • 控制节点slurmctld/slurmdbd 服务正常运行,计算节点slurmd 服务正常运行;

  • 登录节点执行sinfo能看到所有计算节点,状态为IDLE;

  • 能正常提交交互式 / 批处理作业,作业在计算节点执行,输出日志正常;

  • sacct能查询到作业历史,记账功能正常。

  • 赞(0)
    未经允许不得转载:171主机测评 » Slurm 集群构建实战(控制 / 计算 / 登录 / 存储节点)---高性能HPC
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址