CN107992270A - 一种多控存储系统全局共享缓存的方法及装置 - Google Patents
一种多控存储系统全局共享缓存的方法及装置 Download PDFInfo
- Publication number
- CN107992270A CN107992270A CN201711346546.2A CN201711346546A CN107992270A CN 107992270 A CN107992270 A CN 107992270A CN 201711346546 A CN201711346546 A CN 201711346546A CN 107992270 A CN107992270 A CN 107992270A
- Authority
- CN
- China
- Prior art keywords
- globally shared
- data
- request
- cache table
- lun
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种多控存储系统全局共享缓存的方法及装置,所述方法包括:当预定义的加锁条件被触发时,对各存储节点的全局共享缓存表加锁;将本地缓存中的数据分配至各存储节点的全局共享缓存;基于数据的分配结果更新本地的所述全局共享缓存表,并将所述全局共享缓存表的更新内容发送至其它存储节点,以由其它存储节点基于所述更新内容更新自身的所述全局共享缓存表并在更新完成后返回更新完成报文;然后对各存储节点的全局共享缓存表解锁。本申请技术方案降低了多控存储系统处理IO请求的时延,提高了多控存储系统可用的缓存空间,进而提高了IO请求的访问性能。
Description
技术领域
本申请涉及存储领域,特别涉及一种多控存储系统全局共享缓存的方法及装置。
背景技术
组成多控存储系统的各个存储设备,将各自的内存划分出一部分,与其它存储设备进行共享,这种设计可以提高多控存储系统的内存使用率,提高存储系统的性能,各个存储设备互相共享的内存,称为全局共享缓存。
现有的VPLEX全局共享缓存方案如图1所示,VPLEX集群将所有存储设备的缓存进行集合,形成了VPLEX的全局共享缓存。为了便于管理上述全局共享缓存,VPLEX管理服务器将指定LUN资源的缓存数据块和存储设备的映射关系生成一个缓存目录(即图1中的缓存相干性目录),然后将该缓存目录发送至各存储设备。VPLEX集群每次处理IO(Input Output,输入输出)请求后,可以更新上述缓存目录。各个存储设备通过上述缓存目录,可以迅速访问全局共享缓存,为业务提供较高的访问性能。
然而,在现有技术中,第一存储设备接收到IO请求后,首先向其它存储设备发送查询报文。其它存储设备接收到该查询报文后,首先确定本地的缓存目录是否被锁住。
如果是,则可以返回一个第一通告报文。当第一存储设备接收到其它存储设备返回的第一通告报文后,确定当前存储系统在处理其它IO请求,等待一段时间后重新向其它存储设备发送查询报文。
如果不是,则可以返回一个第二通告报文,并将本地的缓存目录锁住不让除第一存储设备以外的存储设备操作。当第一存储设备接收到其它所有存储设备返回的第二通告报文后,可以确定当前存储系统没有处理其它IO请求,进而处理本地接收的IO请求。
通过上述措施,可以保证在同一时刻,针对全局共享缓存中相同的缓存地址只有一个IO访问,保证数据一致性。然而,每次接收到IO请求的存储设备向其它存储设备查询的流程,增加了IO的时延,对性能存在一定的影响。
此外,每次处理完IO请求后,存储设备会更新本地的全局共享缓存,以及,更新所有存储设备上的缓存目录。该措施可保证所有的存储设备后续可以从全局共享缓存中获取新的数据。但是更新流程同样会增加IO时延,对性能造成影响。
另外,处理IO请求的存储设备将新写入的数据缓存在本地的全局共享缓存内,如果IO请求集中由某几个存储设备进行处理,则无法使用其它存储设备上的缓存空间,使得缓存空间的利用率不高。
发明内容
有鉴于此,本申请提供一种多控存储系统全局共享缓存的方法及装置,用以减少处理IO请求的时延,并提高缓存空间的利用率。
具体地,本申请是通过如下技术方案实现的:
一种多控存储系统全局共享缓存的方法,所述方法应用于多控存储系统的第一存储节点,所述多控存储系统包括多个存储节点,各存储节点的缓存都被划分为全局共享缓存和本地缓存,包括:
当预定义的加锁条件被触发时,对本地的全局共享缓存表加锁,并向其它存储节点发送加锁指令,以由各存储节点基于所述加速指令为自身的全局共享缓存表加锁;
将本地缓存中的数据分配至各存储节点的全局共享缓存;
基于数据的分配结果更新本地的所述全局共享缓存表,并将所述全局共享缓存表的更新内容发送至其它存储节点,以由其它存储节点基于所述更新内容更新自身的所述全局共享缓存表并在更新完成后返回更新完成报文;
对本地的全局共享缓存表解锁,并在接收其它存储节点返回的所述更新完成报文后,向其它存储节点发送解锁指令,以由其它存储节点基于所述解锁指令为自身的全局共享缓存表解锁。
在所述多控存储系统全局共享缓存的方法中,所述全局共享缓存表包括若干条全局共享缓存表项,每条全局共享缓存表项包括LUN标识、数据起始地址、数据长度、存储节点标识和全局缓存地址的映射关系;
所述方法还包括:
接收到应用服务器发送的读IO请求;
根据所述读IO请求中携带的LUN标识、数据起始地址和数据长度查找所述全局共享缓存表,确定是否查找到对应的全局共享缓存表项;
如果查找到对应的全局共享缓存表项,基于所述全局共享缓存表项从所述全局共享缓存中获取目标数据,并将所述目标数据返回所述应用服务器;其中,所述目标数据为所述读IO请求所请求的数据;
如果未查找到对应的全局共享缓存表项,向所述读IO请求中携带的LUN标识对应的实体LUN转发所述读IO请求,以由所述实体LUN返回所述目标数据,并将所述目标数据返回所述应用服务器。
在所述多控存储系统全局共享缓存的方法中,所述方法还包括:
接收到所述应用服务器发送的写IO请求;
向所述写IO请求中携带的LUN标识对应的实体LUN转发所述写IO请求,以由所述实体LUN处理所述写IO请求并在处理完成后返回写IO响应;
根据所述写IO请求中携带的LUN标识、数据起始地址和数据长度查找所述全局共享缓存表,确定是否查找到对应的全局共享缓存表项;
如果查找到对应的全局共享缓存表项,基于所述全局共享缓存表项更新所述全局共享缓存中的数据,并在接收到实体LUN返回的所述写IO响应后,向所述应用服务器转发所述写IO响应;
如果未查找到对应的全局共享缓存表项,在接收到实体LUN返回的写IO响应后,向所述应用服务器转发所述写IO响应。
在所述多控存储系统全局共享缓存的方法中,所述查找所述全局共享缓存表前,还包括:
确定所述全局共享缓存表是否加锁;
如果是,等待预设时长后重新确定所述全局共享缓存表是否加锁;
如果不是,查找所述全局共享缓存表。
在所述多控存储系统全局共享缓存的方法中,所述加锁条件包括:
定时器超时;或者,
本地缓存中的数据量达到预设的第一容量阈值。
在所述多控存储系统全局共享缓存的方法中,所述方法还包括:
当所述多控存储系统的所有存储节点的全局共享缓存中的数据达到预设的第二容量阈值时,根据预设清理策略删除预设大小的数据。
一种多控存储系统全局共享缓存的装置,所述方法应用于多控存储系统的第一存储节点,所述多控存储系统包括多个存储节点,各存储节点的缓存都被划分为全局共享缓存和本地缓存,包括:
加锁单元,用于当预定义的加锁条件被触发时,对本地的全局共享缓存表加锁,并向其它存储节点发送加锁指令,以由各存储节点基于所述加速指令为自身的全局共享缓存表加锁;
分配单元,用于将本地缓存中的数据分配至各存储节点的全局共享缓存;
更新单元,用于基于数据的分配结果更新本地的所述全局共享缓存表,并将所述全局共享缓存表的更新内容发送至其它存储节点,以由其它存储节点基于所述更新内容更新自身的所述全局共享缓存表并在更新完成后返回更新完成报文;
解锁单元,用于对本地的全局共享缓存表解锁,并在接收其它存储节点返回的所述更新完成报文后,向其它存储节点发送解锁指令,以由其它存储节点基于所述解锁指令为自身的全局共享缓存表解锁。
在所述多控存储系统全局共享缓存的装置中,所述全局共享缓存表包括若干条全局共享缓存表项,每条全局共享缓存表项包括LUN标识、数据起始地址、数据长度、存储节点标识和全局缓存地址的映射关系;
所述装置还包括:
接收单元,用于接收到应用服务器发送的读IO请求;
查找单元,用于根据所述读IO请求中携带的LUN标识、数据起始地址和数据长度查找所述全局共享缓存表,确定是否查找到对应的全局共享缓存表项;
获取单元,用于如果查找到对应的全局共享缓存表项,基于所述全局共享缓存表项从所述全局共享缓存中获取目标数据,并将所述目标数据返回所述应用服务器;其中,所述目标数据为所述读IO请求所请求的数据;
转发单元,用于如果未查找到对应的全局共享缓存表项,向所述读IO请求中携带的LUN标识对应的实体LUN转发所述读IO请求,以由所述实体LUN返回所述目标数据,并将所述目标数据返回所述应用服务器。
在所述多控存储系统全局共享缓存的装置中,所述装置还包括:
所述接收单元,进一步用于接收到所述应用服务器发送的写IO请求;
所述转发单元,进一步用于向所述写IO请求中携带的LUN标识对应的实体LUN转发所述写IO请求,以由所述实体LUN处理所述写IO请求并在处理完成后返回写IO响应;
所述查找单元,进一步用于根据所述写IO请求中携带的LUN标识、数据起始地址和数据长度查找所述全局共享缓存表,确定是否查找到对应的全局共享缓存表项;
所述更新单元,进一步用于如果查找到对应的全局共享缓存表项,基于所述全局共享缓存表项更新所述全局共享缓存中的数据,并在接收到实体LUN返回的所述写IO响应后,向所述应用服务器转发所述写IO响应;
所述转发单元,进一步用于如果未查找到对应的全局共享缓存表项,在接收到实体LUN返回的写IO响应后,向所述应用服务器转发所述写IO响应。
在所述多控存储系统全局共享缓存的装置中,所述查找单元,进一步用于:
确定所述全局共享缓存表是否加锁;
如果是,等待预设时长后重新确定所述全局共享缓存表是否加锁;
如果不是,查找所述全局共享缓存表。
在所述多控存储系统全局共享缓存的装置中,所述加锁条件包括:
定时器超时;或者,
本地缓存中的数据量达到预设的第一容量阈值。
在所述多控存储系统全局共享缓存的装置中,所述装置还包括:
删除单元,用于当所述多控存储系统的所有存储节点的全局共享缓存中的数据达到预设的第二容量阈值时,根据预设清理策略删除预设大小的数据。
在本申请技术方案中,多控存储系统的第一存储节点在预定义的加锁条件被触发时,对本地的全局共享缓存表加锁,并让其它存储节点的全局共享缓存表加锁,然后将本地缓存中的数据分配至其它存储节点的全局共享缓存,并基于数据的分配结果更新各存储节点的全局共享缓存表,进而在更新完成后对各存储节点的全局共享缓存表解锁;
由于多控存储系统的全局共享缓存表仅在预定义的加锁条件被触发时才会加锁,相比现有技术减少了加锁次数,进而减少了因全局共享缓存表加锁产生的处理IO请求的时延;
此外,在预定义的加锁条件被触发时才会更新全局共享缓存表,相比现有技术,减少了每次处理IO请求后更新全局共享缓存表的而产生的处理IO请求的时延;
另外,存储节点可以将本地缓存中的数据分配至其它存储节点的全局共享缓存,从而在IO请求集中在某几个存储节点上时,可以使用其它存储节点的缓存空间,提高了缓存空间的利用率。
附图说明
图1是本申请示出的一种全局共享缓存方案的示意图;
图2是本申请示出的一种全局共享缓存方案的网络架构图;
图3是本申请示出的一种处理读IO请求的流程图;
图4是本申请示出的一种处理写IO请求的流程图;
图5是本申请示出的一种多控存储系统全局共享缓存的方法的流程图;
图6是本申请示出的一种多控存储系统全局共享缓存的装置的实施例框图;
图7是本申请示出的一种多控存储系统全局共享缓存的装置的硬件结构图。
具体实施方式
为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对现有技术方案和本发明实施例中的技术方案作进一步详细的说明。
参见图2,为本申请示出的一种全局共享缓存方案的网络架构图,如图2所示,多控存储系统由多个存储设备组成,各存储设备为多控存储系统中的存储节点,各个存储节点包括独立控制器(图中的SP1和SP2)和磁盘柜等硬件组件。各存储节点通过高速以太网交换机进行互联,并且均连接到管理服务器(图中未示出),由管理服务器进行统一管理。其中,高速以太网交换机可以是RDMA(Remote Direct Memory Access,远程直接数据存取)交换机。
各个存储节点可独立创建LUN资源,并可以在本地创建对应于其它存储节点上实体LUN的代理LUN。应用服务器的多路径软件可以发现从不同的代理LUN访问一个实体LUN的多条路径,使得应用服务器可以通过某个存储节点访问其它存储节点的LUN资源。
各存储节点的缓存空间被按照预定义的比例换分为全局共享缓存和本地缓存两部分。各存储节点上的全局共享缓存组成整个多控存储系统的全局共享缓存,各存储节点上存在全局共享缓存表,该全局共享缓存表记录共享缓存数据的分布信息,包括多条全局共享缓存表项,每条全局共享缓存表项包括LUN标识、数据起始地址、数据长度、存储节点标识和全局缓存地址的映射关系。
其中,LUN标识可指示多控存储系统的实体LUN;
数据起始地址,用以指示数据在实体LUN中存储地址的起始位置;
数据长度,用以指示实体LUN中存储的数据的长度,或,全局共享缓存中缓存的数据的长度;
存储节点标识,用以指示全局共享缓存中数据所在的存储节点;
全局缓存地址,用以指示全局共享缓存中数据所在的缓存地址。
各存储节点通过存储节点标识和全局缓存地址,可以通过高速交换网络迅速、高效地访问全局共享缓存中的特定数据;其中,上述高速交换网络可以是XAN(eXchange AreaNetwork,存储交换域网)数据网络。
在介绍完全局共享缓存方案的网络架构,下面说明多控存储系统的数据处理流程。
参见图3,为本申请示出的一种处理读IO请求的流程图。如图3所示,任一存储节点的代理LUN可以处理接收到的读IO请求,当然,代理LUN处理IO请求的过程中,实际的执行主体是存储节点的控制器。为便于表述,以下用“第一存储节点”作为主语描述技术方案,第一存储节点泛指任一存储节点,并不限定本申请。
第一存储节点接收到应用服务器发送的读IO请求,可以确定上述读IO请求是否命中全局共享缓存。
具体地,第一存储节点可以根据读IO请求中携带的LUN标识、数据起始地址和数据长度查找本地的全局共享缓存表。
作为一种实施例,第一存储节点可以在查找上述全局共享缓存表之前,首先确定上述全局共享缓存表是否加锁。
一方面,如果上述全局共享缓存表加锁,则可以等待预设时长后重新确定上述全局共享缓存表是否加锁;这个确定过程会一直重复,直到上述全局共享缓存未加锁;
另一方面,如果上述全局共享缓存表未加锁,第一存储节点可以查找上述全局共享缓存表。
由于在本申请中,更新全局共享缓存的过程中会为全局共享缓存表加锁,通过该措施,第一存储节点首先判断全局共享缓存表是否加锁,以在上述全局共享缓存表未加锁时查表,避免了无效的查表动作。此外,当上述全局共享缓存表未加锁,说明此时全局共享缓存表记录的是最新的共享缓存数据的分布信息。
第一存储节点根据读IO请求中携带的LUN标识、数据起始地址和数据长度查找上述全局共享缓存表,确定是否查找到对应的全局共享缓存表项。
一方面,如果查找到对应的全局共享缓存表项,说明上述读IO请求命中全局共享缓存,可以基于上述全局共享缓存表项从上述全局共享缓存中获取目标数据,然后将上述目标数据返回上述应用服务器;其中,上述目标数据为上述读IO请求所请求的数据。
具体地,第一存储节点查找到对应的全局共享缓存表项后,可以基于该全局共享缓存表项的存储节点标识、全局共享地址和数据长度从该存储节点标识指示的存储节点的全局共享缓存中获取目标数据,并返回上述目标数据至上述应用服务器。
另一方面,如果未查找到对应的全局共享缓存表项,可以向上述读IO请求中携带的LUN对应的实体LUN转发上述读IO请求。
上述实体LUN可以处理接收到的上述读IO请求。首先,上述实体LUN可以确定上述读IO请求是否命中本地缓存。
具体地,上述实体LUN可以基于上述读IO请求中携带的数据起始地址和数据长度查找本地的本地缓存表,确定是否存储对应的本地缓存表项;其中,上述本地缓存表记录的是本地缓存数据的地址信息,包括多条本地缓存表项,各本地缓存表项包括数据起始地址、数据长度和本地缓存地址的映射关系。
若查找到对应的本地缓存表项,说明命中本地缓存,上述实体LUN可以基于该本地缓存表项的本地缓存地址和数据长度从本地缓存中获取目标数据,并向上述第一存储节点返回上述目标数据。
若未查找到对应的本地缓存表项,说明未命中本地缓存,上述实体LUN可以根据上述读IO请求中的数据起始地址和数据长度从LUN资源中获取目标数据,并向上述第一存储节点返回上述目标数据;此外,上述实体LUN可以将目标数据保存在本地缓存中,并更新本地缓存表,以便于后续可以直接从缓存中获取该目标数据,提高IO处理的响应速度。
上述第一存储节点接收到上述实体LUN返回的上述目标数据后,可以将上述目标数据返回上述应用服务器。
至此,处理读IO请求的流程结束。
参见图4,为本申请示出的一种处理写IO请求的流程图。如图4所示,任一存储节点的代理LUN可以处理接收到的写IO请求。为便于表述,以下仍以“第一存储节点”作为主语描述技术方案,第一存储节点泛指任一存储节点,并不限定本申请。
第一存储节点接收到应用服务器发送的写IO请求,可以向上述写IO请求中携带的LUN标识对应的实体LUN转发上述写IO请求。
上述实体LUN可以处理接收到的上述写IO请求,并缓存写IO请求中的数据到本地缓存。上述实体LUN处理上述写IO请求完成后,可以向上述第一存储节点返回写IO响应。其中,上述写IO响应可说明本次写IO处理的结果为成功或失败。
第一存储节点将上述写IO请求发送至上述实体LUN后,可以确定上述写IO请求是否命中全局共享缓存。
具体地,第一存储节点可以基于上述写IO请求中携带的LUN标识、数据起始地址和数据长度查找本地的全局共享缓存表,确定是否查找到对应的全局共享缓存表项。
作为一种实施例,第一存储节点可以在查找上述全局共享缓存表之前,首先确定上述全局共享缓存表是否加锁。
一方面,如果上述全局共享缓存表加锁,则可以等待预设时长后重新确定上述全局共享缓存表是否加锁;这个确定过程会一直重复,直到上述全局共享缓存未加锁;
另一方面,如果上述全局共享缓存未加锁,第一存储节点可以查找上述全局共享缓存表。
通过该措施,第一存储节点可以避免全局共享缓存表在加锁时无效的查表动作。
第一存储节点根据写IO请求中携带的LUN标识、数据起始地址和数据长度查找上述全局共享缓存表,确定是否查找到对应的全局共享缓存表项。
一方面,如果查找到对应的全局共享缓存表项,则可以基于上述全局共享缓存表项更新全局共享缓存中的数据。具体地,第一存储节点可以将上述写IO请求中待写入的数据,替代上述全局共享缓存表项的全局缓存地址中的数据。此外,第一存储节点在接收到上述实体LUN返回的写IO响应后,向上述应用服务器转发上述写IO响应。
另一方面,如果未查找到对应的全局共享缓存表项,则第一存储节点无需更新全局共享缓存。此外,第一存储节点接收到上述实体LUN返回的写IO响应后,向上述应用服务器转发上述写IO响应。
至此,处理写IO请求的流程结束。
从上述处理读IO请求的流程和上述处理写IO请求的流程可知,多控存储系统的实体LUN在处理IO请求过程中,可能会更新其所在存储节点的本地缓存。若处理IO请求的实体LUN集中在某几个存储节点上,则其它存储节点上的缓存空间处于闲置状态,为此,在本申请中,本地缓存中数据量过大的存储节点可以向其它存储节点的全局共享缓存分配数据,从而提高多控存储系统整体缓存空间的利用率。
参见图5,为本申请示出的一种多控存储系统全局共享缓存的方法的流程图,仍以“第一存储节点”作为主语描述技术方案,当然,“第一存储节点”泛指多控存储系统的任一存储节点;所述方法包括以下步骤:
步骤501:当预定义的加锁条件被触发时,对本地的全局共享缓存表加锁,并向其它存储节点发送加锁指令,以由各存储节点基于所述加速指令为自身的全局共享缓存表加锁。
作为一种实施例,上述加锁条件包括定时器超时。
在这种情况下,第一存储节点上预设超时时长,并启动定时器,当定时器达到预设超时时长后,可以对各存储节点上的全局共享缓存表加锁。上述超时时长可以基于实际应用环境配置,比如,若多控存储系统的各存储节点的本地缓存较小,则可以配置较短的超时时长,这样存储节点可以及时将本地缓存中的数据分配至其它存储节点的全局共享缓存,防止本地缓存的空间不足。
作为另一种实施例,上述加锁条件包括本地缓存中的数据容量达到预设的第一容量阈值。
在这种情况下,第一存储节点上预设第一容量阈值,并在本地缓存中的数据量达到上述第一容量阈值时对各存储节点上的全局共享缓存表加锁。上述预设第一容量阈值可以基于实际应用环境配置,比如,若第一存储节点的本地缓存为200G,则上述第一容量阈值可以是180G。
在上述加锁条件被触发时,第一存储节点首先可以对本地的全局共享缓存表加锁,然后向其它存储节点发送加锁指令。其它存储节点接收到上述加锁指令后,会基于上述加锁指令为自身的全局共享缓存表加锁,并在加锁完成后,向第一存储节点返回加锁确认报文。
第一存储节点接收到各存储节点返回的加锁确认报文后,可以确定各存储节点上的全局共享缓存表已完成加锁。
通过该措施,第一存储节点可以为多控存储系统的各存储节点的全局共享缓存表加锁,从而防止任一存储节点在更新全局共享缓存的过程中处理IO请求。
步骤502:将本地缓存中的数据分配至各存储节点的全局共享缓存。
第一存储节点在确定各存储节点上的全局共享缓存表已加锁后,可以将本地缓存中的数据分配至其它存储节点的全局共享缓存。
作为一种实施例,第一存储节点可以将本地缓存中数据平均分配到各存储节点的全局共享缓存中。通过该措施,存储节点每次更新全局共享缓存后,各存储节点上的全局共享缓存中的数据量都相同,便于各存储节点管理多控存储系统的全局共享缓存。
以图2示出的网络架构图为例,存储节点A在将多控存储系统的各存储节点的全局共享缓存表加锁后,可以将本地缓存中的数据划分为3份,分别分配至存储节点A、存储节点B和存储节点C的全局共享缓存中。
通过该措施,第一存储节点可以利用其它存储节点闲置的缓存空间,增大了可用的缓存空间,提高多控存储系统的缓存空间的利用率。
步骤503:基于数据的分配结果更新本地的所述全局共享缓存表,并将所述全局共享缓存表的更新内容发送至其它存储节点,以由其它存储节点基于所述更新内容更新自身的所述全局共享缓存表并在更新完成后返回更新完成报文。
第一存储节点在将本地缓存中的数据分配至各存储节点的全局共享缓存后,可以基于数据的分配结果更新各存储节点的全局共享缓存表。
具体的,第一存储节点可以首先更新本地的全局共享缓存表,然后将该全局共享缓存表的更新内容发送至其它存储节点。其它存储节点基于接收到的上述更新内容更新自身的全局共享缓存表,并在更新完成后返回更新完成报文。
此外,分配完成后,第一存储节点的本地缓存的数据量减小,第一存储节点可以基于数据分配结果更新本地的本地缓存表。
仍以图2示出的网络架构图为例,存储节点A的本地缓存表如下表1所示:
数据起始地址 | 数据长度 | 本地缓存地址 |
LUN0-a1 | 64Kbyte | 本地缓存地址1 |
LUN0-a2 | 64Kbyte | 本地缓存地址2 |
LUN0-a3 | 64Kbyte | 本地缓存地址3 |
表1
存储节点A将本地缓存地址1中的数据分配至存储节点A的全局共享缓存、将本地缓存地址2中的数据分配至存储节点B的全局共享缓存、将本地缓存地址3中的数据分配至存储节点C的全局共享缓存,然后更新本地的全局共享缓存表。更新内容如下表2所示:
LUN标识 | 数据起始地址 | 数据长度 | 存储节点标识 | 全局缓存地址 |
LUN0 | LUN0-a1 | 64Kbyte | A | 全局缓存地址1 |
LUN0 | LUN0-a2 | 64Kbyte | B | 全局缓存地址2 |
LUN0 | LUN0-a3 | 64Kbyte | C | 全局缓存地址3 |
表2
存储节点A将上述更新内容发送至存储节点B和存储节点C,存储节点B和存储节点C可以基于上述更新内容更新自身的全局共享缓存表,然后向存储节点A返回更新完成报文。存储节点A可以将上述表1中的三条记录删除。
通过该措施,各存储节点上都有记录最新的共享缓存数据的分布信息的全局共享缓存表,后续可以通过该全局共享缓存表更快地响应IO请求。
需要指出的是,若存在未创建代理LUN的存储节点,则第一存储节点无需向上述存储节点发送上述更新内容,从而减少更新全局共享缓存表的工作量。
步骤504:对本地的全局共享缓存表解锁,并在接收其它存储节点返回的所述更新完成报文后,向其它存储节点发送解锁指令,以由其它存储节点基于所述解锁指令为自身的全局共享缓存表解锁。
第一存储节点可以在更新本地的全局共享缓存表后,对该全局共享缓存表解锁。另外,第一存储节点接收到其它存储节点返回的更新完成报文,确定其它存储节点完成对自身的全局共享缓存表的更新,可以向其它存储节点发送解锁指令。其它存储节点接收到上述解锁指令后,对自身的全局共享缓存表进行解锁。
仍以图2示出的网络架构图为例,存储节点A接收到存储节点B和存储节点C返回的更新完成报文,确定存储节点B和存储节点C完成对自身的全局共享缓存表的更新,分别向存储节点B和存储节点C发送解锁指令。存储节点B和存储节点C接收到上述解锁指令后,分别对自身的全局共享缓存表进行解锁。
通过该措施,多控存储系统的各存储节点上最新的全局共享缓存表可以被用于处理IO请求。
在本申请实施例中,当多控存储系统的所有存储节点的全局共享缓存中的数据达到预设的阈值时,第一存储节点可以根据预设清理策略删除预设大小的数据。
在示出的一种实施方式中,上述预设清理策略为基于访问时间的清理策略,在这种实施方式中,各存储节点上可以建立缓存访问表,上述缓存访问表包括存储节点标识、全局缓存地址和访问时间的映射关系。
各存储节点在处理读IO请求时,若该读IO请求命中全局共享缓存,即根据读IO请求中携带的LUN标识、数据起始地址和数据长度查找到对应的全局共享缓存表项,则存储节点可以根据上述全局共享缓存表项中的存储节点标识和全局缓存地址查找上述缓存访问表。
一方面,如果没有查找到对应的缓存访问表项,可以在上述缓存访问表中新建缓存访问表项,并在该缓存访问表项中记录上述存储节点标识、上述全局缓存地址和访问时间。
另一方面,如果查找到对应的缓存访问表项,可以更新上述缓存访问表项中的访问时间。
各存储节点上预配置全局共享缓存的第二容量阈值,该第二容量阈值可以基于实际应用环境配置,比如,若全局共享缓存的空间为1000G,则上述第二容量阈值可以是950G。
当全局共享缓存中的数据达到上述第二容量阈值时,各存储节点可以将本地的缓存访问表发送至一个存储节点(以下将该存储节点称为“第一存储节点”)。
第一存储节点汇总各存储节点的缓存访问表,若存在多个存储节点标识和全局缓存地址相同的缓存访问表项,则对多个缓存访问表项进行合并,合并后的缓存访问表项仅记录最新的访问时间。
此外,第一存储节点可以从本地的全局共享缓存表筛选出从未被读IO请求命中的全局共享缓存表项,然后提取上述全局共享缓存表项中的存储节点标识和全局缓存地址,生成新的缓存访问表项;其中,上述缓存访问表项中的访问时间为空。
在汇总完成后,第一存储节点可以根据访问时间的先后顺序对上述缓存访问表项进行排序,访问时间为空的缓存访问表项排在访问时间最早的缓存访问表项之前。第一存储节点可以从访问时间最早的缓存访问表项开始累加各表项对应的全局共享缓存中的数据大小,直到累加的数据大小达到预设大小。当然,如果缓存访问表中存在访问时间为空的缓存访问表项,第一存储节点从访问时间为空的缓存访问表项开始累加各表项对应的全局共享缓存中的数据大小。
第一存储节点可以在累加的数据达到预设大小后,删除全局共享缓存中累加的数据。相应地,第一存储节点可以删除全局共享缓存表中对应的数据已被删除的全局共享缓存表项。
通过该措施,第一存储节点可以在全局共享缓存中的数据达到上述第二容量阈值时,删除全局共享缓存中近期未使用到的数据。
在示出的另一种实施方式中,上述预设清理策略为基于访问次数的清理策略,在这种实施方式中,各存储节点上可以建立访问次数表,上述访问次数表包括存储节点标识、全局缓存地址和访问次数的映射关系。
各存储节点在处理读IO请求时,若该读IO请求命中全局共享缓存,即根据读IO请求中携带的LUN标识、数据起始地址和数据长度查找到对应的全局共享缓存表项,则存储节点可以根据上述全局共享缓存表项中的存储节点标识和全局缓存地址查找上述访问次数表。
一方面,如果没有查找到对应的访问次数表项,可以在上述访问次数表中新建访问次数表项,并在该访问次数表项中记录上述存储节点标识、上述全局缓存地址和访问次数。其中,访问次数为1。
另一方面,如果查找到对应的访问次数表项,可以更新上述访问次数表项中的访问次数。
各存储节点上预配置全局共享缓存的第二容量阈值。当全局共享缓存中的数据达到上述第二容量阈值时,各存储节点可以将本地的访问次数表发送至一个存储节点(以下仍将该存储节点称为“第一存储节点”)。
第一存储节点汇总各存储节点的访问次数表,若存储多个存储节点标识和全局缓存地址相同的访问次数表项,则对多个访问次数表项进行合并,合并后的访问次数表项中记录累加后的访问次数。
此外,第一存储节点可以从本地的全局共享缓存表筛选出从未被读IO请求命中的全局共享缓存表项,然后提取上述全局共享缓存表项中的存储节点标识和全局缓存地址,生成新的访问次数表项;其中,上述访问次数表项中的访问次数为零。
在汇总完成后,第一存储节点可以根据访问次数的大小对上述访问次数表项进行排序。第一存储节点可以从访问次数最少的访问次数表项开始累加各表项对应的全局共享缓存中数据大小,直到累加的数据大小达到预设大小。
第一存储节点可以在累加的数据达到预设大小后,删除全局共享缓存中累加的数据。相应地,第一存储节点可以删除全局共享缓存表中对应的数据已被删除的全局共享缓存表项。
通过该措施,第一存储节点可以删除全局共享缓存中访问次数最少的数据,提高全局共享缓存的实际利用率。
综上所述,在本申请技术方案中,多控存储系统的全局共享缓存表在预定义的加锁条件被触发时才会加锁,相比现有技术减少了加锁次数,进而减少了因全局共享缓存表加锁而产生的处理IO请求的时延,另外,也减少了每次处理IO请求后更新全局共享缓存表而产生的处理IO请求的时延,提高了处理IO请求的响应速度;
此外,存储节点可以将本地缓存中的数据分配到其它存储节点的全局共享缓存,从而在IO请求集中在某几个存储节点上时,可以使用其它存储节点的缓存空间,提高了缓存空间的利用率;而更大的缓存空间也提高了多控存储系统处理IO请求的性能。
与前述多控存储系统全局共享缓存的方法的实施例相对应,本申请还提供了多控存储系统全局共享缓存的装置的实施例。
参见图6,为本申请示出的一种多控存储系统全局共享缓存的装置的实施例框图:
如图6所示,该多控存储系统全局共享缓存的装置60,包括:
加锁单元610,用于当预定义的加锁条件被触发时,对本地的全局共享缓存表加锁,并向其它存储节点发送加锁指令,以由各存储节点基于所述加速指令为自身的全局共享缓存表加锁。
分配单元620,用于将本地缓存中的数据分配至各存储节点的全局共享缓存。
更新单元630,用于基于数据的分配结果更新本地的所述全局共享缓存表,并将所述全局共享缓存表的更新内容发送至其它存储节点,以由其它存储节点基于所述更新内容更新自身的所述全局共享缓存表并在更新完成后返回更新完成报文。
解锁单元640,用于对本地的全局共享缓存表解锁,并在接收其它存储节点返回的所述更新完成报文后,向其它存储节点发送解锁指令,以由其它存储节点基于所述解锁指令为自身的全局共享缓存表解锁。
在本例中,所述全局共享缓存表包括若干条全局共享缓存表项,每条全局共享缓存表项包括LUN标识、数据起始地址、数据长度、存储节点标识和全局缓存地址的映射关系;
所述装置还包括:
接收单元650,用于接收到应用服务器发送的读IO请求。
查找单元660,用于根据所述读IO请求中携带的LUN标识、数据起始地址和数据长度查找所述全局共享缓存表,确定是否查找到对应的全局共享缓存表项。
获取单元670,用于如果查找到对应的全局共享缓存表项,基于所述全局共享缓存表项从所述全局共享缓存中获取目标数据,并将所述目标数据返回所述应用服务器;其中,所述目标数据为所述读IO请求所请求的数据。
转发单元680,用于如果未查找到对应的全局共享缓存表项,向所述读IO请求中携带的LUN标识对应的实体LUN转发所述读IO请求,以由所述实体LUN返回所述目标数据,并将所述目标数据返回所述应用服务器。
在本例中,所述装置还包括:
所述接收单元650,进一步用于接收到所述应用服务器发送的写IO请求。
所述转发单元680,进一步用于向所述写IO请求中携带的LUN标识对应的实体LUN转发所述写IO请求,以由所述实体LUN处理所述写IO请求并在处理完成后返回写IO响应。
所述查找单元660,进一步用于根据所述写IO请求中携带的LUN标识、数据起始地址和数据长度查找所述全局共享缓存表,确定是否查找到对应的全局共享缓存表项。
所述更新单元630,进一步用于如果查找到对应的全局共享缓存表项,基于所述全局共享缓存表项更新所述全局共享缓存中的数据,并在接收到实体LUN返回的所述写IO响应后,向所述应用服务器转发所述写IO响应。
所述转发单元680,进一步用于如果未查找到对应的全局共享缓存表项,在接收到实体LUN返回的写IO响应后,向所述应用服务器转发所述写IO响应。
在本例中,所述查找单元660,进一步用于:
确定所述全局共享缓存表是否加锁;
如果是,等待预设时长后重新确定所述全局共享缓存表是否加锁;
如果不是,查找所述全局共享缓存表。
在本例中,所述加锁条件包括:
定时器超时;或者,
本地缓存中的数据量达到预设的第一容量阈值。
在本例中,所述装置还包括:
删除单元690,用于当所述多控存储系统的所有存储节点的全局共享缓存中的数据达到预设的第二容量阈值时,根据预设清理策略删除预设大小的数据。
本申请多控存储系统全局共享缓存的装置的实施例可以应用在多控存储系统的第一存储节点上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在第一存储节点的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图7所示,为本申请多控存储系统全局共享缓存的装置所在第一存储节点的一种硬件结构图,除了图7所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的第一存储节点通常根据该多控存储系统全局共享缓存的装置的实际功能,还可以包括其他硬件,对此不再赘述。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (12)
1.一种多控存储系统全局共享缓存的方法,所述方法应用于多控存储系统的第一存储节点,所述多控存储系统包括多个存储节点,各存储节点的缓存都被划分为全局共享缓存和本地缓存,其特征在于,包括:
当预定义的加锁条件被触发时,对本地的全局共享缓存表加锁,并向其它存储节点发送加锁指令,以由各存储节点基于所述加速指令为自身的全局共享缓存表加锁;
将本地缓存中的数据分配至各存储节点的全局共享缓存;
基于数据的分配结果更新本地的所述全局共享缓存表,并将所述全局共享缓存表的更新内容发送至其它存储节点,以由其它存储节点基于所述更新内容更新自身的所述全局共享缓存表并在更新完成后返回更新完成报文;
对本地的全局共享缓存表解锁,并在接收其它存储节点返回的所述更新完成报文后,向其它存储节点发送解锁指令,以由其它存储节点基于所述解锁指令为自身的全局共享缓存表解锁。
2.根据权利要求1所述的方法,其特征在于,所述全局共享缓存表包括若干条全局共享缓存表项,每条全局共享缓存表项包括LUN标识、数据起始地址、数据长度、存储节点标识和全局缓存地址的映射关系;
所述方法还包括:
接收到应用服务器发送的读IO请求;
根据所述读IO请求中携带的LUN标识、数据起始地址和数据长度查找所述全局共享缓存表,确定是否查找到对应的全局共享缓存表项;
如果查找到对应的全局共享缓存表项,基于所述全局共享缓存表项从所述全局共享缓存中获取目标数据,并将所述目标数据返回所述应用服务器;其中,所述目标数据为所述读IO请求所请求的数据;
如果未查找到对应的全局共享缓存表项,向所述读IO请求中携带的LUN标识对应的实体LUN转发所述读IO请求,以由所述实体LUN返回所述目标数据,并将所述目标数据返回所述应用服务器。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
接收到所述应用服务器发送的写IO请求;
向所述写IO请求中携带的LUN标识对应的实体LUN转发所述写IO请求,以由所述实体LUN处理所述写IO请求并在处理完成后返回写IO响应;
根据所述写IO请求中携带的LUN标识、数据起始地址和数据长度查找所述全局共享缓存表,确定是否查找到对应的全局共享缓存表项;
如果查找到对应的全局共享缓存表项,基于所述全局共享缓存表项更新所述全局共享缓存中的数据,并在接收到实体LUN返回的所述写IO响应后,向所述应用服务器转发所述写IO响应;
如果未查找到对应的全局共享缓存表项,在接收到实体LUN返回的写IO响应后,向所述应用服务器转发所述写IO响应。
4.根据权利要求2或3所述的方法,其特征在于,所述查找所述全局共享缓存表前,还包括:
确定所述全局共享缓存表是否加锁;
如果是,等待预设时长后重新确定所述全局共享缓存表是否加锁;
如果不是,查找所述全局共享缓存表。
5.根据权利要求1所述的方法,其特征在于,所述加锁条件包括:
定时器超时;或者,
本地缓存中的数据量达到预设的第一容量阈值。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述多控存储系统的所有存储节点的全局共享缓存中的数据达到预设的第二容量阈值时,根据预设清理策略删除预设大小的数据。
7.一种多控存储系统全局共享缓存的装置,所述方法应用于多控存储系统的第一存储节点,所述多控存储系统包括多个存储节点,各存储节点的缓存都被划分为全局共享缓存和本地缓存,其特征在于,包括:
加锁单元,用于当预定义的加锁条件被触发时,对本地的全局共享缓存表加锁,并向其它存储节点发送加锁指令,以由各存储节点基于所述加速指令为自身的全局共享缓存表加锁;
分配单元,用于将本地缓存中的数据分配至各存储节点的全局共享缓存;
更新单元,用于基于数据的分配结果更新本地的所述全局共享缓存表,并将所述全局共享缓存表的更新内容发送至其它存储节点,以由其它存储节点基于所述更新内容更新自身的所述全局共享缓存表并在更新完成后返回更新完成报文;
解锁单元,用于对本地的全局共享缓存表解锁,并在接收其它存储节点返回的所述更新完成报文后,向其它存储节点发送解锁指令,以由其它存储节点基于所述解锁指令为自身的全局共享缓存表解锁。
8.根据权利要求7所述的装置,其特征在于,所述全局共享缓存表包括若干条全局共享缓存表项,每条全局共享缓存表项包括LUN标识、数据起始地址、数据长度、存储节点标识和全局缓存地址的映射关系;
所述装置还包括:
接收单元,用于接收到应用服务器发送的读IO请求;
查找单元,用于根据所述读IO请求中携带的LUN标识、数据起始地址和数据长度查找所述全局共享缓存表,确定是否查找到对应的全局共享缓存表项;
获取单元,用于如果查找到对应的全局共享缓存表项,基于所述全局共享缓存表项从所述全局共享缓存中获取目标数据,并将所述目标数据返回所述应用服务器;其中,所述目标数据为所述读IO请求所请求的数据;
转发单元,用于如果未查找到对应的全局共享缓存表项,向所述读IO请求中携带的LUN标识对应的实体LUN转发所述读IO请求,以由所述实体LUN返回所述目标数据,并将所述目标数据返回所述应用服务器。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
所述接收单元,进一步用于接收到所述应用服务器发送的写IO请求;
所述转发单元,进一步用于向所述写IO请求中携带的LUN标识对应的实体LUN转发所述写IO请求,以由所述实体LUN处理所述写IO请求并在处理完成后返回写IO响应;
所述查找单元,进一步用于根据所述写IO请求中携带的LUN标识、数据起始地址和数据长度查找所述全局共享缓存表,确定是否查找到对应的全局共享缓存表项;
所述更新单元,进一步用于如果查找到对应的全局共享缓存表项,基于所述全局共享缓存表项更新所述全局共享缓存中的数据,并在接收到实体LUN返回的所述写IO响应后,向所述应用服务器转发所述写IO响应;
所述转发单元,进一步用于如果未查找到对应的全局共享缓存表项,在接收到实体LUN返回的写IO响应后,向所述应用服务器转发所述写IO响应。
10.根据权利要求8或9所述的方法,其特征在于,所述查找单元,进一步用于:
确定所述全局共享缓存表是否加锁;
如果是,等待预设时长后重新确定所述全局共享缓存表是否加锁;
如果不是,查找所述全局共享缓存表。
11.根据权利要求7所述的装置,其特征在于,所述加锁条件包括:
定时器超时;或者,
本地缓存中的数据量达到预设的第一容量阈值。
12.根据权利要求7所述的装置,其特征在于,所述装置还包括:
删除单元,用于当所述多控存储系统的所有存储节点的全局共享缓存中的数据达到预设的第二容量阈值时,根据预设清理策略删除预设大小的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711346546.2A CN107992270B (zh) | 2017-12-15 | 2017-12-15 | 一种多控存储系统全局共享缓存的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711346546.2A CN107992270B (zh) | 2017-12-15 | 2017-12-15 | 一种多控存储系统全局共享缓存的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107992270A true CN107992270A (zh) | 2018-05-04 |
CN107992270B CN107992270B (zh) | 2021-02-26 |
Family
ID=62038827
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711346546.2A Active CN107992270B (zh) | 2017-12-15 | 2017-12-15 | 一种多控存储系统全局共享缓存的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107992270B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109491620A (zh) * | 2018-11-23 | 2019-03-19 | 柏科数据技术(深圳)股份有限公司 | 存储数据重写方法、装置、服务器及存储介质 |
CN112328512A (zh) * | 2020-09-22 | 2021-02-05 | 北京计算机技术及应用研究所 | 一种应用于多控存储系统的缓存同步系统及方法 |
CN112995301A (zh) * | 2021-02-07 | 2021-06-18 | 中国工商银行股份有限公司 | 应用于分布式系统的数据处理方法和装置 |
CN115914236A (zh) * | 2023-01-05 | 2023-04-04 | 中国联合网络通信集团有限公司 | 存储空间的分配调整方法、装置、电子设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1852318A (zh) * | 2006-04-19 | 2006-10-25 | 华中科技大学 | 适用于对象网络存储的分布式多级缓存系统 |
CN100518146C (zh) * | 2006-11-09 | 2009-07-22 | 华中科技大学 | 一种用于集群存储系统的全局缓存管理的方法 |
CN102387204A (zh) * | 2011-10-21 | 2012-03-21 | 中国科学院计算技术研究所 | 维护集群缓存一致性的方法及系统 |
CN103914265A (zh) * | 2014-04-09 | 2014-07-09 | 江苏物联网研究发展中心 | 集群细粒度内存管理方法 |
US20140281273A1 (en) * | 2013-03-15 | 2014-09-18 | Symantec Corporation | Providing Local Cache Coherency in a Shared Storage Environment |
JP2015191604A (ja) * | 2014-03-28 | 2015-11-02 | 富士通株式会社 | 制御装置、制御プログラム、および制御方法 |
CN105677256A (zh) * | 2016-01-08 | 2016-06-15 | 中电科华云信息技术有限公司 | 基于本地缓存的虚拟磁盘系统及调度方法 |
CN105930520A (zh) * | 2016-05-23 | 2016-09-07 | 浪潮电子信息产业股份有限公司 | 一种基于集群文件系统的缓存保护方法 |
-
2017
- 2017-12-15 CN CN201711346546.2A patent/CN107992270B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1852318A (zh) * | 2006-04-19 | 2006-10-25 | 华中科技大学 | 适用于对象网络存储的分布式多级缓存系统 |
CN100518146C (zh) * | 2006-11-09 | 2009-07-22 | 华中科技大学 | 一种用于集群存储系统的全局缓存管理的方法 |
CN102387204A (zh) * | 2011-10-21 | 2012-03-21 | 中国科学院计算技术研究所 | 维护集群缓存一致性的方法及系统 |
US20140281273A1 (en) * | 2013-03-15 | 2014-09-18 | Symantec Corporation | Providing Local Cache Coherency in a Shared Storage Environment |
JP2015191604A (ja) * | 2014-03-28 | 2015-11-02 | 富士通株式会社 | 制御装置、制御プログラム、および制御方法 |
CN103914265A (zh) * | 2014-04-09 | 2014-07-09 | 江苏物联网研究发展中心 | 集群细粒度内存管理方法 |
CN105677256A (zh) * | 2016-01-08 | 2016-06-15 | 中电科华云信息技术有限公司 | 基于本地缓存的虚拟磁盘系统及调度方法 |
CN105930520A (zh) * | 2016-05-23 | 2016-09-07 | 浪潮电子信息产业股份有限公司 | 一种基于集群文件系统的缓存保护方法 |
Non-Patent Citations (2)
Title |
---|
GALA YADGAR,MICHAEL FACTOR,KAI LI,ASSAF SCHUSTER;: "Management of Multilevel, Multiclient Cache Hierarchies with Application Hints", 《ACM TRANSACTIONS ON COMPUTER SYSTEMS》 * |
吴霖: "基于多核网络处理器的P2P高速流量识别系统的设计与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109491620A (zh) * | 2018-11-23 | 2019-03-19 | 柏科数据技术(深圳)股份有限公司 | 存储数据重写方法、装置、服务器及存储介质 |
CN109491620B (zh) * | 2018-11-23 | 2020-08-14 | 柏科数据技术(深圳)股份有限公司 | 存储数据重写方法、装置、服务器及存储介质 |
CN112328512A (zh) * | 2020-09-22 | 2021-02-05 | 北京计算机技术及应用研究所 | 一种应用于多控存储系统的缓存同步系统及方法 |
CN112995301A (zh) * | 2021-02-07 | 2021-06-18 | 中国工商银行股份有限公司 | 应用于分布式系统的数据处理方法和装置 |
CN115914236A (zh) * | 2023-01-05 | 2023-04-04 | 中国联合网络通信集团有限公司 | 存储空间的分配调整方法、装置、电子设备及存储介质 |
CN115914236B (zh) * | 2023-01-05 | 2023-07-25 | 中国联合网络通信集团有限公司 | 存储空间的分配调整方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107992270B (zh) | 2021-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107992270A (zh) | 一种多控存储系统全局共享缓存的方法及装置 | |
US10530888B2 (en) | Cached data expiration and refresh | |
US8396936B2 (en) | Computer system with cooperative cache | |
CN105872040B (zh) | 一种利用网关节点缓存优化分布式块存储写性能的方法 | |
US9002850B2 (en) | Balancing caching load in a peer-to-peer based network file system | |
US10834191B2 (en) | Collaboration data proxy system in cloud computing platforms | |
CN103678523B (zh) | 分布式高速缓存cache数据访问方法和装置 | |
US8176256B2 (en) | Cache regions | |
CN105635196B (zh) | 一种获取文件数据的方法、系统和应用服务器 | |
US8108620B2 (en) | Cooperative caching technique | |
CN104811493B (zh) | 一种网络感知的虚拟机镜像存储系统及读写请求处理方法 | |
CN106648464B (zh) | 基于云存储的多节点混合块缓存数据读写方法及系统 | |
CN104536702B (zh) | 一种存储阵列系统及数据写请求处理方法 | |
CN110109889A (zh) | 一种分布式内存文件管理系统 | |
CN102694828B (zh) | 一种分布式缓存系统数据存取的方法及装置 | |
JP2012530294A (ja) | ガベージコレクション中の分散キャッシュの可用性 | |
US20210157740A1 (en) | Efficient cache management | |
CN103312624A (zh) | 一种消息队列服务系统和方法 | |
CN108363641A (zh) | 一种主备机数据传递方法、控制节点以及数据库系统 | |
JP2004531005A (ja) | データベースへのアクセスを制御するための異なったデータベースサーバ間のデータベースのオーナーシップのパーティション化 | |
CN105701219A (zh) | 一种分布式缓存的实现方法 | |
CN107229593A (zh) | 多片多核处理器的缓存一致性操作方法及多片多核处理器 | |
US20200356419A1 (en) | Synchronization between processes in a coordination namespace | |
CN110147345A (zh) | 一种基于rdma的键值存储系统及其工作方法 | |
CN110032543A (zh) | 一种存储文件系统的管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |