RAID介绍

RAID介绍

RAID

	RAID,Redundant Arrays of Inexpensive(Independent)Disks,是多个磁盘合成一个“阵列”来提供更好的性能、冗余,或者两者都提供。
	独立磁盘冗余阵列(RAID, Redundant Array of Independent Disks),在早期也称为廉价磁盘冗余阵列,简称为磁盘列。
	Raid就是将两个以上的物理磁盘在逻辑上捆绑在一起,数据以条带式的形式顺序保存在各个磁盘上,对外作为一个逻辑的设备提供服务。
	磁盘阵列中可包含配置成Raid的磁盘和用于后备的磁盘。
	简单来说,RAID把多个物理硬盘组合成为一个逻辑磁盘,因此,操作系统只会把一个raid阵列当作一个硬盘。
	RAID常被用在服务器计算机上,并且常使用完全相同的硬盘作为组合。
	由于硬盘价格的不断下降与RAID功能更加有效地与主板集成,它也成为了一个选择,特别是需要大容量存储空间的工作。
	最初的RAID分成了不同的等级,每种等级都有其理论上的优缺点,不同的等级在两个目标间取得平衡,分别是增加数据可靠性以及增加存储器(集群)读写性能。
	常见RAID级别分为RAID-0,RAID-1,RAID-5,RAID-6,RAID-1E,RAID-10,RAID-50,RAID-60。
	Raid可以按照不同的标准进行分类,按照其实现方法分类可分为硬件Raid和软件Raid。
	硬件Raid的主要特点是其I/O处理有专门的IOP(IO处理器)来执行,软件Raid的I/O指令从主机的CPU获得。
	根据不同的链接方式,Raid又可分为外接式和内置式。
	RAID可提高I/O 能力,由磁盘并行读写来实现。
	RAID可提高耐用性,由磁盘冗余来实现。
	RAID的级别是由多块磁盘组织在一起的工作方式的不同来决定的。

RAID 实现的方式:

	外接式磁盘阵列:
		通过扩展卡提供适配能力
	内接式RAID :
		主板集成RAID 控制器,安装OS前在BIOS里配置
	软件RAID :
		通过OS实现

RAID-0

1)
	将多个磁盘合并成一个大的磁盘,不具有冗余,并行I/O,速度最快,RAID-0亦称为带区集,它是将多个磁盘并列起来,成为一个大磁盘。
	在存放数据时,其将数据按磁盘的个数来进行分段,然后同时将这些数据写进这些盘中,所以在所有的级别中,RAID-0的速度是最快的。
	但是RAID 0没有冗余功能,如果一个磁盘(物理)损坏,则所有的数据都会丢失,危险程度与JBOD相当。
	理论上越多的磁盘性能就等于“单一磁盘性能”ד磁盘数”,但实际上受限于总线I/O瓶颈及其它因素的影响,RAID性能会随边际递减。
    也就是说,假设一个磁盘的性能是50MB每秒,两个磁盘的RAID-0性能约96MB每秒,三个磁盘的RAID 0也许是130MB每秒而不是150MB每秒。
	可使用容量是硬盘总数乘以单块硬盘的最小容量:Size=(N)*min(S1,S2,S3…Sn).
2)
	RAID-0:
		读、写性能提升;
		可用空间:N*min(S1,S2,...)
		无容错能力
		最少磁盘数:2, 2
		两块磁盘都用作读写,坏一块RAID就坏了。

RAID-1

1)
	RAID-1是将一个两块硬盘所构成RAID磁盘阵列,其容量仅等于一块硬盘的容量,因为另一块只是当作数据“镜像”。
	RAID-1磁盘阵列显然是最可靠的一种阵列,因为它总是保持一份完整的数据备份。
	它的性能自然没有RAID-0磁盘阵列那样好,但其数据读取确实较单一硬盘来的快,因为数据会从两块硬盘中较快的一块中读出。
	RAID-1磁盘阵列的写入速度通常较慢,因为数据得分别写入两块硬盘中并做比较。
	RAID-1磁盘阵列一般支持“热交换”,就是说阵列中硬盘的移除或替换可以在系统运行时进行,无须中断退出系统。
	RAID-1磁盘阵列是十分安全的,不过也是较贵一种RAID磁盘阵列解决方案,因为两块硬盘仅能提供一块硬盘的容量。
	RAID-1磁盘阵列主要用在数据安全性很高,而且要求能够快速恢复被破坏的数据的场合。
2)
	RAID-1:
		读性能提升、写性能略有下降;
		可用空间:1*min(S1,S2,...)
		有冗余能力
		最少磁盘数:2, 2N
		两块或两块的倍数,用一半作为读写,一半作为备用校验,同时坏了主备两个RAID就坏了。

RAID-5

1)
	RAID-5是一种储存性能、数据安全和存储成本兼顾的存储解决方案,它使用的是Disk Striping技术。
	RAID-5至少需要三颗硬盘,它不是对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID-5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。
	当RAID-5的一个磁盘数据发生损坏后,可以利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。
	RAID-5可以理解为是RAID-0和RAID-1的折衷方案。
	RAID-5可以为系统提供数据安全保障,但保障程度要比镜像低而磁盘空间利用率要比镜像高。
	RAID-5具有和RAID-0相近似的数据读取速度,只是因为多了一个奇偶校验信息,写入数据的速度相对单独写入一块硬盘的速度略慢,若使用“回写高速缓存”可以让性能改善不少。
	同时由于多个数据对应一个奇偶校验信息,RAID-5的磁盘空间利用率要比RAID=1高,存储成本相对较便宜。 
	可使用的容量为硬盘总数减去1的差,乘以单块硬盘的最小容量,公式为Size=(N-1)*min(S1,S2,S3…Sn)。
