基于PXE自动配置RAID方法


实现原理:

我们要在内存中运行一个小的内核系统,并检测到raid,然后对raid进行配置,我们使用了基于centos6.5的内核和initrd.img(initrd.img本身是一个小的内存中运行的系统),但这个小系统本身带的工具太少,需要我们加入MegaCli64命令,以及用到的shell命令,定制一个符合我们要求的小系统,并重新打包。

由于我们需要在正式安装前配置raid,所以我们利用ks文件中的%pre执行一些检测和配置工作,然后直接重启就OK了。

 

 

1.      环境准备

a.      正常安装的centos6.5一台

b.      下载并安装megacli工具

ftp://rpmfind.net/linux/Mandriva/devel/cooker/x86_64/media/non-free/release/megacli-8.02.21-1-mdv2012.0.x86_64.rpm

c.      安装后在目录/opt/MegaRAID/MegaCli/三个文件

libstorelibir-2.so.14.07-0 MegaCli  MegaCli64

 

2.      小系统制作

a.      复制解压initrd.img

mount centos6.5.iso  /mnt  -o loop

mkdir  /root/test

cp  /mnt/isolinux/initrd.img /root/test/

cd  /root/test

xz -dc initrd.img | cpio –id

 

解压后如下所示:

上述是在ubuntu系统中解压的,最好是在centos中进行,方便后面加入命令

 

b.      加入自定义的包

cp -r /opt  ./                      #加入MegaCli64工具

此时,Megacli64工具还不能用,因为在小系统中默认很多依赖包都没有

我们通过ldd查看MegaCLi64依赖的包(有几个缺少的),如下:

root@ubuntu:~/test# ldd opt/MegaRAID/MegaCli/MegaCli64

linux-vdso.so.1 => (0x00007ffdaffd1000)

libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f21f5f26000)

libncurses.so.5 => /lib/x86_64-linux-gnu/libncurses.so.5 (0x00007f21f5d03000)

libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f21f5aff000)

libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f21f57fb000)

libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f21f54f5000)

libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f21f52df000)

libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f21f4f1a000)

/lib64/ld-linux-x86-64.so.2 (0x00007f21f6144000)

libtinfo.so.5 => /lib/x86_64-linux-gnu/libtinfo.so.5 (0x00007f21f4cf1000)

      这时我们要从正常安装的centos6.5的系统中复制上述包到小系统的相应目录中。

 

c.      加入特定的shell命令

由于刚解压的小系统中缺少很多shell命令,所以也需要加入里面,以curl为例

首先,在正常安装的centos6.5系统中找到curl命令(/usr/bin/curl),将该命令复制到小系统中的目录中,即/root/test/usr/bin/,并给预执行权限

chmod +x /root/test/usr/bin/curl

根据上述方法我们依次加了head、cp、wc、uniq等命令

 

d.      打包小系统

find . |cpio -o   -H newc>initrd

lzma initrd  initrd.lzma

mv initrd.lzma initrd.img

然后将打包好的initrd.img放入PXE的启动文件所在目录中,这里是放在了/var/lib/tftpboot/centos6u5/目录中

 

3.      配置ks文件

langen_US

keyboardus

timezoneAsia/Shanghai

rootpw--iscrypted $1$bzMRSch3$e2iTZ.7IuuONNJcXLq2jy1

selinux--disabled

reboot

#text

cmdline

install

zerombryes

auth  --useshadow --enablemd5

firewall--enabled --port=22:tcp

skipx

url --urlhttp://10.1.15.250/Centos6u5/

clearpart--all --initlabel

bootloader--location=mbr

autopart

logging--host=10.1.15.250 --level=debug

 

%packages

@core

 

%pre  --interpreter /bin/sh   --log=/root/my-pre-log

exportPATH=$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

echo"-------------------"

ln -s -T /mnt/runtime/opt /opt

 

mkdir /newroot

mount tmpfs /newroot -t tmpfs

