买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种处理IO请求的方法及装置_杭州宏杉科技股份有限公司_201810101626.X 

申请/专利权人:杭州宏杉科技股份有限公司

申请日:2018-02-01

公开(公告)日:2021-02-09

公开(公告)号:CN108268219B

主分类号:G06F3/06(20060101)

分类号:G06F3/06(20060101)

优先权:

专利状态码:有效-授权

法律状态:2021.02.09#授权;2018.08.03#实质审查的生效;2018.07.10#公开

摘要:本申请提供一种处理IO请求的方法及装置,应用于存储设备,该存储设备的持久性存储介质为固态硬盘,所述方法包括:接收写请求,将所述写请求中的待写入数据写入到缓存空间,并返回写入成功信息;基于预设的业务策略对所述待写入数据进行处理;其中,所述业务策略包括重删和压缩中的一种或两种;将处理过的所述待写入数据写入到所述固态硬盘。在本申请技术方案中,存储设备在将写请求的待写入数据写入到缓存空间后即返回写入成功信息,提高了处理IO请求的响应时间,并在将待写入数据进行重删或压缩处理后写入固态硬盘,减少了写入固态硬盘的数据量,从而减少固态硬盘中闪存介质的磨损,延长了存储设备的使用寿命。

主权项:1.一种处理IO请求的方法,应用于存储设备,所述存储设备的持久存储介质为固态硬盘,其特征在于,所述存储设备包括前端IO模块、IO数据读写缓存模块、LUN业务模块、元数据读写缓存模块、硬盘读写模块;其中,所述IO数据读写缓存模块置于所述LUN业务模块之前,先于LUN业务模块处理IO请求,包括:所述IO数据读写缓存模块接收经前端IO模块下发的写请求,将所述写请求中的待写入数据写入到缓存空间,并返回写入成功信息;所述LUN业务模块基于预设的业务策略对所述待写入数据进行处理;其中,所述业务策略包括重删和压缩中的一种或两种;所述硬盘读写模块将所述LUN业务模块处理过的所述待写入数据写入到所述固态硬盘。

