RAID0
RAID0成本最低、性能最高。它最大缺陷是没有冗余。所以,如果不担心数据丢失的场景才推荐使用。
另外需要注意的事,RADI0的磁盘孙华概率比单块磁盘高,而不是更低。
RAID1
RAID1在不同的磁盘建冗余数据,有很好的冗余性。简单的说就是2块磁盘组成的RAID1,在单块磁盘损坏的情况下,对系统影响很小。
RAID1在读性能上很好,甚至比RADI0还快。
注:RADI1在软件中也可实现,即软RAID。
RAID5
RAID5通过分布奇偶校验块把数据分散到多个磁盘。这样如果一个磁盘损坏,可以从奇偶校验块中重建。
但如果2个磁盘失效了,整个卷的数据无法恢复。从成本而言,这是最经济的冗余配置,之额外消耗了一块磁盘的空间。
在性能上RAID5随机写对资源消耗较大,因为每次需要在底层磁盘发生2次读和2次写,以计算和存储校验位。如果是顺序写,执行会好很多,磁盘较多也会有帮助。
通常RAID5用作村反数据或者日志,以读为主,不需要消耗太多I/O的场景。
最大性能消耗发生在磁盘失效的时候,因为数据需要重新分布到其他磁盘,这严重影响性能,而且磁盘越多越严重。
所以建议建立故障千亿级至,当RADI5故障发生后,自动迁移到另一台主机来接管服务。
笔者遇到过RAID5故障1块磁盘,重建过程中磁盘性能严重下降,至少是慢2倍以上。
由于RAID控制器对RAID5做了很好的优化,能充分利用高速缓存使得RAID5在某些场景下可以达到或者接近RAID10的性能。这一位是RAID5受欢迎的重要原因。
RAID10
RAID10非常适用于存储数据。它由分片的景象组成,对读和写都有良好的扩展性。相对于RAID5,重建简单而快速。
当损失一块磁盘时,性能下降比较明显,可能只有50%。
RAID50
RAID50由条带话的RAID5组成,这是RAID5的经济性和RAID10的高性能之间的这种方案。适合放非常庞大的数据集。
RAID监控和故障措施
RAID配置了冗余(RAID0没有),容易让人忽略磁盘同事发生故障的可能性。其实同时损坏2块以上硬盘的可能性是有的。
这就是为什么监控如此重要的原因。大部分控制器提供了软件来报告这列的状态,并且需要持续跟踪这些状态。
对阵列积极地定期一致性检查可以减少潜在风险。
如果可以,添加一个host spare disk(热备盘)。当有硬盘损坏之后控制器自动把这个盘恢复为使用状态。当然,如果只有少数磁盘驱动器的服务器,这么做很不经济。但如果有很多磁盘的驱动器,则强烈建议增设热备盘。请注意,更多的磁盘驱动器会让发生付账的概率迅速增加。
RAID控制器的电池备份单元和写缓存策略有直接关系。如果电池失效,控制器可能设置禁用写缓存,这导致服务器性能下降。
有些控制器会周期性地对电池充放电,在这个过程中魂村被禁用。