RAID将一组硬盘连结起来,组成一个阵列(以避免单个硬盘损坏而带来的数据损失)。
RAID常见的组合方式有:RAID0、RAID1、RAID5、RAID6、RAID1+0
RAID0 俗称“条带卷”,它将两个或多个硬盘组成一个逻辑硬盘,容量是所有硬盘之和。(要想实现RAID0最少要有两块硬盘)
因为是多个硬盘组合成一个,故可并行写操作,写入速度提高,但此方式硬盘数据没有冗余,
没有容错,一旦一个物理硬盘损坏,则所有数据均丢失。
注:RAID0 适合于对数据量大,但安全性要求不高的场景,比如音像、视频文件的存储等,
RAID0是能够百分百利用所有磁盘空间的
RAID1 俗称“镜像卷”,它最少由两个硬盘组成,且两个硬盘上存储的数据均相同,以实现数据冗余。(要想实现RAID1最少要有两块硬盘)
注:RAID1 读操作速度有所提高,容错性是所有组合方式里最好的,只要有一块硬盘正常,则能保持正常工作。
但它对硬盘容量的利用率则是最低,只有50%,因而成本也是最高。RAID1适合对数据安全性要求非常高的场景,比如存储数据库数据文件之类。
RAID5最少由三个硬盘组成,它将数据分散存储于阵列中的每个硬盘,并且还伴有一个数据校验位,数据位与校验位通过算法能相互验证,当丢失其中的一位时,RAID控制器能通过算法,利用其它两位数据将丢失的数据进行计算还原。
注:RAID5最多能允许一个硬盘损坏,有容错性。
一般的磁盘阵列,最常使用的就是RAID5这种方式。
RAID6是在RAID5的基础上改良而成的,RAID6再将数据校验位增加一位,所以允许损坏的硬盘数量也由RAID5的一个增加到二个。
RAID1+0是先将数据进行镜像操作,然后再对数据进行分组。RAID 1在这里就是一个冗余的备份阵列,而RAID 0则负责数据的读写阵列。
注:至少要四块盘,两块做raid0,另两块做raid1,RAID 10对存储容量的利用率和RAID 1一样低,只有50%。
RAID 10能提供比RAID 5更好的性能。这种新结构的可扩充性不好,使用此方案比较昂贵。
阵列卡的全称叫做磁盘阵列卡,是用来做RAID的。
磁盘阵列是一种把若干硬磁盘驱动器按照一定要求组成一个整体,整个磁盘阵列由阵列控制器管理的系统。
目前的阵列卡主要有IDE接口、SCSI接口、SATA接口和SAS接口。
IDE的英文全称为“Integrated Drive Electronics”,即“电子集成驱动器”,它的本意是指把“硬盘控制器”与“盘体”集成在一起的硬盘驱动器。
注:把盘体与控制器集成在一起的做法减少了硬盘接口的电缆数目与长度,数据传输的可靠性得到了增强,硬盘制造起来变得更容易。
由于IDE口属于并行接口,因此为了和SATA口硬盘相区别,IDE口硬盘也叫PATA口硬盘。
是一种同IDE完全不同的接口,IDE接口是普通PC的标准接口,而SCSI并不是专门为硬盘设计的接口,是一种广泛应用于小型机上的高速数据传输技术。
注:SCSI硬盘主要应用于中、高端和高档工作站中。
SCSI硬盘和普通IDE硬盘相比有很多优点:接口速度快,并且由于主要用于服务器,因此硬盘本身的性能也比较高,硬盘转速快,缓存容量大,CPU占用率低,扩展性远优于IDE硬盘,并且支持热插拔。
使用SATA(Serial ATA)口的硬盘又叫串口硬盘,串口硬盘是一种完全不同于并行ATA的硬盘接口类型,由于采用串行方式传输数据而知名。
Serial ATA以连续串行的方式传送数据,一次只会传送1位数据。这样能减少SATA接口的针脚数目,使连接电缆数目变少,效率也会更高。
3.4 SAS接口
SAS是新一代的SCSI技术,和现在流行的Serial ATA(SATA)硬盘相同,都是采用串行技术以获得更高的传输速度,并通过缩短连结线改善内部空间等。
SAS是并行SCSI接口之后开发出的全新接口。此接口的设计是为了改善存储系统的效能、可用性和扩充性,提供
与串行ATA (Serial ATA,缩写为SATA)硬盘的兼容性。
SAS系统的背板(Backpanel)既可以连接具有双端口、高性能的SAS驱动器,也可以连接高容量、低成本的SATA驱动器。
注:串行SCSI是点到点的结构,可以建立磁盘到控制器的直接连接。具有以下特点:
缓存是RAID卡与外部总线交换数据的场所,RAID卡先将数据传送到缓存,再由缓存和外边数据总线交换数据。
注:多数RAID卡都配备了一定数量的内存作为高速缓存使用。不同的RAID卡出厂时配备的内存容量不同,一般为几兆到数百兆容量不等,这取决于磁盘阵列产品的应用范围。
Write Through(透写)和Write Back(回写),是阵列卡缓存的两种使用方式,WriteThrough也是RAID阵列卡的默认模式。
首先为linux服务器添加4块SCSI硬盘,使用mdadm软件包,构建RAID5磁盘阵列,提高磁盘存储的性能和可靠性。
在Centos7.3 系统中执行如下图中命令可查看系统中是否安装mdadm工具,若系统中未安装此工具,可使用RPM或YUM方式安装:
为Linux服务器添加4块SCSI硬盘。使用fdisk工具各划分出一块2GB的分区,依次为/dev/sdb1、/dev/sdc1、/dev/sdd1、/dev/sde1。将分区的类型ID均更改为fd。fd分区类型对应“Linux raid autodetect”——表示支持用于RAID磁盘阵列。
创建完4个分区后,执行fdisk -l | grep '/dev'查看分区结果。
使用mdadm命令创建RAID,执行下图中的命令即可创建名称为md0的RAID5:
注:命令中用到的参数分别有:
查看RAID5创建结果:
注:从上述df -hT命令的结果中的值/dev/md0容量为6G。4块2G磁盘应该8G,为什么容量只显示6G?这是RAID5的特性,用于存放校验数据的部分不显示。
使用下图中的命令可以查看磁盘阵列的信息:
注:D——detail的缩写,打印一个或多个磁盘阵列的详细信息
v——对正在发生的事情显示更详细的信息
s——扫描/proc/mdstat中的阵列设备列表
为了方便日后启动/停止RAID阵列,可以创建一个配置文件来进行管理: