基于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

————————————————

版权声明:本文为CSDN博主「枫华0925」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/lizhihua0925/article/details/53198483


基于PXE自动配置RAID方法
指定路由相当于默认网关这样client就可以和PXEserver通信,指定tftpserver客户端可以通过tftp协议下载pxelinux.0文件以及内核启动文件等。通过text.cfg文件知道ks.cfg文件的位置,下载并按照ks.cfg文件的步骤安装系统。RAID1模式是同时向两块硬盘中写入相同数据,一般情况下,更换掉损坏的驱动器之后,控制器将会...

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

如何通过PXE实现一键自动化安装操作系统
当计算机引导时,BIOS 把 PXE Client 调入内存中执行,然后由 PXE Client 将放置在远端的文件通过网络下载到本地运行。运行 PXE 协议需要设置 DHCP 服务器和 TFTP 服务器。DHCP 服务器会给 PXE Client(将要安装系统的主机)分配一个 IP 地址,由于是给 PXE Client 分配 IP 地址,所以在配置 DHCP 服务器时需要增加...

如何通过PXE实现一键自动化安装操作系统?
next-server 192.168.1.201; \/\/\/指向tftp服务器 filename="pxelinux.0"; \/\/tftp根目录的相对路径 配置完成后保存,启动dhcp服务。\/etc\/init.d\/dhcpd start 配置tftp服务器编辑配置文件 vim \/etc\/xinetd.d\/tftp chkconfig tftp on service xinetd start 复制引导文件到tftp目录下,这个引导...

运维部署自动化实践(一)利用PXE远程自动化安装Ubuntu16.04 server_百度...
建议直接使用preseed配置来安装,接下来研究下看看能不能解决问题。问题链接: https:\/\/serverfault.com\/questions\/658070\/kickstarting-ubuntu-14-04-how-do-i-create-an-efi-boot-partition-from-my-ks-cf 下一章: 运维部署自动化实践(二)PXE+Preseed自动安装Ubuntu16.04 server ...

pxe启动交换机怎么配置
pxe启动交换机通过pxe启动代码、DHCP以及主板等基础配置。交换是按照通信两端传输信息的需要,用人工或设备自动完成的方法,把要传输的信息送到符合要求的相应路由上的技术的统称。交换机根据工作位置的不同,可以分为广域网交换机和局域网交换机。广域的交换机就是一种在通信系统中完成信息交换功能的设备,...

电脑开机出现pXE: Exiting PXE ROM是什么意思
PXE(Preboot Execution Environment)是一种基于网络的启动协议。它允许计算机在没有任何本地存储设备(如硬盘、CD\/DVD驱动器)的情况下,通过网络从远程服务器获取启动文件和配置信息。这种技术常用于无盘工作站、远程管理和网络安装等场景。2. PXE-MOF:Exiting PXE ROM消息的含义 当计算机开机显示“PXE-...

如何配置 PXE 服务点
或者,在“操作”窗格中,右键单击“站点系统角色”,然后单击“新建角色”。注意 您可以部署和配置多个 PXE 服务点服务器,具体取决于您的网络拓扑。在向导的“常规”页面上,选择性地提供服务器的完全限定的主机名 (FQDN),然后指定应该使用哪些帐户凭据来安装站点系统角色。在“系统角色选择”页面上,...

自动化运维必备-PXE批量安装系统
在调试和安装过程中,可能会遇到ks.cfg文件错误、yum源路径错误或iptables和selinux问题。解决这些问题需要检查服务状态、文件权限和路径配置。总结来说,自动化批量安装系统是通过PXE技术,通过一系列服务配置和文件管理来实现的,关键在于正确设置和管理这些服务,以确保无误的自动化部署。

PXE 安装linux 怎么让它自己分配IP
1、yum -y install dhcp 2、vim \/etc\/dhcp\/dhcpd.conf 3、修改成以下:subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.11 192.168.1.240; #自动分配IP范围 next-server 192.168.1.10; #PXE引导器主机地址 filename "pxelinux.0"; #PXE启动文件地址 } 4...

