相同硬盘数量时,RAID5与RAID10性能比较
- 格式:doc
- 大小:242.00 KB
- 文档页数:4
前一段时间我写过一篇文章“RAID5和RAID10,哪种RAID适合你”,主要从磁盘系统的内部运行细节分析了RAID5与RAID10的异同,以及各自适用的范围。
本文将接续上篇,继续从RAID原理来分析存储系统的瓶颈。
我们知道,在存储系统的采购过程中,厂商往往能够提供漂亮的性能参数,但实际运行中,该系统的实际性能表现并不能达到我们所期望的状态,那么在运行环境中存储系统的实际性能究竟受哪些环节和瓶颈的影响呢?之所以要和大家来讨论这个问题,是因为在本人的工作中曾遇到一个实际的Case,在这个case中,一个恢复压力很大的standby(这里主要是写,而且是小io的写),采用了RAID5的方案,发现性能很差,后来改造成了RAID10,就很好的避免了性能的问题。
建议在阅读本文前,首先阅读本文上篇“RAID5和RAID10,哪种RAID适合你”,因为性能瓶颈的出现,本身与RAID方式还是有很大关系,同时本文性能讨论的基础,本身建立在上文的一些结论之上。
阵列的瓶颈主要体现在2个方面,带宽与IOPS(单位时间传输的数据量,和单位时间完成的I/O数)。
影响带宽的主要因素存储系统的带宽主要取决于阵列的构架,光纤通道的大小(我们今天讨论的阵列一般都是光纤阵列,SCSI这样的SSA阵列,暂时不在讨论范围之列)以及硬盘的个数。
所谓阵列构架影响存储系统带宽,指的是存储系统内部架构会存在一些内部带宽,类似于PC的系统总线,尽管阵列的构架因不同厂商不同型号的产品而各有不同,不过一般情况下,内部带宽都设计的很充足,不会是瓶颈的所在。
光纤通道对带宽的影响还是比较大的,例如数据仓库环境中,对数据的流量要求很大,而一块2Gb的光纤卡,所能支撑的最大流量应当是2GB/8=250Mb/s的实际流量,必须配备4块光纤卡才能达到1Gb/s的实际流量,所以对于数据仓库的环境来说,升级到光纤4Gb并非是厂商过于超前的产品更新,在大流量的数据环境下绝对有必要考虑更换4GB的光纤卡。
raid0 raid1 raid5 raid10的相关考题
1. 请解释RAID0、RAID1、RAID5和RAID10的基本概念和
原理。
2. RAID0、RAID1、RAID5和RAID10的特点和优缺点是什么?
3. RAID0、RAID1、RAID5和RAID10的适用场景分别是什么?
4. RAID0、RAID1、RAID5和RAID10的数据容错能力如何比较?
5. 当其中一个磁盘故障时,RAID0、RAID1、RAID5和
RAID10分别如何处理并恢复数据?
6. 请解释RAID5和RAID10中的数据分布和校验原理。
7. 在RAID10中,如果同时有多个磁盘故障,如何处理和恢复数据?
8. 使用RAID5和RAID10时,读写性能如何比较?
9. RAID0和RAID1是否支持热插拔?为什么?
10. RAID5和RAID10是否支持动态扩容和动态容量转换?为
什么?
11. 在RAID5和RAID10中,如何进行数据重建和硬盘替换?
12. RAID0、RAID1、RAID5和RAID10在不同级别的容量和
性能扩展方面有什么不同?
13. 在实际应用中,RAID0、RAID1、RAID5和RAID10的使
用比例如何?原因是什么?
14. 在现代存储系统中,有没有类似于RAID0、RAID1、
RAID5和RAID10的新型RAID级别出现?请简单介绍。
15. 什么是非标准RAID级别?可以举例说明吗?
这些是一些关于RAID0、RAID1、RAID5和RAID10的常见
考题,涵盖了它们的概念、原理、特点、应用、数据恢复和性能等方面。
1.存储系统的基本架构及对比(DAS , FC SAN ,IP SAN , NAS)最常见的基本存储解决方案有三种:直连存储(Direct-attached Storage,DAS):指主机直接连接到存储设备。
存储区域网(Storage Area Network,SAN):指主机通过光纤交换机或以太网交换机与存储设备连接。
分为FC SAN和IP SAN两类。
网络互联存储(Network-attached Store,NAS):NAS的文件服务器通过以太网口连接到以太网交换机,2.Windows系统使用存储:Windows操作系统(兼容性好)使用存储:1.安装FC HBA或iSCSI HBA硬件驱动程序 2.通过计算机管理中的磁盘管理来使用存储UNIX操作系统(专用服务器系统)使用存储:1.FC交换机配置zone,并进行存储设备映射2.使用光纤卡厂商提供的工具扫描存储设备。
操作系统利用分区管理多个磁盘时的局限性:1.分区必须使用当前盘内连续的磁盘空间2.无法利用两个磁盘中的多余空间创建一个分区3.分区有数量限制,Windows系统最多只能有4个主分区4.分区的容量调整需大量时间,并导致停机。
5.分区容量最大不能超过一个磁盘容量。
逻辑卷管理的特点:1.无需使用连续磁盘空间2.可动态调整卷容量3. 可跨磁盘创建一个逻辑卷4.可把多个物理磁盘组成一个卷组,然后在卷组内划分多个逻辑卷。
文件系统:文件系统提供了操作系统对存储设备上的文件进行管理的接口。
1.一个文件系统必须被挂载后才能使用。
2.操作系统在启动过程中会挂载文件系统3.挂载后,文件系统和操作系统之间建立了连接,操作系统将文件组织成一个目录树结构,并授予用户访问的权限。
在SAN方案中,主机通过LVM创建逻辑卷,再在逻辑卷上创建文件系统。
在NAS方案中,主机通过CIFS 和NFS协议使用相关的文件系统。
3. 掌握块级IO与文件级IO的区别块级访问:根据LBA地址从磁盘中读写数据。
常见的RAID级别1.RAID的概念: RAID的独⽴(或廉价)磁盘冗余阵列的缩写。
RAID也叫磁盘阵列卡,它是⼀种将信息存储在多个硬盘上的⽅法,以获得更多保护或性能提升。
RAID有⼏种不同的存储⽅式,命名级别从0到9。
下⾯介绍⼀下⼏个常见的RAID级别。
常见的RAID级别有、RAID0、RAID1、RAID5、RAID102.RAID0+ ⾄少两块磁盘+ ⾼效的性能+ 没有冗余+ 使⽤场景:不要求安全只要求速度+ 举例:数据库从库存储从库3.RAID1+ ⾄少两块磁盘+ 写⼊慢读取ok+ 优秀的冗余+ 使⽤场景:只追求安全性,对于速度没要求+ 举例:系统盘监控服务器4.RAID5+ ⾄少3块磁盘+ 良好的性能(写⼊性能不好,读取速度ok)+ 良好的冗余(允许损坏⼀块盘)+ 使⽤场景:对于数据安全要求⾼,对于速度要求不⾼+ 举例:对于⼤量⾯向读的数据库5.RAID10+ 常⽤的RAID 10+ RAID 10也称为RAID 1+0+ 最少需要4快磁盘+ 优秀的冗余+ 优秀的性能(读写速度都很快)+ 使⽤场景:对于安全和性能要求都⾼+ 举例:⾼并发⾼访问的数据库主库6.总结:看到了RAID 10,其实还有RAID 01 ,RAID10 和RAID01的读写性能差别不⼤。
最主要的区别是RAID01,当⼀块磁盘出现故障的时候将导致整个虚拟磁盘损失,RAID10(既保证了性能有保证了客容量),所以RAID10更为常⽤RAID是⼀种⽤于提⾼数据库存储性能或磁盘数据的可靠技术,他能保证磁盘损坏之后的数据安全性.。
raid0RAID 0(别名:条带)容错性:没有冗余类型:没有热备盘选项:没有读性能:高随机写性能:高连续写性能:高需要的磁盘数:只需2个或2*N个(这里应该是多于两个硬盘都可以)可用容量:总的磁盘的容量典型应用:无故障的迅速读写,要求安全性不高,如图形工作站等。
RAID 0又称为Stripe或Striping,它代表了所有RAID级别中最高的存储性能。
RAID 0提高存储性能的原理是把连续的数据分散到多个磁盘上存取,这样,系统有数据请求就可以被多个磁盘并行的执行,每个磁盘执行属于它自己的那部分数据请求。
这种数据上的并行操作可以充分利用总线的带宽,显著提高磁盘整体存取性能。
如图1所示:系统向三个磁盘组成的逻辑硬盘(RADI 0 磁盘组)发出的I/O数据请求被转化为3项操作,其中的每一项操作都对应于一块物理硬盘。
我们从图中可以清楚的看到通过建立RAID 0,原先顺序的数据请求被分散到所有的三块硬盘中同时执行。
从理论上讲,三块硬盘的并行操作使同一时间内磁盘读写速度提升了3倍。
但由于总线带宽等多种因素的影响,实际的提升速率肯定会低于理论值,但是,大量数据并行传输与串行传输比较,提速效果显著显然毋庸置疑。
RAID 0的缺点是不提供数据冗余,因此一旦用户数据损坏,损坏的数据将无法得到恢复。
RAID 0具有的特点,使其特别适用于对性能要求较高,而对数据安全不太在乎的领域,如图形工作站等。
对于个人用户,RAID 0也是提高硬盘存储性能的绝佳选择。
计算机技术发展迅速,但硬盘传输率也成了性能的瓶颈。
怎么办?IDE RAID技术的成熟让我们轻松打造自己的超高速硬盘。
在实际应用中,RAID 0硬盘阵列能比普通IDE 7200转ATA 133硬盘快得多,时至今日,在大多数的高端或者玩家主板上我们都能找到一颗PROMISE 或者HighPoint的RAID芯片,同时发现它们提供的额外几个IDE接口。
没错,RAID已经近在眼前,难道你甘心放弃RAID为我们带来的性能提升吗?答案当然是否定的!实用的IDE RAIDRAID可以通过软件或硬件实现。
图⽂并茂RAID技术全解–RAID0、RAID1、RAID5、RAID10图⽂并茂 RAID 技术全解 – RAID0、RAID1、RAID5、RAID100…… RAID 技术相信⼤家都有接触过,尤其是服务器运维⼈员,RAID 概念很多,有时候会概念混淆。
这篇⽂章为⽹络转载,写得相当不错,它对 RAID 技术的概念特征、基本原理、关键技术、各种等级和发展现状进⾏了全⾯的阐述,并为⽤户如何进⾏应⽤选择提供了基本原则,对于初学者应该有很⼤的帮助。
⼀、RAID 概述 1988 年美国加州⼤学伯克利分校的 D. A. Patterson 教授等⾸次在论⽂ “A Case of Redundant Array of Inexpensive Disks” 中提出了RAID 概念 [1] ,即廉价冗余磁盘阵列( Redundant Array of Inexpensive Disks )。
由于当时⼤容量磁盘⽐较昂贵, RAID 的基本思想是将多个容量较⼩、相对廉价的磁盘进⾏有机组合,从⽽以较低的成本获得与昂贵⼤容量磁盘相当的容量、性能、可靠性。
随着磁盘成本和价格的不断降低, RAID 可以使⽤⼤部分的磁盘, “廉价” 已经毫⽆意义。
因此, RAID 咨询委员会( RAID Advisory Board, RAB )决定⽤ “ 独⽴ ” 替代 “ 廉价 ” ,于时 RAID 变成了独⽴磁盘冗余阵列( Redundant Array of Independent Disks )。
但这仅仅是名称的变化,实质内容没有改变。
RAID 这种设计思想很快被业界接纳, RAID 技术作为⾼性能、⾼可靠的存储技术,已经得到了⾮常⼴泛的应⽤。
RAID 主要利⽤数据条带、镜像和数据校验技术来获取⾼性能、可靠性、容错能⼒和扩展性,根据运⽤或组合运⽤这三种技术的策略和架构,可以把 RAID 分为不同的等级,以满⾜不同数据应⽤的需求。
一.什么是RAID:RAID是“Redundant Array of Independent Disk”的缩写,中文意思是独立冗余磁盘阵列。
冗余磁盘阵列技术诞生于1987年,由美国加州大学伯克利分校提出。
RAID磁盘阵列(Redundant Array of Independent Disks)简单地解释,就是将N台硬盘通过RAID Controller(分Hardware,Software)结合成虚拟单台大容量的硬盘使用,其特色是N台硬盘同时读取速度加快及提供容错性Fault Tolerant,所以RAID是当成平时主要访问Data的Storage不是Backup Solution。
在RAID有一基本概念称为EDAP(Extended Data Availability and Protection),其强调扩充性及容错机制,也是各家厂商如:Mylex,IBM,HP,Compaq,Adaptec,Infortrend等诉求的重点,包括在不须停机情况下可处理以下动作:RAID 磁盘阵列支援自动检测故障硬盘;RAID 磁盘阵列支援重建硬盘坏轨的资料;RAID 磁盘阵列支援支持不须停机的硬盘备援 Hot Spare;RAID 磁盘阵列支援支持不须停机的硬盘替换 Hot Swap;RAID 磁盘阵列支援扩充硬盘容量等。
一旦RAID阵列出现故障,硬件服务商只能给客户重新初始化或者REBUILD,这样客户数据就会无法挽回。
因此对RAID0、RAID1、RAID5以及组合型的RAID系列磁盘阵列数据恢复,出现故障以后只要不对阵列作初始化操作,就有机会恢复出故障RAID磁盘阵列的数据。
二.关于RAID的技术规范介绍(1)RAID技术规范简介冗余磁盘阵列技术最初的研制目的是为了组合小的廉价磁盘来代替大的昂贵磁盘,以降低大批量数据存储的费用,同时也希望采用冗余信息的方式,使得磁盘失效时不会使对数据的访问受损失,从而开发出一定水平的数据保护技术,并且能适当的提升数据传输速度。
RAID卡的功能就是管理所有硬盘, 不在由主板总线管理RAID卡有驱动,驱动放置在安装盘上,安装OS时选择相关RAID卡后指出驱动路径,即可安装 ------YRP 20190411RAID0:1. 即Data Stripping(数据分条技术)。
整个逻辑盘的数据是被分条(stripped)分布在多个物理磁盘上,可以并行读/写,提供最快的速度,但没有冗余能力。
通过RAID 0可以获得更大的单个逻辑盘的容量,且通过对多个磁盘的同时读取获得更高的存取速度。
RAID 0首先考虑的是磁盘的速度和容量,忽略了安全,只要其中一个磁盘出了问题,那么整个阵列的数据都会不保了。
2. 优点:硬盘读写速度高,所有raid里最快, 缺点: 可靠性降低,容量等于硬盘总之和。
无冗余功能,一块坏,数据全无.建议:做raid0 可以提供更好的容量以及性能,推荐对数据安全性要求不高的使用,必须同类型的盘(都是SAS或STAT,也不能混合SSD)3. 至少2块硬盘RAID1:1. 又称镜像方式,也就是数据的冗余。
在整个镜像过程中,只有一半的磁盘容量是有效的(另一半用来存放同样的数据)。
同RAID 0相比,RAID 1首先考虑的是安全性,容量减半、速度不变。
2. 优点: 镜像,高安全性. 缺点: 容量减半、是所有RAID级别中最低, 速度不变没有提升.建议:对数据安全性比较看着,性能没有太高要求的人使用,必须同类型的盘(都是SAS或STAT,也不能混合SSD)。
3. 至少2块硬盘,好像宝德服务器RAID卡为LSI2308+-IR的只能2块LSI2308+-IR,第三块认不到。
RAID10:1. 为了达到既高速又安全,出现了RAID10(或者叫RAID0+1),可以把RAID10简单地理解成由多个磁盘组成的RAID0阵列再进行镜像, 条带化+镜像。
raid10是2快硬盘组成raid1,2组raid1在组成raid0,所以必须需要4块硬盘。
存储性能从来都不是一刀切的事。
若讨论性能,必定从IO特征入手,然后结合应用的特性来看的。
读写性能方面的比较
主要分析如下三个情况:读,顺序写,随机写
1. 读操作方面的性能差异
盘阵列读操作的关键更多的体现在cache的命中率上。
所以,RAID5和RAID10在读数据上面,他们基本是没有差别的,除非是读的数据能影响cache命中率,导致命中率不一样。
若不考虑cache方面,100%随机读时,那么对于RAID10和RAID5来说,所有的硬盘都将参与IO运算,所以两者也没有太多的差异
2. 顺序写方面的性能差异
连续写的过程,一般表示写入连续的大批量的数据,如媒体数据流,很大的文件等等。
连续写操作大多数产生于医疗PACS系统、高教图书馆系统、视频编辑系统等等应用环境下。
在连续写操作过程,如果有写cache存在,并且算法没有问题的话,RAID5比RAID10甚至会更好一些,虽然也许并没有太大的差别。
(这里要假定存储有一定大小足够的写cache,而且计算校验的cpu不会出现瓶颈)。
因为这个时候的RAID校验是在cache中完成,如4块盘的RAID5,可以先在内存中计算好校验,同时写入3个数据+1个校验。
而RAID10只能同时写入2个数据+2个镜像。
如上图所示,4块盘的RAID5可以在同时间写入1、2、3到cache,并且在cache 计算好校验之后,这里假定是6(实际的校验计算并不是这样的,这里仅仅是假
设),同时把三个数据写到磁盘。
而4块盘的RAID10不管cache是否存在,写的时候,都是同时写2个数据与2个镜像。
写cache是可以缓存写操作的,等到缓存写数据积累到一定时期再写到磁盘。
但是,写到磁盘阵列的过程是迟早也要发生的,所以RAID5与RAID10在连续写的情况下,从缓存到磁盘的写操作速度会有较小的区别。
不过,如果不是连续性的强连续写,只要不达到磁盘的写极限,差别并不是太大。
这时,若在一个RAID组中磁盘数较多,比如14块数据盘,那么RAID5可以实现同时写13个IO,而RAID10则只能同时写7个IO.RAID5性能会较好.
随机写方面的性能差异
企业中的绝大部分数据库应用,如ERP系统等等在数据写入的时候其实都是离散写。
例如oracle 数据库每次写一个数据块的数据,如8K;由于每次写入的量不是很大,而且写入的次数非常频繁,因此联机日志看起来会像是连续写,但是因为不保证能够添满RAID5的一个条带(保证每张盘都能写入),所以很多时候更加偏向于随机写入
从上图看一下随机写的时候,RAID5与RAID10工作方式有什么不同。
如上图:假定要把一个数字2变成数字4,那么对于RAID5,实际发生了4次io:
先读出2与校验6,可能发生读命中
然后在cache中计算新的校验
写入新的数字4与新的校验8
也就是说
RAID 5的写操作=
1次读入所有数据(所有数据块的盘同时)
1次读入校验
异或
1写入数据(所有数据块的盘同时)
重新计算校验
1写入校验
如上图可以看到:对于RAID10,同样的单个操作,最终RAID10只需要2个io,而RAID5需要4个io。
这里忽略了RAID5在那两个读操作的时候,可能会发生读命中操作的情况。
也就是说,如果需要读取的数据已经在cache中,可能是不需要4个io的。
这也证明了cache对RAID5 的重要性,不仅仅是计算校验需要,而且对性能的提升尤为重要。
当然,并不是说cache对RAID10就不重要了,因为写缓冲,读命中等,都是提高速度的关键所在,不过的是,RAID10对cache的依赖性没有RAID5那么明显而已。
所以,对于IO块小的数据写来说,RAID10一般都表现得优于RAID5.
100%随机写,这时,若在一个RAID组中磁盘数较多,比如14块数据盘,那么RAID5可以实现同时写的IO数是(14个数据盘的总IO/4),而RAID10则只能同时写的IO数是(14个数据盘的总IO/2).
实际案例:
那我们假定一个case,业务应用的IOPS是10000,读cache命中率是30%,读IOPS为60%,写IOPS为40%,磁盘个数为120,那么分别计算在RAID5与RAID10的情况下,每个磁盘的IOPS为多少。
RAID5:
1. 单块盘的IOPS = (10000*(1-0.3)*0.6 + 4 * (10000*0.4))/120
2. = (4200 + 16000)/120
3. = 168
这里的10000*(1-0.3)*0.6表示是读的IOPS,比例是0.6,除掉cache命中,实际只有4200个读IOPS。
而4 * (10000*0.4) 表示写的IOPS,因为每一个写,在RAID5中,实际发生了4个io,所以写的IOPS为16000个。
为了考虑RAID5在写操作的时候,那2个读操作也可能发生命中,所以更精确的计算应该为:
1. 单块盘的IOPS = (10000*(1-0.3)*0.6 + 2 * (10000*0.4)*(1-0.3) + 2 * (10000*0.4))/120
2. = (4200 + 5600 + 8000)/120
3. = 148
这样我们计算出来单个盘的IOPS为148个,基本达到磁盘IOPS极限,在这种情况下,磁盘的工作状态是非常不理想的。
RAID10:
1. 单块盘的IOPS = (10000*(1-0.3)*0.6 + 2 * (10000*0.4))/120
2. = (4200 + 8000)/120
3. = 102
可以看到,因为RAID10对于一个写操作,只发生2次io,所以,同样的压力,同样的磁盘,每个盘的IOPS只有102个,还远远低于磁盘的极限IOPS。