多副本写入存储设备的方法及存储设备的制造方法

文档序号:10624511阅读:153来源:国知局
多副本写入存储设备的方法及存储设备的制造方法
【专利摘要】本发明实施例提供一种多副本写入存储设备的方法及存储设备,所述存储设备包括控制器和至少两个逻辑存储单元,所述方法由所述控制器执行,包括:接收主机发送的包括待访问的第一逻辑存储单元的ID、目标数据和所述第一逻辑存储单元的LBA的第一写数据请求;确定第一逻辑存储单元的所述LBA对应的存储空间中存储的数据未被其他与第一写数据请求有资源冲突的数据访问请求访问;将所述目标数据写入第一逻辑存储单元的所述LBA对应的存储空间中;生成包括第二逻辑存储单元的ID、所述目标数据和第二逻辑存储单元的LBA的第二写数据请求;将所述目标数据写入所述第二逻辑存储单元的所述LBA对应的存储空间中;提升了系统的访问响应能力。
【专利说明】
多副本写入存储设备的方法及存储设备
技术领域
[0001]本发明实施例涉及计算机技术,尤其涉及一种多副本写入存储设备的方法及存储设备。
【背景技术】
[0002]随着信息技术(Informat1n Technology,简称IT)的发展,对于数据的威胁通常比较难于防范,如:数据处理和访问软件平台故障、操作系统的设计漏洞、系统的硬件故障或者网络内非法访问者的恶意破坏等。为了防止数据丢失,需要将存储数据进行复制得到多个副本。
[0003]现有技术中,当存储设备接收到主机发送的任何写数据请求时,需先将所述写数据请求中的待存储数据写入所述存储设备的主逻辑存储单元得到与所述待存储数据对应的中间数据,其次,将所述主逻辑存储单元中的所述中间数据写入与所述写数据请求对应的目标逻辑存储单元。
[0004]随着业务应用规模扩大,需要进行复制的存储数据增多,但由于现有的数据写入方法中需先将待存储数据写入主逻辑存储单元,其次写入目标逻辑存储单元,因此,将所有所述待存储数据写入存储设备的时延较大,系统访问响应能力较差。

【发明内容】

