第1章 什么是Raid?
Raid是廉价冗余磁盘阵列(Redundant Array of Inexpensive Disk)的简称,有时也简称磁盘阵列(Disk Array)
Raid是一种把多块独立的物理磁盘按不同的技术方式组合起来形成一个磁盘组,在逻辑上(做完RAID,装系统后)看起来就是一块大的磁盘,可以提供比单个物理磁盘更大的存储容量或更高的存储性能,同时又能提供不同级别数据冗余备份的一种技术。
1.1 Raid级别介绍
把多个物理磁盘通过不同的技术方式组成磁盘阵列,这个不同的技术方式就被称为RAID级别。
raid级别一般有:Raid0、Raid1、Raid2、Raid3、Raid4、Raid5、Raid6、Raid7、Raid 0+1(也称Raid10)、Raid53等。推荐书籍(大话存储II)
生产环境常用的Raid级别: Raid0,Raid1. Raid5,Raid10
1.2 RAID级别的优缺点
我们先把这些RAID级别的优缺点做个比较:
RAID级别 |
关键优点 |
关键缺点 |
实际应用场景 |
Raid0 |
读写速度最快 |
没有任何冗余 |
MySQL 从库slave集群的节点RS |
Raid1 |
100%冗余读写性能一般 |
成本高 |
单独的数据重要且不宕机的业务。监控,系统盘 |
Raid5 |
具备一定性能和冗余,可坏一块盘读性能不错 |
写入性能不高 |
一般的业务都可以用 |
Raid10 |
读写速度很快,100%冗余 |
成本高 |
性能和冗余要求都很好的业务,数据库主库和存储的主节点 |
下表提供了4级RAID的简单定义
Raid级别 |
描述 |
速度 |
容错能力 |
Raid0 |
磁盘分段 |
磁盘并行输入/出 |
无 |
Raid1 |
磁盘镜像 |
没有提高 |
坏单盘 |
Raid5 |
磁盘分段加奇偶校验分布在个磁盘 |
磁盘并行输入/出比 |
单个坏 |
Raid10 |
速度快、完全容错、成本高 |
速度快 |
50%容错 |
1.3 什么是冗余:
冗余,指重复配置系统的一些部件,当系统发生故障时,冗余配置的部件介入并承担故障部件的工作,由此减少系统的故障时间 Redundant,自动救援,即当某一设备发生损坏时,它可以自动作为后备式设备替代该设备。
第2章 Raid技术分类
常见RAID技术分为两种:
基于硬件的RAID技术和基于软件的RAID技术
2.1 软RAID技术:
在linux下在安装系统过程中或者安装系统后通过自带的软件就能实现软RAID功能,使用软RAID可省去购买昂贵的硬件RAID控制器和附件就能极大地增强磁盘的IO性能和可靠性。由于是用软件去实现的RAID功能,所以它配置灵活、管理方便。同时使用软件RAID,还可以实现将几个物理磁盘合并成一个更大的虚拟设备,从而达到性能改进和数据冗余的目的。
一般不用软Raid:(1)性能不好(2)操作系统坏了,软Raid用不了
2.2 硬RAID技术:
基于硬件的RAID解决方案比基于软件RAID技术在使用性能和服务性能上会更胜一筹,具体表现在检测和修复多位错误的能力、错误磁盘自动检测和阵列重建等方面。从安全性上考虑,基于硬件的RAID解决方案应该是我们公司的首选。互联网公司常用的生产DELL服务器,默认的就会支持RAID0,RAID1.如果RAID5,RAID10就需要买RAID卡。
第3章 什么是LVM?
LVM逻辑卷管理,如果过于强调性能与备份,那么还是应该使用RAID功能,而不是LVM。
LVM是在硬盘的分区智商,创建一个逻辑层,以方便系统管理整个硬盘分区系统。LVM最先由IBM开发,在AIX系统上实现,OS/2操作系统与HP-UX也支持这个功能。在1998年,Heize Mauelshagen分局在HP-UX上的LVM管理器,写作出第一个Linux版本。
3.1 RAID和LVM的区别
LVM:灵活的调整分区的容量,有一定的冗余和性能功能,但很弱。
RAID:更侧重性能和数据安全。
我们为什么需要RAID?
磁盘阵列可以把多个磁盘驱动器通过不同的连接方式连接在一起协同工作,大大提高了读取速度,同时把磁盘系统的可靠性提高到接近无错的境界,使其可靠性极高。
用RAID最直接的好处是:
1)提升数据安全性。
2)提升数据读写性能
3)提供更大的单一逻辑磁盘数据容量存储。
第4章 常用RAID级别细节说明
4.1 RAID0级别详解
4.1.1 RAID0描述
RAID0又称为Stripe(条带化)或Striping(条带模式),它在所有RAID级别中具有最高存储性能。
RAID0提高存储性能的原理是把连续的数据分散到多个磁盘上存取。这样,系统有数据读写请求就可以在多个磁盘并行的执行,每个磁盘读写属于它自己的那部分数据请求。这种数据上的并行操作可以充分利用总线的带宽,显著提高磁盘整体存取性能。
要制作RAID0要求至少是1块物理磁盘,一般用来做RAID的不同磁盘大小最好一样(可以充分发挥并行优势);而数据分散存储于不同的磁盘上,在读写的时候可以实现并发,所以RAID0读写性能最好;但是没有容错功能,即任何一个磁盘的损坏会导致整个RAID的全部数据丢失;生产中使用单盘,要做成RAID0,否则可能无法使用。
以四块磁盘做成一个RAID0为例
从理论上讲,四块磁盘的并行操作使同一时间内磁盘读写速度提升了4倍。但由于总线带宽等多种因素的影响,实际的提升速率肯定会低于理论值,但是,大量数据并行传输与串行传输比较,提升效果显著显然毋庸置疑。
RAID0的缺点是不具备数据冗余,因此一旦用户数据损害,损害的数据将无法得到恢复。RAID0具有的特点,使其特别适用于对性能要求较高,而对数据安全不太在乎的领域。
4.1.2 生产应用场景:
1)负载均衡集群下面的多个相同RS节点服务器。
2)分布式文件存储下面的主节点或CHUNK SERVER.
3) MySQL主从复制的多个Slave服务器。
4)对性能要求很高,对冗余要求很低的相关业务。
RAID0综合情况图标说明
4.1.3 以四块盘做成RAID0为例说明
关注点 描述容量是四快盘加载一起的容量,在RAID级别种具备最高的存储性能,原理是把连续数据分散到多个磁盘上存取。性能理论上磁盘读写速度比单盘提升4倍,磁盘越多倍数会越小。冗余无任何冗余,坏1快盘,整个RAID就不能用了。场合适合于大规模并发读写,但对数据安全性要求不高的情况。特点:速度快,无冗余,容量无损失4.2 RAID1级别详解
4.2.1 RAID1描述
RAID1又称为Mirror或Mirroring(镜像),它的宗旨是最大限度的保证用户数据的可用性和修复性。RAID1的操作方式是把用户写入一个磁盘的数据百分之百地自动复制到另一个磁盘上,从而实现存储双份的数据。
要制作RAID1要求至少是两块磁盘,整个RAID大小等于磁盘中最小的那块磁盘的容量(当然,最好使用同样大小的磁盘),数据有100%的冗余,在存储时同时写入两块磁盘,实现了数据完整备份;但相对降低了写入性能,但是读取数据时可以并发,相当于两块RAID0的读取效率(有待实践验证)。
RAID1在读取数据时,系统先从RAID1的源盘读取数据,如果读取数据成功,则系统不去管备份盘上的数据;如果读取源盘数据失败,则系统自动转而读取备份盘上的数据,不会造成用户工作任务的终端(有待验证)。当然,我们应当及时地更换损害的磁盘并利用备份数据重新建立Mirror,避免备份盘在发生损坏时,造成不可挽回的数据损失。
由于对存储的数据进行百分之分的备份,在所有RAID级别种,RAID1提供最高的数据安全保障。同样,由于数据的百分之百备份,备份数据占了总存储空间的一般,因而Mirror(镜像)的磁盘空间利用率低,存储成本高。Mirror虽不能调高存储性能,但由于有其具备极高的数据安全性,使其适用于存放重要数据。如传统企业对性能要求不高,对数据要求高的服务器和数据库存储等领域。
4.2.2 RAID1综合情况图表说明
以两块盘为例说明
关注点 |
描述 |
容量 |
损失50%的数据容量。例如:2块1T的盘,做RAID1后,容量为1T |
性能 |
Mirror不能提高存储性能。理论上写性能和单盘相差不大 |
冗余 |
在所有RAID级别种,RAID1提供最高的数据安全保障。冗余度100% |
场合 |
适用于存放重要数据,如服务器系统分区和对性能要求不高的数据块存储等领域 |
特点 |
100%冗余,容量损失一半 |
4.3 RAID5级别详解
4.3.1 RAID5描述
RAID5是一种存储性能、数据安全和存储成本兼顾的存储解决方案
RAID5需要三块或以上的物理磁盘,可以提供热备盘实现故障的恢复;采用奇偶校验,可靠性强,且只有同时损坏两块磁盘时数据才会完全损坏,只损坏一块盘时,系统会根据存储的奇偶校验位重建数据,临时提供服务;此时如果有热备盘,系统还会自动在热备盘上重建故障磁盘上的数据。
以四个硬盘为例,RAID5不对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当RAID5的一个磁盘数据发生损坏后,利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。
RAID5可以理解为是RAID0和RAID1的折中方案。RAID5可以为系统提供数据安全保障,但保障程度要比Mirror低而磁盘空间利用率要比Mirror高。RAID5具有和RAID0相近似的数据读取速度,只是多了一个奇偶校验信息,RAID5的磁盘空间利用率要比RAID1高,存储成本相对较低。
RAID5是一种存储性能、数据安全和存储成本兼顾的存储解决方案。
RAID5是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当RAID5的一个磁盘数据发生损坏后,利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。
4.3.2 RAID5综合情况图表说明
关注点 |
描述 |
容量 |
损失一块盘的数据容量 |
性能 |
RAID5具有和RAID0相近似的数据读取速度,只是多了一个奇偶校验信息,写入数据的速度比对单个磁盘进行写入操作稍慢 |
冗余 |
可损失一块盘。RAID5数据安全保障程度比RAID1低而磁盘空间利用率要比RAID1高。损失n-1块盘 |
场合 |
RAID可以理解为RAID0和RAID1的折 中方案。适合对性能和冗余都有一定要求,又都不是十分高的情况。MySQL的主从库都可以,存储也可以。普通的服务器为了减少维护成本,又保持一定冗余和读性能都可以做RAID5 |
特点 |
容量损失一块盘,写数据通过奇偶校验,RAID0和RAID1的折中方案。 |
4.4 RAID10 级别详解
4.4.1 Raid10描述
RAID10是存储性能和数据安全兼顾的方案。它在提供与RAID1一样的数据安全保障的同时,也提供了与RAID0近似的存储性能。RAID10和RAID01在读和写的性能上没有太大的差别,从发生故障的概率上看,RAID01远大于RAID10的。一般情况下选择RAID10的情况会多些。
RAID01的特点使其特别适用于既有大量数据需要存储,同时又对数据安全性要求严格的领域,如银行、金融、商业超时、仓储库房、各种档案管理等。
4.4.2 RAID10综合情况图表说明
优点/特点 |
缺点 |
RAID10以RAID0为执行阵列,以RAID1为数据保护阵列 |
存储容量利用率较低,单位成本昂贵 |
像操作基本一样有与RAID1一样的容错能力 |
磁盘并行工作使相应磁轨持续性能被减弱 |
RAID10拥RAID10用于容错处理的系统开销与单独镜 |
由于成本的原因造成非常有限的可扩展性 |
由于使用RAID0作为执行登记,因此具有较高I/O带宽
对于那些想在RAID1基础上大幅提高性能的用户,它是一个完美的解决方案
使用领域 数据库存储服务器等需要高性能、高容错但对容量要求不大的场合
第5章 DELL R710使用6块盘实测RAID制作
RAID0:支持1块盘到多块盘,容量是所有盘之和
RAID1:只支持2快盘,容量损失一块盘
RAID5:最少3块盘,不管硬盘数量多少,只损失一块盘容量
RAID6:最少4块盘,5块也可以,损失2快盘,不管硬盘多少 ,只损失两块盘的容量
RAID10:最少4块盘,必须偶数硬盘,不管硬盘多少,都损失一半的容量,不支持虚拟磁盘。