Ubuntu 16.04 改变 Transmission 运行用户

//先停止服务
sudo systemctl stop transmission-daemon.service

//修改文件
vim /etc/init/transmission-daemon.conf
setuid yaoge123
setgid yaoge123

//添加信息
sudo systemctl edit transmission-daemon.service
[Service]
User=yaoge123

//重启服务
sudo systemctl daemon-reload
sudo systemctl start transmission-daemon.service

 

定制ESXi安装包

比如Intel J1900 四千兆的无风扇迷你电脑,AHCI(Intel Atom Processor E3800 Series SATA AHCI Controller 8086:0f23)不受ESXi支持,因此需要在ESXi的安装包中添加驱动。

准备工作:

  1. 下载安装VMware PowerCLI
  2. 下载ESXi Offline Bundle放到D:\VMware
  3. 从http://www.v-front.de/p/esxi-customizer-ps.html下载ESXi-Customizer-PS放到D:\vm
  4. 从https://vibsdepot.v-front.de/wiki/index.php/Sata-xahci下载sata-xahci Offline Bundle放到D:\vm

启动VMware PowerCLI,执行下面的命令

Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CURRENTUSER

重启计算机,再打开VMware PowerCLI

PowerCLI C:\> d:
PowerCLI D:\> cd vm
PowerCLI D:\vm> .\ESXi-Customizer-PS-v2.4.ps1 -v60 -pkgDir d:\vm -log d:\vm\log.txt -izip 'D:\VMware\update-from-esxi6.0-6.0_update02.zip'
Set-ExecutionPolicy Undefined -Scope CURRENTUSER
PowerCLI D:\vm> Set-ExecutionPolicy Undefined -Scope CURRENTUSER

用D:\vm下面新生成的iso安装ESXi

 

IB存储的opensm

一台DDN 7700X,双控,每个控制器两个FDR IB口。两台IO节点,每台两个双口FDR IB卡,一个卡双口与存储两个控制器连接,另一个卡单口与集群IB网络连接。

存储和IO节点间是IB直接连接的,没有通过交换机,每条IB链路都是独立的,所以在每条IB链路上都需要有subnet manager。因每个opensm进程只能绑定一个物理端口,而 service opensmd 只能启动一个opensm进程,所以只能在每个io节点上启动两个opensm专门用于管理存储IB链路。

首先用ibstat查一下和存储连接IB口的Port GUID,在/etc/rc.local中添加opensm并且绑定guid,注意前面的sleep是必须的,否则opensm启动失败。

sleep 30
/usr/sbin/opensm -B -g 0x7cfe900300a8bf41
/usr/sbin/opensm -B -g 0x7cfe900300a8bf42

 

LSF 配置NUMA Affinity

首先要给节点启用NUMA Affinity,在lsb.hosts的Host节中添加AFFINITY列,值为Y,如:

Begin Host
HOST_NAME MXJ   r1m     pg    ls    tmp  DISPATCH_WINDOW  AFFINITY 
......
default    !    ()      ()    ()     ()     ()            (Y)      
End Host

启用后用bhost -l -aff可以看到Affinity已经Enable

提交作业时-R参数添加affinity字段如affinity[core:membind=localprefer:distribute=pack]

HP MSA 2040 SAN 测试

HP MSA 2040 SAN,双控制器,每控制器4GB缓存。两台IO节点与存储双控通过16Gb FC冗余链接。

测试命令:iozone -i 0 -i 1 -r 128K -s 256G -t 2 -+m ./iolist -C
每个IO节点一个iozone进程,更多的进程更慢

write rewrite read reread
900GByte 2.5-inch 10Krpm 6Gb/s SAS
每5个盘做一组RAID5,4组RAID5
2421 2421 2419 2418
4TByte 3.5-inch 7.2Krpm 6Gb/s NL-SAS
每6个盘做一组RAID6,2组RAID6
1249 1228 1276 1279

 

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

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
    

安装和使用 Drush

apt安装drush版本是5.x,已被官方标记为不支持;采用pear安装虽然版本为6,但是小版本较老,所以:

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
composer global require drush/drush:6.*
echo 'export PATH="$HOME/.composer/vendor/bin:$PATH"' >>  ~/.bashrc
//用于升级:
composer global update

下载和启用模块,并且en的时候会自动处理依赖

drush dl views
drush en views

 

Nginx HTTPS配置

配置很简单,但是需要注意的有:

  1. 应使用listen的ssl参数取代ssl on;
  2. cert文件应包含整个证书链,内容顺序必须是证书链的逆序,即cert文件头是本服务器的证书、中间是中间CA、最后是根CA。可以用下述命令检查
    openssl s_client -connect www.example.com:443
  3. ssl_protocols中只能包含TLS
    server {
            listen          [::]:80;
            listen          [::]:443 ssl;
    ……
            ssl_certificate /etc/ssl/microstructures_bundle.crt;
            ssl_certificate_key /etc/ssl/microstructures_org.key;
            ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
            ssl_prefer_server_ciphers on;
    ……
    }