全文数据:一种处理10请求的方法及装置技术领域[0001]本申请涉及存储领域,特别涉及一种处理10请求的方法及装置。背景技术[0002]存储设备能为用户提供方便快捷的数据写入、数据保护和数据读取的功能。其中,实现数据的快速读写是衡量存储设备性能的重要标准。[0003]参见图1,为现有技术的一种存储设备的架构图,如图1所示,存储设备包括以下功能模块:[0004]前端10模块负责解析各类网络存储协议,比如FCFibreChannel,光纤通道技术、ISCSIInternetSmallComputerSystemInterface,互联网小型计算机系统接口)等,将用户发送的读与请求转化为存储设备内部的;[0InputOutput,输入输出)请求。[0005]LUNLogicalUnitNumber,逻辑单元号业务模块负责LUN空间的分配和管理,以及执行基于LUN的高级功能,比如:精简配置、重删、快照、压缩等。[0006]1〇数据读写缓存模块,负责10数据的缓存,通过各种写缓存算法和读缓存算法,解决CPU处理和硬盘处理之间速度不对等的问题,降低10请求的响应延时;存储设备一般用内存来做缓存,并提供掉电保护的能力。[0007]元数据读写缓存模块,负责元数据的缓存,由于元数据间的逻辑关系相比10数据间的逻辑关系复杂,因此,缓存元数据采用的读写算法与缓存10数据的算法不同。[0008]硬盘读写模块,负责向硬盘中写入或读取数据,硬盘可以包括机械硬盘和固态硬盘,通常情况下,存储设备会通过RAID^RedundantArraysofIndependentDisks,磁盘阵列技术将硬盘进行组织,以提供冗余数据保护。[0009]如图1所示,10数据读写缓存模块和元数据读写缓存模块处于LUN业务模块和硬盘读写模块之间,主要解决二者读写数据的速度不同的问题。[0010]为保持较高的读请求的缓存命中率,存储设备需要保持简单、有规律的10模型,这种情况下,会简化LUN业务模块的功能,取消精简配置、重删、快照和压缩等功能。然而,固态硬盘的磨损次数有限,当存储设备以固态硬盘作为持久缓存介质时,应当延长固态硬盘的寿命。存储设备的LUN业务模块简化了高级功能后,无法减少固态硬盘中闪存介质的磨损。发明内容[0012]有鉴于此,本申请提供一种处理10请求的方法及装置,用以减少固态硬盘的闪存介质的磨损,从而延长存储设备的使用寿命。[0013]具体地,本申请是通过如下技术方案实现的:[0014]一种处理1〇请求的方法,应用于存储设备,所述存储设备的持久存储介质为固态硬盘,包括:[0015]接收写请求,将所述写请求中的待写入数据写入到缓存空间,并返回写入成功信息;[0016]基于预设的业务策略对所述待写入数据进行处理;其中,所述业务策略包括重删和压缩中的一种或两种;[0017]将处理过的所述待写入数据写入到所述固态硬盘。[0018]在所述处理10请求的方法中,所述方法还包括:、[0019]在基于所述业务策略处理所述待写入数据后,基于处理结果,更新所述缓存空间中的元数据;其中,所述元数据包括逻辑地址映射表、重删指纹映射库、本地缓存表,逻辑地址映射表包括逻辑地址和指纹的映射关系,重删指纹映射库包括物理地址和指纹的映射关系,本地缓存表包括逻辑地址、数据长度和本地缓存地址的映射关系;[0020]基于预设的异步存储策略,将所述元数据写入到所述固态硬盘。[0021]在所述处理10请求的方法中,所述方法还包括:[0022]接收读请求,确定所述读请求是否命中缓存;[0023]如果未命中缓存,基于所述读请求中的逻辑地址查找所述元数据,确定所述读请求的待读取数据的物理地址;[0024]根据所述待读取数据的物理地址和所述读请求中的数据长度读取所述待读取数据,并返回所述待读取数据。[0025]在所述处理10请求的方法中,所述方法还包括:[0026]如果命中缓存,从所述缓存空间中读取所述待读取数据,并返回所述待读取数据;其中,所述缓存空间中的数据为处理所述写请求时写入的脏数据。[0027]在所述处理10请求的方法中,所述方法还包括:[0028]当所述存储设备重启,从所述固态硬盘中将所述元数据读取到所述缓存空间。[0029]一种处理10请求的装置,应用于存储设备,所述存储设备的持久性存储介质为固态硬盘,包括:[0030]接收单元,用于接收写请求,将所述写请求中的待写入数据写入到缓存空间,并返回写入成功信息;[0031]处理单元,用于基于预设的业务策略对所述待写入数据进行处理;其中,所述业务策略包括重删和压缩中的一种或两种;[0032]写入单元,用于将处理过的所述待写入数据写入到所述固态硬盘。[0033]在所述处理10请求的装置中,所述装置还包括:[0034]更新单元,用于在基于所述业务策略处理所述待写入数据后,基于处理结果,更新所述缓存空间中的元数据;其中,所述元数据包括逻辑地址映射表、重删指纹映射库、本地缓存表,逻辑地址映射表包括逻辑地址和指纹的映射关系,重删指纹映射库包括物理地址和指纹的映射关系,本地缓存表包括逻辑地址、数据长度和本地缓存地址的映射关系;[0035]所述写入单元,进一步用于基于预设的异步存储策略,将所述元数据写入到所述固态硬盘。[0036]在所述处理10请求的装置中,所述装置还包括:[0037]所述接收单元,进一步用于接收读请求,确定所述读请求是否命中缓存;[0038]查找单元,用于如果未命中缓存,基于所述读请求中的逻辑地址查找所述元数据,确定所述读请求的待读取数据的物理地址;[0039]读取单元,用于根据所述待读取数据的物理地址和所述读请求中的数据长度k取所述待读取数据,并返回所述待读取数据。[0040]在所述处理10请求的装置中,所述装置还包括:[0041]所述读取单元,进一步用于如果命中缓存,从所述缓存空间中读取所述待读取数据,并返回所述待读取数据;其中,所述缓存空间中的数据为处理所述写请求时写入的脏数据。[0042]在所述处理10请求的装置中,所述装置还包括:[0043]所述读取单元,进一步用于当所述存储设备重启,从所述固态硬盘中将所述元数据读取到所述缓存空间。[0044]在本申请实施例中,存储设备接收写请求,将上述写请求中的待写入数据写入到缓存空间后即可返回写入成功信息,显著提高了处理10请求的响应时间;存储设备可以基于预设的业务策略对缓存空间中的上述待写入数据进行处理,其中,上述业务策略包括重删和压缩中的一种或两种,然后将处理过的上述待写入数据写入到固态硬盘;[0045]由于存储设备可以对上述待写入数据进行重删或压缩处理,减少了向固态硬盘写入的数据量,从而减少固态硬盘中闪存介质的磨损,延长了存储设备的使用寿命;此外,存储设备在将上述写请求的待写入数据写入到缓存空间后即返回写入成功信息,从而避免了对上述待写入数据进行处理产生的10响应的时延。附图说明[0046]图1是为现有技术的一种存储设备的架构图;[0047]图2是本申请示出的一种存储设备的架构图;[0048]图3是本申请示出的一种处理10请求的方法的流程图;[0049]图4是本申请示出的一种处理写请求的流程图;[0050]图5是本申请不出的一种处理读请求的流程图;[0051]图6是本申请示出的一种处理10请求的装置的实施例框图;[0052]图7是本申请示出的一种处理1〇请求的装置的硬件结构图。具体实施方式[0053]为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对现有技术方案和本发明实施例中的技术方案作进一步详细的说明。[00M]参见图2,为本申请示出的一种存储设备的架构图,如图2所示,10数据读写缓存模块^于LUN业务模块之前,先于LUN业务模块处理1〇请求。使得存储设备在接收到写请求时,将写请求中的待写入数据写入到缓存空间中即可返回写入成功信息,提高处理〗〇请求的响应时间。[0055]需要指出的是,本申请中,10数据读写缓存模块只在处理写请求时缓存待写入数据,在处理读请求时=缓存待读取数据,因此极大地减少了缓存数据所需的内存空间。在这种情况下,元数据读写缓存模块可以使用更多的内存空间用于缓存元数据,从而支持LUN业务模块实现更丰富的业务功能。[0056]LUN业务模块可以基于预设的业务策略对缓存空间中的待写入数据进行处理,丰富了存储设备的业务功能。其中,上述业务策略可以包括重删、压缩和精简配置中的一种或多种的组合。[0057]参见图3,为本申请示出的一种处理10请求的方法的流程图,该方法应用于存储设备,该存储设备的持久性存储介质为固态硬盘,所述方法包括以下步骤:[G058]步骤301:接收写请求,将所述写请求中的待写入数据写入到缓存空间,并返回写入成功信息。[°059]存储设备接收到写请求,首先可以将上述写请求中的待写入数据写入到缓存空间,然后向发送写请求的设备返回写入成功信息。[0060]需要指出的是,缓存空间可以为待写入数据提供掉电保护。具体可参照现有相关技术,本申请在此不再赘述。[0061]通过该措施,可以显著提高处理写请求的响应时间。[0062]步骤302:基于预设的业务策略对所述待写入数据进行处理;其中,所述业务策略包括重删和压缩中的一种或两种。[0063]存储设备可以基于预设的业务策略对缓存空间中的上述待写入数据进行处理,其中,上述业务策略可以是重删,也可以是压缩,或者是重删和压缩。[0064]需要指出的是,存储设备对上述待写入数据进行处理的时机可以是在待写入数据保存到缓存空间之后的某个时间点。换而言之,存储设备可以在将多个写请求中的待写入数据保存到缓存空间后,再基于上述业务策略进行处理。[0065]参见图4,为本申请示出的一种处理写请求的流程图,如图4所示,存储设备将写请求中的待写入数据保存到缓存空间后,会异步处理上述待写入数据。[0066]通过上述措施,存储设备可以减少向固态硬盘写入的数据量,减少固态硬盘的闪存介质的磨损,从而延长存储设备的使用寿命。[0067]在本申请实施例中,存储设备在基于上述业务策略处理上述待写入数据后,可以基于处理结果,更新缓存空间中的元数据。[0068]其中,上述元数据包括与上述业务策略相关的元数据和存储流程相关的元数据,可以包括逻辑地址映射表、重删指纹映射库和本地缓存表,逻辑地址映射表包括逻辑地址和指纹的映射关系,重删指纹映射库包括物理地址和指纹的映射关系,本地缓存表包括逻辑地址、数据长度和本地缓存地址的映射关系。[0069]具体的更新过程可以参照现有相关技术,本申请在此不再赘述。[0070]参见图4,存储设备可以基于预设的异步存储策略,将上述元数据写入到固态硬盘。[0071]比如,存储设备可以在上述缓存空间中的元数据达到预设的容量阈值时,将元数据写入固态硬盘;[0072]或者,存储设备可以周期性地将上述缓存空间中的元数据写入到固态硬盘。[0073]后续当存储设备重启,可以从上述固态硬盘中将上述元数据读取到上述缓存空间,从而使得存储设备可以直接通过缓存空间中的元数据处理10请求,提高处理10请求的响应时间。[0074]步骤3〇3:将处理过的所述待写入数据写入到所述固态硬盘。[0075]存储设备在基于上述业务策略处理缓存空间中的待写入数据,可以将上述待写入数据写入到固态硬盘。[0076]至此,存储设备完成对写请求的处理过程。[0077]参见图5,为本申请示出的一种处理写请求的流程图,如图5所示,存储设备接收到读请求,首先确定上述读请求是否命中缓存。[0078]具体地,存储设备可以基于读请求中的逻辑地址包括LUN标识和数据起始地址)查找上述本地缓存表,确定是否存在对应的本地缓存表项。[0079]一方面,如果存在对应的本地缓存表项,说明命中缓存,存储设备可以从上述缓存空间中读取上述待读取数据,并向发送读请求的设备返回上述待读取数据。[0080]需要指出的是,缓存空间中的数据全都是处理写请求时写入的脏数据。[0081]另一方面,如果不存在对应的本地缓存表项,说明未命中缓存,在这种情况下,存储设备可以基于上述读请求中的逻辑地址查找上述元数据,确定上述读请求的待读取数据的物理地址。[0082]具体地,存储设备可以基于上述逻辑地址查找上述逻辑地址映射表,确定上述待读取数据的指纹,然后基于上述待读取数据的指纹查找上述重删指纹映射库,确定上述待读取数据的物理地址。[0083]进一步地,存储设备可以基于上述物理地址和上述读请求中的数据长度从固态硬盘中读取上述待读取数据,然后向发送读请求的设备返回上述待读取数据。[0084]^由于保存元数据的缓存空间较大,缓存空间中可保存大量元数据用于处理10请求,提高了处理10请求的响应时间。而固态硬盘本身的响应速度较快,取消处理读请求时缓存待读取数据的步骤,并不会对处理读请求造成太大的影响。因此,从整体上看,处理写请求和处理读请求的响应时间都减少了。[0085]综上所述,在本申请实施例中,存储设备接收写请求,可以将上述写请求中的待写入数据写入到缓存空间后即返回写入成功信息,显著提高了处理写请求的响应时间;[0086]存储设备基于预设的业务策略对上述待写入数据进行异步处理,然后将处理过的上述待写入数据写入到固态硬盘;上述业务策略包括重删或压缩中的一种或两种,经过处理后的待写入数据的数据量变小,减少了向固态硬盘写入待写入数据造成的闪存介质的磨损,有效延长了存储设备的使用寿命;[0087]此外,本申请中,存储设备在处理读请求时,不缓存待读取数据,减少了缓存待读取数据的系统开销,也使得更多的内存空间用于缓存元数据,从而提高了处理读请求时查找元数据的速度,减少了处理读请求的响应时间;而大量的元数据也可以更好地支持存储设备执行上述业务策略。[0088]与前述处理10请求的方法的实施例相对应,本申请还提供了处理10请求的装置的实施例。[0089]参见图6,为本申请示出的一种处理1〇请求的装置的实施例框图:[0090]如图6所示,该处理10请求的装置60包括:[0091]接收单元eio,用于接收写请求,将所述写请求中的待写入数据写入到缓存空间,并返回写入成功信息。[0092]处理单元620,用于基于预设的业务策略对所述待写入数据进行处理;其中,所述业务策略包括重删和压缩中的一种或两种。[0093]写入单元630,用于将处理过的所述待写入数据写入到所述固态硬盘。[0094]在本例中,所述装置还包括:[0095]更新单元640图中未示出),用于在基于所述业务策略处理所述待写入数据后,基于处理结果,更新所述缓存空间中的元数据;其中,所述元数据包括逻辑地址映射表、重删指纹映射库、本地缓存表,逻辑地址映射表包括逻辑地址和指纹的映射关系,重删指纹映射库包括物理地址和指纹的映射关系,本地缓存表包括逻辑地址、数据长度和本地缓存地址的映射关系。[0096]所述写入单元630,进一步用于基于预设的异步存储策略,将所述元数据写入到所述固态硬盘。[0097]在本例中,所述装置还包括:[0098]所述接收单元610,进一步用于接收读请求,确定所述读请求是否命中缓存。[0099]查找单元650图中未示出),用于如果未命中缓存,基于所述读请求中的逻辑地址查找所述元数据,确定所述读请求的待读取数据的物理地址。[0100]读取单元660图中未示出),用于根据所述待读取数据的物理地址和所述读请求中的数据长度读取所述待读取数据,并返回所述待读取数据。[0101]在本例中,所述装置还包括:[0102]所述读取单元660图中未示出),进一步用于如果命中缓存,从所述缓存空间中读取所述待读取数据,并返回所述待读取数据;其中,所述缓存空间中的数据为处理所述写请求时写入的脏数据。[0103]在本例中,所述装置还包括:[0104]所述读取单元660图中未示出),进一步用于当所述存储设备重启,从所述固态硬盘中将所述元数据读取到所述缓存空间。[0105]本申请处理10请求的装置的实施例可以应用在存储设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在存储设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图7所示,为本申请处理10请求的装置所在存储设备的一种硬件结构图,除了图7所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的存储设备通常根据该处理10请求的装置的实际功能,还可以包括其他硬件,对此不再赘述。[0106]上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。[0107]对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。[0108]以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

