我如何创build一个可引导的Debian系统,有一个软件raid10,并且当我拿出一个或多个(可启动)磁盘时仍然会启动? 我想使用尽可能less的磁盘,最好是3或4.每个磁盘是RAID的一部分,应该是可引导的。
我select了raid10,因为它是最快的冗余RAID级别,而且还给了我很大的空间。 raid5或6太慢了(可能有一个理论上的限制http://www.zdnet.com/blog/storage/why-raid-5-stops-working-in-2009/162),raid1没有给我足够的空间,不够灵活。 raid0根本不是多余的。
我将在这里描述一个奇怪的例子,那就是一个由3个磁盘构build的软件raid10(有知识的人已经不了解3个磁盘raid10)。 假设您有一个带有4个驱动器托架的1U服务器,并且您希望有一个托架空闲,用于存储磁盘或作为热备用。 这些磁盘都是相同的大小,但只要您根据最小磁盘大小创build分区,则不需要这些磁盘。
你坚持使用Debian CD或U盘,然后开始安装系统。 当您到达开始分区的部分时,请执行以下操作…
作为raid一部分的每个磁盘都应该有一个大约1 GB的可引导分区,这不是raid的一部分。 正常创build这些分区,他们必须是完全相同的大小。 将它们标记为可引导,其中一个磁盘上的挂载点应为/ boot,您可以将其他挂载点卸载。
/dev/sda1 - /boot /dev/sdb1 - not mounted /dev/sdc1 - not mounted
如果你愿意(我)为通常的位置创build单独的分区,你可以这样做:
/dev/sd[abc]2 - swap (Yes we have redundant swap, why not, it ought to be faster than swap outside the raid10) /dev/sd[abc]3 - / /dev/sd[abc]4 - /usr /dev/sd[abc]5 - /tmp /dev/sd[abc]6 - /var /dev/sd[abc]7 - /opt /dev/sd[abc]8 - /home
否则,只需在每个磁盘上创build一个交换分区和一个大分区。 请注意,您不能分区软拷贝(mdadm),这就是为什么您先创build分区。 (编辑:从内核2.6.28可以像其他任何块设备分区raid,但我更喜欢上述方法。)
除第一个分区之外,创build每个分区的raid。 例如:
mdadm --create /dev/md0 --level=10 --raid-devices=3 /dev/sd[abc]2
等等。
在Debian安装中,您将使用适当的菜单选项而不是mdadm命令,这只是为了说明。 如果系统中有第四个磁盘,则将其作为热备用,第四个RAID成员或作为存储,除非您使用后者,否则请确保它与其他磁盘共享相同的分区表和可启动属性。 我会留给你的。
顺便说一下,安装菜单在创build分区和raid方面可能会有点混乱,如果你迷路了或者菜单系统开始诅咒你,你可以从头开始。 🙂
像往常一样安装Debian。 一旦你到达grub安装阶段,你必须比平时做更多的事情。
我们假设/ dev / sda1安装在/ boot。 确保MBR保存到/ dev / sda,/ dev / sdb和/ dev / sdc。 所以我们告诉grub所有3个磁盘都是启动盘。
一旦整个系统安装完毕,你应该可以启动系统,你将有一个工作在3磁盘raid10可启动的Debian系统。 但是,如果磁盘发生故障,它还没有完全冗余,这意味着它不会从另一个磁盘奇迹般地启动。 为了达到这个目的,你必须将/ dev / sda1上的启动分区的确切拷贝拷贝到其他磁盘上。
使用dd(bs = 500M将加速dd很多,将500M调整到系统内存的2/3左右):
dd bs=500M if=/dev/sda1 of=/dev/sdb1 dd bs=500M if=/dev/sda1 of=/dev/sdc1
现在确保您的BIOSconfiguration为尝试从所有3个磁盘启动,顺序无关紧要。 只要bios会尝试从任何磁盘启动,那么万一有一个磁盘出现故障,系统将自动从另一个磁盘启动,因为UUID是完全相同的。
有一个小问题,不要忘记,如果/ boot已经改变,有时候重复dd命令,比如内核升级。 如果你喜欢,每周做一个cron工作。
这总是很有趣,通过更改BIOS启动优先级来testing您的冗余系统。 如果你感到幸运的话,在运行的时候通过拖出一个磁盘来testing它。 事实上,我认为你必须这样做,以确保它是完全多余的,为什么还要经历这个麻烦。 不pipe怎样,这是一个有趣的练习。 如果你已经做了一切正确的事情(而且我把它写下来了),你的系统在RAID降级时仍然会启动。 就像你会使用硬件RAID一样。 我在具有2,3,4和更多磁盘的各种1U和2U服务器上进行了testing。
这也将与raid1一起工作。
顺便说一句,你必须使用不属于RAID的启动分区,否则你的系统无法启动。 必须有一个突袭的方法开始,因为它是一个软交易内核首先必须被加载,以便突袭被识别。
迟到的答复,但你不能做我一直在做的一段时间吗?
我使用2驱动器RAID1安装我的大部分服务器。
它们的设置方式是将md0挂载为/ boot,大小为250MB raid1,而md1挂载为/,并且是驱动器容量的其余部分,不包括每个驱动器上的交换区域。
就像这样,对/ boot的任何修改都会被镜像到两个驱动器上,即使在启动的时候,操作系统也会使用bios告诉它的那个。
只需要记住为每个驱动器重新运行grub-install / dev / sd *来包含一个有效的/ boot。 操作系统将自动保持/启动,以适当的同步。