zoukankan      html  css  js  c++  java
  • lustre文件系统部署流程

    # 1 准备工作
    ### 1.1 添加以太网址
    添加以太网地址,使得gio017可以访问到需要安装的节点。
    修改gio017上的/etc/hosts,将需要批量操作的节点名以如下方式添加。
    ```
    [gio017:/etc/hosts]
    ......
    20.0.2.15 gio015
    20.0.2.16 gio016
    ......
    ```
    ### 1.2 配置c3
    配置c3使得可以在gio017上进行批量操作。
    修改gio017上的/etc/c3.conf,将需要批量操作的节点名以如下方式添加。
    ```
    [gio017:/etc/c3.conf]
    cluster giotest {
            gio017
            gio00[1-9]
            gio01[0-6]
            gmds00[1-2]
    }
    ```
    ### 1.3 配置信任关系
    配置信任关系使得从gio017上访问需要安装的节点时,无需输入密码。
    将gio017:/root/.ssh/ 拷贝到所有节点的/root/.ssh/覆盖。
    ```
    for i in `seq -w 1 16`;scp /root/.ssh gio0[$i]:/root/;done
    scp /root/.ssh/ gmds001:/root
    scp /root/.ssh/ gmds002:/root
    ```
    # 2 软件安装
    ### 2.1安装Lustre核心,查看当前的核心版本
    ```
    uname -r
    ```
    如果使用uname  -r 查看核心版本显示为2.6.32-431.29.2.lustre.el6.x86_64,则不需要继续安装。
    ### 2.2安装核心
    将/home/rpms  拷贝到将配置的节点的/home/rpms覆盖,并安装kernel,安装目录为/home/rpms/kernel。
    确认安装完成。
    安装完了,即可重启。
    ```
    cexec giotest: ‘cd /home/rpms/kernel; rpm -ivh *.rpm –force’
    ```
    ### 2.3 e2fs安装
    安装e2fsprogs,安装目录为/home/rpms/e2fs。
    ```
    cexec giotest: ‘cd /home/rpms/e2fs; rpm -Uvh *.rpm’
    ```
    ### 2.4 安装IBA
    #### 2.4.1 安装IBA驱动
    在gio017上找到IBA的安装包,安装包路径为/root/wup/MLNX_OFED_LINUX-2.4-1.0.4-rhel6.6-ext.tgz,然后拷贝到需要安装的节点进行解压
    ```
    gio017:/root/wup/MLNX_OFED_LINUX-2.4-1.0.4-rhel6.6-ext.tgz
    tar -zxvf MLNX_OFED_LINUX-2.4-1.0.4-rhel6.6-ext.tgz
    ```
    进入到解压目录 /root/MLNX_OFED_LINUX-2.4-1.0.4-rhel6.6-ext/, 然后执行以下命令行进行IBA的安装
    ```
     ./mlnxofedinstall --force --hypervisor --enable-sriov
     ```
    安装后重启IB服务
     ```
    service openibd restart
     ```
    重启ib服务查看HCA状态 并根据此命令是否报错来确定驱动是否安装成功,使用ibstat
     ```
    ibstat
     ```
    #### 2.4.2 配IPoIB
    首先使用service NetworkManage将NetworkManager服务关掉
    ```
    service NetworkManager stop
    ```
    然后进行IP的配置,配置IP的脚本在gio017的/root/目录下 名字是ibaddr.sh(配ib0) 和ib1addr.sh(配ib1) 文件,将这两个脚本拷贝到需要配置IP的节点并执行脚本。
    ```
    [gmds]
    scp gio017:/root/ibaddr.sh ./
    sh ./ibaddr.sh
    [gio]
    scp gio017:/root/ibaddr.sh ./
    sh ./ibaddr.sh
    scp gio017:/root/ib1addr.sh ./
    sh ./ib1addr.sh
    ```
    最后再重启IB服务
    ```
    service openibd restart
    ```
    重启完IB服务之后,使用ifconfig确定IPoIB地址配置正确
    ```
    ifconfig
    ```
    #3  安装盘阵
    ### 3.1 安装盘阵多路径软件rdac ###
    盘阵多路径软件rdac的压缩包在gio017的/root/目录下,压缩包名称为rdac-LINUX-09.03.0C00.0662-source.tar.gz,将rdac*.tar.gz拷贝到需要安装的节点先解压再安装。
    ```
    tar -zxvf rdac-LINUX-09.03.0C00.0662-source.tar.gz
    ```
    进入rdac目录,执行安装。
    ```
    cexec giotest: 'make clean;make;make install'
    ```
    安装完成之后将mpp的img覆盖init的img,之后重启节点。
    ```
    cexec giotest: 'cp /boot/mpp-2.6.32-431.29.2.lustre.el6.x86_64.img /boot/initramfs-2.6.32-431.29.2.lustre.el6.x86_64.img'
    ```
    确认rdac安装成功,有/opt/mpp目录即可。
     #3  配置盘阵
    参阅wiki上的盘阵配置流程,网站地址为http://20.0.1.4/dokuwiki/doku.php?id=hardware:diskarray_management。
    配置完成后,mds可见。
      ```     
    [root@gmds001 ~]# /opt/mpp/lsvdev
            Array Name      Lun    sd device
            -------------------------------------
            gdsk01          0     -> /dev/sdb
            gdsk01          1     -> /dev/sdc
    [root@gmds002 ~]# /opt/mpp/lsvdev
            Array Name      Lun    sd device
            -------------------------------------
            gdsk01          0     -> /dev/sdb
            gdsk01          1     -> /dev/sdc
      ```     
    gio节点上ost可见(以gio001/002为例)。
    ```
    [root@gio001 rpms]# /opt/mpp/lsvdev
            Array Name      Lun    sd device
            -------------------------------------
            gdsk001         0     -> /dev/sdb
            gdsk001         1     -> /dev/sdc
            gdsk001         2     -> /dev/sdd
            gdsk001         3     -> /dev/sde
            gdsk001         4     -> /dev/sdf
            gdsk001         5     -> /dev/sdg
    [root@gio002 rpms]# /opt/mpp/lsvdev
            Array Name      Lun    sd device
            -------------------------------------
            gdsk001         0     -> /dev/sdb
            gdsk001         1     -> /dev/sdc
            gdsk001         2     -> /dev/sdd
            gdsk001         3     -> /dev/sde
            gdsk001         4     -> /dev/sdf
            gdsk001         5     -> /dev/sdg
       ```    
    # 4 Lustre文件系统
    ### 4.1 安装lustre文件系统
    安装目录为/home/rpms/lustre_x86_64_g0fb79fb ,注意需要安装的最新Lustre RPM包都是*lustre_x86_64_g0fb79fb.rpm
    ```
    cd /home/rpms/lustre_x86_64_g0fb79fb
    rpm -ivh *.rpm
    ```
    如何确认安装正确?
    ### 4.2 格式化分区
    ### 4.2.1 mds的格式化
    执行mkfsgiotest.mds,mkfsgiotest.mds在gio017的/root/目录下。
    ssh gmds001 mkfs.lustre --fsname=giotest --mgs --mdt --index=0  --failnode=17.0.1.2@o2ib --reformat /dev/sdb
    ssh gmds001 mkfs.lustre --fsname=giotest --mgsnode=17.0.1.1@o2ib,17.0.1.2@o2ib --mdt --index=1  --failnode=17.0.1.1@o2ib --reformat /dev/sdc
    ### 4.2.2 ost的格式化
    将mkfsgiotest.ost拷贝到对应的io节点上,cexec执行,mkfsgiotest.ost在gio017的/root/目录下,使用vi编辑器查看格式化脚本是否正确,注意格式化ost的时候需要在单节点上执行。
    cexec giotest :' sh mkfsgiotest.ost'
    <code>
    base=`hostname|cut -c 5-6`
    basenum=`echo $(($base))`
    if [ $basenum -gt 16 ]
    then
            echo "this is for gio[001-016] "
            exit 1
    fi
    ((base2=$base+1))
    ((idx=$base*3-3))
    failnode01=17.0.2.$base@o2ib
    failnode02=17.0.2.$base2@o2ib
    mkfs.lustre --fsname=giotest --mgsnode=17.0.1.1@o2ib,17.0.1.2@o2ib --ost --index=$idx --failnode=$failnode02 --reformat /dev/sdb
    ((idx=$idx+1))
    mkfs.lustre --fsname=giotest --mgsnode=17.0.1.1@o2ib,17.0.1.2@o2ib --ost --index=$idx --failnode=$failnode02 --reformat /dev/sdc
    ((idx=$idx+1))
    mkfs.lustre --fsname=giotest --mgsnode=17.0.1.1@o2ib,17.0.1.2@o2ib --ost --index=$idx --failnode=$failnode02 --reformat /dev/sdd
    ((idx=$idx+1))
    mkfs.lustre --fsname=giotest --mgsnode=17.0.1.1@o2ib,17.0.1.2@o2ib --ost --index=$idx --failnode=$failnode01 --reformat /dev/sde
    ((idx=$idx+1))
    mkfs.lustre --fsname=giotest --mgsnode=17.0.1.1@o2ib,17.0.1.2@o2ib --ost --index=$idx --failnode=$failnode01 --reformat /dev/sdf
    ((idx=$idx+1))
    mkfs.lustre --fsname=giotest --mgsnode=17.0.1.1@o2ib,17.0.1.2@o2ib --ost --index=$idx --failnode=$failnode01 --reformat /dev/sdg
    </code>
    ###4.2.3 格式化正确性的简单验证
    格式化完成后,可以简单检查,确认底层文件系统(ldiskfs)的正确性,如果可以挂载,说明盘阵格式化成功。
    ```
    [root@gio001 ~]# mkdir -p /mnt/lustre/local/giotest-OST0000
    [root@gio001 ~]# mount -t ldiskfs /dev/sdb /mnt/lustre/local/giotest-OST0000
    [root@gio001 ~]# umount /mnt/lustre/local/giotest-OST0000
    ```
    ###4.3 修改网络配置
    格式化完成之后,需要修改网络配置,使Lustre默认使用IBA网络。
    使用cpush命令,将gio017上的/etc/modprobe.d/lustre.conf /etc/modprobe.d复制到每个节点上即可。
    使用vim 编辑器查看/etc/modprode.d/lustre.conf配置文件的内容,如果没有请添加网络配置为options lnet networks=o2ib(ib0)
    ```
    [/etc/modprobe.d/lustre.conf]
    options lnet networks=o2ib(ib0)
    ```
    如果不修改,会有以下报错(因为Lustre默认使用TCP):
    ```
    mount.lustre: mount /dev/sdb at /mnt/lustre/local/giotest-OST0000 failed: No such file or directory
    Is the MGS specification correct?
    Is the filesystem name correct?
    If upgrading, is the copied client log valid? (see upgrade docs)
    [/var/log/messages]
    Sep  6 15:49:32 gio001 kernel: LNet: Added LNI 20.0.2.1@tcp [8/256/0/180]
    Sep  6 15:49:32 gio001 kernel: LNet: Accept secure, port 988
    Sep  6 15:49:33 gio001 kernel: LDISKFS-fs (sdb): mounted filesystem with ordered data mode. quota=on. Opts:
    Sep  6 15:49:33 gio001 kernel: LustreError: 5145:0:(ldlm_lib.c:433:client_obd_setup()) can't add initial connection
    Sep  6 15:49:33 gio001 kernel: LustreError: 5145:0:(obd_config.c:572:class_setup()) setup MGC17.0.1.1@o2ib failed (-2)
    Sep  6 15:49:33 gio001 kernel: LustreError: 5145:0:(obd_mount.c:200:lustre_start_simple()) MGC17.0.1.1@o2ib setup error -2
    Sep  6 15:49:33 gio001 kernel: LustreError: 5145:0:(obd_mount_server.c:851:lustre_disconnect_lwp()) giotest-MDT0000-lwp-OST0000: Can't end config log giotest-client.
    Sep  6 15:49:33 gio001 kernel: LustreError: 5145:0:(obd_mount_server.c:1426:server_put_super()) giotest-OST0000: failed to disconnect lwp. (rc=-2)
    Sep  6 15:49:33 gio001 kernel: LustreError: 5145:0:(obd_mount_server.c:1456:server_put_super()) no obd giotest-OST0000
    Sep  6 15:49:33 gio001 kernel: LustreError: 5145:0:(obd_mount_server.c:135:server_deregister_mount()) giotest-OST0000 not registered
    Sep  6 15:49:33 gio001 kernel: Lustre: server umount giotest-OST0000 complete
    Sep  6 15:49:33 gio001 kernel: LustreError: 5145:0:(obd_mount.c:1324:lustre_fill_super()) Unable to mount  (-2)
    Sep  6 15:50:09 gio001 kernel: LNet: Removed LNI 20.0.2.1@tcp
    ```
    # 5 启动服务 #
    ###5.1mds启动###
    ```
    [root@gmds001 ~]# mount -t lustre /dev/sdb /mnt/lustre/local/giotest-MDT0000/
    ```
    确认是否挂载成功
    ```
    [root@gmds001 ~]# mount | grep lustre
    /dev/sdb on /mnt/lustre/local/giotest-MDT0000 type lustre (rw)
    ```
    ###5.2ost启动###
    手动启动方式:
    [root@gio001 ~]# mount -t lustre /dev/sdb /mnt/lustre/local/giotest-OST0000
    mount.lustre: set /sys/block/sdb/queue/max_sectors_kb to 32767
    [root@gio001 ~]# mount -t lustre /dev/sdc /mnt/lustre/local/giotest-OST0001
    mount.lustre: set /sys/block/sdc/queue/max_sectors_kb to 32767
    [root@gio001 ~]# mount -t lustre /dev/sdd /mnt/lustre/local/giotest-OST0002
    mount.lustre: set /sys/block/sdd/queue/max_sectors_kb to 32767
    [root@gio001 ~]# mount -t lustre /dev/sde /mnt/lustre/local/giotest-OST0003
    mount.lustre: set /sys/block/sdb/queue/max_sectors_kb to 32767
    [root@gio001 ~]# mount -t lustre /dev/sdf /mnt/lustre/local/giotest-OST0004
    mount.lustre: set /sys/block/sdc/queue/max_sectors_kb to 32767
    [root@gio001 ~]# mount -t lustre /dev/sdg /mnt/lustre/local/giotest-OST0005
    mount.lustre: set /sys/block/sdd/queue/max_sectors_kb to 32767
    使用ldev.conf配置文件启动:
    首先查看ldev配置文件,在/etc/ldev.conf中添加节点名称与对应的OST序号,使用blkid可以查看每个节点的OST的序号
    例:
    .......
    gio017 gio018 gswgfs-OST0030
    gio017 gio018 gswgfs-OST0031
    gio017 gio018 gswgfs-OST0032
    gio018 gio017 gswgfs-OST0033
    gio018 gio017 gswgfs-OST0034
    gio018 gio017 gswgfs-OST0035
    gio019 gio020 gswgfs-OST0036
    gio019 gio020 gswgfs-OST0037
    gio019 gio020 gswgfs-OST0038
    gio020 gio019 gswgfs-OST0039
    gio020 gio019 gswgfs-OST003a
    gio020 gio019 gswgfs-OST003b
    .......
    使用ldev -l 查看对应节点的OST序号是否正确,然后使用service lustre start启动服务。
    ###6 FAQ###
    IBA线缆插错了怎么办?
    如何检查?
    使用ibstat查看状态,第一块网卡的SM lid为1,第二块网卡的SM lid为41985则属于正常情况,如若相反,机房交换重插。
    如何处理?
    重启IBD服务,service openibd restart  卸载模块lustre_rmmod 再重启IBD服务, service openibd restart

  • 相关阅读:
    工作的思考十七:工作中容易犯的错误
    学习之路三十四:再一次重构缓存设计
    学习之路三十五:Android和WCF通信
    学习之路二十:两周工作技术总结
    学习之路三十三:重构技巧的学习
    工作的思考十五:升职前需要做的准备(TeamLeader)
    学习之路三十二:VS调试的简单技巧
    maven pom
    maven环境配置
    maven的背景
  • 原文地址:https://www.cnblogs.com/wangtao1993/p/5901685.html
Copyright © 2011-2022 走看看