VRAID坏盘重构时间剖析.docx

上传人:b****1 文档编号:232300 上传时间:2022-10-07 格式:DOCX 页数:5 大小:23.84KB
下载 相关 举报
VRAID坏盘重构时间剖析.docx_第1页
第1页 / 共5页
VRAID坏盘重构时间剖析.docx_第2页
第2页 / 共5页
VRAID坏盘重构时间剖析.docx_第3页
第3页 / 共5页
VRAID坏盘重构时间剖析.docx_第4页
第4页 / 共5页
VRAID坏盘重构时间剖析.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

VRAID坏盘重构时间剖析.docx

《VRAID坏盘重构时间剖析.docx》由会员分享,可在线阅读,更多相关《VRAID坏盘重构时间剖析.docx(5页珍藏版)》请在冰豆网上搜索。

VRAID坏盘重构时间剖析.docx

VRAID坏盘重构时间剖析

——仅限于技术探讨

【文中名称定义】

名称

英文全称或别名

文中定义

RAID

RedundantArraysofindependentDisks

独立磁盘构成的具有冗余能力的阵列

RAIDs

RAID组,含有多个RAID

VRAID

virtualRAID

虚拟RAID,就是指先把物理硬盘逻辑的划分出许多小块,把小块视为逻辑硬盘,再利用小块组成raid,再把这种mini的raid聚合成一个较大的逻辑空间,最后可用于划分LUN/卷的过程。

D

DATADISK

数据盘

P

parity

校验盘。

指RAID5中的校验盘,或指RAID6中的横向校验盘

Q

指RAID6中的纵向校验盘

H

hotspare

热备盘

LUN

logicalunitnumber

指SAN存储系统的LUN

VOL:

volume

指NAS存储系统中的卷

Pool

RAIDs的集合,可以直接划分LUN/卷

C

Chunk,磁盘块

磁盘分块;就是把磁盘逻辑划分成多个固定大小的区域

1.背景

RAID是用n块数据盘+m块校验盘+x块热备盘组成(n为正整数;m,x非负整数),尤其是RAID5/6,应用面比较广。

原本数据盘(D)、校验盘(P)、热备盘(H)指的是一个个独立的磁盘。

例如,在RAID5(假设8D+1P)当前段发送一个IO读写数据的时候,存储控制器只能调动8个D盘,1个校验盘工作。

如果这9块盘都在1个盘柜,那么这次IO将全部发生在一个磁盘通道上。

存储控制器后面往往连接了很多的磁盘通道,每个磁盘通道又连接了几个盘柜,每台盘柜里面有几十块磁盘。

众所周知,数据存储过程中最大的时延、木桶原理中最短的一片,就是硬盘寻道,于是存储设计者们思考:

如何尽可能的让更多的硬盘,超多RAID组数据盘数量的硬盘,来共同响应一次主机端IO。

于是有些厂商提出了VRAID(VirtualRAID)技术。

据说最早提出的应该是HP,3PAR也充分利用了这一技术,现在EMC也将此技术融入到其VPLEX产品中,2013年来,HUAWEI推出RAID2.0+技术,更是将此技术推动到一个小高潮。

2.VRAID原理

在一套存储系统中,控制器后端连接多个盘柜,盘柜里面有很多磁盘。

VRAID首先利用一个“池”的虚拟概念,所有的LUN/卷,都是在池上划分的,而池是由RAIDs组成的,RAID是由n个D+m个P+x个H构成的,每个D\P\H是一个固定且相同大小的磁盘分块。

再反过来描述一遍:

先把磁盘(尤其是硬盘)切割成很多个块,选取一些块,组成一个RAID;再选取若干个RAID,组成一个RAIDs;用一个或多个RAIDs,组成一个池。

最后在池上划分出LUN/卷。

再用数学式写一遍,能看懂的给提提意见,看不懂的算:

pool=x1·(RAIDs1)+x2·(RAIDs2)+…

=x1·(n1D1+m1P1+a1Q1+b1H1)+x2·(n2D2+m2P2+a2Q2+b2H2)+…

=x1·(n1+m1+a1+b1)·C1+x2·(n2+m2+a2+b2)·C2+…

=y·LUN+z·VOL

D=s1·C1+s2·C2+…

其中,a,b,n,m,s,x,y,z均为非负整数。

我们再给VRAID的技术添加一条非常重要的因素:

任意一个VRAID都尽可能选取了来自不同磁盘通道下的不同盘柜中的不同磁盘,VRAIDs尽可能覆盖了全部的硬盘。

这条因素也是VRAID能够实用化、能够成名的关键因素,也是最有别于普通RAID的特点。

这样,由VRAID做成的池及池中的LUN能够尽可能多地调动磁盘通道和磁盘。

任何一次来自主机端的IO读写,都被存储控制器发送到多条磁盘通道、多个盘柜中的多块磁盘。

