将非 raid 系统升级到 raid 相当容易,它由以下描述的几个离散步骤组成。此描述适用于具有启动分区、根分区和交换分区的系统。
OLD disk in the existing system: /dev/hda1 boot, may be dos+lodlin or lilo /dev/hda2 root /dev/hda3 swap我们将添加一个额外的磁盘,并将整个系统转换为 RAID1。您可以轻松添加多个磁盘,并使用相同的步骤创建一个 RAID5 阵列。
下载一个干净的内核,raidtools-0.90(或最新版本),以及内核补丁,以将内核升级到 0.90 raid。
编译并安装 raidtools,并阅读文档。
编译并安装内核以支持您将要使用的所有 raid 类型(0/1/4/5 ?)。 确保在内核配置中指定 raid 设备的自动启动。 测试内核是否正确启动,并检查 /proc/mdstat 以查看新内核是否支持您将要使用的 raid 类型。
新磁盘将作为主设备添加到额外的 IDE 控制器,因此成为 /dev/hdc
/dev/hdc1 16megs -- more than enough for several kernel images /dev/hdc2 most of the disk /dev/hdc3 some more swap space, if needed. otherwise add to hdc2
将 /dev/hdc1 和 /dev/hdc2 的分区类型更改为 "fd" 以用于 raid-autostart。
使用 failed-disk 参数,为所需的 RAID1 配置创建 raidtab。 故障磁盘必须是表中的最后一个条目。
# example raidtab # md0 is the root array raiddev /dev/md0 raid-level 1 nr-raid-disks 2 chunk-size 32 # Spare disks for hot reconstruction nr-spare-disks 0 persistent-superblock 1 device /dev/hdc2 raid-disk 0 # this is our old disk, mark as failed for now device /dev/hda2 failed-disk 1 # md1 is the /boot array raiddev /dev/md1 raid-level 1 nr-raid-disks 2 chunk-size 32 # Spare disks for hot reconstruction nr-spare-disks 0 persistent-superblock 1 device /dev/hdc1 raid-disk 0 # boot is marked failed as well device /dev/hda1 failed-disk 1
使用以下命令创建 md 设备
mkraid /dev/md0 mkraid /dev/md1
raid 设备应该被创建并启动。 检查 /proc/mdstat 应该显示内核中的 raid 个性和正在运行的 raid 设备。
使用以下命令格式化启动和根设备
mke2fs /dev/md0 mke2fs /dev/md1将新的根设备挂载到方便的位置,并创建 /boot 目录并挂载启动分区。
mount /dev/md0 /mnt mkdir /mnt/boot mount /dev/md1 /mnt/boot
这非常简单直接。
cd / # set up a batch file to do this cp -a /bin /mnt cp -a /dev /mnt cp -a /etc /mnt cp -a (all directories except /mnt, /proc, and nsf mounts) /mnt如果您已将其他磁盘挂载或链接到您的根文件系统,则此操作可能会比较棘手。 上面的示例假设一个非常简单的系统,您可能需要稍微修改此过程。
制作启动软盘并使用 rdev 设置内核。
dd if=kernal.image of=/dev/fd0 bs=2k rdev /dev/fd0 /dev/md0 rdev -r /dev/fd0 0 rdev -R /dev/fd0 1
修改 RAID 设备上的 fstab 以反映新的挂载点,如下所示
/dev/md0 / ext2 defaults 1 1 /dev/md1 /boot ext2 defaults 1 1
卸载 raid 设备并启动新的文件系统,以查看一切是否正常工作。
umount /mnt/boot umount /mnt raidstop /dev/md0 raidstop /dev/md1 shutdown -r now
您的 RAID 系统现在应该以降级模式运行,并使用启动软盘。 仔细检查您是否已将所有内容传输到新的 raid 系统。 如果您在这里搞砸了,又没有备份,那就 *完蛋了*!
如果某些地方没有工作,请重新启动您的旧系统并返回并修复问题,直到您成功完成此步骤。
上一步的成功意味着 raid 阵列现在可以运行,但没有冗余。 我们现在必须重新分区旧驱动器以适应新的 raid 阵列。 请记住,如果几何结构不相同,则旧驱动器上的分区大小必须与 raid 分区相同或更大,否则它们无法添加到 raid 集中。
根据需要重新分区旧驱动器。 示例
/dev/hda1 same or larger than /dev/hdc1 /dev/hda2 same or larger than /dev/hdc2 /dev/hda3 anything left over for swap or whatever...
将 raidtab 中的 failed-disk 参数更改为 raid-disk,并将新的(旧的)磁盘分区热添加到 raid 阵列。
raidhotadd /dev/md1 /dev/hda1 raidhotadd /dev/md0 /dev/hda2检查 /proc/mdstat 应该显示一个或多个 raid 设备正在为新分区重建数据。 一两分钟后...或者更久,raid 阵列应该完全同步(对于大分区,这可能需要一段时间)。
使用本文档第一部分描述的步骤,在新 raid 对上设置可启动的 raid。 在设置和测试最后一步时,请保留启动软盘。