转自:https://garywu520.github.io/blog/2017/04/12/cobbler%E4%BD%BF%E7%94%A8DTK%E8%87%AA%E5%8A%A8%E5%8C%96%E5%81%9ARAID/
Dell提供一个叫做DTK(dell openmanage deployment toolkit)的套件, 套件包含了 raidcfg 这个工具。dtk导入cobbler之后,就可以自动化的完成RAID卡的设置;以及自动化完成修改BIOS设置.
|
自动化配置RAID
下载DTK ISO镜像
下载: DTK_v5.3(最新版)
挂载iso并安装rpm基础包
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
mount -o loop dtk_5.3.0_1908_Linux64_A00.iso /mnt cd /mnt/RPMs/rhel7/x86_64 ls
#注:以下包安装有前后顺序 yum install -y srvadmin* yum install -y raidcfg-5.3.0-1908.9058.el7.x86_64.rpm yum install -y syscfg-5.3.0-1908.9058.el7.x86_64.rpm yum install -y dtk-scripts-5.3.0-1908.9058.el7.x86_64.rpm
命令软链 ln -sv /opt/dell/toolkit/bin/raidcfg /usr/sbin/raidcfg
注:我的cobbler部署在了CentOS7上,所以需要进入rhel7目录。
|
了解文件SA.1和SA.2
1 2 3 4 5 6 7 8 9 10
|
# ls -lh /mnt/isolinux/ ...... -r--r--r-- 1 root root 4.0M Feb 15 2016 SA.1 -r--r--r-- 1 root root 158M Feb 15 2016 SA.2 ......
# file /mnt/isolinux/SA.1 # file /mnt/isolinux/SA.2
上面可以看到有两个文件SA.1和SA.2, 这两个文件分别是kernel和initrd文件,稍后导入到cobbler的时候会用到它们。
|
手动添加dtk所需文件到cobbler启动菜单
1 2 3 4 5 6 7 8 9 10 11 12
|
拷贝SA.1和SA.2到/var/www/cobbler/ks_mirror/目录中 # mkdir /var/www/cobbler/ks_mirror/dtk5.3_raid5_n3x1/ # cp /mnt/isolinux/SA* /var/www/cobbler/ks_mirror/dtk5.3_raid5_n3x1
将dtk导入到cobbler # cobbler distro add --name=dtk5.3_raid5_n3x1 --kernel=/var/www/cobbler/ks_mirror/dtk5.3_raid5_n3x1/SA.1 --initrd=/var/www/cobbler/ks_mirror/dtk5.3_raid5_n3x1/SA.2 # cobbler profile add --name=dtk5.3_raid5_n3x1 --distro=dtk5.3_raid5_n3x1 注: name名称定义为"dtk5.3_raid5_n3x1"原因是便于识别,即3块盘做1组RAID5。
查看确认 # cobbler profile list # cobbler distro list
|
配置RAID自动化脚本并与distro进行关联
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
创建raid脚本文件存放目录 mkdir /var/lib/tftpboot/raidcfg/raid5_n3x1
接下来配置raid5.sh脚本 vim /var/lib/tftpboot/raidcfg/raid5_n3x1/raid5_n3x1.sh 内容如下:
|
1 2 3 4
|
把raid5脚本与distro进行关联 cobbler distro edit --name=dtk5.3_raid5_n3x1 --kopts="share_type=tftp share_location=/raidcfg/dtk5.3_raid5_n3x1 share_script=dtk5.3_raid5_n3x1.sh tftp_ip=x.x.x.x"
注: 这条命令修改的配置文件是/var/lib/tftpboot/pxelinux.cfg/default
|
最后执行cobbler sync命令
1 2
|
最后执行命令: cobbler sync 目的:保存配置
|
导入多个DTK满足不同RAID自动化需求
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
例如:Dell R720,8块盘满配,4块一组RAID5,做两组。
mount -o loop dtk_5.3.0_1908_Linux64_A00.iso /mnt cd /var/www/cobbler/ks_mirror/ mkdir dtk5.3_raid5_n4x2 cp /mnt/isolinux/SA* dtk5.3_raid5_n4x2/ cd dtk5.3_raid5_n4x2/ && ls
cobbler distro add --name=dtk5.3_raid5_n4x2 --kernel=/var/www/cobbler/ks_mirror/dtk5.3_raid5_n4x2/SA.1 --initrd=/var/www/cobbler/ks_mirror/dtk5.3_raid5_n4x2/SA.2
cobbler profile add --name=dtk5.3_raid5_n4x2 --distro=dtk5.3_raid5_n4x2 cobbler profile list cobbler distro list
cd /var/lib/tftpboot/raidcfg/ mkdir raid5_n4x2
接下来配置raid5_n4x2.sh脚本 vim /var/lib/tftpboot/raidcfg/raid5/raid5_n4x2.sh (略) chmod 755 /var/lib/tftpboot/raidcfg/raid5/raid5_n4x2.sh
cobbler distro edit --name=dtk5.3_raid5_n4x2 --kopts="share_type=tftp share_location=/raidcfg/raid5_n4x2 share_script=raid5_n4x2.sh tftp_ip=x.x.x.x"
cobbler sync
|
常用RAID脚本
raid5-3块盘/组
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
cat >> /tmp/raid5.ini <<EOF [vdisk0] controllerid=0 raid=5 readpolicy=nra writepolicy=wt stripesize=64 cachepolicy=e adisk=0:0:1,0:1:1,0:2:1 EOF
echo "…………. reset Other Raid …………." raidcfg -ctrl -c=0 -ac=fgnclr echo "…………. reset all disks …………." raidcfg -ctrl -c=0 -ac=rst echo "………. 3 disks for raid5 ………." raidcfg -i=/tmp/raid5.ini echo "…………… fast init ……………" raidcfg -vd -c=0 -vd=0 -ac=fi echo "…………… RAID5 is created, this is server will be shutdown... ……………" shutdown
|
2组raid5-4块盘/组(Dell R720)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
|
raid5_n3x1+raid0_n1x1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
|
附录:RAID参数详解
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
上面这些指令从哪儿来? raidcfg -h 帮助都有使用方法,常用的如下:
controller 简写为 -ctrl action 简写为 -ac controllerid 简写为 -c adisk, pdisk 简写为 -ad, -pd raid 简写为 -r size 简写为 -sz stripsize 简写为 -ssz cachepolicy 简写为 -cp writepolicy 简写为 -wp readpolicy 简写为 -rp vdisk 简写为 -vd
|
RAIDCFG命令分类
信息输出类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
|
vdisk操作类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
|
hotspare类
raid控制类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
|
通用参数
1 2 3 4 5 6 7 8 9 10 11
|
除了[-ver]之外,可以应用于上边任何命令中:
[-ver] -- 显示RAIDCFG版本 [-l=logfilename] -- 将输出写入到log文件中 [-si] -- 静默,抑制console输出
应用举例: 假设系统总共有8块硬盘,前两块146G做RAID1,后5块900G做RAID5,最后一块做全局hotspare raidcfg -ctrl -ac=cvd -c=0 -ad=0:0:0,0:1:0 -r=1 raidcfg -ctrl -ac=cvd -c=0 -ad=0:2:0,0:3:0,0:4:0,0:5:0,0:6:0 -r=5 raidcfg -ctrl -ac=sghs -c=0 -ad=0:7:0
|
参考:官方参数说明