数据读写方法及应用该方法的磁盘阵列系统技术方案

技术编号:4271438 阅读:249 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种应用于磁盘阵列系统的数据读写方法,接收到来自前端协议驱动层的读写命令,判断该读写命令对应的数据块是否包含在虚拟缓存层中存储的缓存块地址对应的数据块中,若是,则对虚拟缓存层存储的缓存块地址对应的数据块进行读写操作,并将操作结果返回至前端协议驱动层;否则将该读写命令交给虚拟缓存层的下层进行操作,并将当前虚拟缓存层存储内容更新为该读写命令所对应的缓存块地址。本发明专利技术还公开了一种应用该方法的磁盘阵列系统。本发明专利技术方案特别适用于连续多条命令操作同一个数据块的情况,可以只进行一次检索而省略其他检索过程,相对于现有技术可以极大提高读写速度。

【技术实现步骤摘要】

本专利技术涉及计算机存储
,尤其涉及一种数据读写方法及使用该方法的磁 盘阵列系统。
技术介绍
目前,磁盘阵列系统可按照前端主机接口来划分,分为光纤通道(FibreCharmel,FC)磁盘阵列,互联网小型计算机系统接口(Internet Small ComputerSystem Interface, iSCSI)磁盘阵列,串行 SCSI (Serial Attached SCSI, SAS)磁盘阵列,及 Infiniband 磁盘 阵列。FC/iSCSI/SAS/Infiniband磁盘阵列系统的结构主要由前端协议驱动层,卷管理 层,缓存层(Cache)和独立冗余磁盘阵列(Redundant Array of IndependentDisks, RAID) 层组成。如图1至3分别示出了现有技术中的三种磁盘阵列系统结构图。以图1为例,对 读写命令的处理流程描述如下根据前端主机接口的不同,读写命令经过主机端不同传输 协议的封装,进入磁盘阵列系统,由前端协议驱动层101对数据包/帧进行解析,提取读写 命令交由卷管理层102 ;卷管理层102根据读写命令操作的卷进行分类,并将命令交由缓存 层103处理;缓存层103判断读写命令对应的数据块在缓存中是否命中,如命中,则直接执 行该读写命令对应的操作,并将操作结果返回前端协议驱动层101 ;否则交由RAID层104 处理,由RAID层104调用相关的物理设备105执行操作。操作结果依次返回前端协议驱动 层101。无论是以上哪种方式返回的操作结果,前端协议驱动层101将操作结果及数据按照 协议进行封装,并发送至主机端。其中,数据块在缓存层中的处理分为三部分1、查找即查找数据块是否在缓存区内;2、命中处理数据块在缓存区内,则直接返回操作结果;3、不命中处理数据块不在缓存区内,则以缓存块的大小为单位,分配缓存空间, 若为读操作或是数据块小于缓存块的写操作,则通过RAID读取磁盘中最新数据到缓存块 中,再执行对应的读/写操作;否则直接将数据块写入缓存区。图2及图3所示磁盘阵列系统中各个层的连接方式与图1大体相同,只是图2中的 缓存层203与前端协议驱动层201之间的数据与命令的交互都要经由卷管理层202实现; 而图3中卷管理层303在缓存层302的下层,前端协议驱动层301对数据包/帧进行解析 提取读写命令后,首先将读写命令交给缓存层302进行处理,如果命中直接将操作结果返 回前端协议驱动层301,如果未命中再交给卷管理层303 ;卷管理层102根据读写命令操作 的卷进行分类,并将命令发送至RAID层304,后续处理则与前述情况类似。主机端对磁盘阵列系统的读写,其总时间主要包括主机端和磁盘阵列系统之间的 数据块传输时间(Tl)和磁盘阵列系统对读写命令的处理时间(T2)。在数据库等小数据块 操作居多的应用中,小数据块的传输时间(即Tl)很短,磁盘阵列系统对小数据块的处理时 间(即T2)占总时间的比例较大,故降低小数据块的处理时间极为重要。结合图1所对应的流程,如果数据块在缓存层均未命中,则每个读写命令都需要经过从前端协议驱动层到缓存层,甚至到RAID层,再回到前端协议驱动层的过程。根据数据块在缓存层中的流程处理,当数据块大小小于缓存块大小的读写命令操 作完成后,当在一定时间范围内对同一缓存块进行操作时,都还需要进行对同一缓存块的 查找和命中操作。如对应用中大小为512B的顺序操作,此时磁盘阵列系统中的缓存块大 小为64KB,则有连续128个命令都在访问同一个缓存块。随着缓存介质容量性价比越来越 高,磁盘阵列系统中的缓存容量也越来越大,对同一查找算法而言,数据块在缓存区的查找 时间会越来越长。对于小数据块操作而言,无疑缓存区的查找时间占磁盘阵列系统处理时 间较大,即对于小数据块操作而言,缓存区的查找时间占操作总时间的比例较大。
技术实现思路
有鉴于此,本专利技术的目的在于,提出一种数据读写方法,可以提高连续对磁盘阵列 系统中的同一个缓存数据块操作时的读写速度。本专利技术实施例提出的一种数据读写方法,该方法应用于包含前端协议驱动层、卷 管理层以及缓存层的磁盘阵列系统,在磁盘阵列系统中设置虚拟缓存层,所述虚拟缓存层 在前端协议驱动层之下,且在缓存层之上,虚拟缓存层中存储缓存层中的一个缓存块地址; 该方法包括如下步骤接收到来自前端协议驱动层的读写命令,判断该读写命令对应的数据块是否全部 包含在虚拟缓存层中存储的缓存块地址对应的数据块中,若是,则对虚拟缓存层存储的缓 存块地址对应的数据块进行读写操作,并将操作结果返回至前端协议驱动层;否则将该读 写命令交给虚拟缓存层的下层进行操作,并将当前虚拟缓存层存储内容更新为该读写命令 所对应的缓存块地址。所述读写命令为操作大小小于或等于一个存储块的读写命令。所述判断的结果为读写命令对应的数据块部分包含在虚拟缓存层中存储的缓存 块地址对应的数据块中,则执行如下步骤将所述读写命令拆分为第一子命令和第二子命令,所述第一子命令对应的数据块 全部包含在虚拟缓存层中存储的缓存块地址对应的数据块中,所述第二子命令对应的数据 块不包含在虚拟缓存层中存储的缓存块地址对应的数据块中;根据第一子命令对虚拟缓存层中存储的缓存块地址对应的数据块执行读写操作, 并将操作结果返回至前端协议驱动层;并将第二子命令交给虚拟缓存层的下层进行操作。本专利技术实施例还提出了一种磁盘阵列系统,包含前端协议驱动层、卷管理层以及 缓存层,该磁盘阵列系统还包括虚拟缓存层,所述虚拟缓存层在前端协议驱动层之下,且在 缓存层之上,虚拟缓存层中存储缓存层中的一个缓存块地址,所述虚拟缓存层还包括接收模块、判断模块,读写模块、传送模块和更新模块,接收模块用于接收来自前端协议驱动层的读写命令;判断模块,用于判断接收模块所接收的读写命令对应的数据块是否全部包含在虚 拟缓存层中存储的缓存块地址对应的数据块中;若是,由读写模块对虚拟缓存层存储的缓存块地址对应的缓存块进行读写操作, 并将操作结果返回至前端协议驱动层;否则,由传送模块将该读写命令交给虚拟缓存层的下层,并由更新模块将当前虚 拟缓存层存储内容更新为该读写命令所对应的缓存块地址。所述虚拟缓存层位于前端协议驱动层内部,卷管理层内部或缓存层内部。所述虚拟缓存层还包括 拆分模块,当判断模块的判断结果为所述读写命令对应的数据块部分包含在虚拟 缓存层中存储的缓存块地址对应的数据块中,则将该读写命令拆分为第一子命令和第二子 命令,所述第一子命令对应的数据块全部包含在虚拟缓存层中存储的缓存块地址对应的数 据块中,所述第二子命令对应的数据块不包含在虚拟缓存层中存储的缓存块地址对应的数 据块中;所述读写模块根据第一子命令对虚拟缓存层中存储的缓存块地址对应的数据块 执行读写操作,并将操作结果返回至前端协议驱动层;所述传送模块将第二子命令交给虚拟缓存层的下层进行操作。从以上技术方案可以看出,通过设置虚拟缓存层存储上一次读写操作对应的缓存 层的一个存储块地址;对于读写命令,首先判断虚拟缓存层中存储的缓存块地址对应的缓 存数据块是否为该读写命令对应的数据块,若是则直接对该缓存块地址对应的缓存数据块 进行操作,这样可以省去对缓存层进行检索的过程。本专利技术方案特别适用于连续多条命令 本文档来自技高网
...

