用于磁盘阵列的读取方法和系统技术方案

技术编号:4004860 阅读:163 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种用于RAID的读取方法和系统,其中,用于RAID的读取方法包括:接收读取命令;从缓存空间中读出上述读取命令要访问的数据;判断所访问的地址是否设置异步预取标志;若是,则按照异步预取长度进行异步预取,并调整上述异步预取长度。本发明专利技术通过动态调整异步预取的长度,使得预取更加符合系统运行的实际情况,解决了现有技术中的读取时间较长的问题,从而缩短读取的时间,提高读取的效率。

【技术实现步骤摘要】

本专利技术涉及通信领域,具体而言,涉及一种用于磁盘阵列(RAID)的读取方法和系 统。
技术介绍
随着半导体技术的发展,磁盘I/O带宽和CPU/内存速度之间存在巨大的和持续扩 大的差距,因而磁盘存储往往成为系统中的性能瓶颈。为了弥合两者的差距,需要进行并行 I/O。利用磁盘阵列(RAID)技术堆叠多个磁盘的I/O能力,就可以提供更大的I/O带宽。如 果需要的I/O带宽巨大,可以进一步求助于存储网络,集群文件系统等在内的技术和架构 建造容量和性能可扩展的存储系统。相对于I/O带宽,访问延迟往往是一个更为严重的性 能问题。由于机械寻道方式的限制,磁盘的平均数据访问时间在毫秒数量级。虽然已经很 快了,但是相对于内存和高速网络的纳秒级访问时间,访问磁盘数据的代价是巨大的。更糟 糕的是,这一差距一直不断地在扩大。在这种情况下,CACHE技术对弥补两者之间的性能差异有着至关重要的作用。 CACHE系统作为最近访问数据的缓冲区,采取预读回写等策略,提高数据的命中率,从而提 高整个系统的性能。在添加了 CACHE以后,缩短了 I/O路径,每一次数据的访问都要先搜索CACHE空 间,这样需要一个高效的查找算法以避免长时间的查找而抵消CACHE带来的优势。此外 CACHE存放的数据是共享的,如何减少数据的竞争粒度也是需要关注的。CACHE系统主要处理读写命令,为提高读操作的性能,相关技术提出了预取方法。 下面将简单描述预取方法。1)预取的概念预取分为顺序预取和随机预取。在顺序预取中又分为同步预取和异步预取。同步 预取是在确定是顺序流的情况下,发生命中缺失(命中缺失即为用户访问的数据不存在于 Cache空间中)而进行的预取,它仅仅是在原来读请求之上再多读取一定长度的数据。异步 预取是在命中了页面的情况下,创建一个新的读命令并读取一定长度的数据。异步预取总 是跟同步预取一起使用的。如下图所示同步预取在预取P长的页面集后,如果P值达到了 异步预取的阈值,那么将会设置一个异步触发页面(该页面离页面集中的最后一个页面的 长度为g),如果有读操作访问设置有异步触发标识的页面时,就会触发一个异步预取。理论 上来说如果异步预取的参数P和g选取的好的话,那么读操作就不会发生非命中的情况。跟同步预取相比,异步预取的使用更加广泛有效。例如读取数据时,磁盘忙碌而 CPU等待;在处理数据时,CPU忙碌而磁盘空闲。这种交替的空闲和等待是对系统资源的一 种闲置浪费。通过异步预取,系统在后台提前进行1/0,可以消减CPU的等待时间,使之与磁 盘并行工作,实现流水线作业。2)预取参数的时机选择如图2所示,假设一个文件页面,它在Ta时刻将被应用程序实际访问,而预取算法在时间Tp发起对这个页面的I/O请求,经过操作系统和磁盘内部的调度排队,以及磁盘的 寻道和数据传送等操作,到Tr时页面数据准备就绪。那么td = Tr-Tp代表此页面的实际 I/O延迟,而应用程序感知到的延迟时间是t’ d = max(Tr-Ta,0)。如果记预取的提前量为te = Ta-Tp,如果有te彡td,即Ta-Tp彡Tr_Tp,那么就 有Tr-Ta < 0,此时t’ d = 0,底层的I/O延迟将被完全隐藏起来,应用程序不必为等待I/O 而阻塞。显然最佳的预取时机是te = td,预取太早会使每块预取数据占用更长时间的内 存,太晚了则会导致应用程序的阻塞。因而预取位置的选择也是影响预读性能的一个重要 因素。影响预取的时机即为p,g的值,p代表一次预取的数据长度(数据的读取很大一 部分的时间是在磁盘寻找,因为顺序读取1K的数据跟顺序读取1M的数据花费的时间相差 不大),但是P不能过大,因为缓存空间相对于磁盘空间而言是很小的,预取的数据过大而 用没有使用会造成缓存空间的浪费。g的值也影响到了预期的时机,如果g的值比较大,那 么在很早的时候就会进行异步预取,增加数据在缓存空间中停留的时间,如果g过小,那么 异步预取就来不及出现上图(b)的情况,需要等待数据准备好。总之,P,g的值共同影响着 预读的进行。要想预取能够取得比较好的效果,就需要有比较合适的P,g的值。但是,在相关的技术中,p,g通常是被预先设置的,而不是根据当前的读取情况动 态设置。这样,根据P和g进行预取之后,往往会出现用户需要的数据还没有从磁盘中读取 到缓存空间中,从而延长了读取时间,降低了读取的效率;或者,还会出现已经从磁盘中预 读到缓存空间中的数据并没有被访问到,从而造成了空间的浪费。
技术实现思路
本专利技术的主要目的在于提供一种用于RAID的读取方法和系统,以至少解决上述 相关技术中的读取时间较长的问题。根据本专利技术的一个方面,提供了一种用于磁盘阵列RAID的读取方法,其包括接 收读取命令;从缓存空间中读出上述读取命令要访问的数据;判断所访问的地址是否设置 异步预取标志;若是,则按照异步预取长度进行异步预取,并调整上述异步预取长度。进一步地,调整上述异步预取长度时,上述方法还包括调整同步预取长度。进一步地,调整上述异步预取长度包括若当前读取出来的数据没有被访问,则减 少异步预取长度,并清除上述异步预取标志;若当前访问的地址中的数据正在从RAID读取 的过程中,则增加上述异步预取触发长度或者调整异步预取标志的大小;若在按照异步预 取长度进行异步预取的过程中,如果当前预取的数据有被访问过或者在还没有检查结果时 当前预取的最后一个数据有被访问过,则增加上述异步预取长度。进一步地,按照异步预取长度进行异步预取包括从磁盘中预取具有第一长度的 数据,其中,上述第一长度为调整前的异步预取长度与上述读取命令所需访问的但未命中 的地址的个数之和;在上述缓存空间中确定上次读取的最后一个地址;从所确定的地址的 下一个地址开始读取上述第一长度的数据。进一步地,上述缓存空间中没有上述读取命令要访问的数据,上述方法还包括按 照同步预取长度进行同步预取;调整上述同步预取长度。进一步地,调整上述同步预取长度时,上述方法还包括调整异步预取长度。进一步地,调整上述同步预取长度包括若当前同步预取出来的数据并没有被访 问,则减小上述同步预取长度;或者在当前访问的数据预取出来之后,增加上述同步预取长度。进一步地,按照同步预取长度进行同步预取包括从磁盘中预取具有第二长度的 数据,其中,上述第二长度为调整前的同步预取长度与上述读取命令所需访问的但未命中 的地址的个数之和;在上述缓存空间中确定上次读取的最后一个地址;从所确定的地址的 下一个地址开始读取上述第二长度的数据。根据本专利技术的另一方面,提供了一种用于RAID的读取系统,其包括命令处理模 块,用于接收读取命令;读出模块,用于从缓存空间中读出上述读取命令要访问的数据;预 取模块,用于在判断所访问的地址设置有异步预取标志时,按照异步预取长度进行异步预 取,并调整上述异步预取长度。进一步地,上述预取模块还用于在上述缓存空间中没有上述读取命令要访问的数 据时,按照同步预取长度进行同步预取,并调整上述当前的同步预取长度。本专利技术具有以下有益效果1)通过动态调整同步预取和异步预取的长度,使得预取更加符合系统运行的实际 情况,尽量避免了用户需要的数据还没有从磁盘中读取到缓存空间中、或者,已经从磁盘中 预读到缓存空间中本文档来自技高网
...

【技术保护点】
一种用于磁盘阵列RAID的读取方法,其特征在于,包括:接收读取命令;从缓存空间中读出所述读取命令要访问的数据;判断所访问的地址是否设置异步预取标志;若是,则按照异步预取长度进行异步预取,并调整所述异步预取长度。

【技术特征摘要】

【专利技术属性】
技术研发人员:颜钦华周洋
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:94[中国|深圳]

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

1