如何在 Areca 1880i 硬件 RAID 卡上执行 CentOS 6.0 的快速安装

如何在 Areca 1880i 硬件 RAID 卡上执行 CentOS 6.0 的快速安装

我有一台配备此硬件的服务器

  • 英特尔至强 E5620CPU
  • Areca 1880i 8 端口 SAS RAID PCIe 512MB 缓存
  • Areca 电池备用模块
  • 5 件日立 Deskstar 7K3000 HDS723030ALA640 64MB 3TB

并创建了一个利用所有 5 个硬盘的 RAID 6 卷。

不幸的是,不支持槟榔 1880iCentOS 6.0 安装映像上的 Linux 内核中的 RAID 卡。不过,Areca 网站上提供了更新的内核模块(既有 RHEL 6.0 的预编译二进制文件,也有源代码)。

如何编写 kickstart 脚本来自动在服务器上安装 CentOS 6.0?

更新:好消息!CentOS 6.2 支持 Areca 1880i。当我通过执行“yum -y update”升级到 CentOS 6.2 时,新内核对 Areca 1880i 具有原生支持。不过,我还没有测试过 CentOS 6.2 kickstart 安装,但我想那应该也可以。

答案1

在一个%前我们需要运行 kickstart 脚本的部分预安装脚本使用 /sbin/insmod 加载更新的二进制内核模块 (arcmsr)。之后,kickstart 安装可以访问 Areca 1880i RAID 卡提供给计算机的硬盘,从而可以在其上分区和创建文件系统。在%邮政我们需要运行 kickstart 脚本的部分安装后将更新的二进制内核模块安装到 /mnt/sysimage/lib/modules/ 中的脚本,然后运行 ​​/sbin/mkinitrd,以便服务器能够在安装后启动。

Areca 网页上的预编译内核模块被打包为 ZIP 存档

http://www.areca.us/support/s_linux/driver/rhel/6_0.zip

解压缩命令在%前Centos 6.0 kickstart 安装的一部分。因此我们提前解压该档案。

$ mkdir /tmp/a
$ cd /tmp/a
$ wget --quiet  http://www.areca.us/support/s_linux/driver/rhel/6_0.zip
$ unzip 6_0.zip 
Archive:  6_0.zip
   creating: 6_0/
  inflating: 6_0/install.zip         
  inflating: 6_0/README.txt          
$ mkdir /tmp/b
$ cd /tmp/b
$ unzip /tmp/a/6_0/install.zip 
Archive:  /tmp/a/6_0/install.zip
  inflating: driver.img              
$ ls -l driver.img            
-rw-r--r-- 1 erik users 1474560 2011-05-09 10:48 driver.img

现在把文件驱动程序映像在某些内部 Web 服务器上。在此示例中,该文件将作为http://www.example.com/driver.img但您需要在自己的 kickstart 脚本中调整此 URL。以下是您在 %pre 部分中写入的内容

%pre  --log=/tmp/kspre.log
#!/bin/sh

cd /tmp
wget http://example.com/driver.img
mkdir /arcmsr
mount -o loop driver.img /arcmsr
cd /arcmsr
sh ./pre-install.sh
sleep 5
dd if=/dev/zero of=/dev/sda bs=512 count=64
parted -s /dev/sda mklabel gpt 
%end

sleep 5是必要的,否则就会parted -s /dev/sda mklabel gpt像这样失败

# parted -s /dev/sda mklabel gpt
Error: Can't have the end before the start! (start sector=34 length=-3)
Error: Can't have overlapping partitions.
Error: Can't have overlapping partitions.

我们需要创建一个 GUID 分区表 (GPT),因为 RAID 卡将 RAID 6 卷作为 9 Tb 硬盘呈现给计算机。9 Tb 大于普通分区表可以处理的最大 2 Tb。

使用 GPT 的想法来自于Joshua Daniel Franklin 的邮件列表帖子

在 kickstart 脚本的 %post 部分中,我们首先将一些安装文件复制到 /mnt/sysimage 中,因为当我们稍后在 chroot 进入 /mnt/sysimage 后运行命令时,它们需要可用

%post --nochroot --log=/mnt/sysimage/root/ks-post1.log

cp -r /tmp /mnt/sysimage/root/tmp
mkdir /mnt/sysimage/tmp/arcmsr
cp -r /arcmsr/* /mnt/sysimage/tmp/arcmsr

%end
%post --log=/root/ks-post2.log

cd /tmp/arcmsr
sh ./post-install.sh

%end

请注意,我们需要两个 %post 部分,第一个没有 chroot,第二个有 chroot 到 /mnt/sysimage。首先,我尝试/usr/sbin/chroot /mnt/sysimage进入非 chroot %post 部分,但没有成功。

服务器的分区方案可能如下所示

bootloader --location=mbr
clearpart --linux --drives=sda
part /boot --fstype=ext4 --size=8192
part pv.01 --grow --size=1
volgroup vg0 --pesize=4096 pv.01
logvol swap --name=lv_swap --vgname=vg0 --size=65536
logvol / --fstype=ext4 --name=lv0 --vgname=vg0 --grow --size=1024

Joshua Daniel Franklin 的邮件列表帖子说应该避免在 kickstart 文件中使用zerombrclearpart --all,否则我们在 %pre 部分创建的 GPT 将被覆盖。

安装后服务器如下所示

[user@server ~]$ cat /proc/meminfo |grep SwapTotal
SwapTotal:      67108856 kB
[user@server ~]$ df -m
Filesystem           1M-blocks      Used Available Use% Mounted on
/dev/mapper/vg0-lv0    8256978       828   7836720   1% /
tmpfs                    12012         0     12012   0% /dev/shm
/dev/sda1                 8064       194      7460   3% /boot

相关内容