SkyForm算力调度系统(AIP)快速安装指南#

准备#

SkyForm算力调度系统安装需要:

  1. 所有内网(节点间)关闭防火墙、关闭SELINUX

  • 在EL(CentOS、Rocky Linux,Red Hat Enterprise Linux等)上:

    systemctl disable --now firewalld
    setenforce 0
    sed -i s/SELINUX=enforcing/SELINUX=disabled/ /etc/selinux/config
    
  • Ubuntu上:

    ufw disable
    setenforce 0
    sed -i s/SELINUX=enforcing/SELINUX=disabled/ /etc/selinux/config
    
  1. 安装所需的软件包

  • 在EL7(如CentOS 7)中,安装libyaml, psmisc, net-tools

    yum -y install libyaml psmisc net-tools
    
  • 在EL8(如Rocky Linux 8)或以上版本中,安装net-tools, libnsl

    dnf install -y net-tools libnsl
    
  • 在Ubuntu上:

    apt install dmidecode numactl psmisc
    
  1. hosts文件,包含AIP集群所有节点的IP地址和节点名,格式与系统/etc/hosts一样,例子:

    192.168.20.100 exp001
    192.168.20.101 exp002
    192.168.20.102 exp003
    

    警告

    hosts文件中主管理节点必须放在头部。每个节点上的主机名(hostname命令的输出)必须与以上hosts文件里的主机名一致。如果hosts文件没有提供,缺省安装基于本机的单节点集群。

  2. 共享文件系统,用于安装AIP文件和容错,缺省:/opt/skyformai_shared。 如果只有一台主机,可以只用本地文件系统。参考集群和节点环境准备。

  3. 统一的用户认证系统:LDAP、AD、NIS、或各节点相同用户名和ID的本地用户。指定一个集群主管理员,缺省:cadmin。

    小技巧

    集群主管理员也可设成root,安装时脚本会提示。 如果安装时主管理员不存在,安装脚本会自动创建本地主管理员用户,缺省为cadmin。

  4. 指定一个联外网的节点作为Web服务器(可选) Web服务器上安装php, python3, python36-numpy, php-pecl-yaml (先需要安装epel-release)

    yum install -y epel-release
    yum install php php-pecl-yaml nginx php-fpm
    systemctl enable nginx php-fpm
    

安装#

安装分三步:

  1. 把文件拷贝到共享文件系统中

  2. 在每个节点上设置AIP服务和运行环境

  3. 安装web界面

软件包下载#

请到SkyForm AIP官方网站 https://skyformaip.com 下载软件包。

拷贝文件#

  1. 解压下载的文件:

mkdir aip
tar xfz skyformaip-10.xx.x.tar.gz -C aip
cp hosts aip  #可选
  1. 运行安装脚本

# cd aip
./install

若不用缺省的路径、cadmin作为主管理员,参考./install –help显示的命令行参数或者在提示时输入。

每个节点的设置#

在每个节点上运行host-setup。这个脚本安装在AIP共享目录中,缺省/opt/skyformai_shared。

/opt/skyformai_shared/host-setup

备注

SkyForm AIP软件包缺省为企业版,第一次安装自带45天的企业版功能。45天后自动降级为免费版。若发现key有问题,可以修改 /opt/skyformai/etc/cb.yaml里的参数enterprise, 注释掉或者删除该参数,然后重启主管理节点上的AIP服务。

安装web界面#

运行AIP的界面安装脚本

./portal-install

测试#

登录成普通用户

  1. 检查集群状态:

aip cluster info

或简写

aip c i

或SLURM命令:

sinfo
  1. 提交作业

SLURM命令方式

$ sbatch
#!/bin/bash
sleep 1h
^D
Submitted batch job 4342

$ squeue
JOBID PARTITION NAME      USER   ST TIME NODES NODELIST(REASON)
4342  medium    sleep 100 cadmin R  0:04     1 linux7

$ scancel 4342

LSF命令方式

$ bsub -I hostname
Job <838> is submitted to default queue <medium>.
Job 838 is waiting to be started...
Job 838 has started on host linux7.
linux7

$ bsub sleep 1h
Job <839> is submitted to default queue <medium>.

$ bjobs 839
JOBID   USER    STAT  QUEUE      FROM_HOST   EXEC_HOST   JOB_NAME   SUBMIT_TIME
839     cadmin  RUN   medium     dev         dev         sleep 1h   May  2 15:06

$ bjobs -l 839

Job <839>, User <cadmin>, Project <default>, User Group <comb>, Status <RUN>, Q
                     ueue <medium>, Job Priority <50>, Command <sleep 1h>
Fri May  2 15:06:52: Submitted from host <dev>, CWD <$HOME>;
Fri May  2 15:06:52: Started on <dev>, Execution Home </home/cadmin>, Execution
                     CWD </home/cadmin>;
Fri May  2 15:07:04: Total resource usage collected.
                     MEM: 356 Kbytes;  SWAP: 105 Mbytes;  NTHREAD: 1
                     PGID: 27491;  PIDs: 27491 27505 27506


 SCHEDULING PARAMETERS:
           r15s   r1m  r15m   ut      pg    io   up    it    tmp    swp    mem
 loadSched   -     -     -     -       -     -    -     -     -      -      -
 loadStop    -     -     -     -       -     -    -     -     -      -      -

              gpu
 loadSched     -
 loadStop      -

 RESOURCE REQUIREMENT DETAILS:
 Combined: 1{select[type=="local"]order[slots]}
 Effective: 1{select[type=="local"]order[slots]}

Web界面#

AIP的web登录使用Linux里的用户名和密码。浏览器连接到: https://<服务器>