转自:https://blog.csdn.net/haiross/article/details/38441739
RAID – Redundant Array of InexpensiveDisks将多块硬盘分组虚拟成一个单独的硬盘,使其得到更大的空间,更快的速度以及更高的实用性。如下图所示:
RAID的优势是:容量、可管理性、性能优势、可靠性等。
RAID的级别:
1.RAID0:一个系统上层IO对多个磁盘进行同时读写,提供最快读写速度,无校验。要求至少两个磁盘。特征为周伯通的左右互搏,发挥最大的功力。
优点:无论是连续读写或随机读写,速度都最快。
缺点:无校验,一块盘损坏,阵列就彻底over。
2.RAID1:把一个磁盘的数据镜像到另一个磁盘上,具有最高的数据冗余能力。特征:镜像。
优点:阵列的可靠性、可用性最高。
缺点:镜像盘平时不工作,相当于浪费一个盘。
3.RAID2:在raid0的思想上增加校验功能,即增加校验盘,在多个磁盘组成阵列的情况下,数据被平均分配同时存储到多个磁盘中,并且需要多个磁盘存放校验信息。校验采用海明码,具有一位纠错功能。特征:海明码校验。
优点:相对于RAID0来说提供容错能力
缺点:需要大量的校验盘,浪费巨大
4.RAID3:如RAID2一样,数据被平均分配在多个磁盘上以提高读/写速度,并用一个专门的校验盘来存储校验信息,至少需要三个磁盘。与RAID2的区别在于采用的是布尔校验码,仅需要一个校验盘。特征:布尔校验。
优点:在连续读写中,速度快,适合大数据块的连续存储。
缺点:IO不能并发,使得在随机读写中速度慢,尤其是小数据块(因为无论数据块多小,一次上层系统IO都会占用完所有磁盘【因为数据都会平均分配到所有磁盘上进行存储】,因此IO不能并发,只能排队处理)
5.RAID4:类似RAID3,扩大了条带的深度,使得小数据块IO能在一个硬盘完成,其他硬盘可以同时处理其他IO请求,从而实现多IO并发。但是由于没有考虑到校验盘只有一个,使得校验盘一次只能IO读写一个校验码,使得整个RAID4从本质上来并没有很好的实现IO并发,效率有可能还不如RAID3。基本上没有人用。特征:有缺陷的IO并发。
优点:无
缺点:同RAID3。
6.RAID5:类似于RAID3,但校验数据不是存储在一个专职的校验盘上,而是分布在所有的数据盘上,从而解决RAID4中存在的校验盘无法并发的缺点,其他同RAID4。至少4个磁盘,容量是(N-1)/N。特征:IO并发。
优点:随机读速度快。
缺点:随机写速度慢。因为RAID0写只需1次操作,RAID2需2次(写入数据,复制到镜像),RAID3需2次(写数据,写校验码),RAID5需4次(读校验码、读数据、写数据、写校验码【这是因为条带深度过大,一个IO可能未写满一个条带,在第二次写该条带时要考虑原数据并生成新校验码】)
7.RAID6:类似RAID5,但是采用二维校验码,即存在两个校验码,使得容错性高。特征:高容错。
优点:允许大于1个硬盘损坏的情况下数据恢复。
缺点:随机写速度最慢,效率低。
8.RAID10:其实就是0+1,其他两位数的RAID类似。
===============================================
磁盘阵列物理架构:
磁盘阵列与服务器的通讯:
下图所示的是一个主机上的一个磁盘控制器(如IDE控制器、SCSI卡)可以控制旗下多个磁盘:
对比磁盘阵列物理架构和该图,我们发现磁盘阵列物理架构就是上图的一个磁盘控制器(如IDE控制器、SCSI卡)及其控制的旗下的多个磁盘,再加上一个RAID卡(它的上一层为操作系统,它的下一层为磁盘控制器以及其控制的磁盘)。RAID卡实现的是一个RAID算法,这个软RAID(一种软件)也是可以实现这个RAID算法。相当于说,磁盘阵列物理架构就是一个RAID算法和磁盘控制器以及其控制的磁盘这两部分组成的。RAID算法要实现的第一个功能就是对磁盘控制器(们)控制的旗下的多个磁盘进行条带化,对多个磁盘进行条带化可以使得原本相互独立不相关的磁盘组合成一个(整体的)虚拟磁盘。Linux下的lvm软件(即逻辑卷管理工具)也可以实现对磁盘控制器(们)控制的旗下的多个磁盘进行条带化。两者所实现的功能上的区别在于,lvm还有其他功能,如可以对虚拟磁盘再划分成多个逻辑卷,而RAID(软件,或叫算法)不具有此功能。Vg是一个可以跨盘的分区(借用磁盘层次的概念),RAID也可以分区(该分区也可以是跨物理盘的)对虚拟磁盘,所以lvm和RAID都有分区功能和条带化功能,RAID不同于lvm的功能是RAID算法。
RAID算法:
RAID1:写入数据时要写镜像。
带有校验码的RAID级别:写入数据时要计算并写校验码 |写入数据不是一整个条带刚好整数倍时,条带剩下的数据要先读取到RAID卡上和新数据一起计算出校验码,这个就是写惩罚,最后再写入数据。
具体参看本文开头的《存储-RAID简介》
从磁盘阵列物理架构这个图上可以看出,多个磁盘控制器(这里是SATA磁盘控制器)和多个磁盘都是在一条IO总线(即drivers-plane)上的。一个磁盘控制器具有对多个磁盘进行通讯控制的功能,但是因为总线是共享的,所以一次只能有一个磁盘控制器(这里是SATA磁盘控制器)对一个磁盘进行通讯控制。如果让一个磁盘控制器对过多的磁盘进行通讯控制的话,那么该磁盘控制器的负担就会过重,即同时一下子该磁盘控制器里有很多发向不同磁盘驱动器的执行IO的指令,超过了它的每秒处理个数的话,就会导致其性能迅速下降,这样从单个磁盘角度来讲,该磁盘控制器发送给它指令的速度以及处理磁盘返回的结果的速度就慢了很多,简而言之,就是磁盘控制器对单个磁盘的控制速度变慢了。所以,建议有多少个磁盘接入IO总线,就对应有多少个磁盘控制器接入IO总线。这样,磁盘控制器和磁盘数量一对一,从而减少磁盘控制器的负担。
从磁盘阵列物理架构这个图上可以看出,无论磁盘阵列存储上的一个分区可以分给几台主机,让他们并发读取该分区的数据。他们并发读取该分区的数据时的速度受到RAID卡上主体通道这个总线的最大传输速度的限制(瓶颈),即他们并发读取该分区的数据时的速度最大值超不过RAID卡上主体通道这个总线的最大传输速度。磁盘阵列的存储空间在总线上一次(时间)只能和一个主机通讯传输数据。
HBA卡的作用
最常用的服务器内部I/O通道(或叫总线)是PCI和Sbus,它们是连接服务器CPU和外围设备的通讯协议。存储系统的I/O通道实际上就是光纤通道(或叫总线)。而HBA的作用就是实现内部通道(或叫总线)协议PCI或Sbus和FC(FC:光纤通道)协议之间的转换[转换指令集和数据格式]。
HBA卡种类:FC-HBA卡(俗称:光纤网卡)、iSCSI-HBA卡(RJ45接口)。
根据磁盘阵列对外接口不同,选择不同种类的HBA卡。
磁盘阵列接口技术:
======================================
实施前准备:
1.拟定阵列管理IP、数据IP、主机端网卡IP地址
2.设计网络拓扑结构,最好配置独立的子网用于数据流的传输
3.存储空间规划
4.需要的硬件设备及需安装的软件
实施步骤:
1.配置存储系统:配置管理IP及数据IP;配置RAID;配置卷;配置主机和卷的映射关系(LUNMAPING)
2.配置服务器:安装Initiator软件或HBA驱动;配置Initiator,让主机识别到阵列;主机识别到新的硬盘,分区及格式化
--------------------- 本文来自 haiross 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/haiross/article/details/38441739?utm_source=copy