企业网D1Net服务器应该使用哪种类型的RAID阵列?( 二 )


采用SSD硬盘的RAID 0阵列很常见 , 考虑到SSD硬盘的故障率较低 , 因此更合理 。 这是高端服务器系统中的常见设置 , 因为速度比冗余更重要 。
RAID 1阵列

企业网D1Net服务器应该使用哪种类型的RAID阵列?
本文插图

RAID 1阵列是RAID阵列的另一种基本类型 。 与RAID 0阵列类似 , 它使用两块或多块硬盘 , 但不是将数据实现条带化 , 而是将数据从第一块硬盘镜像到第二块硬盘(以及阵列中的其他硬盘) 。 如果有两块硬盘 , 则其中一块硬盘将完全用作一种实时备份硬盘 , 从而在此过程中将总存储容量减半 。 如果一块硬盘发生故障 , 可以继续从另一块硬盘读取数据 , 并通过更换故障的硬盘来重建阵列 。
由于可以使用两块硬盘 , 因此确实具有一些读取性能上的好处 , 但是由于它从每块硬盘中读取相同的数据 , 因此通常不如RAID 0阵列好 。 其写入性能将受限于读写速度最慢的硬盘的速度 。
如果拥有两个硬盘并且无法承受硬盘故障而无法取出数据带来的损失 , 则RAID 1阵列则是唯一可行的选择 。 不过 , 这并不是最有效的 , 因为将存储容量减少了一半 , 因此其成本是单块硬盘的两倍 。
但是 , 服务器设置中的冗余阵列比单块硬盘的价格要有价值得多 。 如果只需要基本的硬盘设置 , 可以使用简单的RAID 1阵列 。 当接入两块硬盘时 , 大多数RAID控制器将默认为RAI??D 1阵列 。
RAID 5阵列

企业网D1Net服务器应该使用哪种类型的RAID阵列?
本文插图

RAID 5阵列让事情开始变得有趣起来 。 RAID 5阵列不会像RAID 1阵列那样复制数据 , 而是使用奇偶校验这种效率更高的方法 。
奇偶校验是错误检查的一种形式 , 就像哈希校验一样 , 但是要简单得多 。 通常用于确保网络流量不会混淆 。 基本上 , 假设有7位数据要发送给某人 , 并且想确保它完整无缺地传输 。 如果传输过程有些混乱 , 他们将无从得知 。 解决方案是对所有正数位进行计数 。 如果有偶数 , 则奇偶校验将为0 。 如果有奇数 , 则奇偶校验将为1 。 将其添加到要发送的数据中 , 另一端的人在收到该数据时将会自动计算奇偶校验 。 如果发生错误 , 并且发生了位翻转(甚至是奇偶校验位本身) , 对方也会知道并请求重新发送数据 。 当然 , 如果单次传输中有两个错误 , 则该系统会中断 , 但这并不常见 。
RAID 5阵列不需要存储数据的副本(就像发送两次消息一样) , 而只是存储奇偶校验位 。 可以想象它像具有冗余功能的RAID 0阵列一样 , 它至少需要三块硬盘 。 除一块硬盘之外 , 所有硬盘均像常规RAID 0阵列一样使用 , 但最后一块硬盘用于奇偶校验 。 如果其中一块硬盘出现故障 , 则可以反向执行奇偶校验计算以恢复任何硬盘上的所有数据(尽管这是一个漫长而费力的操作) 。
实际上 , RAID 5阵列不使用专用硬盘进行奇偶校验 , 因为在所有硬盘上剥离奇偶校验位的速度更快 , 但是在计算RAID 5阵列将提供多少存储空间时 , 可以这样考虑 。 本质上 , 除了一块硬盘之外 , 将所有硬盘加起来 , 这就是将拥有的存储空间 。 RAID 5阵列可以通过增加硬盘来提高空间效率 , 采用三块硬盘的效率为66% , 但是10块硬盘的效率为90% 。 与RAID 1阵列相比 , 这显著降低了成本 。
但是 , RAID 5阵列并非没有缺点 。 由于每次写入硬盘时都必须计算奇偶校验 , 因此会降低写入性能 。 考虑到以下事实 , 其问题就更加严重:在一块硬盘中翻转一个位需要读取所有的硬盘 , 以便重新计算该块的奇偶校验 。 实际上 , 如果RAID 0阵列可以扩展n块硬盘的性能 , 则RAID 5阵列可以为n-1块硬盘提供写入操作的性能 。 但是 , 如果阵列足够大 , 问题并没有那么严重 。
另外 , 无论拥有多少块硬盘 , 都只能承受一块硬盘故障的损失 。 这似乎不是一个主要问题 , 因为故障很少见 , 而且不太可能同时遇到两个故障 , 但是阵列重建在硬盘上可能会非常密集 , 基本上是在每个故障最易受攻击的时候从每个故障中读取每一位数据 。 因此 , 如果其中一块硬盘发生故障 , 则另一块硬盘也很有可能也会发生故障 。


推荐阅读