cp -a /mnt/runtime/*  /newroot/

ls /mnt/runtime/

 

mount /proc /newroot/proc  -o bind

mount /dev /newroot/dev  -o bind

mount /sys /newroot/sys  -o bind

 

# chroot to runipmitool/hpasmcli/omreport

chroot /newroot

 

/opt/MegaRAID/MegaCli/MegaCli64-DiscardPreservedCache -Lall -aALL

/opt/MegaRAID/MegaCli/MegaCli64 -CfgForeign-Clear -aALL

/opt/MegaRAID/MegaCli/MegaCli64-CfgLdDel -LALL -Force -aALL

/opt/MegaRAID/MegaCli/MegaCli64-CfgClr -aALL

id=`/opt/MegaRAID/MegaCli/MegaCli64  -cfgdsply -aALL |grep 'Enclosure Device ID' |uniq | awk '{print $4}'`

/opt/MegaRAID/MegaCli/MegaCli64-CfgSpanAdd -r10 -Array0[32:0,32:1] -Array1[32:2,32:3] -Array2[32:4,32:5]-Array3[32:6,32:7] -strpsz512 -a0  ||sleep 60

/opt/MegaRAID/MegaCli/MegaCli64-LDSetProp WB -LALL -aALL

/opt/MegaRAID/MegaCli/MegaCli64-LDSetProp ADRA -LALL -aALL

echo"---------------------"

reboot

 

大功告成!!!!PXE测试!!!

 

说明:

基于ubuntu的系统使用了debain-installer,其中最关键的检测和安装过程由一个大的二进制程序main-menu进行,无法进行hook,所以本场景不适用;

Rhel/Centos6.2之前的initrd.img打包方式不同,请注意,由于dell x20 、浪潮、联想最新的服务器最低只支持6.5,所以建议使用高版本系统制作配置raid的系统。

 

4.      Raid缓存参数说明

建议设置:

WriteBack,ReadAdaptive, Direct, No Write Cache if bad BBU

写回(默认),自适应读(需要修改),读请求不缓存(默认),电池有问题时自动切到非写回模式(默认)

自适应读修改的命令:/opt/MegaRAID/MegaCli/MegaCli64-LDSetProp ADRA -LALL -aALL

 

  • 6
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
诚龙网维全自动PXE网刻工具是一款用于远程部署和管理计算机操作系统的工具。下面是使用该工具的步骤: 1. 网络环境设置:首先确保你的计算机与目标机器处于同一局域网环境中,并且能够相互通信。 2. 安装工具:将诚龙网维全自动PXE网刻工具下载并安装在你的计算机上。安装过程中可能需要提供一些必要的信息,例如用户名和密码等。 3. 配置TFTP服务器:该工具需要一个TFTP服务器来存储和传输操作系统镜像文件。在工具安装完成后,你需要根据实际情况进行TFTP服务器的配置,例如指定存储路径和设置权限等。 4. 添加操作系统镜像:在工具的操作界面中,选择“添加镜像”选项,然后选择你想要部署的操作系统镜像文件。该工具支持常见的操作系统镜像格式,例如ISO或WIM等。 5. 网络引导设置:在工具的操作界面中,选择“网络引导”选项,然后设置网络引导的方式。该工具支持多种网络引导方式,例如PXE和iPXE等。 6. 部署操作系统:选择你要部署操作系统的目标计算机,并选择相应的操作系统镜像、网络引导方式和其他配置选项。然后点击“开始部署”按钮,该工具将自动向目标计算机发送操作系统镜像并进行远程安装。 7. 监控和管理:在工具的操作界面中,你可以监控和管理已部署操作系统的计算机。你可以查看计算机的状态、远程控制计算机、重启或关闭计算机等。 总之,诚龙网维全自动PXE网刻工具是一款方便快捷的远程部署和管理计算机操作系统的工具。通过上述步骤,你可以轻松地使用该工具进行操作系统的自动部署和管理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值