一种安全备份数据的方法_2

文档序号:8457199阅读:来源:国知局
盘数。
[0050] 设写请求表示为(buf,cnt,〇ff),其中buf为用户空间缓存区指针,指向写数据的 起始地址;cnt为写数据块的大小;off是偏移量,是用户数据写入设备文件的起始位置。
[0051] 发送线程创建一个发送缓存区数组,记作bUfsend[M],其中M为大于1的正整数, 缓存区bufsend[i] (0 < i〈M)的大小等于存储集群的条块大小,记为STSize。
[0052] 缓存区bufsend[i]缓存的字节数记为filled[i],空闲字节数为empty[i],有 filled[i] +empty [i] = STSize 成立。
[0053] 发送线程首先从bUfsend[M]中获得空闲缓存区bUfsend[i](没有则等待),对于 bufsend[i],初始empty[i]为STSize,filled[i] = 0,然后按如下流程处理写请求队列中 的写请求。
[0054] 缓存区bUfsend[i]填满后,发送线程就会将其中的数据发送给存储集群,由此实 现了对存储集群条块的整体写入。由于对条块的写入始终是连续的,避免了随机写操作所 需的寻址。为了保证应用程序重启后bufsend[i]写入的数据仍然与存储集群的条块边界 对齐,对齐驱动程序需要监控应用程序对设备文件的打开与关闭操作,进行现场保护与恢 复。
[0055] 当应用程序关闭设备文件、发送线程最后一次向存储集群写数据时,缓存区 bUfsend[i]可能没有填满,因此b Ufsend[i]中的数据写入存储集群的同时,需要记录本次 写操作的off和cnt值;当设备文件再次打开时,需要根据记录的off和cnt值,进行现场 恢复,然后进入正常的写请求处理流程。
[0056] 进一步地,本发明的存储集群在满足性能需求的前提下,通过降低存储集群的并 行性,即采用局部并行策略,并实现降耗,其实现主要包括:数据布局、数据调度、缓存管理 策略。
[0057] 本发明的存储集群由N块逻辑磁盘组成且N多3,构成1行XN列矩阵。将集群划 分为N个条块,每个条块包含N个存储块,其中1个校验块,N-I个数据块。每个存储块划 分多个存储子块,可根据要求设置子块的大小,典型值如4KB、8KB、16KB等,子块内数据的 逻辑地址是顺序的。校验子块由同条块内偏移位置相同的N-I个数据子块异或运算得出。
[0058] 用X(i,j)表示存储集群中的一个存储块数据,其中i表示其所在的条块号,j表 示所在的磁盘号,X(i,j)位于磁盘j上,〇 < i,j〈N。第i条块内的校验块数据用Check(i) 表示,与存储块数据X(i,j)的关系为Check(i) =X(i,N-1-i)。数据块数据用D(i,v)表 示,V表示其在所属条块内的数据块序号(忽略校验块),〇 < i,KN-I,与存储块数据X (i, j)的关系,用式⑴表示:
[0059] D(i,V) = X(i,V),i+v〈N_l
[0060] X(i,v+1),i+v 彡 N-I(I)
[0061] 为了能够提供合适的性能,需要对数据块进行分组,方案如下:将每个条块上的 N-I个数据块分成P组,每组包含Q个数据块,其中P彡2, Q彡1,且满足P · Q = N-I。在 各个组内,采用并行数据编址方法,编址单位为数据子块,编址方法如下:设组大小为s&p, 第P组、第i条块、第q数据块内、偏移地址为Off的数据子块的逻辑地址LBAp, i,可表 示为
[0062] LBApjijqj0ff= Scrp · (N · p+i)+off · Q+q(2)
[0063] 其中 0 彡 ρ〈Ρ,0 彡 i〈N,0 彡 q〈Q,0 彡 off〈SGrp。
[0064] 根据式(2)得本发明的存储集群的数据布局具有如下特征:(1)各组内偏移地址 相同的数据子块的逻辑地址相邻;(2)逻辑相邻的组优先分布在相同或相近的磁盘上。
[0065] 为实现降耗,需要根据请求队列的历史信息、读写访问在逻辑空间的分布区域,感 知当前负载流的随机性及其时间空间分布特征,从而进行磁盘调度。
[0066] 用r = (tmive,tfinish,status,pos,Ien)记录请求队列rq中的1个读写请求,其 中t mive,tfinish,status,pos,Ien分别表示请求r的到来时间、完成时间、请求状态、起始逻 辑地址和请求长度。请求状态包括等待、执行、完成等状态,请求长度以分区为单位,用r. X 表示请求r的参数X。
[0067] 由请求r的逻辑地址r. pos到磁盘号j的映射f (r. pos),可以按以下方法获得:
[0068] (1)由pos利用下式得出该请求所在的组号p、组内块号q及条块号i :
[0069] p = r. pos/ (SGrp · N)
[0070] q = (r. pos) MOD Q
[0071] i = ((r. pos)M0D(SGrp · N))/SGrp
[0072] (2)根据组号p、组内块号q、条块号i,得出pos指向的数据块数据D(i,p*Q+q);
[0073] (3)已知 D(i,p,Q+q),根据式⑴得 pos 所在磁盘 j = p,Q+q,当 i+p ?Q+qa-l ; 否则 j = P · Q+q+1。
[0074] 对请求队列rq中各个读写请求,根据其逻辑地址所在的磁盘,划分为N个集合:
[0075] Sj= {r|r e rq Λ f(r. pos) = j},其中0彡j〈N,称S」为磁盘j的请求集合,用 nunij表示集合S j中元素的个数。
[0076] 设定磁盘调度的时间阈值tth,系统当前时间为t,如果请求集合Sj中的请求满足 下式,则可以调度对应的磁盘j到待机状态:
[0077]
【主权项】
1. 一种安全备份数据的方法,其特征在于,包括: 将存储集群中的存储区分为多个组,通过并行编址在每个组内设置并行读写模式; 根据请求队列的历史信息、读写访问在逻辑空间的分布区域及其时间空间分布特征进 行磁盘调度; 以磁盘数据流量作为参数,通过预定义缓存策略来过滤随机读写。
2. 根据权利要求1所述的方法,其特征在于,所述将存储集群中的存储区分为多个组, 通过并行编址在每个组内设置并行读写模式,进一步包括: 将存储集群分为N块逻辑磁盘,N为大于3的正整数,构成1行XN列矩阵,将集群划 分为N个条块,每个条块包含N个存储块,其中包括1个校验块,N-I个数据块,将每个存储 块划分多个存储子块,子块内数据的逻辑地址为顺序设置,校验子块由同条块内偏移位置 相同的N-I个数据子块异或运算得出; 用X(i,j)表示存储集群中的一个存储块数据,其中i表示其所在的条块号,j表示所 在的磁盘号,X(i,j)位于磁盘j上,O彡i,j〈N,第i条块内的校验块数据Check(i)为X(i, N-1-i);将条块号为i的数据块中的数据表示为D(i,v),其中V表示其在所属条块内的数 据块序号,并且当i+v〈N-l时,D(i,V)=X(i,V),当i+v彡N-I(1)时,X(i,v+1); 按照以下过程对数据块进行分组:将每个条块上的N-I个数据块分成P组,每组包含Q个数据块,其中P多2,Q多1,且满足P*Q=N-I;在各个组内,以数据子块为单位采用并行 数据编址,将组大小为Sfop的第p组、第i条块、第q数据块内的偏移地址为off的数据子 块的逻辑地址设置为: LBApjijqj0ff=Scrp ?(N?p+i)+off?Q+q其中 0 彡p〈P,0 彡i〈N,0 彡q〈Q,0 彡off〈SGrp。
3. 根据权利要求2所述的方法,其特征在于,所述根据请求队列的历史信息、读写访问 在逻辑空间的分布区域及其时间空间分布特征进行磁盘调度,进一步包括: 用r= (taCTive,tfinish,status,pos,Ien)记录请求队列rq中的1个读写请求,其中thrive,tfinish,status,P〇s,Ien分别表示请求r的到来时间、完成时间、请求状态、起始逻辑 地址和请求长度,其中请求状态包括等待、执行、完成状态,所述请求长度以分区为单位; 由请求r的逻辑地址r.pos映射到磁盘号j,按以下方法获得映射函数f(r.pos): (1) 由pos得出该请求所在的组号p、组内块号q及条块号i:p=r.pos/ (SGrp ?N) q= (r.pos)MODQ i= ((r.pos)MOD(SGrp ?N))/SGrp (2) 根据组号p、组内块号q、条块号i,得出pos指向的数据块数据D(i,p?Q+q); (3) 利用D(i,p?Q+q),获得pos所在磁盘j,即当i+p?Q+q〈N_l时j=p?Q+q;否则 j=P*Q+q+1 ; 对请求队列rq中各个读写请求,根据其逻辑地址所在的磁盘,划分为N个集合S: Sj= {r|rGrq八f(r.pos) =j},其中0彡j〈N,用num』表示集合S』中元素的个数; 如果请求集合Sj中的请求满足:当前时间t与Sj中所有元素对应的请求的完成时间 最大值之间的差大于磁盘调度的时间阈值tth, 则可以调度对应的磁盘j到待机状态,下次需要访问该磁盘时,再将其调度到运行状 O
【专利摘要】本发明提供了一种安全备份数据的方法,该方法包括:将存储集群中的存储区分为多个组,通过并行编址在每个组内设置并行读写模式;根据请求队列的历史信息、读写访问在逻辑空间的分布区域及其时间空间分布特征进行磁盘调度;以磁盘数据流量作为参数,通过预定义缓存策略来过滤随机读写。本发明提出了一种存储方法,在写入磁盘过程中避免了因生成校验数据而产生的额外读写开销,通过数据的顺序写入有效减少了寻址操作,提高了存储性能。
【IPC分类】G06F11-14, G06F12-06
【公开号】CN104778100
【申请号】CN201510195741
【发明人】杨立波
【申请人】成都博元时代软件有限公司
【公开日】2015年7月15日
【申请日】2015年4月23日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1