专利名称:一种存储系统中检索数据的方法和设备的制作方法
技术领域:
本发明一般涉及存储系统,更具体地,涉及ー种存储系统中检索数据的方法和设备。
背景技术:
目前,数据已经成为企业最重要的资源之一。1998年图灵奖获得者JimGray曾断言现在每18个月新增的存储量等于有史以来存储量之和。根据预測,2020年数据宇宙将达到35. 2ZB(1ZB = I百万PB),比2009的O. 8ZB增加44倍(本发明中全部数据量或者存储空间単位的B为字节)。数据量的几乎指数型的增长,使得企业需要不断购置大量的存储设备来应对不断增长的存储需求。但是研究发现,企业的存储利用率往往不足50%,存储投资回报率水平较低。为了满足数据存储高增长的要求,提出了高效存储(Space Efficient)理念,旨在缓解存储系统的空间增长问题,缩减数据占用空间,简化存储管理,最大程度地利用已有资源,降低成本。高效存储的基本策略主要有存储资源整合、动态存储容量配置、缩减存储容量、信息生命周期管理和降低能耗,高效存储技术基于这五种基本策略来实现高效的存储。高效存储策略的ー个重要技术就是自动精简配置(Thin Provisioning),是ー种全新的存储空间管理技术,它的核心原理是“欺骗”操作系统,让其认为存储系统中有很大的存储空间,而实际上的物理存储空间并没有那么大。传统的存储系统中,为确保存储容量在一定的时间内足够使用,用户往往会部署多于实际需求的充足物理存储空间。但在实际使用过程中,尤其是初始阶段,部署的存储容量通常都未充分利用。例如,ー个中小企业计划5年内计划使用的存储容量为2TB,第一年使用50GB,第二年达到200GB,第三年达到900GB,第4年为I. 2TB,第5年达到2TB,则传统的存储系统中需要一次部署2TB的存储空间,需要很高的投资,但是存储空间的利用率很低。而使用自动精简配置技术的存储系统,不会一次性的划分过大的空间给某项应用,而是根据该项应用实际所需要的容量,多次的少量的分配给应用程序,当该项应用所产生的数据增长,分配的容量空间已不够的时候,系统会再次从后端存储池中补充分配一部分存储空间。这样,用户可以第一年只配置50GB的实际物理存储空间,在第二年再増加150GB的物理存储空间,以此类推。使用这样的技术,无须改变用户存储系统的体系结构,还能够减少超量配置,大幅提高存储空间利用效率,降低初始投资成本,降低总功耗,从而降低企业运营成本。目前,IBM、HDS、EMC、3PAR的高端磁盘阵列均支持该项技术。使用自动精简配置的存储系统与传统的存储系统数据的组织方式不同,导致二者的数据索引方式不同,从而支持上述功能。使用自动精简配置的存储系统检索数据耗时更长,性能会变差,实际上是ー种以时间换空间的技术方案。因此,有必要提出新的技术方案,来减少应用自动精简配置技术的存储系统的检索数据时间
发明内容
本发明提出了一种存储系统中检索数据的方法和设备,该存储系统应用自动精简配置技术,本发明的方法和系统能够进ー步减少现有的高效存储系统的IO访问时间,提高IO访问效率。根据本发明的ー个方面,提供了一种存储系统中检索数据的方法,该方法包括接收ー写操作请求;建立所述写操作的逻辑块地址与物理块地址的对应关系;判断在存储的元数据中加入上述对应关系后,使用映射表计算的有效数据比例是否大于预设阈值;响应于使用映射表计算的有效数据比例不大于所述预设阈值,在所述存储的元数 据的B-tree数据结构中加入所述对应关系;响应于使用映射表计算的有效数据比例大于所述预设阈值,判断所述存储的元数据是否以B-tree数据结构存储,响应于所述存储的元数据以B-tree数据结构存储,将该以B-tree数据结构存储的元数据存储为包含上述对应关系的元数据的映射表;以及在上述物理块地址写入该写操作请求要求写入的数据。根据本发明的另ー个方面提供了一种存储系统中检索数据的设备,该设备包括接收装置,被配置为接收一写操作请求;对应关系建立装置,被配置为对所述写操作请求,建立所述写操作的逻辑块地址与物理块地址的对应关系;第一判断装置,被配置为判断在存储的元数据加入上述对应关系后,使用映射表计算的有效数据比例是否大于预设阈值;B-tree索弓I对应关系加入装置,被配置为响应于使用映射表计算的有效数据比例不大于所述预设阈值,在所述存储的元数据的B-tree数据结构中加入所述对应关系;第二判断装置,被配置为响应于使用映射表计算的有效数据比例大于所述预设阈值,判断所述存储的元数据是否以B-tree数据结构存储;转换装置,被配置为响应于所述存储的元数据以B-tree数据结构存储,将该以B-tree数据结构存储的元数据存储为包含上述对应关系的元数据的映射表;以及写入装置,被配置为在上述物理块地址写入该写操作请求要求写入的数据。。
通过对附图中本发明示例实施例方式的更详细描述,本发明的上述、以及其它目的、特征和优势将变得更加明显,其中,相同的參考标号通常代表本发明示例实施例方式中的相同部件。图I示出了现有的自动精简配置存储技术中的体系结构;图2示出了ー个映射表的结构及其中数据表达的含义;图3示出了根据本发明的一种实施方式的一种存储系统中检索数据的方法流程;以及图4示出了根据本发明的一种实施方式的一种存储系统中检索数据的设备结构。
具体实施方式
将參照附图更加详细地描述本发明的优选实施方式,在附图中显示了本发明的优选实施例。然而,本发明可以以各种形式实现而不应该理解为被这里阐述的实施例所限制。相反,提供这些实施例是为了使本发明更加透彻和完整,并且,完全将本发明的范围传达给本领域的技术人员。目前常用的存储系统一般都是采用虚拟存储结构,即将实际的物理硬盘虚拟成为多个卷,可以认为这多个卷就是多个虚拟盘。例如两个3G的物理硬盘可能被主机虚拟成为3个2G的虚拟盘,使用3个盘符标记来给主机使用;每个虚拟盘都可以支持自动精简配置存储技术。存储系统分配存储空间时,分配的单位为粒(Grain),粒的単位可以为32K,64K,128Κ或者256Κ等等。从技术上来看,无论是虚拟化存储系统还是实际的物理存储系统,都可以支持自动精简配置存储技术。图I示出了现有的自动精简配置存储技术中的体系结构,来自CPU100的输入输出
(IO)操作,包括写操作和读操作,被高速缓存模块102中的缓存代理1021获得,高速缓存模 块102中的缓存代理1021主要是用于提高IO速度的,可以将ー些常用的客户数据放置到高速缓存中,当需要访问数据时,首先访问高速缓存,如果高速缓存中存在该数据,称为高速缓存命中,就无需到低速存储器(例如硬盘,磁带等存储系统中用于存储用户数据的设备)中访问该数据,来提高访问速度;如果高速缓存未命中,就通过自动精简配置模块103,对高速缓存模块102要进行IO操作的数据的地址进行重新映射,得到数据的物理地址,访问低速存储器(或者虚拟盘)104的该地址。具体来说,对于写操作,根据图I,首先CPU的写操作通过高速缓存模块102中的缓存代理1021进入自动精简配置模块103的空间分配器1031,空间分配器根据写操作的逻辑块地址,为其分配ー个物理块地址,然后对低速存储器104中的元数据的映射表1041进行修改,在元数据中建立起上述分配的物理块地址与写操作的逻辑块地址的映射关系;最后将写操作相关的数据写入到上述分配的物理块地址,一次写操作分配的地址空间大小为ー个粒。而对于读操作,根据图1,首先CPU的读操作通过高速缓存模块102中的缓存代理1021进入自动精简配置模块103的空间分配器1031,空间分配器根据读操作的逻辑块地址,查询元数据的映射表中该逻辑块地址对应的物理块地址,然后从低速存储器104的物理块地址读出该数据。可见每一次的IO操作都要至少访问低速存储器两次,一次是获得元数据的映射表中的地址映射关系,另外一次是访问客户数据,造成IO操作时间较长的问题。配置有自动精简配置存储技术的虚拟盘对于随机读操作在高速缓存未命中时,性能大约是配置传统存储技术磁盘的1/2 ;配置有自动精简配置存储技术的虚拟盘对于随机写操作在高速缓存未命中时,性能大约是配置传统存储技术磁盘的1/3。因此,有必要提高配置有自动精简配置存储技术的存储系统的I/O性能。由于在自动精简配置存储技术中,实际的物理存储空间一般小于等于CPU分配的存储空间式,因此,在这种存储技术中,数据的组织方式与通常的存储技术不同,导致自动精简配置存储技术数据的索引方式也与通常的存储索引不同。通常的存储技术中,由于实际的物理存储空间等于CPU分配的存储空间式,因此,CPU进行读写操作时,逻辑空间与物理存储空间可以认为是一一对应的,不需要存储其映射关系。而在自动精简配置存储技术数据中,在低速存储器上存储了元数据,用于将CPU的IO操作的逻辑地址映射到对应的物理存储地址。因此,支持自动精简配置存储技术的低速存储器(或虚拟盘)中通常包含了元数据和用户数据。元数据采用B-tree数据结构存储。本发明提出了一种元数据的新的数据结映射表,该映射表数据结构含义更清楚,如图2所示。图2示出了ー个元数据的映射表结构及其中数据表达的含义。该映射表看起
来像是ー个矩阵,实际上,是以第一行、第二行......,第五行的形式存储来表达的从逻辑
块地址到物理块地址的映射,例如图I的映射表中表达了 25个逻辑块地址和物理块地址的映射关系,具体来说,映射表中数据O表示第O (从第一行开始数为第O个数据)个逻辑块对应着第O个物理块,映射表中数据I表示第4 (从第一行开始数为第4个数据)个逻辑块对应着第I个物理块,映射表中数据2表示第5 (从第一行开始数为第5个数据)个逻辑块对应着第2个物理块。 使用上述元数据的映射表的数据结构存储元数据,所使用的存储空间满足下式元数据的映射表所占的存储空间=虚拟存储能力/粒的空间女8举例来说,对于ー个2T字节(Bytes)的虚拟存储能力而言,元数据的映射表需要512M字节的存储空间,因此,使用映射表存储元数据,映射表所占用的存储空间对于整个预定的数据存储空间而言是固定的。但是,元数据的映射表在低速存储器(例如磁盘,磁带等)初始使用阶段,由于大部分映射表中的元素还没有被填入数据,映射表中有效数据较少,数据是稀疏的。随着低速存储器空间的使用,映射表中有效数据会越来越稠密。但是映射表本身占用的存储空间无论在数据稀疏还是稠密时,都是ー样的,并且映射表中地址的映射关系一旦建立后就不会删除,因此,映射表中的有效数据是持续增长的。但是映射表本身占用的存储空间是不变的。而在现有支持自动精简配置存储技术的存储系统中,低速存储器上存储的元数据的B-Tree数据结构,在低速存储器初始使用阶段,是ー个较小的树,占用的存储空间少;随着低速存储器空间的使用,B-tree越来越大,占用的存储空间也越来越大。表I给出元数据中不同的有效数据比例对应的映射表及B-Tree所需的存储空间。其中B-tree的每个节点有512个条目。其中有效数据的比例为映射表中非空数据占映射表全部数据的百分比。可见,当使用映射表,元数据中有效数据比例为50%吋,B-tree数据结构所需的存储空间与映射表数据结构所需的存储空间相同。显然,这种情况下,如果有效数据继续增长,B-tree数据结构占用的存储空间将大于映射表数据结构占用的存储空间。当然,这里50%的比例只是针对上述特定实例,在不同的情况下,这个比例可能不同,但是可以知道,存在着这样的阈值,当使用映射表,有效数据的比例小于该阈值时,存储元数据的B-tree数据结构更节约存储空间,当使用映射表,有效数据的比例大于该阈值时,存储映射表更节约存储空间。表I不同的有效数据比例对应的映射表及B-Tree所需的存储空间映射表所有效数据的有效数据占B-tree的叶B-tree的非B-tree所需
需的存储比例用的存储空子节点个叶子节点的存储空间
空间间(MB)数个数(MB) (MB)
25650%1283 276865256
25630%761945639152
25610%2265531351本发明考虑到,在支持自动精简配置存储技术的存储系统的IO访问性能影响因素中,主要是元数据的访问,如果能加速元数据的访问,则就能提高IO访问性能 。低速存储器的访问速度众所周知,与高速缓存器(cache)相比太慢,因此ー个直观的想法就是在运行时将元数据存储在高速缓存中,因为高速缓存是挥发性存储,即断电后存储内容消失,因此在运行结束后需要将高速缓存中的元数据存储到低速存储器中。但是,通常的高速缓存空间较小,还要存储用户数据,所以只能在高速缓存中放入很少量的元数据,现有的在支持自动精简配置存储技术的存储系统中,就在高速缓存中存储全部(B-tree需要的存储空间小时)或部分的元数据的B-tree数据结构(B-tree需要的存储空间大时),来加速性能。在元数据的B-tree数据结构占用的存储空间大时,对于在高速缓存中无法检索到的元数据,需要去访问低速存储器中的元数据,降低了存储系统的IO访问效率。既然低速存储器的访问时间较长,而高速缓存的空间有很有限,直接利用高速缓存的方案有不可行,可以考虑采用高速存储器来存储元数据,来提高访问效率。在一种实施方式中,存储元数据的高速存储器可以采用固态硬盘(SSD, solid state disk)。固态硬盘是目前倍受存储界广泛关注的存储新技术,它被看作是ー种革命性的存储技术,已经给存储行业甚至计算机体系结构带来深刻变革。SSD与传统低速存储器不同,它是ー种电子器件而非物理机械装置,它具有体积小、能耗小、搞干扰能力强、寻址时间极小(甚至可以忽略不计)、10PS高、I/O性能高等特点。一种简单的实施方式就是直接利用SSD替代低速存储器来存储元数据的B-tree数据结构。但是SSD是ー种相对较贵的资源,在存储系统中还经常被其它模块用于提高性能,因此,SSD的使用过程中,通常是要节约利用的,节约下来的资源可以被其它模块用于提高其它的访问性能。考虑到元数据在初始数据稀疏时,可以使用B-tree数据结构来存储,这样可以减少存储空间。但是,当元数据中数据变得稠密,达到一定的程度时,也就是说,如果使用映射表结构,有效数据的比例达到设定的阈值时,存储B-tree所需的空间将大于存储映射表所需的存储空间。本发明公开了ー种存储系统中检索数据的方法,该方法能够减少所述存储系统检索访问数据的时间,所述存储系统支持自动精简配置存储技术,并且在所述存储系统中,使用高速存储器存储元数据,元数据映射表的建立过程主要和IO中的写操作相关,图3示出了该方法的流程,根据图3,该方法包括在步骤S301,接收ー写操作请求;在步骤S302,建立所述写操作的逻辑块地址与物理块地址的对应关系;在步骤S303,判断在存储的元数据中加入上述对应关系后,使用映射表计算的有效数据比例是否大于预设阈值;响应于使用映射表计算的有效数据比例不大于所述预设阈值,在步骤S304,在所述存储的元数据的B-tree数据结构中加入所述对应关系,然后到步骤S308,在上述对应关系的物理块地址写入该写操作请求要求写入的数据;响应于使用映射表计算的有效数据比例大于所述预设阈值,在步骤S305,判断所述存储的元数据是否以B-tree数据结构存储;响应于所述存储的元数据以B-tree数据结构存储,在步骤S306,将该以B-tree数据结构存储的元数据存储为包含上述对应关系的元数据的映射表,然后到步骤S308。响应于使用映射表计算的有效数据比例大于所述预设阈值,并且所述存储的元数据不以B-tree数据结构存储而,在步骤S307,判断所述存储的元数以映射表方式存储,并在元数据的映射表中加入所述对应关系,然后到步骤S308。在一种实施方式中,响应于元数据的映射表很大,可以将元数据分成若干个部分,每个部分可以占用相同大小的存储空间,也可以占用不同大小的存储空间。对于元数据的每一部分,执行如图3所示的方法,在计算有效数据比例时,可以将元数据的一部分当成一个独立的元数据处理,这样有效数据比例是该一部分元数据内的使用映射表计算的有效数据比例。在一种实施方式中,存储元数据的高速存储器为SSD。当映射表中有效数据稀疏,既有效数据比例小于预设阈值时,可以在SSD存储元数据的B-tree数据结构,这样节省的空间可以被其它模块用于加速性能,对应每次的写操作,将新建立的映射关系插入到元数据的B-tree数据结构中,B-tree数据结构的插入操作对于本领域技术人员是公知的,这里不再赘述;当有效数据变得稠密,既有效数据比例大于预设阈值时,将元数据的B-tree数据结构展开成为映射表,并且将新建立的映射关系加入到映射表中,再存储到该SSD中。B-tree的展开方式有很多种算法,可以在数据结构的教科书或算法集中获得,是本领域技术人员公知的方法,在此不再赘述。并且在上述实施方式下,如果元数据被分成多个部分,可能在SSD中,存储该元数据若干部分的映射表,以及一部分元数据的B-tree数据结构。存储的该元数据若干部分的映射表是经过图3的方法逐步建立的。这时,由于高速缓存器的速度一般还要高于SSD接近10倍,高速缓存器可以被用作SSD中元数据的高速缓存,如果高速缓存命中,还可以提高IO速度。优选的方式中,高速缓存用于缓存一部分元数据的B-tree数据结构,如果还有多余的高速缓存空间,再缓存该元数据若干部分的映射表,或者,如果有更足够的高速缓存空间,还可以在高速缓存中建立该元数据若干部分的映射表的B-tree数据结构。但是要注意,需要给客户数据的高速缓存留下足够的空间,否则,就失去了高速缓存器的本质作用,反而降低访问效率。在另外ー种实施方式中,用于存储元数据的B-tree数据结构的高速存储器为高速缓存器,用于存储元数据的映射表的高速存储器为SSD,由于高速缓存器为易失性存储 器,掉电后存储信息丢失,所以还要在低速存储器中存储元数据的B-tree数据结构,而且保持与高速缓存器中的元数据的B-tree数据结构同歩。这里的同步目的,是为了在高速缓存器掉电时,仍然保留相关的元数据,因此,这种同步的要求并不严格,可以在高速缓存更新后若干时间后进行,甚至,如果电源足够可靠,可以在电源关闭前做一次同步即可。具体如何保持同步,可以采用现有数据同步的任何方式,或者独立编程。在另外的实施方式中,也可以采用其它非易失性存储器件来存储B-tree数据结构,并与高速缓存器中的B-tree数据结构保持上述意义上的同歩。在上述实施方式中,当映射表中有效数据稀疏,即有效数据比例小于预设阈值吋,可以在高速缓存中存储元数据的B-tree数据结构,这样不仅提高访问效率,节省的SSD空间可以被其它模块用于加速性能,由于此时B-tree所占的存储空间小,可以在高速缓存中存储当前元数据的整个B-tree数据结构,对应毎次的写操作,将新建立的映射关系插入到高速缓存元数据的B-tree数据结构中,并且同步低速存储器中存储的元数据的B-tree数据结构,这里的同步与前文的同步为同一含义;当映射表中有效数据变得稠密,即如果使 用映射表结构的有效数据比例首次大于预设阈值时,这时还是在高速缓存中将元数据以B-tree数据结构存储,将同步后的低速存储器中的元数据的B-tree数据结构展开为包含上述对应关系的元数据的映射表,并迁移到SSD中存储;如果不是首次有效数据比例大于预设阈值,则此时元数据的映射表已经存储在SSD中,只要在SSD存储的映射表中加入映射关系即可。后续高速缓存的应用可以根据高速缓存能提供给元数据使用的空间来确定,如果空间很大,可以存放元数据的B-tree数据结构,如果不是很大,可以存放元数据的部分映射表,或者部分B-tree数据结构,等等。并且在上述实施方式下,如果元数据被分成多个部分,可能在SSD中,存储该元数据若干部分的映射表,在高速缓存中,存储一部分元数据的B-tree数据结构,同时在低速存储器中存储与高速缓存中的B-tree数据结构同步的B-tree数据结构,同步的含义与前文相同。存储的该元数据若干部分的映射表是经过图3的方法逐步建立的。这时,如果高速缓存还有多余空间可以用于存储元数据,还可以缓存该元数据若干部分的映射表,或者,如果有更足够的高速缓存空间,还可以在高速缓存中建立该元数据若干部分的映射表的B-tree数据结构。但是同样要注意,需要给客户数据的高速缓存留下足够的空间,否则,就失去了高速缓存器的本质作用,反而降低访问效率。在上述实施方式中,如果低速存储器的读时间为SSD读时间的100倍,SSD的写时间是读时间的3倍,对2TB的虚拟存储能力,粒的大小为32K,SSD上的元数据为358MB,SSD中的元数据占全部元数据的70%,高速缓存中的元数据占全部元数据的30%时,高速缓存中的元数据的命中率为50%,对于包含70%读操作,30%写操作的存储系统,IO访问的平均效率能够提高50%。在上述各种实施方式中,如果存储系统接收到读请求时,可以从元数据中获得读请求的逻辑块地址映射的物理块地址,从而从该物理块地址读取该数据。在一种优选的实施方式中,为了提高图3中步骤S303和步骤S305的效率,可以使用标记记录当前元数据的是以B-tree数据结构的存储方式存储还是以映射表数据结构的存储方式存储,并且响应于当前元数据的存储方式改变,更新该标记。而且还可以使用标记记录元数据的每个部分的存储位置,并且响应于该元数据的每个部分的存储位置改变,更新该标记。甚至,还可以记录当前元数据中有效数据的个数以及当前元数据的映射表中全部数据的个数,这样可以迅速计算出元数据的映射表中加入上述对应关系后,新的有效数据比例。
在同一个发明构思下,本发明还公开了ー种存储系统中检索数据的设备,图4示出了其设备结构,所述存储系统支持自动精简配置存储技术,并且使用高速存储器存储元数据,根据图4,该设备包括接收装置401,被配置为接收一写操作请求;对应关系建立装置402,被配置为对所述写操作请求,建立所述写操作的逻辑块地址与物理块地址的对应关系;第一判断装置403,被配置为判断在存储的元数据加入上述对应关系后,使用映射表计算的有效数据比例是否大于预设阈值;B-tree索引对应关系加入装置404,被配置为响应于使用映射表计算的有效数据比例不大于所述预设阈值,在所述存储的元数据的B-tree数据结构中加入所述对应关系;第二判断装置405,被配置为响应于使用映射表计算的有效数据比例大于所述预设阈值,判断所述存储的元数据是否以B-tree数据结构存储;转换装置406,被配置为响应于所述存储的元数据以B-tree数据结构存储,将该以B-tree数据结构存储的元数据存储为包含上述对应关系的元数据的映射表;映射表对应关系加入装置407,被配置为被配置为响应于使用映射表计算的有效数据比例大于所述预设阈值,并且所述存储的元数据不以B-tree数据结构存储而,则确定所述存储的元数据以映射表方式存储,并在存储的元数据的映射表中加入所述对应关系;以及写入装置408,被配置为在上述 对应关系的物理块地址写入该写操作请求要求写入的数据。在一种实施方式中,如果元数据的映射表很大,可以将元数据分成若干个部分,每个部分可以占用相同大小的存储空间,也可以占用不同大小的存储空间。对于元数据的每一部分,第一判断装置判断其中的有效数据比例是否大于预设阈值,使用映射表计算的有效数据比例是该一部分元数据内的使用映射表计算的有效数据比例。图4所示的设备可以加入图I的自动精简配置模块103中,成为该模块内部ー个単独的设备,也可以在图I的外部成为独立的设备,或者,还可以将其中的部分模块加入到图I的某些模块,将另外一些模块加入到图I的其它模块中,本领域技术人员可以知道,有各种加入形式,都在本发明的保护范围之中。在一种实施方式中,存储元数据的高速存储器为SSD。在这种实施方式下,转换装置可以包括展开装置,被配置为将SSD中元数据的B-tree数据结构展开成为映射表的数据结构;矩阵数据对应关系加入装置,被配置为将新建立的映射关系加入到映射表的数据结构中。在另外ー种实施方式中,用于存储元数据的B-tree数据结构的高速存储器为高速缓存器,用于存储元数据的映射表的高速存储器为SSD,并且在低速存储器中存储元数据的B-tree数据结构,该设备还包括同步装置,被配置为将所述低速存储器中存储元数据的B-tree数据结构与所述高速缓存器中存储的元数据的B-tree数据结构同步。在这种实施方式下,转换装置可以包括展开装置,被配置为将低速存储器中元数据的B-tree数据结构展开成为映射表的数据结构;映射表对应关系加入装置,被配置为将新建立的映射关系加入到映射表的数据结构中;以及迁移装置,被配置为将映射表对应关系加入装置得到的映射表迁移到该SSD中存储。同样,为了提高第一判断装置和第二判断装置的效率,在优选的实施方式中,使用标记记录当前元数据是以B-tree数据结构的存储方式存储还是以映射表的存储方式存储,并且响应于当前元数据的存储方式改变,更新该标记。还可以使用标记记录所述元数据的每个部分的存储位置,并且响应于该元数据的每个部分的存储位置改变,更新该标记。
虽然这里參照附图描述了本发明的示例性实施例,但是应该理解本发明不限于这些精确的实施例,并且在不背离本发明的范围和宗g的情况下,本领域普通技术人员能对实施例进行各种变化的修改。所有这些变化和修改意欲包含在所附权利要求中限定的本发明的范围中。并且根据上述描述,所属技术领域的技术人员知道,本发明可以体现为装置、方法或计算机程序产品。因此,本发明可以具体实现为以下形式,即,可以是完全的硬件、完全的软件(包括固件、驻留软件、微代码等)、或者本文一般称为“电路”、“模块”或“系统”的软件部分与硬件部分的组合。此外,本发明还可以采取体现在任何有形的表达介质(mediumof expression)中的计算机 程序产品的形式,该介质中包含计算机可读的程序码。可以使用一个或多个计算机可读的或计算机可读的介质的任何组合。计算机可读的或计算机可读的介质例如可以是——但不限于——电的、磁的、光的、电磁的、红外线的、或半导体的系统、装置、器件或传播介质。计算机可读介质的更具体的例子(非穷举的列表)包括以下有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPR0M或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、诸如支持因特网或内部网的传输介质、或者磁存储器件。注意计算机可读的或计算机可读的介质甚至可以是上面印有程序的纸张或者其它合适的介质,这是因为,例如可以通过电扫描这种纸张或其它介质,以电子方式获得程序,然后以适当的方式加以编译、解释或处理,并且必要的话在计算机存储器中存储。在本文件的语境中,计算机可读的或计算机可读的介质可以是任何含有、存储、传达、传播、或传输供指令执行系统、装置或器件使用的或与指令执行系统、装置或器件相联系的程序的介质。计算机可读的介质可包括在基带中或者作为载波一部分传播的、由其体现计算机可读的程序码的数据信号。计算机可读的程序码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等。用于执行本发明的操作的计算机程序码,可以以ー种或多种程序设计语言的任何组合来编写,所述程序设计语言包括面向对象的程序设计语言——诸如Java、Smalltalk、C++之类,还包括常规的过程式程序设计语言——诸如” C”程序设计语言或类似的程序设计语言。程序码可以完全地在用户的计算上执行、部分地在用户的计算机上执行、作为ー个独立的软件包执行、部分在用户的计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一种情形中,远程计算机可以通过任何种类的网络——包括局域网(LAN)或广域网(WAN)——连接到用户的计算机,或者,可以(例如利用因特网服务提供商来通过因特网)连接到外部计算机。此外,本发明的流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出ー种机器,使得通过计算机或其它可编程数据处理装置执行的这些指令,产生实现流程图和/或框图中的方框中规定的功能/操作的装置(means)。也可以把这些计算机程序指令存储在能指令计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令产生ー个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instruction means)的制造品,也可以把计算机程序指令加载到计算机或其它可编程数据处理装置上,使得在计算机或其它可编程数据处理装置上执行一系列操作步骤,以产生计算机实现的过程,从而在计算机或其它可编程装置上执行的指令就提供实现流程图和/或框图中的方框中规定的功能/操作的过程。附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含ー个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际 上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
权利要求
1.一种存储系统中检索数据的方法,该方法包括 接收ー写操作请求; 建立所述写操作的逻辑块地址与物理块地址的对应关系; 判断在存储的元数据中加入上述对应关系后,使用映射表计算的有效数据比例是否大于预设阈值; 响应于使用映射表计算的有效数据比例不大于所述预设阈值,在所述存储的元数据的B-tree数据结构中加入所述对应关系; 响应于使用映射表计算的有效数据比例大于所述预设阈值,判断所述存储的元数据是否以B-tree数据结构存储,响应于所述存储的元数据以B-tree数据结构存储,将该以B-tree数据结构存储的元数据存储为包含上述对应关系的元数据的映射表;以及 在上述物理块地址写入该写操作请求要求写入的数据。
2.根据权利要求I所述的方法,其中还包括 响应于使用映射表计算的有效数据比例大于所述预设阈值,并且所述存储的元数据不以B-tree数据结构存储,则确定所述存储的元数据以映射表存储,并在元数据的映射表中加入所述对应关系。
3.根据权利要求I或2所述的方法,其中所述存储系统支持自动精简配置存储技木,所述元数据为支持自动精简配置存储技术的低速存储器的元数据的一部分。
4.根据权利要求1-3之一所述的方法,其中所述存储系统使用高速存储器存储元数据,所述高速存储器为SSD。
5.根据权利要求4所述的方法,其中响应于存储的元数据中加入上述对应关系后,使用映射表计算的有效数据比例大于预设阈值,并且所述存储的元数据以B-tree数据结构存储,则所述将该以B-tree数据结构存储的元数据存储为包含上述对应关系的元数据的映射表还包括 将元数据的B-tree数据结构展开成为映射表,并且将所述对应关系加入到映射表中,再存储到该SSD中。
6.根据权利要求1-3之一所述的方法,其中所述存储系统使用高速存储器存储元数据,用于存储元数据的B-tree数据结构的高速存储器为高速缓存器,用于存储元数据的映射表的高速存储器为SSD,并且在低速存储器中存储元数据的B-tree数据结构,而且与高速缓存器中存储的元数据的B-tree数据结构同歩。
7.根据权利要求6所述的方法,其中响应于存储的元数据中加入上述对应关系后,使用映射表计算的有效数据比例大于预设阈值,并且所述存储的元数据以B-tree数据结构存储,则所述将该以B-tree数据结构存储的元数据存储为包含上述对应关系的元数据的映射表还包括将低速存储器中的元数据的B-tree数据结构展开为包含上述对应关系的元数据的映射表,并迁移到SSD中存储。
8.根据权利要求1-3之一所述的方法,其中使用标记记录当前元数据是以B-tree数据结构的存储方式存储还是以映射表的存储方式存储,并且响应于当前元数据的存储方式改变,更新该标记。
9.根据权利要求1-3之一所述的方法,其中使用标记记录元数据的每个部分的存储位置,并且响应于该元数据的每个部分的存储位置改变,更新该标记。
10.一种存储系统中检索数据的设备,该设备包括 接收装置,被配置为接收一写操作请求; 对应关系建立装置,被配置为对所述写操作请求,建立所述写操作的逻辑块地址与物理块地址的对应关系; 第一判断装置,被配置为判断在存储的元数据加入上述对应关系后,使用映射表计算的有效数据比例是否大于预设阈值; B-tree索引对应关系加入装置,被配置为响应于使用映射表计算的有效数据比例不大于所述预设阈值,在所述存储的元数据的B-tree数据结构中加入所述对应关系; 第二判断装置,被配置为响应于使用映射表计算的有效数据比例大于所述预设阈值,判断所述存储的元数据是否以B-tree数据结构存储; 转换装置,被配置为响应于所述存储的元数据以B-tree数据结构存储,将该以B-tree数据结构存储的元数据存储为包含上述对应关系的元数据的映射表;以及 写入装置,被配置为在上述物理块地址写入该写操作请求要求写入的数据。
11.根据权利要求10所述的设备,其中还包括 矩阵数据对应关系加入装置,被配置为响应于使用映射表计算的有效数据比例大于所述预设阈值,并且所述存储的元数据不以B-tree数据结构存储,则确定所述存储的元数据以映射表存储,并在存储的元数据的映射表中加入所述对应关系。
12.根据权利要求10或11所述的设备,其中所述存储系统支持自动精简配置存储技术,所述元数据为支持自动精简配置存储技术的低速存储器的元数据的一部分。
13.根据权利要求10-12之一所述的设备,其中所述存储系统使用高速存储器存储元数据,所述高速存储器为SSD。
14.根据权利要求13所述的设备,其中所述转换装置包括 展开装置,被配置为将SSD中元数据的B-tree数据结构展开成为映射表; 矩阵数据对应关系加入装置,被配置为将所述对应关系加入到映射表中。
15.根据权利要求10-12之一所述的设备,其中所述存储系统使用高速存储器存储元数据,用于存储元数据的B-tree数据结构的高速存储器为高速缓存器,用于存储元数据的映射表的高速存储器为SSD,并且在低速存储器中存储元数据的B-tree数据结构,该设备还包括 同步装置,被配置为将所述低速存储器中存储元数据的B-tree数据结构与所述高速缓存器中存储的元数据的B-tree数据结构同歩。
16.根据权利要求15所述的设备,其中所述转换装置包括 展开装置,被配置为将低速存储器中元数据的B-tree数据结构展开成为映射表; 映射表对应关系加入装置,被配置为将新建立的映射关系加入到映射表中。
迁移装置,被配置为将映射表对应关系加入装置得到的映射表迁移到该SSD中存储。
17.根据权利要求10-12之一所述的设备,其中使用标记记录当前元数据是以B-tree数据结构的存储方式存储还是以映射表的存储方式存储,并且响应于当前元数据的存储方式改变,更新该标记。
18.根据权利要求10-12之一所述的设备,其中使用标记记录所述元数据的每个部分的存储位置,并且响应于该元数据的每个部分的存储位置改变,更新该标记。
全文摘要
本发明公开了一种存储系统中检索数据的方法和设备,该方法包括接收一写操作请求;建立所述写操作的逻辑块地址与物理块地址的对应关系;判断在存储的元数据中加入上述对应关系后,使用映射表计算的有效数据比例是否大于预设阈值;响应于使用映射表计算的有效数据比例不大于所述预设阈值,在所述存储的元数据的B-tree数据结构中加入所述对应关系;响应于使用映射表计算的有效数据比例大于所述预设阈值,判断所述存储的元数据是否以B-tree数据结构存储,响应于所述存储的元数据以B-tree数据结构存储,将该以B-tree数据结构存储的元数据存储为包含上述对应关系的元数据的映射表;以及在上述物理块地址写入该写操作请求要求写入的数据。
文档编号G06F3/06GK102651009SQ201110051630
公开日2012年8月29日 申请日期2011年2月28日 优先权日2011年2月28日
发明者方敏, 曾凡钢, 李小燕, 顾慧翔 申请人:国际商业机器公司