一种写入数据的方法及系统的制作方法

文档序号:6367563阅读:234来源:国知局
专利名称:一种写入数据的方法及系统的制作方法
技术领域
本发明涉及数据存储技术领域,更具体地说,涉及一种写入数据的方法及系统。
背景技术
随着科技的发展与因特网的广泛应用,企业、政府等机关产生的数据量越来越大,为这些数据合理规划存储空间成为当前存储解决方案的当务之急。目前在众多的存储解决方案中,精简配置(thin provisioning)由于其按需分配的存储空间管理方式得到了广泛的应用。现有技术提供的精简配置系统包括精简池,精简LUN(Logical Unit Number,逻 辑单元号)和映射表;其中,精简池为精简配置系统底层的物理存储空间,其分配粒度是固定的;精简LUN为建立在精简池之上的逻辑硬盘;映射表包括多个映射标记,该映射标记用于记录精简池存储的数据的物理地址,与该数据对应的精简LUN逻辑地址的对应关系。精简配置系统将数据写入存储的过程如下精简LUN根据主机下发的请求写入数据的命令,以精简池固定分配粒度的整数倍大小向精简池申请存储空间,精简池分配存储空间,以使待写入数据写入精简池分配的存储空间中,在待写入数据写入精简池分配的存储空间后,映射表记录该待写入数据在精简LUN上对应的逻辑地址,与在精简池中对应的物理地址,以表示该待写入数据实际分配的存储空间。由于现有技术中,映射表的一个映射标记所能记录的存储空间大小是以精简池的分配粒度为标准,因此当精简池的分配粒度固定时,一个映射标记只能记录一个大小为该固定分配粒度的存储空间,如果申请的存储空间是该固定分配粒度的N倍(N为大于I的正整数),那么就会产生N个映射标记。现有精简配置系统的精简池是以自身固定的分配粒度分配存储空间,且为综合大数据业务和小数据业务的需求,固定分配粒度的取值较为适中(通常为兆级),因此存在浪费系统资源,系统资源利用率低的现象,即使分配粒度过小,也会使用多个映射标记对该大存储需求业务进行记录,这就造成系统内存资源的浪费。

