[关闭]
@llplmlyd 2019-09-30T16:30:32.000000Z 字数 3861 阅读 1632

Raid

数据库


关于Raid0,Raid1,Raid3,Raid5(6),Raid10(0+1/1+0)的总结

RAID 独立硬盘冗余阵列

Raid基础概念

扇区条带条带长度和深度
条带Stripe:磁盘相同偏移处横向逻辑切割;
条带长度:一个stripe横跨的扇区或块的个数或字节容量;
段segment:一个stipe所占用的单块磁盘的区域;
条带深度:一个segment所包含的data block或者扇区的个数或字节容量。
局部连续:条带1放满后,继续放条带2;逻辑连续需要跨物理磁盘(物理连续)。

IO相关概念

读/写IO:一次IO连续扇区,通知起始扇区和连续扇区个数。
大/小块IO:给出连续读取扇区数目的多少,数目很大为大块IO,很小为小块IO,没有明显界限。
连续/随机IO:本次IO给出的初始扇区地址和上次IO的结束扇区地址是完全连续的还是相隔不多的。
顺序/并发IO:发向底层磁盘的IO数据包包含了文件系统级下发的多个IO的数据,则为并发IO;如果直接发向磁盘的IO值包含了文件系统下发的一个IO数据,则为顺序IO(IO序列)。
持续/间断IO:持续不断地发送/接收IO请求数据流和时断时续发送/请求数据流。
稳定/突发IO:单位时间接收/发送的IOPS/吞吐量稳定和剧烈变化。
实/虚IO:IO请求针对实际数据地址或文件偏移量的,称为实IO;针对磁盘发送的非实体数据IO请求,比如控制性IO,称为虚IO。
IO并发几率:并发多磁盘IO的概率;
IOPS:IO并发系数/(寻道时间+旋转延迟时间+数据传输时间),连续IO,寻道时间很短,传输时间越少,IOPS越高
每秒IO吞吐量:每秒IO吞吐量=IOPSx平均IO SIZE,影响因素主要是IO SIZE和存到时间以及旋转延迟时间。

RAID0 - 条带化,串連 (Striping) 硬盘数>=2

定义 多磁盘数据分组同步读写 读写速度为单盘的X倍

RAID级别中的存储性能最高。将多个磁盘并列起来,成为一个大磁盘 raid0,将连续的数据分散到多个磁盘上存取,系统有数据请求就可以被多个磁盘并行的执行,每个磁盘执行属于它自己的那部分数据请求。这种数据上的并行操作可以充分利用总线的带宽,显著提高磁盘整体存取性能。
raid功能中spanning和striping模式有什么区别?
此处输入图片的描述

工作原理

系统向三个磁盘组成的逻辑硬盘(RAID0磁盘组)发出的I/O数据请求被转化为3项操作,其中的每一项操作都对应于一块物理硬盘。通过建立RAID 0,原先顺序的数据请求被分散到所有的三块硬盘中同时执行。从理论上讲,三块硬盘的并行操作使同一时间内磁盘读写速度提升了3倍。 但由于总线带宽等多种因素的影响,实际的提升速率肯定会低于理论值,但是,大量数据并行传输与串行传输比较,提速效果显著显然毋庸置疑。

优缺点

1、读写性能高,非常适合于视频、图像的制作和编辑
2、安全性能低,不支持数据冗余,无容错功能,不适用于关键任务环境
3、磁盘空间使用率:100%,成本最低
4、在 RAID0 串連中的每個磁碟必須要相同大小

RAID1 - Block 鏡像 (Mirroring) 硬盘数>=2

定义 多磁盘同数据同步写读 读写速度与单盘相同

RAID 1通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互为备份的数据。当原始数据繁忙时,可直接从镜像拷贝中读取数据,因此RAID 1可以提高读取性能。

工作原理

将一个两块硬盘所构成RAID磁盘阵列,其容量仅等于一块硬盘的容量,因为另一块只是当作数据“镜像”。读只能在一块磁盘上进行,并不会进行并行读取,性能取决于硬盘中较快的一块。写的话通常比单块磁盘要慢,虽然是并行写,即对两块磁盘的写入是同时进行的,但因为要比较两块硬盘中的数据,所以性能比单块磁盘慢。
此处输入图片的描述

优缺点

1、磁盘的利用率却只有50%,磁盘利用率最低,成本最高
2、数据冗余备份,容错,数据安全性高;当故障发生时,系统可自动切换到镜像磁盘,无需重组数据
3、读性能:只能在一个磁盘上读取,取决于磁盘中较快的那块盘
4、写性能:两块磁盘都要写入,虽然是并行写入,但因为要比对,故性能单块磁盘慢。
5、支持“热交换”,就是说阵列中硬盘的移除或替换可以在系统运行时进行,无须中断退出系统。

RAID3 - 位元級串連與獨立奇偶校驗 校验存储与一个盘 硬盘数>=3

定义