[0005]本发明实施例提供一种多副本写入存储设备的方法及存储设备,提升了系统的整体访问响应能力。
[0006]第一方面,本发明实施例提供一种多副本写入存储设备的方法,所述存储设备包括控制器和至少两个逻辑存储单元,所述方法由所述控制器执行,包括:
[0007]接收主机发送的第一写数据请求,所述第一写数据请求包括待访问的第一逻辑存储单元的身份标识号ID、目标数据和所述第一逻辑存储单元的逻辑区块地址LBA ;
[0008]确定所述第一逻辑存储单元的所述LBA对应的存储空间中存储的数据未被其他与所述第一写数据请求有资源冲突的数据访问请求访问;其中,所述与所述第一写数据请求有资源冲突的数据访问请求是指与所述第一写数据请求不能同时访问相同逻辑存储单元的相同LBA对应的存储空间的数据访问请求;
[0009]将所述目标数据写入所述第一逻辑存储单元的所述LBA对应的存储空间中;
[0010]生成第二写数据请求,所述第二写数据请求包括第二逻辑存储单元的ID、所述目标数据和所述第二逻辑存储单元的LBA ;
[0011 ] 将所述目标数据写入所述第二逻辑存储单元的所述LBA对应的存储空间中。
[0012]结合第一方面,在第一方面的第一种可能的实现方式中,所述将所述目标数据写入所述第二逻辑存储单元的所述LBA对应的存储空间中,包括:
[0013]判断所述第二逻辑存储单元的所述LBA对应的存储空间中存储的数据是否被其他与所述第二写数据请求有资源冲突的数据访问请求访问;其中,所述与所述第二写数据请求有资源冲突的数据访问请求是指与所述第二写数据请求不能同时访问相同逻辑存储单元的相同LBA对应的存储空间的数据访问请求;
[0014]若所述第二逻辑存储单元的所述LBA对应的存储空间中存储的数据未被其他与所述第二写数据请求有资源冲突的数据访问请求访问,则将所述目标数据写入所述第二逻辑存储单元的所述LBA对应的存储空间中;或者
[0015]若所述第二逻辑存储单元的所述LBA对应的存储空间中存储的数据被其他与所述第二写数据请求有资源冲突的数据访问请求访问,则比较所述第一逻辑存储单元的优先级是否高于所述第二逻辑存储单元的优先级,若是,则暂时不执行将所述目标数据写入所述第二逻辑存储单元的所述LBA对应的存储空间中的步骤,直到其他与所述第二写数据请求有资源冲突的数据访问请求对所述第二逻辑存储单元的所述LBA对应的存储空间中存储的数据的访问完成时,将所述目标数据写入所述第二逻辑存储单元的所述LBA对应的存储空间中。
[0016]结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述方法还包括:若所述第一逻辑存储单元的优先级不高于所述第二逻辑存储单元的优先级,则生成第三写数据请求,所述第三写数据请求包括第三逻辑存储单元的ID、所述目标数据和所述第三逻辑存储单元的LBA ;其中,所述第三逻辑存储单元的优先级高于所述第一逻辑存储单元;
[0017]将所述目标数据写入所述第三逻辑存储单元的所述LBA对应的存储空间中。
[0018]结合第一方面、第一方面的第一种或第二种任一种可能的实现方式,在第一方面的第三种可能的实现方式中,所述方法还包括:
[0019]接收所述主机发送的第一读数据请求,所述第一读数据请求包括待访问逻辑存储单元的ID和所述待访问逻辑存储单元的LBA ;其中,所述待访问逻辑存储单元包括:所述第一逻辑存储单元或者所述第二逻辑存储单元;
[0020]判断所述待访问逻辑存储单元的所述LBA对应的存储空间中存储的所述目标数据是否被其他与所述第一读数据请求有资源冲突的数据访问请求访问;其中,所述与所述第一读数据请求有资源冲突的数据访问请求是指与所述第一读数据请求不能同时访问相同逻辑存储单元的相同LBA对应的存储空间的数据访问请求;
[0021]若所述待访问逻辑存储单元的所述LBA对应的存储空间中存储的所述目标数据未被其他与所述第一读数据请求有资源冲突的数据访问请求访问,则读取所述待访问逻辑存储单元的所述LBA对应的存储空间中存储的所述目标数据;或者,
[0022]若所述待访问逻辑存储单元的所述LBA对应的存储空间中存储的所述目标数据被其他与所述第一读数据请求有资源冲突的数据访问请求访问,则暂时不执行读取所述待访问逻辑存储单元的所述LBA对应的存储空间中存储的所述目标数据的步骤,直到其他与所述第一读数据请求有资源冲突的数据访问请求对所述待访问逻辑存储单元的所述LBA对应的存储空间中存储的所述目标数据的访问完成时,读取所述待访问逻辑存储单元的所述LBA对应的存储空间中存储的所述目标数据。
[0023]第二方面,本发明实施例提供一种存储设备,所述存储设备包括控制器和至少两个逻辑存储单元,其中,所述逻辑存储单元用于存储数据,所述控制器用于:
[0024]接收主机发送的第一写数据请求,所述第一写数据请求包括待访问的第一逻辑存储单元的身份标识号ID、目标数据和所述第一逻辑存储单元的逻辑区块地址LBA ;
[0025]确定所述第一逻辑存储单元的所述LBA对应的存储空间中存储的数据未被其他与所述第一写数据请求有资源冲突的数据访问请求访问;其中,所述与所述第一写数据请求有资源冲突的数据访问请求是指与所述第一写数据请求不能同时访问相同逻辑存储单元的相同LBA对应的存储空间的数据访问请求;
[0026]将所述目标数据写入所述第一逻辑存储单元的所述LBA对应的存储空间中;
[0027]生成第二写数据请求,所述第二写数据请求包括第二逻辑存储单元的ID、所述目标数据和所述第二逻辑存储单元的LBA ;
[0028]将所述目标数据写入所述第二逻辑存储单元的所述LBA对应的存储空间中。
[0029]结合第二方面,在第二方面的第一种可能的实现方式中,所述控制器还具体用于:
[0030]判断所述第二逻辑存储单元的所述LBA对应的存储空间中存储的数据是否被其他与所述第二写数据请求有资源冲突的数据访问请求访问;其中,所述与所述第二写数据请求有资源冲突的数据访问请求是指与所述第二写数据请求不能同时访问相同逻辑存储单元的相同LBA对应的存储空间的数据访问请求;
[0031]若所述第二逻辑存储单元的所述LBA对应的存储空间中存储的数据未被其他与所述第二写数据请求有资源冲突的数据访问请求访问,则将所述目标数据写入所述第二逻辑存储单元的所述LBA对应的存储空间中;或者
[0032]若所述第二逻辑存储单元的所述LBA对应的存储空间中存储的数据被其他与所述第二写数据请求有资源冲突的数据访问请求访问,则比较所述第一逻辑存储单元的优先级是否高于所述第二逻辑存储单元的优先级,若是,则暂时不执行将所述目标数据写入所述第二逻辑存储单元的所述LBA对应的存储空间中的步骤,直到其他与所述第二写数据请求有资源冲突的数据访问请求对所述第二逻辑存储单元的所述LBA对应的存储空间中存储的数据的访问完成时,将所述目标数据写入所述第二逻辑存储单元的所述LBA对应的存储空间中。
[0033]结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述控制器还具体用于:
[0034]若所述第一逻辑存储单元的优先级不高于所述第二逻辑存储单元的优先级,则生成第三写数据请求,所述第三写数据请求包括第三逻辑存储单元的ID、所述目标数据和所述第三逻辑存储单元的LBA ;其中,所述第三逻辑存储单元的优先级高于所述第一逻辑存储单元;
[0035]将所述目标数据写入所述第三逻辑存储单元的所述LBA对应的存储空间中。
[0036]结合第二方面、第二方面的第一种或第二种任一种可能的实现方式,在第二方面的第三种可能的实现方式中,所述控制器还具体用于:
[0037]接收所述主机发送的第一读数据请求,所述第一读数据请求包括待访问逻辑存储单元的ID和所述待访问逻辑存储单元的LBA ;其中,所述待访问逻辑存储单元包括:所述第一逻辑存储单元或者所述第二逻辑存储单元;
[0038]判断所述待访问逻辑存储单元的所述LBA对应的存储空间中存储的所述目标数据是否被其他与所述第一读数据请求有资源冲突的数据访问请求访问;其中,所述与所述第一读数据请求有资源冲突的数据访问请求是指与所述第一读数据请求不能同时访问相同逻辑存储单元的相同LBA对应的存储空间的数据访问请求;
[0039]若所述待访问逻辑存储单元的所述LBA对应的存储空间中存储的所述目标数据未被其他与所述第一读数据请求有资源冲突的数据访问请求访问,则读取所述待访问逻辑存储单元的所述LBA对应的存储空间中存储的所述目标数据;或者,
[0040]若所述待访问逻辑存储单元的所述LBA对应的存储空间中存储的所述目标数据被其他与所述第一读数据请求有资源冲突的数据访问请求访问,则暂时不执行读取所述待访问逻辑存储单元的所述LBA对应的存储空间中存储的所述目标数据的步骤,直到其他与所述第一读数据请求有资源冲突的数据访问请求对所述待访问逻辑存储单元的所述LBA对应的存储空间中存储的所述目标数据的访问完成时,读取所述待访问逻辑存储单元的所述LBA对应的存储空间中存储的所述目标数据。
[0041]本发明中,接收主机发送的第一写数据请求,所述第一写数据请求包括待访问的第一逻辑存储单元的身份标识号ID、目标数据和所述第一逻辑存储单元的逻辑区块地址LBA ;进一步地,确定所述第一逻辑存储单元的所述LBA对应的存储空间中存储的数据未被其他与所述第一写数据请求有资源冲突的数据访问请求访问;其中,所述与所述第一写数据请求有资源冲突的数据访问请求是指与所述第一写数据请求不能同时访问相同逻辑存储单元的相同LBA对应的存储空间的数据访问请求;进一步地,将所述目标数据写入所述第一逻辑存储单元的所述LBA对应的存储空间中;生成第二写数据请求,所述第二写数据请求包括第二逻辑存储单元的ID、所述目标数据和所述第二逻辑存储单元的LBA ;将所述目标数据写入所述第二逻辑存储单元的所述LBA对应的存储空间中;可见,可快速地将所述目标数据分别写入所述存储设备的不同逻辑存储单元,从而降低了系统时延,提升了系统的整体访问响应能力。
【附图说明】
[0042]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0043]图1A为本发明多副本写入存储设备的方法实施例一的流程示意图;
[0044]图1B为本发明实施例提供的存储系统的组成示意图;
[0045]图1C是本发明实施例提供的控制器的结构示意图。
【具体实施方式】
[0046]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0047]图1A为本发明多副本写入存储设备的方法实施例一的流程示意图。本实施例的方案可应用于如图1B所示的存储系统,图1B为本发明实施例提供的存储系统的组成示意图,如图1B所不,所述存储系统包括:主机和存储设备10,其中,所述存储设备10包括:控制器101和至少两个逻辑存储单元102。其中,控制器101可以包括当前技术已知的任何计算设备,如服务器、台式计算机等等;控制器101用于执行各种数据访问请求,例如将多副本写入存储设备及从存储设备读取多副本操作等等。存储设备10包含的至少两个逻辑存储单元102用于提供存储空间保存数据,可选地,所述存储设备10可以为存储阵列或者存储服务器等等;其中,所述逻辑存储单元由物理空间映射出的逻辑空间;可选地,对于存储系统,所述逻辑存储单元可以为逻辑单元号(Logical Unit Number,简称LUN)或者卷等。
[0048]下面介绍控制器101的硬件组成结构,请参考图1C,图1C是本发明实施例提供的控制器的结构示意图。如图1C所示,控制器101主要包括处理器(processor) 1011、缓存(cache) 1012、存储器(memory) 1013、通信总线(简称总线)1014以及通信接口(Communicat1n Interface) 1015。处理器 1011、缓存 1012、存储器 1013 以及通信接口 1015通过通信总线1014完成相互间的通信。
[0049]通信接口 1015,用于与逻辑存储单元102通信。
[0050]存储器1013,用于存放程序1016,存储器1013可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可以理解的是,存储器1013可以为随机存储器(Random-Access Memory, RAM)、磁碟、硬盘、光盘、固态硬盘(Solid State Disk, SSD)或者非易失性存储器等各种可以存储程序代码的非短暂性的(non-transitory)机器可读介质。
[0051]程序1016可以包括程序代码。
[0052]缓存1012 (Cache)用于缓存从主机接收的数据或从逻辑存储单元102中读取的数据。缓存1012可以是RAM、ROM、闪存(Flash memory)或固态硬盘(Solid State Disk,SSD)等各种可以存储数据的非短暂性的(non-transitory)机器可读介质,在此不做限定。
[0053]另外,存储器1013和缓存1012可以合设或者分开设置,本发明实施例对此不做限定。
[0054]处理器1011可能是一个中央处理器CPU,或者是特定集成电路ASIC(Applicat1nSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。在本发明实施例中,处理器1011可以用于接收来自主机的各种数据访问请求,并且执行各种数据访问请求,例如将多副本写入存储设备及从存储设备读取多副本操作等等。
[0055]本实施例的方法可应用于如图1B所示的存储系统以及如图1C所示的控制器,所述控制器的处理器可以执行如图1A所示的各个步骤:
[0056]S101、接收主机发送的第一写数据请求,所述第一写数据请求包括待访问的第一逻辑存储单元的身份标识号ID、目标数据和所述第一逻辑存储单元的逻辑区块地址LBA。
[0057]本发明实施例中,所述存储设备的控制器接收主机发送的第一写数据请求,其中,所述第一写数据请求包括待访问的第一逻辑存储单元的身份标识号(Identity,简称ID)、目标数据和所述第一逻辑存储单元的逻辑区块地址(Logical Block Address,简称LBA),其中,所述目标数据为待写入的数据,第一逻辑存储单元ID用于指示所述主机欲将所述目标数据写入所述存储设备的目的逻辑存储单元;可选地,所述第一逻辑存储单元可以为LUN或者卷等。
[0058]S102、确定所述第一逻辑存储单元的所述LBA对应的存储空间中存储的数据未被其他与所述第一写数据请求有资源冲突的数据访问请求访问。
[0059]本发明实施例中,所述控制器在接收到主机发送的包括待访问的第一逻辑存储单元的ID、目标数据和所述第一逻辑存储单元的LBA的所述第一写数据请求时,进一步地,确定所述第一逻辑存储单元的所述LBA对应的存储空间中存储的数据此时未被其他与所述第一写数据请求有资源冲突的数据访问请求访问,其中,所述与所述第一写数据请求有资源冲突的数据访问请求是指与所述第一写数据请求不能同时访问相同逻辑存储单元的相同LBA对应的存储空间的数据访问请求;即确定所述第一逻辑存储单元的所述LBA对应的存储空间中未在执行与所述第一写数据请求有资源冲突的数据访问操作,如所述第一逻辑存储单元的所述LBA对应的存储空间中存储的数据此时确实未被其它任何数据访问请求访问,或者若所述第一逻辑存储单元的所述LBA对应的存储空间中存储的数据此时正被一数据访问请求访问(也即所述数据访问请求中包含的待访问的逻辑存储单元的ID也为所述第一逻辑存储单元的ID以及所述逻辑存储单元的LBA也为所述第一逻辑存储单元的LBA),但所述数据访问请求中包含的互斥逻辑信息为共享式互斥逻辑(即所述数据访问请求可以与其它数据访问请求同时进行访问操作)(其中,共享式互斥逻辑是指事件A与事件B在规定范围内可以同时发生,但超出所述规定范围则不会同时发生);从而所述控制器可以根据所述第一写数据请求对所述第一逻辑存储单元的所述LBA对应的存储空间进行写操作。
[0060]S103、将所述目标数据写入所述第一逻辑存储单元的所述LBA对应的存储空间中。
[0061]S104、生成第二写数据请求,所述第二写数据请求包括第二逻辑存储单元的ID、所述目标数据和所述第二逻辑存储单元的LBA。
[0062]S105、将所述目标数据写入所述第二逻辑存储单元的所述LBA对应的存储空间中。
[0063]本发明实施例中,在确定所述第一逻辑存储单元的所述LBA对应的存储空间中存储的数据未被其他与所述第一写数据请求有资源冲突的数据访问请求访问后,在步骤S103中,所述控制器将所述目标数据写入所述第一逻辑存储单元的所述LBA对应的存储空间中;在步骤S104中,所述控制器生成包括第二逻辑存储单元的ID、所述目标数据和所述第二逻辑存储单元的LBA的第二写数据请求,其中,第二逻辑存储单元的ID用于指示所述控制器欲将所述目标数据写入所述存储设备的目的逻辑存储单元;可选地,所述第二逻辑存储单元可以为LUN或者卷等;进一步地,在步骤S105中,所述控制器将所述目标数据写入所述第二逻辑存储单元的所述LBA对应的存储空间中。可选地,本发明实施例中,对步骤S103与步骤S104及步骤S105的先后顺序并不限定,如可按照步骤S103、步骤S104及步骤S105顺序执行(即在将所述目标数据写入所述第一逻辑存储单元的所述LBA对应的存储空间中后,生成第二写数据请求并将所述目标数据写入所述第二逻辑存储单元的所述LBA对应的存储空间中)、或者先执行步骤S104及步骤S105后执行步骤S103 (即在生成第二写数据请求并将所述目标数据写入所述第二逻辑存储单元的所述LBA对应的存储空间中后,将所述目标数据写入所述第一逻辑存储单元的所述LBA对应的存储空间中)、或者并行执行步骤S103与步骤S104及步骤S105(即将所述目标数据写入所述第一逻辑存储单元的所述LBA对应的存储空间中的步骤,与生成第二写数据请求并将所述目标数据写入所述第二逻辑存储单元的所述LBA对应的存储空间中的步骤并行执行);需要说明的是,本发明实施例中,所述控制器可以并行执行多个上述将多副本写入存储设备的步骤(即本发明实施例中的各个逻辑存储单元都是平等的,不区分主从逻辑存储单元,并且所述第一逻辑存储单元、所述第二逻辑存储单元或者所述第三逻辑存储单元分别代指逻辑存储单元,并未限定具体的某个逻辑存储单元,同时本发明实施例中对所述第一逻辑存储单元、所述第二逻辑存储单元或者所述第三逻辑存储单元的个数并不作限定);可见,本发明实施例中,所述控制器可以快速地将所述目标数据分别写入所述存储设备的不同逻辑存储单元(即将多副本写入存储设备),从而降低了系统时延,提升了系统的整体访问响应能力。
[0064]本发明实施例中,接收主机发送的第一写数据请求,所述第一写数据请求包括待访问的第一逻辑存储单元的身份标识号ID、目标数据和所述第一逻辑存储单元的逻辑区块地址LBA ;进一步地,确定所述第一逻辑存储单元的所述LBA对应的存储空间中存储的数据未被其他与所述第一写数据请求有资源冲突的数据访问请求访问;其中,所述与所述第一写数据请求有资源冲突的数据访问请求是指与所述第一写数据请求不能同时访问相同逻辑存储单元的相同LBA对应的存储空间的数据访问请求;进一步地,将所述目标数据写入所述第一逻辑存储单元的所述LBA对应的存储空间中;生成第二写数据请求,所述第二写数据请求包括第二逻辑存储单元的ID、所述目标数据和所述第二逻辑存储单元的LBA ;将所述目标数据写入所述第二逻辑存储单元的所述LBA对应的存储空间中;可见,可快速地将所述目标数据分别写入所述存储设备的不同逻辑存储单元,从而降低了系统时延,提升了系统的整体访问响应能力。
[0065]可选地,步骤S102之前,还包括:
[0066]判断所述第一逻辑存储单元的所述LBA对应的存储空间中存储的数据是否被其他与所述第一写数据请求有资源冲突的数据访问请求访问;
[0067]若否,则确定所述第一逻辑存储单元的所述LBA对应的存储空间中存储的数据未被其他与所述第一写数据请求有资源冲突的数据访问请求访问。
[0068]本发明实施例中,在步骤S102之前包括:判断所述第一逻辑存储单元的所述LBA对应的存储空间中存储的数据是否被其他与所述第一写数据请求有资源冲突的数据访问请求访问;可选地,可根据所述第一写数据请求中包含的第一逻辑存储单元的身份标识号ID、所述第一逻辑存储单元的逻辑区块地址LBA以及互斥逻辑信息判断所述第一逻辑存储单元的所述LBA对应的存储空间中存储的数据是否被其他与所述第一写数据请求有资源冲突的数据访问请求访问,其中,所述互斥逻辑信息包括:共享式互斥逻辑或排他式互斥逻辑;(I)若所述第一逻辑存储单元的所述LBA对应的存储空间中存储的数据此时确实未被其它任何数据访问请求访问,或者若所述第一逻辑存储单元的所述LBA对应的存储空间中存储的数据此时正被一数据访问请求访问(也即所述数据访问请求中包含的待访问的逻辑存储单元的ID也为所述第一逻辑存储单元的ID以及所述逻辑存储单元的LBA也为所述第一逻辑存储单元的LBA),但所述数据访问请求中包含的互斥逻辑信息为共享式互斥逻辑(即所述数据访问请求可以与其它数据访问请求同时进行访问操作),则所述控制器可以确定所述第一逻辑存储单元的所述LBA对应的存储空间中存储的数据未被其他与所述第一写数据请求有资源冲突的数据访问请求访问;或者,(2)若所述第一逻辑存储单元的所述LBA对应的存储空间中存储的数据此时正被一数据访问请求访问(也即所述数据访问请求中包含的待访问的逻辑存储单元的ID也为所述第一逻辑存储单元的ID以及所述逻辑存储单元的LBA也为所述第一逻辑存储单元的LBA),并且所述数据访问请求中包含的互斥逻辑信息为排他式互斥逻辑(即所述数据访问请求不可以与其它数据访问请求同时进行访问操作)(其中,排他式互斥逻辑是指事件A与事件B在任何情况下都不会同时发生),则确定所述第一逻辑存储单元的所述LBA对应的存储空间中存储的数据被其他与所述第一写数据请求有资源冲突的数据访问请求访问,则继续判断所述第一逻辑存储单元的所述LBA对应的存储空间中存储的数据是否被其他与所述第一写数据请求有资源冲突的数据访问请求访问,直到确定其他与所述第一写数据请求有资源冲突的数据访问请求对所述第一逻辑存储单元的所述LBA对应的存储空间中存储的数据的访问完成。
[0069]可选地,所述将所述目标数据写入所述第二逻辑存储单元的所述LBA对应的存储空间中,包括:
[0070]判断所述第二逻辑存储单元的所述LBA对应的存储空间中存储的数据是否被其他与所述第二写数据请求有资源冲突的数据访问请求访问;其中,所述与所述第二写数据请求有资源冲突的数据访问请求是指与所述第二写数据请求不能同时访问相同逻辑存储单元的相同LBA对应的存储空间的数据访问请求;
[0071]若所述第二逻辑存储单元的所述LBA对应的存储空间中存储的数据未被其他与所述第二写数据请求有资源冲突的数据访问请求访问,则将所述目标数据写入所述第二逻辑存储单元的所述LBA对应的存储空间中;或者
[0072]若所述第二逻辑存储单元的所述LBA对应的存储空间中存储的数据被其他与所述第二写数据请求有资源冲突的数据访问请求访问,则比较所述第一逻辑存储单元的优先级是否高于所述第二逻辑存储单元的优先级,若是,则暂时不执行将所述目标数据写入所述第二逻辑存储单元的所述LBA对应的存储空间中的步骤,直到其他与所述第二写数据请求有资源冲突的数据访问请求对所述第二逻辑存储单元的所述LBA对应的存储空间中存储的数据的访问完成时,将所述目标数据写入所述第二逻辑存储单元的所述LBA对应的存储空间中。
[0073]本发明实施例中,步骤S105具体如下:判断所述第二逻辑存储单元的所述LBA对应的存储空间中存储的数据是否被其他与所述第二写数据请求有资源冲突的数据访问请求访问;其中,所述与所述第二写数据请求有资源冲突的数据访问请求是指与所述第二写数据请求不能同时访问相同逻辑存储单元的相同LBA对应的存储空间的数据访问请求;可选地,可根据所述第二写数据请求中包含的第二逻辑存储单元的身份标识号ID、所述第二逻辑存储单元的逻辑区块地址LBA以及互斥逻辑信息判断所述第二逻辑存储单元的所述LBA对应的存储空间中存储的数据是否被其他与所述第二写数据请求有资源冲突的数据访问请求访问,其中,所述互斥逻辑信息包括:共享式互斥逻辑或排他式互斥逻辑;(I)若所述第二逻辑存储单元的所述LBA对应的存储空间中存储的数据此时确实未被其它任何数据访问请求访问,或者若所述第二逻辑存储单元的所述LBA对应的存储空间中存储的数据此时正被一数据访问请求访问(也即所述数据访问请求中包含的待访问的逻辑存储单元的ID也为所述第二逻辑存储单元的ID以及所述逻辑存储单元的LBA也为所述第二逻辑存储单元的LBA),但所述数据访问请求中包含的互斥逻辑信息为共享式互斥逻辑(即所述数据访问请求可以与其它数据访问请求同时进行访问操作),则所述控制器可以确定所述第二逻辑存储单元的所述LBA对应的存储空间中存储的数据未被其他与所述第二写数据请求有资源冲突的数据访问请求访问,则将所述目标数据写入所述第二逻辑存储单元的所述LBA对应的存储空间中;或者,(2)若所述第二逻辑存储单元的所述LBA对应的存储空间中存储的数据此时正被一数据访问请求访问(也即所述数据访问请求中包含的待访问的逻辑存储单元的ID也为所述第二逻辑存储单元的ID以及所述逻辑存储单元的LBA也为所述第二逻辑存储单元的LBA),并且所述数据访问请求中包含的互斥逻辑信息为排他式互斥逻辑(即所述数据访问请求不可以与其它数据访问请求同时进行访问操作),则所述控制器可以确定所述第二逻辑存储单元的所述LBA对应的存储空间中存储的数据被其他与所述第二写数据请求有资源冲突的数据访问请求访问,则所述控制器比较所述第一逻辑存储单元的优先级是否高于所述第二逻辑存储单元的优先级;若是,则暂时不执行将所述目标数据写入所述第二逻辑存储单元的所述LBA对应的存储空间中的步骤,直到其他与所述第二写数据请求有资源冲突的数据访问请求对所述第二逻辑存储单元的所述LBA对应的存储空间中存储的数据的访问完成时,再执行将所述目标数据写入所述第二逻辑存储单元的所述LBA对应的存储空间中的步骤。
[0074]可选地,若所述第一逻辑存储单元的优先级不高于所述第二逻辑存储单元的优先级,则生成第三写数据请求,所述第三写数据请求包括第三逻辑存储单元的ID、所述目标数据和所述第三逻辑存储单元的LBA ;其中,所述第三逻辑存储单元的优先级高于所述第一逻辑存储单元;
[0075]将所述目标数据写入所述第三逻辑存储单元的所述LBA对应的存储空间中。
[0076]本发明实施例中,若判断所述第一逻辑存储单元的优先级不高于所述第二逻辑存储单元的优先级,则生成包括第三逻辑存储单元的ID、所述目标数据和所述第三逻辑存储单元的LBA的第三写数据请求,其中,所述第三逻辑存储单元的优先级高于所述第一逻辑存储单元,第三逻辑存储单元的ID用于指示所述控制器欲将所述目标数据写入所述存储设备的目的逻辑存储单元,可选地,所述第三逻辑存储单元亦可以为LUN或者卷等;进一步地,将所述目标数据写入所述第三逻辑存储单元的所述LBA对应的存储空间中,从而可以确保将所述目标数据及时地写入所述存储设备;可选地,将所述目标数据写入所述第三逻辑存储单元的所述LBA对应的存储空间中的具体步骤与上述所述将所述目标数据写入所述第二逻辑存储单元的所述LBA对应的存储空间中的具体步骤类似,可参见上述关于所述将所述目标数据写入所述第二逻辑存储单元的所述LBA对应的存储空间中的部分,此处不再赘述。可见,本发明实施例可快速地将所述目标数据分别写入所述存储设备的不同逻辑存储单元,从而降低了系统时延,提升了系统的整体访问响应能力。
[0077]进一步地,所述方法还包括:
[0078]接收所述主机发送的第一读数据请求,所述第一读数据请求包括待访问逻辑存储单元的ID和所述待访问逻辑存储单元的LBA ;其中,所述待访问逻辑存储单元包括:所述第一逻辑存储单元或者所述第二逻辑存储单元;
[0079]判断所述待访问逻辑存储单元的所述LBA对应的存储空间中存储的所述目标数据是否被其他与所述第一读数据请求有资源冲突的数据访问请求访问;其中,所述与所述第一读数据请求有资源冲突的数据访问请求是指与所述第一读数据请求不能同时访问相同逻辑存储单元的相同LBA对应的存储空间的数据访问请求;
[0080]若所述待访问逻辑存储单元的所述LBA对应的存储空间中存储的所述目标数据未被其他与所述第一读数据请求有资源冲突的数据访问请求访问,则读取所述待访问逻辑存储单元的所述LBA对应的存储空间中存储的所述目标数据;或者,
[0081]若所述待访问逻辑存储单元的所述LBA对应的存储空间中存储的所述目标数据被其他与所述第一读数据请求有资源冲突的数据访问请求访问,则暂时不执行读取所述待访问逻辑存储单元的所述LBA对应的存储空间中存储的所述目标数据的步骤,直到其他与所述第一读数据请求有资源冲突的数据访问请求对所述待访问逻辑存储单元的所述LBA对应的存储空间中存储的所述目标数据的访问完成时,读取所述待访问逻辑存储单元的所述LBA对应的存储空间中存储的所述目标数据。
[0082]本发明实施例中,(I)当所述控制器接收到所述主机发送的包括待访问逻辑存储单元的ID和所述待访问逻辑存储单元的LBA的第一读数据请求,其中,所述待访问逻辑存储单元的ID用于指示所述主机欲读取的所述存储设备的目的逻辑存储单元,所述待访问逻辑存储单元包括:所述第一逻辑存储单元或者所述第二逻辑存储单元,可选地,所述待访问逻辑存储单元还可以为所述第三逻辑存储单元;(2)所述控制器判断所述待访问逻辑存储单元的所述LBA对应的存储空间中存储的所述目标数据是否被其他与所述第一读数据请求有资源冲突的数据访问请求访问;其中,所述与所述第一读数据请求有资源冲突的数据访问请求是指与所述第一读数据请求不能同时访问相同逻辑存储单元的相同LBA对应的存储空间的数据访问请求;可选地,可根据所述第一读数据请求中包含的待访问逻辑存储单元的身份标识号ID、所述待访问逻辑存储单元的逻辑区块地址LBA以及互斥逻辑信息判断所述待访问逻辑存储单元的所述LBA对应的存储空间中存储的所述目标数据是否被其他与所述第一读数据请求有资源冲突的数据访问请求访问,其中,所述互斥逻辑信息包括:共享式互斥逻辑或排他式互斥逻辑;具体判断方式与上述判断所述第一逻辑存储单元的所述LBA对应的存储空间中存储的数据是否被其他与所述第一写数据请求有资源冲突的数据访问请求访问的步骤类似,此处不再赘述;(2a)若所述待访问逻辑存储单元的所述LBA对应的存储空间中存储的所述目标数据未被其他与所述第一读数据请求有资源冲突的数据访问请求访问,则读取所述待访问逻辑存储单元的所述LBA对应的存储空间中存储的所述目标数据;(2b)若所述待访问逻辑存储单元的所述LBA对应的存储空间中存储的所述目标数据被其他与所述第一读数据请求有资源冲突的数据访问请求访问,则暂时不执行读取所述待访问逻辑存储单元的所述LBA对应的存储空间中存储的所述目标数据的步骤,直到其他与所述第一读数据请求有资源冲突的数据访问请求对所述待访问逻辑存储单元的所述LBA对应的存储空间中存储的所述目标数据的访问完成时,再执行读取所述待访问逻辑存储单元的所述LBA对应的存储空间中存储的所述目标数据的步骤。可见,本发明实施例可快速地分别从所述存储设备的不同逻辑存储单元中读取所述目标数据,从而降低了系统时延,提升了系统的整体访问响应能力。
[0083]本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0084]最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
【主权项】
1.一种多副本写入存储设备的方法,其特征在于,所述存储设备包括控制器和至少两个逻辑存储单元,所述方法由所述控制器执行,包括: 接收主机发送的第一写数据请求,所述第一写数据请求包括待访问的第一逻辑存储单元的身份标识号ID、目标数据和所述第一逻辑存储单元的逻辑区块地址LBA ; 确定所述第一逻辑存储单元的所述LBA对应的存储空间中存储的数据未被其他与所述第一写数据请求有资源冲突的数据访问请求访问;其中,所述与所述第一写数据请求有资源冲突的数据访问请求是指与所述第一写数据请求不能同时访问相同逻辑存储单元的相同LBA对应的存储空间的数据访问请求; 将所述目标数据写入所述第一逻辑存储单元的所述LBA对应的存储空间中; 生成第二写数据请求,所述第二写数据请求包括第二逻辑存储单元的ID、所述目标数据和所述第二逻辑存储单元的LBA ; 将所述目标数据写入所述第二逻辑存储单元的所述LBA对应的存储空间中。2.根据权利要求1所述的方法,其特征在于,所述将所述目标数据写入所述第二逻辑存储单元的所述LBA对应的存储空间中,包括: 判断所述第二逻辑存储单元的所述LBA对应的存储空间中存储的数据是否被其他与所述第二写数据请求有资源冲突的数据访问请求访问;其中,所述与所述第二写数据请求有资源冲突的数据访问请求是指与所述第二写数据请求不能同时访问相同逻辑存储单元的相同LBA对应的存储空间的数据访问请求; 若所述第二逻辑存储单元的所述LBA对应的存储空间中存储的数据未被其他与所述第二写数据请求有资源冲突的数据访问请求访问,则将所述目标数据写入所述第二逻辑存储单元的所述LBA对应的存储空间中;或者 若所述第二逻辑存储单元的所述LBA对应的存储空间中存储的数据被其他与所述第二写数据请求有资源冲突的数据访问请求访问,则比较所述第一逻辑存储单元的优先级是否高于所述第二逻辑存储单元的优先级,若是,则暂时不执行将所述目标数据写入所述第二逻辑存储单元的所述LBA对应的存储空间中的步骤,直到其他与所述第二写数据请求有资源冲突的数据访问请求对所述第二逻辑存储单元的所述LBA对应的存储空间中存储的数据的访问完成时,将所述目标数据写入所述第二逻辑存储单元的所述LBA对应的存储空间中。3.根据权利要求2所述的方法,其特征在于,还包括:若所述第一逻辑存储单元的优先级不高于所述第二逻辑存储单元的优先级,则生成第三写数据请求,所述第三写数据请求包括第三逻辑存储单元的ID、所述目标数据和所述第三逻辑存储单元的LBA ;其中,所述第三逻辑存储单元的优先级高于所述第一逻辑存储单元; 将所述目标数据写入所述第三逻辑存储单元的所述LBA对应的存储空间中。4.根据权利要求1-3中任一项所述的方法,其特征在于,所述方法,还包括: 接收所述主机发送的第一读数据请求,所述第一读数据请求包括待访问逻辑存储单元的ID和所述待访问逻辑存储单元的LBA ;其中,所述待访问逻辑存储单元包括:所述第一逻辑存储单元或者所述第二逻辑存储单元; 判断所述待访问逻辑存储单元的所述LBA对应的存储空间中存储的所述目标数据是否被其他与所述第一读数据请求有资源冲突的数据访问请求访问;其中,所述与所述第一读数据请求有资源冲突的数据访问请求是指与所述第一读数据请求不能同时访问相同逻辑存储单元的相同LBA对应的存储空间的数据访问请求; 若所述待访问逻辑存储单元的所述LBA对应的存储空间中存储的所述目标数据未被其他与所述第一读数据请求有资源冲突的数据访问请求访问,则读取所述待访问逻辑存储单元的所述LBA对应的存储空间中存储的所述目标数据;或者, 若所述待访问逻辑存储单元的所述LBA对应的存储空间中存储的所述目标数据被其他与所述第一读数据请求有资源冲突的数据访问请求访问,则暂时不执行读取所述待访问逻辑存储单元的所述LBA对应的存储空间中存储的所述目标数据的步骤,直到其他与所述第一读数据请求有资源冲突的数据访问请求对所述待访问逻辑存储单元的所述LBA对应的存储空间中存储的所述目标数据的访问完成时,读取所述待访问逻辑存储单元的所述LBA对应的存储空间中存储的所述目标数据。5.一种存储设备,其特征在于,所述存储设备包括控制器和至少两个逻辑存储单元,其中,所述逻辑存储单元用于存储数据,所述控制器用于: 接收主机发送的第一写数据请求,所述第一写数据请求包括待访问的第一逻辑存储单元的身份标识号ID、目标数据和所述第一逻辑存储单元的逻辑区块地址LBA ; 确定所述第一逻辑存储单元的所述LBA对应的存储空间中存储的数据未被其他与所述第一写数据请求有资源冲突的数据访问请求访问;其中,所述与所述第一写数据请求有资源冲突的数据访问请求是指与所述第一写数据请求不能同时访问相同逻辑存储单元的相同LBA对应的存储空间的数据访问请求; 将所述目标数据写入所述第一逻辑存储单元的所述LBA对应的存储空间中; 生成第二写数据请求,所述第二写数据请求包括第二逻辑存储单元的ID、所述目标数据和所述第二逻辑存储单元的LBA ; 将所述目标数据写入所述第二逻辑存储单元的所述LBA对应的存储空间中。6.根据权利要求5所述的设备,其特征在于,所述控制器还具体用于: 判断所述第二逻辑存储单元的所述LBA对应的存储空间中存储的数据是否被其他与所述第二写数据请求有资源冲突的数据访问请求访问;其中,所述与所述第二写数据请求有资源冲突的数据访问请求是指与所述第二写数据请求不能同时访问相同逻辑存储单元的相同LBA对应的存储空间的数据访问请求; 若所述第二逻辑存储单元的所述LBA对应的存储空间中存储的数据未被其他与所述第二写数据请求有资源冲突的数据访问请求访问,则将所述目标数据写入所述第二逻辑存储单元的所述LBA对应的存储空间中;或者 若所述第二逻辑存储单元的所述LBA对应的存储空间中存储的数据被其他与所述第二写数据请求有资源冲突的数据访问请求访问,则比较所述第一逻辑存储单元的优先级是否高于所述第二逻辑存储单元的优先级,若是,则暂时不执行将所述目标数据写入所述第二逻辑存储单元的所述LBA对应的存储空间中的步骤,直到其他与所述第二写数据请求有资源冲突的数据访问请求对所述第二逻辑存储单元的所述LBA对应的存储空间中存储的数据的访问完成时,将所述目标数据写入所述第二逻辑存储单元的所述LBA对应的存储空间中。7.根据权利要求6所述的设备,其特征在于,所述控制器还具体用于: 若所述第一逻辑存储单元的优先级不高于所述第二逻辑存储单元的优先级,则生成第三写数据请求,所述第三写数据请求包括第三逻辑存储单元的ID、所述目标数据和所述第三逻辑存储单元的LBA ;其中,所述第三逻辑存储单元的优先级高于所述第一逻辑存储单元; 将所述目标数据写入所述第三逻辑存储单元的所述LBA对应的存储空间中。8.根据权利要求5-7中任一项所述的设备,其特征在于,所述控制器还具体用于: 接收所述主机发送的第一读数据请求,所述第一读数据请求包括待访问逻辑存储单元的ID和所述待访问逻辑存储单元的LBA ;其中,所述待访问逻辑存储单元包括:所述第一逻辑存储单元或者所述第二逻辑存储单元; 判断所述待访问逻辑存储单元的所述LBA对应的存储空间中存储的所述目标数据是否被其他与所述第一读数据请求有资源冲突的数据访问请求访问;其中,所述与所述第一读数据请求有资源冲突的数据访问请求是指与所述第一读数据请求不能同时访问相同逻辑存储单元的相同LBA对应的存储空间的数据访问请求; 若所述待访问逻辑存储单元的所述LBA对应的存储空间中存储的所述目标数据未被其他与所述第一读数据请求有资源冲突的数据访问请求访问,则读取所述待访问逻辑存储单元的所述LBA对应的存储空间中存储的所述目标数据;或者, 若所述待访问逻辑存储单元的所述LBA对应的存储空间中存储的所述目标数据被其他与所述第一读数据请求有资源冲突的数据访问请求访问,则暂时不执行读取所述待访问逻辑存储单元的所述LBA对应的存储空间中存储的所述目标数据的步骤,直到其他与所述第一读数据请求有资源冲突的数据访问请求对所述待访问逻辑存储单元的所述LBA对应的存储空间中存储的所述目标数据的访问完成时,读取所述待访问逻辑存储单元的所述LBA对应的存储空间中存储的所述目标数据。
【文档编号】G06F3/06GK105988724SQ201510075562
【公开日】2016年10月5日
【申请日】2015年2月12日
【发明人】李小华, 欧阳戟, 王奇
【申请人】华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1