RAID磁盘阵列
介绍
磁盘阵列是由很多块独立的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。磁盘阵列还能利用同位检查(Parity Check)的观念,当数组中任意一个硬盘发生故障时,仍可读出数据。在数据重构时,可将数据经计算后重新置入新硬盘中。
常见的RAID模式
1. RAID0
RAID0 是无冗余、无校验的磁盘阵列,实现 RAID0 至少需要两个以上硬盘,它将两个以上的硬盘合并成一块,数据同时分散在每块硬盘中,因为带宽加倍,所以读写速度加倍,RAID0 的理论速度是单块硬盘的 N 倍,但是由于数据并不是保存在一个硬盘上,而是分成数据块保存在不同硬盘上,所以安全性也下降 N 倍,只要任何一块硬盘损坏就会丢失所有数据。
优点:读写速度快(无法提升随机读写能力),可利用所有硬盘空间
缺点:没有数据保护措施,安全性低
2. RAID1
RAID1 是一种安全的 RAID 模式,通过磁盘数据镜像实现数据的冗余,在两块磁盘上产生互为备份的数据。当其中一块成员盘出现故障时,将故障盘拔出,插入新盘,阵列会恢复数据到新插入的硬盘,这一过程叫重建阵列,因此 RAID1 可以提供更好的冗余性。但是由于数据需写入两次,因此在写入时性能会略有下降。在更注重安全性而非速度的情况下,RAID1 是理想选择。
优点:数据安全性和可用性最高
缺点:成本高,磁盘空间利用率低(100块硬盘做RAID1,仅算一个硬盘的容量。若各硬盘容量不同,则以最小容量的为准)
3. RAID5
RAID5 是使用最为广泛的一种 RAID 级别,创建 RAID5 至少需要包括三块磁盘。它综合考虑了数据安全和磁盘空间充分利用这两方面的因素,由于数据是从奇偶校验块中读取,因此一块磁盘故障不会导致服务中断。
RAID5适用于归档,且适合那些追求性能并要求持续访问数据的用户(如视频编辑人员)使用。
机械硬盘在读写数据时,有极低概率( 1 0 − 14 10^{-14} 10−14)遇到不可恢复性读取错误(简称URE),约每12TB出现一个URE。
如果阵列损坏一块硬盘,可以实现数据的完全恢复,数据不会丢失。但如果数据尚未重建到更换的磁盘上,而此时又有一个磁盘出现故障,那么 RAID 中的所有数据都将丢失。
在读写性能方面,因为每一个写操作都需要计算校验并写入校验,所以写性能稍差,但读性能很好。另外由于 RAID5 的每个条带组中都有一个条带用来写校验,所以所有校验条带加在一起刚好占用。一块物理盘的空间,即 R A I D 5 的可用容量 = 所有盘总容量 − 一块盘的容量 RAID5 的可用容量=所有盘总容量-一块盘的容量 RAID5的可用容量=所有盘总容量−一块盘的容量。
4. RAID6
创建 RAID5 至少需要包括四块磁盘,其中两个硬盘容量存放校验数据。阵列任意损坏两块硬盘,也可以实现数据的完全恢复,安全性比RAID5更高一级。但采用双算法校验数据,校验数据量是RAID5的两倍,且校验算法计算量较大,写入速度比RAID5更慢。
5. RAID10
RAID10 = RAID1 + RAID0
RAID10 也就是RAID1+0组合,实际是将 RAID1 和 RAID0 结合的产物,这种结构是为了把 RAID0 和 RAID1 的优缺点相互补充,达到既安全又高速的目的。
创建RAID10至少需要四块硬盘,其中先两两组成RAID1,然后把两组RAID1组成RAID0。它的优点是同时拥有 RAID0 的超凡速度和 RAID1 的高数据可靠性,但是磁盘的利用率比较低,可用容量只有总容量的一半。RAID10 主要用于容量不大,但要求速度和差错控制的数据库中。RAID10 可以允许每组 RAID1 中的一块成员盘离线,如果某组 RAID1 中的某一块成员盘出现物理故障,使该盘不能正常使用,但该组 RAID1 剩下的一块成员盘中的数据完好无损,RAID10 还不会崩溃。如果未能及时替换出现故障的成员盘,当同一组 RAID1 中另一块成员盘再出现故障离线后,也就是一组 RAID1中的两块成员盘都出现故障,RAID10 将彻底崩溃。
SHR
SHR(Synology Hybrid RAID)是群晖Synology的自动RAID管理系统。适合不了解RAID但希望最大化可利用空间的用户。SHR的安全性能并不高。
RAID Z
RAID Z是基于ZFS系统的软RAID,ZFS是一种先进的128位文件系统,ZFS 不需要任何额外软件或硬件就可以处理RAID。
ZFS特性
- 可以创建跨硬盘的存储空间
- 当旧数据被覆盖,仍然可以找回
- 跟踪文件更改,快照保留原始系统文件
- 读取数据时进行校验,并自动尝试修复错误