RAID 3是把数据分成多个“块”,按照一定的容错算法,存放在N+1个硬盘上,实际数据占用的有效空间为N个硬盘的空间总和,而第N+1个硬盘上存储的数据是校验容错信息

工作原理

此处输入图片的描述
当这N+1个硬盘中的其中一个硬盘出现故障时,从其它N个硬盘中的数据也可以恢复原始数据,这样,仅使用这N个硬盘也可以带伤继续工作(如采集和回放素材),当更换一个新硬盘后,系统可以重新恢复完整的校验容错信息。由于在一个硬盘阵列中,多于一个硬盘同时出现故障率的几率很小,所以一般情况下,使用RAID3,安全性是可以得到保障的。

优缺点

1、写入操作多磁盘并行进行,但每个数据盘写入数据,都需要同时重写校验盘中的相关信息,经常执行写入,会导致校验盘负载压力大
2、更加适合应用于那些写入操作较少,读取操作较多的应用环境,例如 数据库和WEB服务器等

Raid5 分布式奇偶校验 硬盘数>=3

此处输入图片的描述

定义

RAID 5是RAID 0和RAID1的折中方案。RAID5具有和RAID0相近似的数据读取速度,只是多了一个奇偶校验信息,写入数据的速度比对单个磁盘进行写入操作稍慢。

工作原理

RAID5把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且是分别存储于不同的磁盘上,其中任意N-1块磁盘上都存储完整的数据,也就是说有相当于一块磁盘容量的空间用于存储奇偶校验信息。当RAID5的一个磁盘发生损坏后,不会影响数据的完整性,从而保证了数据安全。当损坏的磁盘被替换后,RAID还会自动利用剩下奇偶校验信息去重建此磁盘上的数据,来保持RAID5的高可靠性。

优缺点

1、磁盘空间利用率:(N-1)/N,即只浪费一块磁盘用于奇偶校验。存储成本相对较低
2、(n-1)*单块磁盘的读性能,和RAID0相近似的数据读取速度
3、写入数据的速度比对单个磁盘进行写入操作稍慢
4、高可靠性。奇偶校检与数据分别都存储不同盘,损坏时,可以自动重建。只允许一块磁盘损坏。

Raid6
类似RAID5两组奇偶校验信息块,两个独立的奇偶系统使用不同的算法, 数据的可靠性非常高,即使两块磁盘同时失效也不会影响数据的使用。相对于RAID 5有更大的“写损失”,因此“写性能”非常差。

Raid10:RAID1+0和RAID0+1 硬盘>=4 (偶数)

Raid10 镜象阵列条带 先做镜像(1),再做条带(0)
可以理解为两个raid0同步
此处输入图片的描述
Raid01 先做条带(0),再做镜像(1)
此处输入图片的描述

工作原理

Raid10其实结构非常简单,首先创建2个独立的Raid1,然后将这两个独立的Raid1组成一个Raid0,当往这个逻辑Raid中写数据时,数据被有序的写入两个Raid1中。磁盘1和磁盘2组成一个Raid1,磁盘3和磁盘4又组成另外一个Raid1;这两个Raid1组成了一个新的Raid0。

优缺点:

1、磁盘利用率50% 成本较高
2、安全性上RAID10要好于 RAID01,如图中所示,假设DISK0损坏,在RAID10中,只有DISK1 故障,整个RAID才失效。故障率为1/3。但在RAID01中,DISK0损坏后,左边的条带将无法读取,DISK2或DISK3两个盘中任何一个损坏,都会导致RAID失效。故障率2/3。
3、RAID01比起RAID10有着更快的读写速度

Raid10 与 Raid5 比较

1、RAID5和RAID10,哪种RAID更适合你(上)

2、RAID5和RAID10,哪种RAID更适合你(下)

Raid 0 1 10 5 6 比较

此处输入图片的描述

RAID 读性能 写性能 安全性 磁盘空间利用率 成本
0 高100% 低,至少需要2块盘
1 低50% 高,至少需要2+2N块盘
10 低50% 高,至少需要4+2N块盘
5 中N-1/N 中,至少需要3块盘

实现

软件磁盘阵列(Software RAID)

RAID 软件实现工具:Linux上的mdadm工具、虚拟卷管理工具(LVM或者Veritas),文件系统实现(btrfs,ZFS,GPFS)、RAID-F等。

硬件磁盘阵列(Hardware RAID)

RAID卡上内置处理器,不需要服务器的CPU运算。优点是读写性能最快,不占用服务器资源,可用于任何操作系统,缺点是其售价很高,通常只用于RAID 5和RAID 6。

参考链接

https://www.cnblogs.com/ivictor/p/6099807.html
http://blog.jobbole.com/83808/
https://blog.csdn.net/spuer_io/article/details/57080239
https://www.freebsd.org/doc/zh_TW/books/handbook/geom.html
http://blog.51cto.com/jiebers/1334486
http://blog.51cto.com/jiebers/1334487

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注