权利要求:1.一种处理10请求的方法,应用于存储设备,所述存储设备的持久存储介质为固态硬盘,其特征在于,包括:接收写请求,将所述写请求中的待写入数据写入到缓存空间,并返回写入成功信息;基于预设的业务策略对所述待写入数据进行处理;其中,所述业务策略包括重删和压缩中的一种或两种;将处理过的所述待写入数据写入到所述固态硬盘。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:在基于所述业务策略处理所述待写入数据后,基于处理结果,更新所述缓存空间中的元数据;其中,所述元数据包括逻辑地址映射表、重删指纹映射库、本地缓存表,逻辑地址映射表包括逻辑地址和指纹的映射关系,重删指纹映射库包括物理地址和指纹的映射关系,本地缓存表包括逻辑地址、数据长度和本地缓存地址的映射关系;基于预设的异步存储策略,将所述元数据写入到所述固态硬盘。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:接收读请求,确定所述读请求是否命中缓存;如果未命中缓存,基于所述读请求中的逻辑地址查找所述元数据,确定所述读请求的待读取数据的物理地址;根据所述待读取数据的物理地址和所述读请求中的数据长度读取所述待读取数据,并返回所述待读取数据。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:如果命中缓存,从所述缓存空间中读取所述待读取数据,并返回所述待读取数据;其中,所述缓存空间中的数据为处理所述写请求时写入的脏数据。5.根据权利要求2所述的方法,其特征在于,所述方法还包括:当所述存储设备重启,从所述固态硬盘中将所述元数据读取到所述缓存空间。6.—种处理10请求的装置,应用于存储设备,所述存储设备的持久性存储介质为固态硬盘,其特征在于,包括:接收单元,用于接收写请求,将所述写请求中的待写入数据写入到缓存空间,并返回写入成功彳百息;处理单元,用于基于预设的业务策略对所述待写入数据进行处理;其中,所述业务策略包括重删和压缩中的一种或两种;写入单元,用于将处理过的所述待写入数据写入到所述固态硬盘。7.根据权利要求6所述的装置,其特征在于,所述装置还包括:更新单元,用于在基于所述业务策略处理所述待写入数据后,基于处理结果,更新所述缓存空间中的元数据;其中,所述元数据包括逻辑地址映射表、重删指纹映射库、本地缓存表,逻辑地址映射表包括逻辑地址和指纹的映射关系,重删指纹映射库包括物理地址和指纹的映射关系,本地缓存表包括逻辑地址、数据长度和本地缓存地址的映射关系•,所述写入单元,进一步用于基于预设的异步存储策略,将所述元数据写入到所述固态硬盘。8.根据权利要求7所述的装置,其特征在于,所述装置还包括:所述接收单元,进一步用于接收读请求,确定所述读请求是否命中缓存;查找单元,用于如果未命中缓存,基于所述读请求中的逻辑地址查找所述元数据,确定所述读请求的待读取数据的物理地址;读取单元,用于根据所述待读取数据的物理地址和所述读请求中的数据长度读取所述待读取数据,并返回所述待读取数据。9.根据权利要求8所述的装置,其特征在于,所述装置还包括:所述读取单元,进一步用于如果命中缓存,从所述缓存空间中读取所述待读取数据,并返回所述待读取数据;其中,所述缓存空间中的数据为处理所述写请求时写入的脏数据。10.根据权利要求7所述的装置,其特征在于,所述装置还包括:所述读取单元,进一步用于当所述存储设备重启,从所述固态硬盘中将所述元数据读取到所述缓存空间。

百度查询: 杭州宏杉科技股份有限公司 一种处理IO请求的方法及装置

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。