说白点儿就是,家用电脑一次读写占用一颗硬盘。

RAID存储阵列一次读写占用几块硬盘。

VRAID的池一次读写几乎能调动全部的硬盘。

因为一块硬盘由于被划分了多个虚拟块,每一块均被分配到某个VRAID中,所以一块硬盘跨越了非常多的raid,是多个raid的个体。

这有别于传统方式:

每颗硬盘仅仅是一个raid的个体。

按理来说,VRAID这种方法通过调度多硬盘并发来优化存储过程中的最短木片:

硬盘时延,从而有可能大幅度的提高存储读写带宽。

3.VRAID定义

根据上文,下一个不够专业的定义:

VRAID指,在一个或多个磁盘上划分出相等大小的若干个磁盘块,将每个磁盘块视为一个虚拟出来的磁盘。

通过选取一定数量的磁盘块,组成一个RAID,这个RAID就叫VRAID。

4.VRAID坏盘数据重构分析

VRAID最直观的表现就是降低了RAID的大小,单个RAID的数据重构非常快。

然而,在存储系统中,往往是一块硬盘即便只损害几个块,整块硬盘就得报废。

这样依然是要整个硬盘替换,对替换盘进行数据重构。

此时VRAID还能快速重构数据吗?

我们用一个案例来说明:

假设存储系统中一块7200转的2TBSAS硬盘损坏,需要用同等硬盘更换。

硬盘上原有b容量的数据,那么,新盘需要多少时间重构完成呢?

t=b÷w,其中,w取(硬盘最大写入速度与RAID校验速度)两者的最小值。

如果RAID类型为1或者10,w基本上可以取硬盘自身的最大写入速度。

而RAID2/3/4/5/6等则需要进行数据校验工作,实测环境下的校验速度一般较低,raid5大约仅30MB/s。

所以w就不能取硬盘的最大写速度,而应该取数据的校验速度。

这种情况下,坏盘重构的瓶颈实际上是raid的校验速度。

那么VRAID在更换一块2TB坏盘后怎么处理呢?

4.1.校验压力分析

由于这块坏盘跨越n个vraid,那么重构时必然会有n个vraid同时向处理器发送数据进行校验,如果存储系统采用CPU处理,想会100%负荷。

恐怕更加噩梦的是:

万一n个vraid里有RAID1、RAID10、RAID5、RAID6,估计RAID1和RAID10会抢占IO,而RAID5/6本来校验速度就很低。

试问:

上层应用还能正常响应吗?

恐怕整个存储系统都有宕机风险。

但是如果存储系统设计了大规模的FPGA芯片来处理XOR校验,将有可能突破校验瓶颈,大大提升数据重构速度。

4.2.硬盘性能瓶颈限制

接下来,CPU校验好的数据需要向新盘写入,新盘的总的写入带宽一般在100~200MB/s(截至2014年),如果按照200MB/s的速度,一块2TB硬盘在写满1TB的速度下,最快需要5000秒,约1个半小时。

4.3.重构数据量的理解

一些厂家宣称其数据重构速度是2TB/Hr,经查证,这些厂家是按照重构数据量来理解的。

如果是这样的理解,那么这个宣传存在误导。

因为传统RAID通过多个raid池化,在一个LUN里面也能添加很多个RAID,是不是也能实现甚至超过每小时2TB的数据重构量?

4.4.有热备盘下的对比

基于本节开头的例子,如果在传统RAID中和VRAID的中都采用热备盘,那么当一块硬盘损坏时候,传统RAID和VRAID均开始重构数据,并将数据写入到热备盘上,此时的VRAID过程如4.1~4.1所分析。

然后我们将新盘更换坏盘,数据将从热备盘向新盘拷贝(可能有的厂家采用新盘自动声明为热备盘的方式,无需数据拷贝,那么本段的分析可以无视):

传统RAID是热备盘立即对新盘开始拷贝,并且最大拷贝速度能够接近于新盘的最大写入速度。

而VRAID则需要先对新盘进行块划分,初始化,这个过程的时间不会瞬间化。

然后,来自n个vraid的热备盘(磁盘块)开始同时向新盘发出传输数据的请求,我不知道大家有没有这个经验:

多块硬盘对一块硬盘的直拷速度之和,往往小于单块硬盘对一块硬盘的直拷速度。

由此推断,VRAID从热备盘向新盘拷数据的过程很有可能会拖慢拷贝速度,低于新盘的最大写入速度。

5.总结

通过本篇分析,坏盘重构实际上最理想的速度也就是新盘写速度。

VRAID在数据重构上的优势需要结合大规模优良设计的FPGA芯片才能发挥出来,最快能够接近于新盘写速度。

在下一篇,我们将分析一下VRAID在随机、顺序读写环境下的性能表现。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > IT认证

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1