很长一段时间,我一直在考虑在几台服务器上切换到RAID 10。 现在Ubuntu 10.04 LTS已经上线了,现在是升级的时候了。 我使用的服务器是HP Proliant ML115( 非常好的价值)。 它有四个内部3.5“插槽,目前我正在使用一个驱动器的系统和一个RAID5arrays(软件)的其余三个磁盘。
问题是这会在启动驱动器上创build一个单点故障。 因此,我想切换到一个RAID10arrays,因为它会给我更好的I / O性能和更高的可靠性。 问题只在于支持RAID10的良好控制器卡(如3Ware)的成本几乎与服务器本身相当。 而且,对于Grub来说,软件-RAID10似乎不能很好地工作。
你有什么build议? 我应该继续运行RAID5吗? 有没有人能够成功地安装软件RAID10没有启动问题?
在这种情况下,我倾向于使用RAID10,除非您需要单个+ RAID5configuration提供的额外空间。 你可以得到相同的有保证的冗余(任何一个驱动器都可以失效,arrays能够存活),在更糟糕的情况下,冗余稍好一点(RAID10可以在6个“两个驱动器一次失败”情况下存活4个),并且没有写RAID5经常会遇到惩罚。
您可能无法启动RAID10,无论是作为传统的嵌套arrays(RAID0中的两个RAID1)还是使用Linux最新的一体化RAID10驱动程序,因为LILO和GRUB都希望拥有引导所需的所有信息一个驱动器,它可能不是RAID0或10(或者软件RAID5),它在硬件上工作,因为引导装载程序只看到一个驱动器,而控制器处理在驱动器中实际传播的数据。
有一个简单的方法可以解决这个问题:在每个驱动器的开始部分只需要一个小的分区(128MB应该足够多 – 只需要一些内核映像和相关的initrd文件),并将其设置为安装为/boot RAID1arrays。 你只需要确保每个驱动器上的引导装载程序都正确安装,并且所有的都可以正常工作(一旦内核和initrd被加载,它们将会处理find主要的数组并且正确地处理它)。
软件RAID10驱动程序有很多选项来调整块的布局,可以带来进一步的性能优势,具体取决于您的I / O加载模式(请参阅这里的一些简单的基准),但我不知道任何分布,支持RAID 10从安装(只有更传统的嵌套安排)。 如果您想要尝试使用RAID10驱动程序,并且您的发行版在安装时不支持,则可以按照上面的/ boot所述将整个基本系统安装到RAID1arrays中,然后使用剩余的磁盘空间构buildRAID10arrays一旦启动进入。
对于多达4个驱动器,或者可以连接到主板的多个SATA驱动器,在许多情况下,使用主板SATA连接器和Linux MD软件RAID比硬盘RAID更好。 首先,板载SATA连接直接连接到南桥,速度约为20 Gbit / s。 许多硬件控制器比较慢。 而后,MD MD RAID软件通常比HW RAID更快,更灵活多样。 例如Linux MD RAID10-far布局给你几乎RAID0的阅读速度。 而且你可以在Linux MD RAID中有多个不同RAIDtypes的分区,例如一个带有RAID1的/ boot,然后是raid10的/ root和其他分区,速度较快,或者空间RAID5。 进一步的说法是成本 – 购买额外的RAID控制器往往比仅使用板载SATA连接成本更高;-)
raid上的/ boot设置可以在https://raid.wiki.kernel.org/index.php/Preventing_against_a_failing_diskfind。
有关Linux RAID的更多信息,请访问https://raid.wiki.kernel.org/上的Linux RAID内核组wiki。
那么,你几乎回答了你自己的问题。
这意味着你不能使用RAID10。
如何在所有磁盘上使用RAID5? 这听起来不像高端(或stream量)服务器,所以性能的损失可能不会那么难。
编辑:我刚刚google了一下,似乎Grub不能读取软件RAID。 每个需要启动的磁盘上都需要引导程序(在RAID5中:每个磁盘)。 这对我来说似乎非常笨拙,你有没有考虑从易趣购买使用的raid5卡?