2)
	RAID-5: 
		读、写性能提升
		可用空间:(N-1)*min(S1,S2,...)
		有容错能力:允许最多1块磁盘损坏,带奇偶校验的条带机 
		最少磁盘数:3, 3+
		其他的同RAID4一样,唯一不同的是校验位不是放在一个盘上,每个盘都是校验盘,允许最多坏一块硬盘。

RAID-6

1)
	与RAID-5相比,RAID-6增加了第二个独立的奇偶校验信息块。
	两个独立的奇偶系统使用不同的算法,数据的可靠性非常高,即使两块磁盘同时失效也不会影响数据的使用。
	但RAID-6需要分配给奇偶校验信息更大的磁盘空间,相对于RAID-5有更大的“写损失”,因此“写性能”非常差。
	较差的性能和复杂的实作方式使得RAID-6很少得到实际应用,同一数组中最多容许两个磁盘损坏。
	更换新磁盘后,数据将会重新算出并写入新的磁盘中,依照设计理论,RAID-6必须具备四个以上的磁盘才能生效。
	可使用的容量为硬盘总数减去2的差,乘以单块硬盘的最小容量,公式为Size=(N-2)*min(S1,S2,S3…Sn)。
2)
	RAID-6: 
		读、写性能提升
		可用空间:(N-2)*min(S1,S2,...)
		有容错能力:允许最多2块磁盘损坏
		最少磁盘数:4, 4+
		有两个校验位,且又添加了一块备用硬盘,允许最多2块硬盘损坏

RAID-10和RAID-01

1)
	RAID-10是RAID-1与RAID-0的组合,先作RAID-1,再作RAID-0,也就是对多组RAID-1彼此构成Stripe访问。
	由于RAID-10是以RAID-1为基础,而RAID-1至少需要2块硬盘,因此要以多组RAID-1构成RAID-10,至少需要4块硬盘。
	以RAID-10最小的4台硬盘组态为例,先把4台硬盘分为2组,每组2台构成RAID-1,如此就得到两组RAID-1,然后再把两组RAID-1构成RAID-0。
	RAID-10在底层的任一组或多组RAID-1中出现1台硬盘损坏时,仍能维持运作,不过如果任一组RAID-1中的两块硬盘损毁,整组RAID-10就会失效。
	RAID-10由于在上层把多组RAID-1构成Stripe,容量利用率是50%,例如:4块硬盘做的raid10的总容量是两块硬盘的容量。
	先是RAID-1,然后集合同配为RAID-0,某个RAID-1坏了,整体就坏了。
2)
	RAID-01是RAID-0与RAID-1的结合,先是RAID-0,然后集合同配为RAID-1,同时坏2个RAID-0,整体就坏了。
    RAID-01的特点使其特别适用于既有大量数据需要存取,同时又对数据安全性要求严格的领域。
    RAID-01是存储性能和数据安全兼顾的方案,它在提供与RAID 1一样的数据安全保障的同时,也提供了与RAID 0近似的存储性能。

RAID-50

	RAID-5与RAID-0的组合,先作RAID-5,再作RAID-0,也就是对多组RAID-5彼此构成Stripe访问。
	由于RAID-50是以RAID-5为基础,而RAID-5至少需要3台硬盘,因此要以多组RAID-5构成RAID-50,至少需要6台硬盘。
	以RAID-50最小的6台硬盘组态为例,先把6台硬盘分为2组,每组3台构成RAID-5,如此就得到两组RAID-5,然后再把两组RAID-5构成RAID-0。
	RAID-50在底层的任一组或多组RAID-5中出现1台硬盘损坏时,仍能维持运作,不过如果任一组RAID-5中出现2台或两台以上硬盘损毁,整组RAID-50就会失效。
	RAID-50由于在上层把多组RAID-5构成Stripe,性能比起单纯的RAID-5高,容量利用率比RAID-5要低。
	比如同样9块硬盘,RAID-50则3个RAID-5组成RAID-0,每个RAID-5会损失一块硬盘的容量,利用率为(1-3/9),RAID-5则为(1-1/9)。

RAID-60

	RAID-6与RAID-0的组合,先作RAID-6,再作RAID-0。
	换句话说,就是对两组以上的RAID-6作Stripe访问。
	RAID-6至少需具备4块硬盘,所以RAID-60的最小需求是8块硬盘。
	由于底层是以RAID-6组成,所以RAID-60可以容许任一组RAID-6中损毁最多2块硬盘,而系统仍能维持运作。
	不过只要底层任一组RAID-6中损毁3块硬盘,整组RAID-60就会失效,当然这种情况的机率相当低。
	比起单纯的RAID-6,RAID-60的上层通过结合多组RAID-6构成Stripe访问,因此性能较高。
	不过使用门槛高,而且容量利用率低是较大的问题

RAID7和JBOD

RAID7
	可以理解为一个独立存储计算机,自身带有操作系统和管理工具,可以独立运行,理论上性能最高的RAID 模式。
JBOD :Just a Bunch Of Disks
	功能是将多块磁盘的空间合并一个大的连续空间使用
	可用空间:sum(S1,S2,...)
原文地址:https://www.cnblogs.com/shenxm/p/8387284.html