一种缓存管理方法和系统的制作方法
【技术领域】
[0001]本发明涉及计算机存储技术领域,尤其涉及一种缓存管理方法和系统。
【背景技术】
[0002]在存储系统中,为了提供系统性能,对于数据块的1请求,首先查询请求处理的数据块是否在缓存中,如果在缓存中,直接在缓存中处理;否则需要访问底层磁盘设备并把数据块放入缓存进行处理。具有去重功能的存储系统,数据去重后,存在上层多个逻辑块对应底层一个物理块的情况,而上层的1请求携带的是数据块的逻辑地址信息,通过逻辑地址索引查找缓存中是否存在该数据块,就会出现缓存中存在该数据块,但是检索不到的情况。例如,假设逻辑地址LAl跟LA2同时对应物理地址PA1,如果有1请求访问LAl中的数据,缓存中并没有LAl的信息,但是存在LA2的信息以及对应的数据块,即:逻辑地址LAl对应的物理块其实是在缓存中的。在用LAl来检索缓存时,由于缓存中无LAl彳目息,认为缓存中不存在要访问的数据块,此时会访问磁盘,把物理地址PAl对应的数据块读入缓存,并生成LAl对应的缓存检索信息。此时在缓存中就存在两份相同的物理地址PAl对应的数据块,由于缓存中存在数据副本,导致缓存的利用率降低。
【发明内容】
[0003]为了解决上述问题,本发明提出了一种缓存管理方法和系统,能够避免缓存中缓存多份相同的数据块,从而提高缓存的利用率。
[0004]为了达到上述目的,本发明提出了一种缓存管理方法,该方法适用于具有去重功能的存储系统,该方法包括:
[0005]对于上层应用的访问请求,通过逻辑地址检索缓存中是否存在访问请求所对应的数据块。
[0006]当通过逻辑地址未检索到缓存中存在访问请求所对应的数据块时,通过预设的逻辑地址与物理地址的映射关系获取逻辑地址所对应的物理地址,通过所获取的物理地址检索缓存中是否存在访问请求所对应的数据块。
[0007]当通过物理地址检索到缓存中存在访问请求所对应的数据块时,在缓存中对访问请求进行处理。
[0008]当通过物理地址未检索到缓存中存在访问请求对应的数据块时,判定缓存中没有访问请求所对应的数据块,通过物理地址到底层硬件存储设备中获取该数据块。
[0009]将获取的数据块放入缓存中,并对放入缓存的数据块添加逻辑地址索引和物理地址索引,在缓存中对访问请求进行处理。
[0010]优选地,该方法还包括:
[0011]在具有去重功能的存储系统中,通过存储池统一管理底层硬件存储设备中的数据块,并向上层应用提供逻辑卷形式的数据块。
[0012]其中,逻辑卷的地址为逻辑地址,逻辑地址通过空间分配与底层硬件存储设备的物理地址形成映射关系;在该映射关系中,一个或多个逻辑地址对应一个物理地址。
[0013]优选地,该方法还包括:
[0014]当通过逻辑地址检索到缓存中存在访问请求所对应的数据块时,在缓存中对访问请求进行处理。
[0015]优选地,访问请求包括写请求;当访问请求为写请求时:
[0016]当通过逻辑地址检索到缓存中存在访问请求所对应的数据块时,在缓存中对访问请求进行处理包括:
[0017]对缓存中的写清求对应的数据块进行写操作,将经过写操作后的数据块置为脏,并删除经过写操作后的数据块的物理地址到数据块的索引信息。
[0018]优选地,
[0019]当访问请求为写请求时,当通过物理地址检索到缓存中存在访问请求所对应的数据块时,在缓存中对访问请求进行处理包括:
[0020]对缓存中的写清求对应的数据块进行写操作,将经过写操作后的数据块置为脏,并删除经过写操作后的数据块的物理地址到数据块的索引信息;删除经过写操作后的数据块原有的全部逻辑地址到数据块的索引信息;添加写请求的逻辑地址到经过写操作后的数据块的索引信息。
[0021]为了达到上述目的,本发明还提出了一种缓存管理系统,该缓存管理系统适用于具有去重功能的存储系统,该缓存管理系统包括:第一检索模块、第二检索模块、第一处理模块、获取模块和第二处理模块。
[0022]第一检索模块,用于对于上层应用的访问请求,通过逻辑地址检索缓存中是否存在访问请求所对应的数据块。
[0023]第二检索模块,用于当通过逻辑地址未检索到缓存中存在访问请求所对应的数据块时,通过预设的逻辑地址与物理地址的映射关系获取逻辑地址所对应的物理地址,通过所获取的物理地址检索缓存中是否存在访问请求所对应的数据块。
[0024]第一处理模块,用于当通过物理地址检索到缓存中存在访问请求所对应的数据块时,在缓存中对访问请求进行处理。
[0025]获取模块,用于当通过物理地址未检索到缓存中存在访问请求对应的数据块时,判定缓存中没有访问请求所对应的数据块,通过物理地址到底层硬件存储设备中获取数据块。
[0026]第二处理模块,用于将获取的数据块放入缓存中,并对放入所述缓存的所述数据块添加逻辑地址索引和物理地址索引,在所述缓存中对所述访问请求进行处理。
[0027]优选地,缓存管理系统还包括:管理模块。
[0028]管理模块,用于在具有去重功能的存储系统中,通过存储池统一管理底层硬件存储设备中的数据块,并向所述上层应用提供逻辑卷形式的数据块。
[0029]其中,逻辑卷的地址为逻辑地址,逻辑地址通过空间分配与底层硬件存储设备的物理地址形成映射关系;在该映射关系中,一个或多个逻辑地址对应一个物理地址。
[0030]优选地,第一处理模块还用于:
[0031 ]当通过逻辑地址检索到缓存中存在访问请求所对应的数据块时,在缓存中对访问请求进行处理。
[0032]优选地,访问请求包括写请求;当访问请求为写请求时:
[0033]第一处理模块当通过逻辑地址检索到缓存中存在访问请求所对应的数据块时,在缓存中对访问请求进行处理包括:
[0034]对缓存中的写清求对应的数据块进行写操作,将经过写操作后的数据块置为脏,并删除经过写操作后的数据块的物理地址到数据块的索引信息。
[0035]优选地,
[0036]当访问请求为写请求时,第一处理模块当通过物理地址检索到缓存中存在访问请求所对应的数据块时,在缓存中对访问请求进行处理包括:
[0037]对缓存中的写清求对应的数据块进行写操作,将经过写操作后的数据块置为脏,并删除经过写操作后的数据块的物理地址到数据块的索引信息;删除经过写操作后的数据块原有的全部逻辑地址到数据块的索引信息;添加写请求的逻辑地址到经过写操作后的数据块的索引信息。
[0038]与现有技术相比,本发明包括:对于上层应用的访问请求,通过逻辑地址检索缓存中是否存在访问请求所对应的数据块。当通过逻辑地址未检索到缓存中存在访问请求所对应的数据块时,通过预设的逻辑地址与物理地址的映射关系获取逻辑地址所对应的物理地址,通过所获取的物理地址检索缓存中是否存在访问请求所对应的数据块。当通过物理地址检索到缓存中存在访问请求所对应的数据块时,在缓存中对访问请求进行处理。当通过物理地址未检索到缓存中存在访问请求对应的数据块时,判定缓存中没有访问请求所对应的数据块,通过物理地址到底层硬件存储设备中获取该数据块。将获取的数据块放入缓存中,并对放入缓存的数据块添加逻辑地址索引和物理地址索引,在缓存中对访问请求进行处理。通过本发明的方案,能够避免缓存中缓存多份相同的数据块,从而提高缓存的利用率。
【附图说明】
[0039]下面对本发明实施例中的附图进行说明,实施例中的附图是用于对本发明的进一步理解,与说明书一起用于解释本发明,并不构成对本发明保护范围的限制。
[0040]图1为本发明的缓存管理方法流程图;
[0041]图2为本发明的数据结构图;
[0042]图3为本发明实施例的读操作缓存管理方法流程图;
[0043]图4为本发明实施例的写操作缓存管理方法流程图;
[0044]图5为本发明的缓存管理系统组成框图。
【具体实施方式】
[0045]为了便于本领域技术人员的理解,下面结合附图对本发明作进一步的描述,并不能用来限制本发明的保护范围。
[0046]本发明提供了一种通过存储空间的逻辑地址(Logical Address)和物理地址(Physical Address)两种方式对缓存进行索引的缓存管理方法,在缓存