RAID的理解
1.简介
1.什么是RAID
RAID ——Redundant Arrays of Inexpensive Disks,廉价冗余磁盘阵列,由数颗硬盘组成一个容错阵列系统。服务器或存储,硬盘都需要做RAID进行数据备份。
2.使用RAID的好处
1、提供硬盘串接,将所有的硬盘组成一个虚拟的大硬盘
2、可将资料切割成许多区块,当读取或写入资料时以并行的方式对多颗硬盘进行存取动作,当硬盘颗数愈多时,愈能增加存取速度。
3、通过镜像或异或校验提供硬盘容错功能。
3.RAID的实现方式
外接式磁盘阵列:通过扩展卡提供适配能力
内接式RAID:主板集成RAID控制器,安装OS前在BIOS里配置
软件RAID:通过OS实现
4.RAID的级别概率
RAID的实现分级别概念,用不同的数字代表,不同的RAID级别,实现不同的RAID特性。具体特性区别下面介绍。
2.RAID的级别(常见的级别)
1.RAID-0(生产中不常用)
实现逻辑:用两块或以上相同容量(这里相同容量指的是几块盘的容量一样,不一样只会去相同部分,大概比方有两个盘,一个是20G,一个30G,它只会用那30G里的20G)的硬盘组成一个整体,读写数据的时候,他会把数据分成一条一条的,分别放到底层的几块磁盘里,如上图所示(一会把第一条数据放到Disk0,一会把第二条数据放到Disk1里面),所以RAID-0又被称为条带卷。
优点:1.充分利用I/O总线性能使其带宽翻倍,读/写速度翻倍。
2.磁盘利用率最高
缺点:(1)不提供数据冗余。
(2)无数据检验,不能保证数据的正确性。
(3)存在单点故障。
应用场景:
(1)对数据完整性要求不高的场景,如:日志存储,个人娱乐
(2)要求读写效率高,安全性能要求不高,如图像工作站
最少磁盘数:2, 2+
2.RAID-1
实现逻辑:即每个工作盘都有一个镜像盘,每次写数据时必须同时写入镜像盘,读数据时只从工作盘读出,一旦工作盘发生故障立即转入镜像盘,从镜像盘中读出数据。当更换故障盘后,数据可以重构,恢复工作盘正确数据。所以RAID又叫镜像卷,这里还需要注意一点,RAID-1因为是实时同步的,所以他只能防物理性损坏,而不能防止人为删数据。
优点:数据安全性相对其它RAID级,是最好的。
缺点:磁盘利用率只有50%,是所有RAID上磁盘利用率最低的一个级别。
应用场景:
1、财务
2、金融
最少磁盘数:2,2N
3.RAID-4(一般不常用,是RAID-5的逻辑基础)
实现原理:通过一个校验盘来记录另外几块硬盘的校验,当数据盘损坏一个的时候,可以通过异步校验算出坏掉硬盘的数据,那么什么是异步校验呢,数学上就相当于a+b=c,a和b任意一个值不知道了,我们都可以通过c-a或者c-b算出其值。
优点:有冗余性,不过冗余性较低,只能坏一个数据盘。
缺点:因为校验值,放在一个盘上,如果校验盘坏了,那他的作用就没了(在生产中,经常坏的就是校验盘,所以用的不多)
最少磁盘数:3,3+
4.RAID-5(RAID-4的优化版)
实现原理:RAID-5是RAID-4的优化版,从图中我们看出,RAID-4的校验值,是都放在一块硬盘上,但是RAID-5的校验值是均匀的分配在每个盘上,图中的Ap,Bp,Cp,Dp都是校验值,这样就解决了RAID-4的问题。
优点:有冗余性,解决了RAID-4的问题,读写性能提升
缺点:从他的原理和我们看出,只能坏一块盘。异或较验影响存储性能
磁盘利用率:(n-1)/n
最少磁盘:3,3+
5.RAID-6 (生产中用的少)
实现原理:这里的实现原理是基于二元一次方程,这里的逻辑比较复杂,是基于伽罗华域算法(比较高深),这其中的算法有兴趣可以进行了解,这里我们只要知道这里有两个校验位,可以实现最多两块磁盘的损坏。
优点:快速的读取性能,更高的容错能力。
缺点:很慢的写入速度,RAID控制器在设计上更加复杂,成本更高。
磁盘利用率:(n-2)/n
最少磁盘:4,4+
应用场景:在实际应用中RAID6的应用范围并没有其它的RAID模式那么广泛。因为实现这个功能一般需要设计更加复杂、造价更昂贵的RAID控制器,所以它一般也不会集成在主板上。
6.RAID-10
实现原理:从图中我们看出Raid-10(这里读一零不读十),是在Raid1的基础上做了一层Raid0。这个实现原理理解起来应该不复杂。
优点:读写性能提升,有较好的冗余性,最多只能坏两块盘
缺点:磁盘利用率不高,只能用一半
最少磁盘:4,4+
7.RAID-01
实现原理:从图中我们看出Raid-01,是在Raid0的基础上做了一层Raid1。这个实现原理理解起来应该不复杂。
优点:读写性能提升,有较好的冗余性,最多只能坏两块盘
缺点:磁盘利用率不高,只能用一半
最少磁盘:4,4+
8.RAID-10和RAID-01的区别
从上面两张图我们看出,他们除了底层的实现原理不同,什么磁盘利用率什么的都差不多,那他们到底有没有差别呢?有,就是容错性。
RAID-10在坏掉Disk0盘的情况下,另外3块盘Disk1,2,3, 只怕在坏disk1,如果坏disk1整个系统就完了,所以有1/3系统崩溃的风险。
RAID-01在坏掉Disk0盘的情况下,另外3块盘Disk1,2,3, 再怕坏disk2或者3,如果坏了一个整个系统就完了,所以有2/3系统崩溃的风险。
总结:所以生产中RAID-10的安全性比RAID-01的更高,推荐使用RAID-10.
9.RAID-50
实现原理:先做RAID5,然后在RAID5的基础上做RAID0,所以他具有RAID5和RAID0的双重特性。
优点:拥有RAID0和RAID5的双重特性,高可靠性存储、高读取速度、高数据传输性能。磁盘的可允许损坏率唯一,为1/3。
缺点:上面讲的可损坏率1/3,具有局限性,列如上图所示RAID-50系统,底层有9块磁盘,那么损坏率1/3就代表可以接受3块物理盘损坏,这里的3块盘不是讲9块盘中任意3块盘,他只允许每个RAID5组内有一个磁盘出现故障,这个意思比较明确了吧,意思就是讲如果这3块盘中有两个盘出现在一个RAID5组内,那么整个RAID-50系统也就崩溃了
最少磁盘:6,6+3n
应用场景:它最适合需要高可靠性存储、高读取速度、高数据传输性能的应用。这些应用包括事务处理和有许多用户存取小文件的办公应用程序。RAID 50提供了接近RAID 10性能、可用性以及接近RAID 5成本的特性,具有较好的整体性价比优势,所以考虑使用RAID 50替换RAID 10吧。
10.JBOD(其他RAID级别)
实现原理:将多块磁盘的空间合并一个大的连续空间使用 ,写入是一块一块的写,写满第一块,写第二块。
优点:底层磁盘可以大小不一致,可以充分利用磁盘空间
缺点:没有冗余性,坏了一块盘,数据也就丢失了。
应用场景:适合家庭环境使用,可以将买来大小不一致的盘整合到一块使用