雁塔区13371037321: 急!做了raid模式还能实现pxe自动应答吗 -
干有沃尔: RAID1模式是同时向两块硬盘中写入相同数据,一般情况下,更换掉损坏的驱动器之后,控制器将会恢复RAID 1阵列的数据.前提是没有重做系统和重新组建RAID列阵.单拿出RAID中的一块硬盘来接到电脑上是肯定不认盘的.所以你这种情况,数据只有丢失这一种可能了.

雁塔区13371037321: Dell服务器raid阵列怎么配置
干有沃尔: 操作步骤如下: 1. 首先重启Dell服务器,我们会看到Dell的服务器的启动界面,稍等片刻; 2. 当我们看到出现下图这个界面的时候 按一下键盘上的ctrl+R 键; 3. 按完后我们进入raid阵列卡的配置界面,由于我们初次没有配置阵列卡 所以阵列卡显...

雁塔区13371037321: Dell服务器raid阵列怎么配置 -
干有沃尔: 磁盘阵列可以在安装系统之前或之后产生,系统会视之为一个(大型)硬盘,而它具有容错及冗余的功能.磁盘阵列不单只可以加入一个现成的系统,它更可以支持容量扩展,方法也很简单,只需要加入一个新的硬盘并执行一些简单的指令,...

雁塔区13371037321: windows xp下如何设置raid -
干有沃尔: 过,最终解决了!方法一:用U盘量产工具,将U盘仿真成软盘,在CMOS中作相应设置.方法二:先将系统装到SATA盘上,装好RAID驱动后,用PE启动,将SATA系统分区直接ghost到RAID中. ================================== 将文件解压到一个文件夹下.通过设备管理器,找到RAID(如果没装驱动应该有?号图标),安装驱动程序,安照提示,选定解压的文件夹.就和正常安装硬件驱动程序一样.以上是在XP系统中安装.如果是在安装XP过程中安装RAID,就必须要用U盘仿真软驱来解决,把所有文件解压到U盘根目录下.

雁塔区13371037321: 组建RAID -
干有沃尔: 第一步 1备份好硬盘中的数据 2准备好一张带Fdisk与Format命令的Windows 98启动盘[软盘或者带启动的98安装盘都行] 第二步 将两块硬盘的跳线设置为Master,分别接上IDE3、IDE4口(它们由主板上的HighPoint370芯片控制)顺序不考虑 第...

雁塔区13371037321: 服务器怎么做RAID -
干有沃尔: 如果是用的raid1模式就是你说的情况,只能在系统中看到一个盘,看下面参考资料在通常情况下,RAID有如下几种分类: RAID0:由多个硬盘并发协同工作完成数据的读写,数据被均匀分布在各个硬盘上,一般情况下,使用的硬盘越多,读写...

雁塔区13371037321: 快速创建RAID需要那几个步骤
干有沃尔: 第一步进入BIOS设置程序的“OnChip IDE Device”窗口,找到一个名为“SATA Mode”的选项,将它设置为“RAID”,然后保存BIOS设置并重新启动电脑. 第二部组建RAID系统 第三部在BIOS中启动了RAID功能后,ICH5R南桥芯片内置的“...

雁塔区13371037321: 服务器设置raid - 服务器设置raid启动
干有沃尔: 1. 服务器设置raid启动开机后,服务器会先硬件自检,完成后启动系统,硬件自检时注意屏幕信息,会显示当前的阵列卡型号,阵列配置,容量等.2. 服务器bios设置raid...

雁塔区13371037321: linux磁盘阵列怎么配置 -
干有沃尔: 磁盘阵列配置文件为/etc/raidtabraiddev /dev/md0 //指定磁盘阵列的设备名称raid-level linear //指定采用的是Linear模式nr-raid-disks 2 //此阵列由2个硬盘组成chunk-size 32 //数据写入时

雁塔区13371037321: extreme RAID 2000如何配置 -
干有沃尔: 一, 自动配置:通过HP SmartStart(V7.51)随机光盘自动配置RAID5,即:使用光盘引导机器,不用做任何操作,机器自动配置为RAID5注:对于现有的4块型号大小相同的磁盘自动配置为RAID5.二,手工配置(修改) 当通过HP ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网