发明内容
有鉴于此,本发明实施例提供一种写入数据的方法及系统,以解决现有精简配置系统由于精简池以自身固定的分配粒度分配存储空间,而造成的浪费系统资源、系统资源利用率低的问题。为实现上述目的,本发明提供如下技术方案一种写入数据的方法,包括接收请求写入数据的命令,所述请求写入数据的命令包括待写入数据、所述待写入数据的长度以及待写入精简逻辑单元号LUN的逻辑地址;判断是否给所述待写入精简LUN的逻辑地址完全分配精简池存储空间;若是,则将所述待写入数据写入精简池已分配的存储空间中;若否,确定所述逻辑地址中未被分配精简池存储空间的连续的逻辑地址所能写入数据的长度,以存储器所能提供的最小存储单元的整数倍大小,向所述精简池申请大于或等于所述连续的逻辑地址所能写入数据的长度的存储空间;接收精简池响应上述申请所分配的存储空间的信息,将待写入数据写入相应的存储空间中。本发明还提 供一种写入数据的系统,包括接收模块,用于接收请求写入数据的命令,所述请求写入数据的命令包括待写入数据、所述待写入数据的长度以及待写入精简逻辑单元号LUN的逻辑地址;判断模块,用于判断是否给所述待写入精简LUN的逻辑地址完全分配精简池存储空间;确定模块,用于在所述判断模块的判断结果为否的情况下,确定所述逻辑地址中,未被分配精简池存储空间的连续的逻辑地址所能写入数据的长度;申请模块,用于以存储器所能提供的最小存储单元的整数倍大小,向所述精简池申请大于或等于所述连续的逻辑地址所能写入数据的长度的存储空间;存储信息接收模块,用于接收精简池响应所述申请模块的申请所分配的存储空间的信息;写入模块,用于在所述判断模块的判断结果为是的情况下,将所述待写入数据写入精简池已分配的存储空间中,或在所述存储信息接收模块接收到精简池所分配的存储空间信息后,将待写入数据写入相应的存储空间中。基于上述技术方案,本发明实施例所提供的写入数据的方法取消了现有技术中的精简池固定分配粒度,以存储器所能提供的最小存储单元的整数倍大小,向精简池申请存储空间,由于申请的存储空间是以存储器所能提供的最小存储单元为基础,因此可以使得申请到的精简池中的存储空间无限接近于数据所需的存储空间大小,尽量避免浪费精简池中的系统资源;其次,精简池分配出的存储空间作为精简池的一个整体分配粒度,不再以现有技术的精简池固定分配粒度进行区分,使得待写入精简LUN的逻辑地址,与其在精简池上对应的物理地址,可以一个映射标记的形式记录在映射表中,节省了内存资源。本发明解决了现有精简配置系统由于精简池以自身固定的分配粒度分配存储空间,而造成的浪费系统资源、系统资源利用率低的问题,实现了系统资源的有效利用。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图I为本发明实施例提供的一种写入数据的方法的流程图;图2为本发明实施例提供的确定逻辑连续地址的方法流程图;图3为本发明实施例提供的一种写入数据的系统的结构框图;图4为本发明实施例提供的判断模块的结构框图;图5为本发明实施例提供的确定模块的结构框图;图6为本发明实施例提供的申请模块的结构框图7为本发明实施例提供的写入数据的系统的另一结构框图;图8为本发明实施例提供的写入数据的系统的硬件架构图;图9为本发明实施例提供的写入数据的系统的另一硬件架构图。
具体实施例方式本发明实施例提供一种基于精简配置系统的写入数据的方法及系统,卸除设置于精简池中的固定分配粒度,根据主机下发的请求写入数据命令中未分配存储空间的逻辑地址连续的数据的长度,以存储器所能提供的最小存储单元的整数倍大小,向精简池申请存储空间,使得精简配置系统的资源得到有效的利用。下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本 发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。图I为本发明实施例提供的一种写入数据的方法的流程图,参照图1,该方法可以包括步骤S100、接收请求写入数据的命令,所述请求写入数据的命令包括待写入数据、所述待写入数据的长度以及待写入精简逻辑单元号LUN的逻辑地址;请求写入数据的命令为主机所下发,包含待写入数据、所述待写入数据的长度以及待写入精简LUN的逻辑地址,其中所述待写入数据的长度用于表示待写入数据所需的存储容量信息,待写入精简LUN的逻辑地址用于指示待写入数据需要写入的对应精简池物理空间。接收请求写入数据的命令的方法可以与现有技术相同,由生产卷完成;也可预设接收装置,直接接收主机下发的请求写入数据的命令;本发明实施例具体的请求写入数据的命令的接收方式并不设限。步骤S200、判断是否给所述待写入精简LUN的逻辑地址完全分配精简池存储空间,若是,执行步骤S300、若否,执行步骤S400 ;所述待写入精简LUN的逻辑地址分配精简池存储空间的状况包括三种情况 第一、所述待写入精简LUN的逻辑地址部分已分配精简池存储空间;第二、所述待写入精简LUN的逻辑地址已全部分配精简池存储空间;第三、所述待写入精简LUN的逻辑地址全部未分配精简池存储空间。其中,第二种情况为判断结果为是的情况的,执行步骤S300,第一和第三种情况为判断结果为否的情况,执行步骤S400。步骤S300、将所述待写入数据写入精简池已分配的存储空间中;当所述待写入精简LUN的逻辑地址已全部分配精简池存储空间,则参照现有技术的处理方法,将所述待写入数据直接写入已分配的存储空间中。步骤S400、确定所述逻辑地址中未被分配精简池存储空间的连续的逻辑地址所能写入数据的长度,以存储器所能提供的最小存储单元的整数倍大小,向所述精简池申请大于或等于所述连续的逻辑地址所能写入数据的长度的存储空间;这里的存储器可以是磁盘、磁带或者固态硬盘。步骤S200判断结果为否的情况包括下述两者所述待写入精简LUN的逻辑地址完全未分配精简池存储空间;所述待写入精简LUN的逻辑地址部分分配精简池存储空间部分分配。在实际应用中,这两种情况只会出现其中的一种,确定了实际应用中对应的情况后,确定对应情况下的逻辑地址中未被分配精简池存储空间的连续的逻辑地址所能写入数据的长度。在确定了所述连续的逻辑地址所能写入数据的长度后,可根据公式存储器所能提供的最小存储单元的大小XN,大于或等于所述连续的逻辑地址所能写入数据的长度;得出N值,以所述N个存储器所能提供的最小存储单元的大小,向精简池申请存储空间。优选的,在满足所述连续的逻辑地址所能写入数据的存储需求的情况下,向精简池申请大小趋近于所述连续的逻辑 地址所能写入数据的长度的存储空间。优选的,向精简池申请存储空间可由精简LUN执行,具体的,可在精简LUN上预先定义分配粒度的最小值,所述分配粒度最小值为所述存储器所能提供的最小存储单元的大小,以所述精简LUN分配粒度的最小值的整数倍为单位,向所述精简池申请大于或等于所述连续的逻辑地址所能写入数据的长度,所述申请的精简池的存储空间的大小与所述待写入数据的长度之间的差值小于预设阈值。目前,存储器所能提供的最小存储单元为扇区,大小为512字节。步骤S500、接收精简池响应上述申请所分配的存储空间的信息,将待写入数据写入相应的存储空间中。精简池接收到存储空间申请后,响应所述申请,分配与所述申请的存储空间大小相同的存储空间,发送所分配的存储空间的信息,该分配的存储空间的信息记录有精简池所分配的存储空间的位置信息与大小信息;在获取了所述分配的存储空间的信息后,便可从该信息中获得所述连续的逻辑地址中的数据应该写入的存储空间的位置与大小,将所述连续的逻辑地址所对应的待写入数据写入相应的存储空间中。图I示出的写入数据的方法,在接收到请求写入数据的命令之后,判断是否给所述待写入精简LUN的逻辑地址完全分配精简池存储空间,若是,则直接将待写入数据写入已分配存储空间中,若否,确定所述逻辑地址中未被分配精简池存储空间的连续的逻辑地址所能写入数据的长度,以存储器所能提供的最小存储单元的整数倍大小,向所述精简池申请大于或等于所述连续的逻辑地址所能写入数据的长度的存储空间,在得到精简池分配的存储空间的彳目息后,将待与入数据与入相应存储空间中。现有精简配置系统的精简池是以自身固定的分配粒度分配存储空间,且为综合大数据业务和小数据业务的需求,固定分配粒度的取值较为适中(通常为兆级),因此存在浪费系统资源,系统资源利用率低的现象,具体的(I)固定分配粒度相对于小数据业务而言过大;由于精简LUN只能以精简池预定固定分配粒度的正整数倍申请存储空间,那么对于小数据业务,如银行的储户资料数据库等,精简LUN所申请的最小存储空间(一个固定分配粒度的存储空间)相对于主机下发的待写入数据也大很多,这就造成精简池分配的存储空间无法合理利用,存在浪费精简池存储资源的情况;(2)对于大数据业务所分配的存储空间,需使用多个映射标记进行记录;对于大数据业务,如视频库等,精简LUN申请的分配空间为所述固定分配粒度的多倍,则需要使用多个映射标记对该大存储需求业务进行记录,这就造成系统内存资源的浪费。而本发明取消了现有技术中的精简池固定分配粒度,以存储器所能提供的最小存储单元的整数倍大小,向精简池申请存储空间,由于申请的存储空间是以存储器所能提供的最小存储单元为基础,因此可以使得申请到的精简池中的存储空间无限接近于数据所需的存储空间大小,尽量避免精简池中系统资源的浪费;其次,精简池分配出的存储空间作为精简池的一个整体分配粒度,不再以现有技术的精简池固定分配粒度进行区分,使得待写入精简LUN的逻辑地址,与其在精简池上对应的物理地址,可以一个映射标记的形式记录在映射表中,节省了内存资源。本发明解决了现有精简配置系统由于精简池以自身固定的分配粒度分配存储空间,而造成的浪费系统资源、系统资源利用率低的问题,实现了系统资源的有效利用。图I所示步骤S200中判断是否给所述待写入精简LUN的逻辑地址完全分配精简池存储空间,可以通过检测所述待写入精简LUN的逻辑地址在映射表中的记录情况来实现,具体方法可如图2所示,该方法包括步骤步骤S210、检测所述待写入精简LUN的逻辑地址在所述映射表中的记录;
步骤S220、若所述待写入精简LUN的逻辑地址完全记录在所述映射表中,则判定已经给所述待写入精简LUN的逻辑地址完全分配精简池存储空间;步骤S230、若所述待写入精简LUN的逻辑地址部分或没有记录在所述映射表中,则判定未给所述待写入精简LUN的逻辑地址完全分配精简池存储空间。图I所示步骤S400中确定所述逻辑地址中,未被分配精简池存储空间的连续的逻辑地址所能写入数据的长度的具体方法可依如下所述对于未给所述待写入精简LUN的逻辑地址分配精简池存储空间的情况,即所述待写入精简LUN的逻辑地址完全未分配精简池存储空间,则所述未被分配精简池存储空间的连续的逻辑地址所能写入数据的长度为所述请求写入数据的命令中的待写入数据的长度;对于未完全给所述待写入精简LUN的逻辑地址分配精简池存储空间的情况,即所述待写入精简LUN的逻辑地址部分分配精简池存储空间部分分配,需对整个待写入数据进行拆分,具体可以为以已分配存储空间对应的逻辑连续地址为拆分点,对所述待写入精简LUN的逻辑地址进行拆分,拆分后的所述待写入精简LUN的逻辑地址包括已被分配存储空间的连续的逻辑地址和未被分配存储空间的连续的逻辑地址,其中,已被分配存储空间的连续的逻辑地址在映射表中存在记录,未被分配存储空间的连续的逻辑地址在映射表中不存在记录;计算拆分后的未被分配存储空间的连续的逻辑地址所能写入数据的长度,具体计算方法可参照现有的数据长度计算方法,此处不再赘述;将拆分后的未被分配精简池存储空间的连续的逻辑地址所能写入数据的长度确定为未被分配精简池存储空间的连续的逻辑地址所能写入数据的长度。对于未完全给所述待写入精简LUN的逻辑地址分配精简池存储空间的情况,由于拆分后的所述待写入精简LUN的逻辑地址包括已被分配存储空间的连续的逻辑地址和未被分配存储空间的连续的逻辑地址,因此图I所示步骤S500在将所述未被分配存储空间的连续的逻辑地址对应的数据写入,精简池分配的存储空间的同时,还可以包括步骤将已被分配存储空间的连续的逻辑地址所对应的待写入数据,写入已分配的存储空间中。图I所示步骤S500之后还可以包括步骤
将所述待写入精简 LUN的逻辑地址,与其在精简池上对应的物理地址,以映射标记的形式记录在映射表中;优选的,可以一个映射标记的形式记录。发明人在对本发明的实践过程中发现,以存储器所能提供的最小存储单元的整数倍大小,向所述精简池申请大于或等于,所述连续的逻辑地址所能写入数据的长度的存储空间,可以优选为以存储器扇区的2的幂次方倍,向精简池申请大于或等于所述连续的逻辑地址所能写入数据的长度的存储空间。这样的数值设置以通用的二进制数据记录方式为基础,因此相对于现有的存储而言,如硬盘等,可以较为便捷的记录数据。本发明以存储器所能提供的最小存储单元的整数倍大小,向精简池申请存储空间,相对于小数据业务,本发明可将一个存储器所能提供的最小存储单元分配给该小数据业务,从而最大限度的提高存储空间利用率,相对于现有的精简池兆级固定分配粒度而言,本发明可极大的减少精简池在小数据业务方面所浪费的空间。本发明卸除了设置于精简池的固定分配粒度,精简池分配的存储空间不再以现有的固定分配粒度分段,而是将精简池分配出的存储空间作为精简池的一个整体分配粒度,分配完整的存储空间,从而使得本发明映射表中的一个映射标记对应一个精简池分配的存储空间,相对于现有技术,本发明极大的减少了映射标记的使用数目,避免了系统内存资源的浪费。针对上文示出的基于精简配置系统的写入数据的方法,下文将示出对应的写入数据的系统。图3为本发明一种写入数据的系统的结构框图。参照图3,该系统可以包括接收模块100,用于接收请求写入数据的命令,所述请求写入数据的命令包括待写入数据、所述待写入数据的长度以及待写入精简逻辑单元号LUN的逻辑地址;判断模块200,用于判断是否给所述待写入精简LUN的逻辑地址完全分配精简池存储空间;确定模块300,用于在所述判断模块的判断结果为否的情况下,确定所述逻辑地址中,未被分配精简池存储空间的连续的逻辑地址所能写入数据的长度;申请模块400,用于以存储器所能提供的最小存储单元的整数倍大小,向所述精简池申请大于或等于所述连续的逻辑地址所能写入数据的长度的存储空间;存储信息接收模块500,用于接收精简池响应所述申请模块的申请所分配的存储空间的信息;写入模块600,用于在所述判断模块的判断结果为是的情况下,将所述待写入数据写入精简池已分配的存储空间中,或在所述存储信息接收模块接收到精简池所分配的存储空间信息后,将待写入数据写入相应的存储空间中。其中,判断模块200的结构可如图4所示,包括检测单元210,用于检测所述待写入精简LUN的逻辑地址在所述映射表中的记录;判定单元220,用于在所述检测单元检测到所述待写入精简LUN的逻辑地址完全记录在所述映射表中时,判定已经给所述待写入精简LUN的逻辑地址完全分配精简池存储空间,或,在所述检测单元检测到所述待写入精简LUN的逻辑地址部分或没有记录在所述映射表中时,判定未给所述待写入精简LUN的逻辑地址完全分配精简池存储空间。
确定模块300的结构可如图5所示,包括第一确定单元310,用于在未给所述待写入精简LUN的逻辑地址分配精简池存储空间时,将所述待写入数据的长度确定为,所述未被分配精简池存储空间的连续的逻辑地址所能写入数据的长度;拆分单元320,用于在未完全给所述待写入精简LUN的逻辑地址分配精简池存储空间,以已分配存储空间对应的逻辑地址为拆分点,对所述待写入精简LUN的逻辑地址进行拆分;
第二确定单元330,用于将拆分后的未被分配精简池存储空间的连续的逻辑地址所能写入数据的长度确定为,所述未被分配精简池存储空间的连续的逻辑地址所能写入数据的长度。写入模块600还可以用于,将拆分单元320拆分后的已分配存储空间的连续的逻辑地址,所对应的数据,写入已分配存储空间中。申请模块400的结构可如图6所示,包括预定义单元410,用于预先定义所述精简LUN分配粒度的最小值,所述分配粒度的最小值为所述存储器所能提供的最小存储单元的大小;申请单元420,用于以所述预定义单元定义的所述精简LUN分配粒度的最小值的正整数倍为单位,向所述精简池申请大于或等于所述连续的逻辑地址所能写入数据的长度的存储空间,所述申请的精简池的存储空间的大小与所述待写入数据的长度之间的差值小于预设阈值。图7为本发明实施例所提供的写入数据的系统的另一结构框图。结合图3和图7所示系统,图7所示系统还包括映射表模块700,用于将所述待写入精简LUN的逻辑地址,与其在精简池上的对应的物理地址,以映射标记的形式记录在映射表中。上文示出了本发明基于精简配置的写入数据的系统的软件模块组成,需要说明的是,本发明的写入数据的系统也可以硬件形式存在,下面将列举几个本发明写入数据的系统的硬件形态的实施例。图8为本发明实施例所提供的写入数据的系统的硬件架构图,共同参照图7和图8。接口模块100可以接口 01的形式存在,将接收的请求写入数据的命令存入第一数据库02中;第一数据库02存储所述请求写入数据的命令;第一处理器03为内置有判断模块200和确定模块300功能软件的处理器,第一处理器03提取第一取数据库02中存储的接收请求写入数据的命令,判断是否给所述待写入精简LUN的逻辑地址完全分配精简池存储空间,在判断结果为否时,确定所述逻辑地址中,未被分配精简池存储空间的连续的逻辑地址所能写入数据的长度,其中涉及到对数据的拆分时,第一处理器03可将拆分后的待写入数据再存放入第一数据库02中;精简LUN 04内置有申请模块400的功能,其以存储器所能提供的最小存储单元的整数倍大小,向所述精简池申请大于或等于,所述连续的逻辑地址所能写入数据的长度的存储空间;
精简池05响应精简LUN 04的申请,分配相应的存储空间,发送关于分配存储空间位置与大小的信息;存储信息接收模块500的功能可以软件形式内置在输入装置06,或精简LUN 04中;输入装置06内置有写入模块600功能的软件,当其还内置有存储信息接收模块500功能的软件时,可直接提取第一数据库02中存储的相应待写入数据,将其写入精简池分配的存储空间中;当存储信息接收模块500的功能设置在其他硬件设备中时,如精简LUN04,可通过获取其他硬件设备转发的分配存储空间的信息,再提取第一数据库02中存储的相应待写入数据,将其写入精简池分配的存储空间中;第二数据库07内置有映射表模块700功能的软件,第二数据库07包括由多个映射标记组成的映射表,可将精简池分配的存储空间在所述精简池上对应的物理地址,与在精简逻辑单元LUN上对应的逻辑地址,以一个映射标记的形式记录在其内的映射表中; 需要说明地是,接口 01与第一数据库02可以进行整合,如以现有技术的生产卷形式出现。图9为本发明写入数据的系统的另一硬件架构图,参照图7和图9。生产卷012接收主机下发的请求写入数据的命令;第一处理器03为内置有判断模块200和确定模块300功能软件的处理器,从生成卷012中提取请求写入数据的命令,进行相应的处理;精简LUN 04同时内置有申请模块400功能的软件,存储信息接收模块500功能的软件,和写入模块600功能的软件;精简池05响应精简LUN 04的申请,分配相应的存储空间,并发送关于分配存储存储的信息;第二数据库07内置有映射表模块700的功能,第二数据库07包括由多个映射标记组成的映射表。需要说明地是,图8和图9所示出的硬件架构图,只是本发明硬件架构的优选方式,其不应成为对本发明硬件架构体系的限制。本领域技术人员完全能够通过本发明具体实施方式
所给出的技术启示,结合所示出的相应软件原理与硬件组成,对本发明的软件与硬件做出相应的变形与整合,而得出相似或相应的软件与硬件,值得说明地是,该变形与整合并不脱离本发明的技术思想,也应在本发明的保护范围。本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神 或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
权利要求
1.一种写入数据的方法,其特征在于,包括 接收请求写入数据的命令,所述请求写入数据的命令包括待写入数据、所述待写入数据的长度以及待写入精简逻辑单元号LUN的逻辑地址; 判断是否给所述待写入精简LUN的逻辑地址完全分配精简池存储空间; 若是,则将所述待写入数据写入精简池已分配的存储空间中; 若否,确定所述逻辑地址中,未被分配精简池存储空间的连续的逻辑地址所能写入数据的长度,以存储器所能提供的最小存储单元的整数倍大小,向所述精简池申请大于或等于所述连续的逻辑地址所能写入数据的长度的存储空间; 接收精简池响应上述申请所分配的存储空间的信息,将待写入数据写入相应的存储空间中。
2.根据权利要求I所述的方法,其特征在于,还包括 将所述待写入精简LUN的逻辑地址,与其在精简池上对应的物理地址,以映射标记的形式记录在映射表中。
3.根据权利要求2所述的方法,其特征在于,所述判断是否给所述待写入精简LUN的逻辑地址完全分配精简池存储空间包括 检测所述待写入精简LUN的逻辑地址在所述映射表中的记录; 若所述待写入精简LUN的逻辑地址完全记录在所述映射表中,则判定已经给所述待写入精简LUN的逻辑地址完全分配精简池存储空间; 若所述待写入精简LUN的逻辑地址部分或没有记录在所述映射表中,则判定未给所述待写入精简LUN的逻辑地址完全分配精简池存储空间。
4.根据权利要求1、2或3所述的方法,其特征在于,所述确定所述逻辑地址中,未被分配精简池存储空间的连续的逻辑地址所能写入数据的长度包括 若未给所述待写入精简LUN的逻辑地址分配精简池存储空间,则所述未被分配精简池存储空间的连续的逻辑地址所能写入数据的长度为所述待写入数据的长度; 若未完全给所述待写入精简LUN的逻辑地址分配精简池存储空间,则以已被分配存储空间对应的逻辑地址为拆分点,对所述待写入精简LUN的逻辑地址进行拆分,则所述未被分配精简池存储空间的连续的逻辑地址所能写入数据的长度为拆分后的未被分配精简池存储空间的连续的逻辑地址所能写入数据的长度。
5.根据权利要求I所述的方法,其特征在于,所述以存储器所能提供的最小存储单元的整数倍大小向所述精简池申请大于或等于所述连续的逻辑地址所能写入数据的长度的存储空间包括 预先定义所述精简LUN分配粒度的最小值,所述分配粒度最小值为所述存储器所能提供的最小存储单元的大小; 以所述精简LUN分配粒度的最小值的整数倍为单位,向所述精简池申请大于或等于所述连续的逻辑地址所能写入数据的长度的存储空间,所述申请的精简池的存储空间的大小与所述待写入数据的长度之间的差值小于预设阈值。
6.ー种写入数据的系统,其特征在于,包括 接收模块,用于接收请求写入数据的命令,所述请求写入数据的命令包括待写入数据、所述待写入数据的长度以及待写入精简逻辑单元号LUN的逻辑地址;判断模块,用于判断是否给所述待写入精简LUN的逻辑地址完全分配精简池存储空间; 确定模块,用于在所述判断模块的判断结果为否的情况下,确定所述逻辑地址中,未被分配精简池存储空间的连续的逻辑地址所能写入数据的长度; 申请模块,用于以存储器所能提供的最小存储单元的整数倍大小,向所述精简池申请大于或等于所述连续的逻辑地址所能写入数据的长度的存储空间; 存储信息接收模块,用于接收精简池响应所述申请模块的申请所分配的存储空间的信息; 写入模块,用于在所述判断模块的判断结果为是的情况下,将所述待写入数据写入精简池已分配的存储空间中,或在所述存储信息接收模块接收到精简池所分配的存储空间信息后,将待写入数据写入相应的存储空间中。
7.根据权利要求6所述的系统,其特征在于,还包括 映射表模块,用于将所述待写入精简LUN的逻辑地址,与其在精简池上的对应的物理地址,以映射标记的形式记录在映射表中。
8.根据权利要求7所述的系统,其特征在于,所述判断模块包括 检测单元,用于检测所述待写入精简LUN的逻辑地址在所述映射表中的记录; 判定単元,用于在所述检测単元检测到所述待写入精简LUN的逻辑地址完全记录在所述映射表中时,判定已经给所述待写入精简LUN的逻辑地址完全分配精简池存储空间,或,在所述检测単元检测到所述待写入精简LUN的逻辑地址部分或没有记录在所述映射表中时,判定未给所述待写入精简LUN的逻辑地址完全分配精简池存储空间。
9.根据权利要求6、7或8所述的系统,其特征在于,所述确定模块包括 第一确定单元,用于在未给所述待写入精简LUN的逻辑地址分配精简池存储空间吋,将所述待写入数据的长度确定为,所述未被分配精简池存储空间的连续的逻辑地址所能写入数据的长度; 拆分单元,用于在未完全给所述待写入精简LUN的逻辑地址分配精简池存储空间吋,以已分配存储空间对应的逻辑地址为拆分点,对所述待写入精简LUN的逻辑地址进行拆分; 第二确定单元,用于将拆分后的未被分配精简池存储空间的连续的逻辑地址所能写入数据的长度确定为,所述未被分配精简池存储空间的连续的逻辑地址所能写入数据的长度。
10.根据权利要求6所述的系统,其特征在于,所述申请模块包括 预定义単元,用于预先定义所述精简LUN分配粒度的最小值,所述分配粒度的最小值为所述存储器所能提供的最小存储单元的大小; 申请单元,用于以所述预定义单元定义的所述精简LUN分配粒度的最小值的正整数倍为单位,向所述精简池申请大于或等于所述连续的逻辑地址所能写入数据的长度的存储空间,所述申请的精简池的存储空间的大小与所述待写入数据的长度之间的差值小于预设阈值。
全文摘要
本发明实施例提供一种写入数据的方法及系统。所述方法包括接收请求写入数据的命令;判断是否给所述待写入精简LUN的逻辑地址完全分配精简池存储空间;若是,则将所述待写入数据写入精简池已分配的存储空间中;若否,确定所述逻辑地址中,未被分配精简池存储空间的连续的逻辑地址所能写入数据的长度,以存储器所能提供的最小存储单元的整数倍大小,向所述精简池申请大于或等于所述连续的逻辑地址所能写入数据的长度的存储空间;接收精简池响应上述申请所分配的存储空间的信息,将待写入数据写入相应的存储空间中。本发明实现了系统资源的有效利用。
文档编号G06F3/06GK102650931SQ20121009593
公开日2012年8月29日 申请日期2012年4月1日 优先权日2012年4月1日
发明者冯欢 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1