Intel S5000VSA Raid For Linux--Compile the kernel
想做一个镜像服务器,就找到一台有能放6块硬盘的服务器,原来有张卡,是HighPoint RocketRAID 2220的,不知道怎么回事,做RAID5时,服务器就无法引导,就直接用主板自带的RAID,然后接一块IDE做系统盘。不过,要知道主板自带的一般都是软RAID,而且,这块主板的RAID5是要一块RAID KEY的。没办法,只好冒险做RAID0了。
系统用免费的CentOS5.4,安装时因为是在IDE上装系统,就没装驱动。安装好后,就从官网下驱动,先用RPM包,不行,看到的是6块硬盘。再参考官方的README用源码安装,还是不行。郁闷!本来因为CentOS 5.4 不支持 EXT4的,想升级Kernel到2.6.29.6的,于是,就一步到位,升级Kernel + 安装S5000VSA驱动一起做了。参考了很多资料,整理如下:
- 首先下载S5000VSA的Raid驱动:Linux* 版英特尔® ESRT-2 SATA 和 SAS 软件 RAID 驱动程序(最新:2009/10/27 版本号13.11.0922.2009),解压驱动程序到/usr/src/drivers/megasr/(为通用性,以下改用<Driver directory>)下;
- 下载Kernel 2.6.29.6,解压到/usr/src/kernel/2.6.29.6/(为通用性,以下改用<Kernel directory>)下;
- 在<Kernel directory>drivers/scsi下创建名为megasr的目录;
- 从<Driver directory>/shim/library/rhel5-64下复制Makefile和megasr-lib.a到<Kernel directory>drivers/scsi/megasr下;
- 修改Makefile文件为如下内容: OPEN =open_source EXTRA_CFLAGS += -DLSI_LINUX -DLSI_RAID5_SUPPORT obj-$(CONFIG_MEGASR) += megasr.o megasr-objs := ${OPEN}/oss/lin/lin_oss.o ${OPEN}/osl/lin/osl_char.o ${OPEN}/osl/lin/linux_osl.o megasr-lib.a
- 拷贝<Driver directory>/shim/open_source下所有文件到<Kernel directory>drivers/scsi/megasr下;
- 拷贝<Driver directory>/shim/open_source目录到<Kernel directory>drivers/scsi/megasr下;
- 在<Kernel directory>drivers/scsi/megasr下创建一个名为Kconfig.megasr的文件,编辑内容如下,并保存 config MEGARAID_NEWGEN bool "LSI MegaRAID Software RAID Module" depends on PCI && SCSI help Module for LSI MegaRAID Software RAID Module
- 在<Kernel directory>drivers/scsi下编辑Makefile文件,在obj-$(CONFIG_MEGARAID_SAS) += megaraid/一行下面添加 obj-$(CONFIG_MEGASR) += megasr/;
- 在<Kernel directory>drivers/scsi下编辑Kconfig文件,在source "drivers/scsi/megaraid/Kconfig.megaraid"一行下面添加 source "drivers/scsi/megasr/Kconfig.megasr"
- 然后就编译内核,选择驱动(Device Drivers --->SCSI device support --->下选择SCSI device support 、SCSI disk support、SCSI low-level drivers --->以及LSI MegaRAID Software RAID Module);
- 剩下的就是漫长的等待了,等编译完了以后,别忘记把grub.conf里的默认启动换成新内核的。