通过作业调度系统进行系统维护

HPC集群中一些系统维护工作不需要立刻执行,而希望在不影响用户正常使用的情况下见缝插针的进行,这个时候可以将这些维护工作做成作业,通过作业调度系统来调度完成。下面以通过LSF作业调度系统升级Infiniband卡固件和驱动为例:

  1. 允许root用户提交作业
    1. 修改lsf.conf,添加一行
      LSF_ROOT_REX=local
    2. 重启相关服务让修改生效
      $ badmin mbdrestart
      $ lsadmin resrestart all
  2. 编写升级脚本
    cd /root/mellanox/ #进入目录
    unzip fw-ConnectX3Pro-rel-2_35_5100.zip
    mstflint -d 08:00.0 -i ./fw-ConnectX3Pro-rel-2_35_5100-FlexBoot-3.4.648-CLP-8025-UEFI-14.8.43.bin b #升级固件
    tar xf MLNX_OFED_LINUX-3.1-1.0.3-rhel6.7-x86_64.tgz
    cd MLNX_OFED_LINUX-3.1-1.0.3-rhel6.7-x86_64
    yum install perl pciutils python gcc-gfortran libxml2-python tcsh libnl.i686 libnl expat glib2 tcl libstdc++ bc tk gtk2 atk cairo numactl pkgconfig -y
    ./mlnxofedinstall --all --enable-affinity --enable-mlnx_tune <<< "y\n" #安装新版驱动
    sed -i s/HWADDR=/#HWADDR=/ /etc/sysconfig/network-scripts/ifcfg-ib0
    cd
    rm -rf /root/mellanox #删除升级目录
    reboot #重启
  3. 将升级所需文件复制到所有节点
    pscp -r mellanox node:/root/
  4. 编写作业提交脚本
    如果队列之间有抢占,系统维护作业需要提交到低优先级队列,提交到高优先级队列会造成重启时还有被抢占挂起的作业
    首先关闭节点,再进行维护作业,完成后再打开节点

    #!/bin/bash
    for i in `cat nodelist` #nodelist文件中是所有需要升级节点的主机名列表
    do
    	bsub -q e52680v3ib -n 24 -m $i -o $i "badmin hclose $i;/root/mellanox/up.sh;badmin hopen $i" 
    done
    

2 thoughts on “通过作业调度系统进行系统维护 Add Yours?

发表回复

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

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据