一、概念

       Raid(Redundant Array of Indepent Disk )即独立冗余磁盘阵列,也就是硬件中的磁盘阵列设备,实质上是用多个独立的磁盘组成在一起,作为一个大容量磁盘系统,从而实现比单块磁盘更好的存储性能和更高的可靠性。Raid有多种磁盘阵列组合,常用的有raid0、raid1、raid3、raid5和raid10,每种磁盘阵列都有它的优势。

二、Raid 0

       Raid 0 技术是把多块(至少两块)物理硬盘通过工具绑在一起,组成一个大的虚拟存储设备,并将数据分成几块分别依次写入到各个物理硬盘中。如图1所示,数据被分成多段分别写入到不同的硬盘中,即数据分别保存到disk1和disk2中,最终实现提升读取、写入的速度。

       优势:数据读取写入最快,最大优势提高硬盘容量,比如3快80G的硬盘做raid0 可用总容量为240G。速度是一样。
       缺点:无冗余能力,如果任意中的一块硬盘发生故障,将会导致整个系统的数据都受到破坏。

sql raid架构 raid详解_校验码

三、raid 1

       Raid 1 是磁盘阵列中单位成本最高的一种方式。因为它的原理是在往磁盘写数据的时候,将同一份数据无差别的写两份到磁盘,分别写到工作磁盘和镜像磁盘,那么它的实际空间使用率只有50%了,两块磁盘当做一块用,这是一种比较昂贵的方案。

        RAID1其实与RAID0效果刚好相反。RAID1 这种写双份的做法,就给数据做了一个冗余备份。这样的话,任何一块磁盘损坏了,都可以再基于另外一块磁盘去恢复数据,数据的可靠性非常强,但性能就没那么好了。

sql raid架构 raid详解_校验码_02

四、Raid 3

        将数据按照RAID0的形式,分成多份同时写入多块磁盘,但是还会另外再留出一块磁盘用于写「奇偶校验码」。例如总共有N块磁盘,那么就会让其中额度N-1块用来并发的写数据,第N块磁盘用记录校验码数据。一旦某一块磁盘坏掉了,就可以利用其它的N-1块磁盘去恢复数据。

       但是由于第N块磁盘是校验码磁盘,因此有任何数据的写入都会要去更新这块磁盘,导致这块磁盘的读写是最频繁的,也就非常的容易损坏。

五、Raid 5

       这是目前用的最多的一种方式。
       因为 RAID5 是一种将 存储性能、数据安全、存储成本 兼顾的一种方案。RAID5的方式可以说是对RAID3进行了改进。

        RAID5模式中,不再需要用单独的磁盘写校验码了。它把校验码信息分布到各个磁盘上。例如,总共有N块磁盘,那么会将要写入的数据分成N份,并发的写入到N块磁盘中,同时还将数据的校验码信息也写入到这N块磁盘中(数据与对应的校验码信息必须得分开存储在不同的磁盘上)。一旦某一块磁盘损坏了,就可以用剩下的数据和对应的奇偶校验码信息去恢复损坏的数据。

sql raid架构 raid详解_raid_03

RAID5校验位算法原理:P = D1 xor D2 xor D3 … xor Dn (D1,D2,D3 … Dn为数据块,P为校验,xor为异或运算)

RAID5的方式,最少需要三块磁盘来组建磁盘阵列,允许最多同时坏一块磁盘。如果有两块磁盘同时损坏了,那数据就无法恢复了。

 六、Raid 10

        鉴于Raid5技术是因为磁盘设备的成本问题,对读写速度和数据的安全性能而又一定的妥协,但是在企业里更在乎的还是数据本身的价值而非硬盘的价格,因此在生产环境中推荐使用raid10技术。

       Raid10是Raid1和Raid0的组合体,如图所示,Raid10技术至少需要4块硬盘来组建,其中先分别两两制成Raid1磁盘阵列,以保证数据的安全性。然后再对两个Raid1磁盘按阵列实施Raid0技术,进一步提高硬盘设备的读写速度。这样从理论上讲,只要坏的不是同一组中的所有磁盘,那么最多可以损坏50%的硬盘设备而不丢失数据。由于Raid10技术击继承了Raid0的高速写速度和Raid1的数据安全性,在不考虑成本的情况下Raid10的性能都超过了Raid5,因此当前成为广泛使用的一种存储技术。

但也可以看出RAID10模式是有一半的磁盘空间用于存储冗余数据的,浪费的很严重。

sql raid架构 raid详解_存储_04