如何在 CentOS 5 上设置一个软件硬盘阵列

这篇文章探讨如何于安装时,在没有真实硬盘阵列*控制器的系统上创建一个软件(mdraid)RAID1。这意味着控制器会将原始块设备直接暴露给操作系统。这文章亦假设所涉及的设备是头两个 SATA 硬盘 /dev/sda 及 /dev/sdb。若果是头两个平衡 ATA 硬盘,请将 /dev/sda 及 /dev/sdb 改为 /dev/hda 及 /dev/hdb(或者 /dev/sdc,如果是第二个主硬盘)。假如是其它设备,请适切地调整硬盘称谓。请按你的处境小心修改指令,切勿盲目地遵从下面的步骤。

要正确开机,/boot 必须位于非硬盘阵列,或者位于 RAID1 的分区。/boot 不能采用 RAID0、RAID5 或其它 RAID 类型,而 RAID0(没有冗余的条纹)不推荐给重要的分区使用。只要满足了 /boot 的限制,主目录及其它分区便可以采用 RAID5 或其它类型,然而,这个样例不会涵盖那些选择。**

<!> 这篇文章所描述的行动可以毁坏现有的文件系统。请先在一个测试设备上进行实验,并创建最新及可靠的备份,然后才正式执行。请勿盲目地剪贴指令,尤其是以 root 身份来执行,除非你清楚了解它们的效用。

dd 这个指令及下面所描述的步骤将会毁灭硬盘上的所有数据。如果硬盘上藏有需用的数据,请将它们备份。

第一部份

  1. 停用主机板或 RAID 控制器 BIOS 上的任何仿真的硬盘阵列,令它成为一个正常的控制器 —— 多数是 ATA 或 SATA,也有可能是 SCSI。假如之前采用的是仿真硬盘阵列,你或许须要盖过分区列表。切勿装入 RAID 驱动程序。以下指令可以于图像安装分割硬盘前在第二个虚拟控制台(Ctrl-Alt-F2)内执行;或者在安装媒体的修复模式中执行;又或者通过 LiveCD 来执行。设备内的分区表将会被清除,而硬盘上的所有数据将会被遗失!
    • dd if=/dev/zero of=/dev/sda bs=512 count=64 
      dd if=/dev/zero of=/dev/sdb bs=512 count=64
  2. 开始以图像界面安装 CentOS。你可能需要用 "boot: linux nodmraid" 或在首个安装选单按 [Tab] 来加入 nodmraid 这个开机指令。
  3. 自定分区并删除所有分区,包括 LVM,来作个新开始
  4. 在 sda 及 sdb 上为 /boot 创建一个 ~100MB 的软件硬盘阵列分区
  5. 在 sda 及 sdb 上为 swap 创建一个软件硬盘阵列分区。这个分区的尺寸视乎内存数量及个人首选。这个范件采用 1GB。这将会是个硬盘阵列式的 swap***
  6. 在 sda 及 sdb 上为 / 创建一个软件硬盘阵列分区并用尽所有空间
  7. 点击 RAID 键来创建一个硬盘阵列设备
  8. 选择那两个 100MB 的分区,设置挂载点为 /boot,文件系统类型为 ext3,硬盘阵列类型为 RAID1(缺省设备名称是 md0),点击 OK
  9. 点击 RAID 键来创建一个硬盘阵列设备
  10. 选择那两个 1GB 的分区,配置文件案系统类型为 swap,硬盘阵列类型为 RAID1(缺省设备名称是 md1),点击 OK
  11. 点击 RAID 键来创建一个硬盘阵列设备
  12. 选择那两个大的分区,设置挂载点为 /,配置文件案系统类型为 ext3,硬盘阵列类型为 RAID1(缺省设备名称是 md2),点击 OK
  13. 你的分区已经创建好。你的划面应该看似以下样子:
    • RAID 设备

      /dev/md0 ext3 [选择了] 100
      /dev/md1 swap [选择了] 1024
      /dev/md2 ext3 [选择了] [很多 GB]

      硬磁

      /dev/sda
         /dev/sda1 /dev/md0 software RAID [未被选择] 100
         /dev/sda2 /dev/md1 software RAID [未被选择] 1024
         /dev/sda3 /dev/md2 software RAID [未被选择] [很多 GB]
      /dev/sdb
         /dev/sdb1 /dev/md0 software RAID [未被选择] 100
         /dev/sdb2 /dev/md1 software RAID [未被选择] 1024
         /dev/sdb3 /dev/md2 software RAID [未被选择] [很多 GB]
  14. 点击 Next 进到 GRUB 引导程序划面
  15. 缺省 GRUB 会安装到 /dev/sda,点击 Next
  16. 继续安装 CentOS,选择所需的组件
  17. 当 CentOS 已完成安装并重新引导,请进到第二部份。切勿更新 CentOS;切勿做其它事情!

第二部份

这部份会确保 RAID1 /boot 的两个成员都可以用来开机。请在硬盘失效/更替后重复这个部份。

方法一 —— 开机时用 GRUB

在 GRUB 选单输入 "c" 选项进到 GRUB 的提示行,接着:

按 ESC 键返回 GRUB 选单,然后正常开机。进行方法二里面的 1 及 5-8 步。

方法二 —— 在运作中的系统用 GRUB

  1. 确定你是 root

  2. 输入 "/sbin/grub" 这个指令,按 Enter
  3. 在 GRUB 的指令壳输入以下指令:
    • grub> device (hd0) /dev/sdb
      grub> device (hd1) /dev/sda
      grub> root (hd0,0)
      grub> setup (hd0)
      grub> root (hd1,0)
      grub> setup (hd1)
      grub> quit
  4. 祝你好运。输入 "reboot",按 Enter。
  5. 当开机完成后,进行系统更新。
  6. 如果内核或 glibc 更新了,请重新开机。
  7. 如果有新的内核,输入 "uname -a" 后按 Enter 来检查你的确在运用最新的内核。
  8. 完成了!



这页的英文版由 PhilSchaffner 创建及维护。欢迎其它拥有编辑权限的 Wiki 贡献者作出更正或添加。其它有意见的读者可以在我的 Wiki 页内找到联络数据。

Translation of revision 31

zh/HowTos/SoftwareRAIDonCentOS5 (last edited 2010-12-07 00:43:10 by TimothyLee)