【技术保护点】
一种数据读写方法,该方法应用于包含前端协议驱动层、卷管理层以及缓存层的磁盘阵列系统,其特征在于,在磁盘阵列系统中设置虚拟缓存层,所述虚拟缓存层在前端协议驱动层之下,且在缓存层之上,虚拟缓存层中存储缓存层中的一个缓存块地址;该方法包括如下步骤:接收到来自前端协议驱动层的读写命令,判断该读写命令对应的数据块是否全部包含在虚拟缓存层中存储的缓存块地址对应的数据块中,若是,则对虚拟缓存层存储的缓存块地址对应的数据块进行读写操作,并将操作结果返回至前端协议驱动层;否则将该读写命令交给虚拟缓存层的下层进行操作,并将当前虚拟缓存层存储内容更新为该读写命令所对应的缓存块地址。

【技术特征摘要】
一种数据读写方法,该方法应用于包含前端协议驱动层、卷管理层以及缓存层的磁盘阵列系统,其特征在于,在磁盘阵列系统中设置虚拟缓存层,所述虚拟缓存层在前端协议驱动层之下,且在缓存层之上,虚拟缓存层中存储缓存层中的一个缓存块地址;该方法包括如下步骤接收到来自前端协议驱动层的读写命令,判断该读写命令对应的数据块是否全部包含在虚拟缓存层中存储的缓存块地址对应的数据块中,若是,则对虚拟缓存层存储的缓存块地址对应的数据块进行读写操作,并将操作结果返回至前端协议驱动层;否则将该读写命令交给虚拟缓存层的下层进行操作,并将当前虚拟缓存层存储内容更新为该读写命令所对应的缓存块地址。2.根据权利要求1所述的方法,其特征在于,所述读写命令为操作大小小于或等于一 个存储块的读写命令。3.根据权利要求1所述的方法,其特征在于,所述判断的结果为读写命令对应的数据 块部分包含在虚拟缓存层中存储的缓存块地址对应的数据块中,则执行如下步骤将所述读写命令拆分为第一子命令和第二子命令,所述第一子命令对应的数据块全部 包含在虚拟缓存层中存储的缓存块地址对应的数据块中,所述第二子命令对应的数据块不 包含在虚拟缓存层中存储的缓存块地址对应的数据块中;根据第一子命令对虚拟缓存层中存储的缓存块地址对应的数据块执行读写操作,并将 操作结果返回至前端协议驱动层;并将第二子命令交给虚拟缓存层的下层进行操作。4.一种磁盘阵列系统,包含前端协议驱动层、卷管理层以及缓存层,其特征在于,该磁 盘...

【专利技术属性】
技术研发人员:雷伟
申请(专利权)人:创新科存储技术有限公司创新科软件技术深圳有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1