CN115495008A - 一种数据管理方法、存储空间管理方法及装置 - Google Patents
一种数据管理方法、存储空间管理方法及装置 Download PDFInfo
- Publication number
- CN115495008A CN115495008A CN202110918777.6A CN202110918777A CN115495008A CN 115495008 A CN115495008 A CN 115495008A CN 202110918777 A CN202110918777 A CN 202110918777A CN 115495008 A CN115495008 A CN 115495008A
- Authority
- CN
- China
- Prior art keywords
- host
- area
- storage space
- data
- region
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 126
- 238000013523 data management Methods 0.000 title claims abstract description 54
- 238000007726 management method Methods 0.000 title claims abstract description 39
- 230000015654 memory Effects 0.000 claims abstract description 105
- 230000004044 response Effects 0.000 claims description 49
- 238000004891 communication Methods 0.000 claims description 26
- 238000012545 processing Methods 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 9
- 238000013500 data storage Methods 0.000 abstract description 11
- 230000006870 function Effects 0.000 description 29
- 238000010586 diagram Methods 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 6
- 230000009286 beneficial effect Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 5
- 239000007787 solid Substances 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000002085 persistent effect Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000002349 favourable effect Effects 0.000 description 2
- 230000033764 rhythmic process Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 239000011800 void material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- 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/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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]
-
- 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/0671—In-line storage system
-
- 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/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据管理方法、存储空间管理方法及装置,涉及数据存储领域。存储系统包含支持追加型写入的存储空间,存储空间包含第一区域和第二区域,第一区域和第二区域分别包含存储空间的一段连续地址;在第一区域处于分配给第一主机的状态的同时,第二区域处于分配给第二主机的状态。该数据管理方法包括:存储系统接收第一写请求和第二写请求,并将第一写请求包括的第一数据写入第一区域,将第二写请求包括的第二数据写入第二区域。存储系统仅需为多个主机在数据存储系统的内存中申请一个支持追加型写入的存储空间所对应的页面资源,降低了内存的消耗,提高了多主机并行写入数据的性能。
Description
本申请要求于2021年6月18日提交国家知识产权局、申请号为202110681048.3、申请名称为“数据访问方法”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及数据存储领域,尤其涉及一种数据管理方法、存储空间管理方法及装置。
背景技术
存储系统采用日志型存储的形式存储数据,日志型存储只能进行追加型写入,不能对完成写入的存储区域再进行修改。这些用于存储日志型写入和数据的存储区域称为持久化日志(Persistent log,Plog)。
通常,在数据写入的过程中,一个主机会在存储系统上分配一个或多个Plog用于数据写入。然而,在主机的数量较多的情况下,由于每个主机都需要存储系统分配与Plog的存储容量一致的内存资源,占用过多存储系统的内存空间,导致存储系统的内存空间不足以满足多主机并行写入的需求,从而影响存储系统的数据写入性能。
发明内容
本申请提供一种数据管理方法、存储空间管理方法及装置,解决了因为过多占用存储系统的内存空间,导致数据写入性能较低的问题。
为达到上述目的,本申请采用如下技术方案。
第一方面,本申请提供了一种数据管理方法,该方法可应用于存储系统,或者该方法可应用于可以支持存储系统实现该方法的数据存储系统,例如该存储系统包括芯片系统,该数据管理方法由存储系统执行,该存储系统包含支持追加型写入的存储空间,存储空间包含第一区域和第二区域,第一区域和第二区域分别包含存储空间的一段连续地址;在第一区域处于分配给第一主机的状态的同时,第二区域处于分配给第二主机的状态。该数据管理方法包括:存储系统接收第一写请求和第二写请求,并将第一数据写入第一区域,将第二数据写入第二区域。其中,该第一写请求包括来自第一主机的第一数据,第二写请求包括来自第二主机的第二数据。
在本发明实施例提供的数据管理方法中,存储系统可以在一个存储空间(如Plog)将不同的区域分别分配给相应的主机,即一个存储空间中的多个区域可同时处于分配给不同主机的状态,存储系统在内存中却只需要分配一个存储空间的存储容量的内存资源,即可以满足多个主机的并行写入需求,降低了内存的消耗,提高了多主机并行写入数据的性能。
在另一种可选的实现方式中,数据管理方法还包括:当第二数据已写入第二区域,且存储空间中第二区域之前已经分配的区域不具有空隙,存储系统向第二主机发送写入成功响应。由于存储空间中,第二区域之前不具有空隙,且第二数据已写入第二区域,因此,存储系统认为本轮的数据写入过程满足追加写语义,向第二主机返回写入成功响应,以便第二主机确定第二数据已写入成功,避免第二主机重复的向该存储空间写入第二数据,从而提高了存储系统的数据写入性能。
在另一种可选的实现方式中,数据管理方法还包括:当第二数据已写入第二区域,且存储空间中第二区域之前已经分配的区域具有空隙,存储系统向第二主机返回写入待定响应。由于存储空间中,第二区域之前已经分配的区域具有空隙,且第二数据已写入第二区域,因此,存储系统认为本轮的数据写入过程不满足追加写语义,向第二主机返回写入待定响应,以便第二主机确定第二数据虽然已经写入第二区域,但是第二数据的写入过程为非法写入,避免第二区域被重复操作,从而提高了存储系统的数据写入性能。
在另一种可选的实现方式中,存储系统向第二主机发送写入成功响应,包括:存储系统接收来自第二主机的查询请求,并依据查询请求向第二主机返回写入成功响应。示例的,若存储系统已经向第二主机返回写入待定响应,并在一定时长后,将第二区域之前已经分配的区域中的空隙进行补零,在存储系统接收到第二主机的查询请求之后,存储系统还可以向第二主机返回写入成功响应,以便第二主机确认第二数据已写入第二区域,且第二数据的写入过程满足追加写语义。
第二方面,本申请提供一种存储空间管理方法,该存储空间管理方法由存储系统执行,或者该方法可应用于可以支持存储系统实现该方法的存储设备,例如该存储系统包括芯片系统,该存储系统包括支持追加型写入的存储空间得到第一区域和第二区域,第一区域和第二区域分别包含存储空间的一段连续地址。该存储空间管理方法包括:存储系统将第一区域分配给第一主机;最后,存储系统还将第二区域处于分配给第二主机;在第一区域处于分配给第一主机的状态的同时,第二区域处于分配给第二主机的状态。
如此,在本发明实施例提供的存储空间管理方法中,存储系统可以将支持追加型写入的存储空间划分为多个区域,且该存储空间可以同时分配给多个主机,在多个主机进行数据访问的过程中,存储系统仅需在内存中打开一个存储空间所需的页面资源,避免每个主机在内存中打开一个存储空间相应的页面资源,减少了多个主机进行数据访问所需的页面资源,降低了内存的消耗,提高了多主机并行写入数据的性能。
结合第二方面或第一方面中任一种可能的实现方式,在一种可选的实现方式中,存储系统存储有约束信息,该约束信息用于指示在第一时长内,存储空间能够支持进行数据访问的主机的最大数量。存储系统中存储的约束信息可以约束存储空间支持写数据的主机的最大数量,从而避免单个存储空间中支持过多的主机写数据,约束单个存储空间中写数据的主机的负载数量,有利于控制节点有效的控制存储系统中存储空间读写数据的节奏,提高存储系统的数据写入性能。
结合第二方面或第一方面中任一种可能的实现方式,在另一种可选的实现方式中,在存储系统接收第一写请求之前,该数据管理方法还包括:存储系统接收来自第一主机的第一分配请求,并依据第一分配请求为第一主机分配第一区域。也就是说,若存储系统接收到来自第一主机的分配请求,则存储系统可以将支持追加型写入的存储空间中部分区域分配给第一主机,存储空间的其他区域可以分配给其他主机,进而,在数据写入过程中,存储系统的内存中一个存储空间可以供多个主机使用,这降低了每个主机进行数据访问所需的内存资源,提高了存储系统的内存可供主机进行数据访问的数量,提高了存储系统的数据访问性能。
结合第二方面或第一方面中任一种可能的实现方式,在另一种可选的实现方式中,在存储系统接收第一主机的第一分配请求之后,存储系统接收来自第二主机的第二分配请求,并依据第二分配请求为第二主机分配第二区域。也就是说,在存储系统将存储空间中第一区域分配给第一主机的状态下,存储系统还可以在第一时长内,将存储空间中第二区域分配给第二主机,进而,一个存储空间可以供多个主机进行数据访问,在数据访问过程中,存储系统的内存中可以仅打开一个存储空间所需的页面资源,这降低了多个主机进行数据访问所需的内存资源,提高了存储系统的内存可供主机进行数据访问的数量,提高了存储系统的数据访问性能。
结合第二方面或第一方面中任一种可能的实现方式,在另一种可选的实现方式中,存储系统还可以将第一区域和第一主机的分配关系以及第二区域和第二主机的分配关系解除。示例的,在达到第一时长的情况下,存储系统可以将存储空间中多个区域与多个主机的分配关系解除,从而避免该存储空间在写满后依然处于打开状态,减少其他主机对该多个区域的误写入,也避免了存储空间的内存始终打开该存储空间对应的页面资源,降低了内存的消耗,提高存储系统的数据访问性能。
结合第二方面或第一方面中任一种可能的实现方式,在另一种可选的实现方式中,存储系统将第一区域和第一主机的分配关系以及第二区域和第二主机的分配关系解除,包括:存储系统对存储空间中第三区域之前的空隙进行补零,该第三区域为存储空间在连续的地址上,依次分配给相应主机的多个区域中的最后一个区域;另外,存储系统还向存储空间对应的所有主机发送关闭消息,关闭消息用于指示多个区域停止处理数据访问,所有主机包括第一主机和第二主机。在本发明实施例提供的方法中,若达到本轮数据访问的结束时间(如上述的第一时长),存储系统可以将存储空间在连续的地址上,依次分配给相应主机的多个区域中的最后一个区域之前的空隙补零,从而使得存储空间的数据写入过程满足追加写语义;此外,存储系统还可以向存储空间对应的所有主机返回关闭消息,以便该所有主机确定该存储空间的本轮数据访问过程结束,避免出现该所有主机无休止的对该多个区域进行数据访问,提升存储系统的数据写入性能。
结合第二方面或第一方面中任一种可能的实现方式,在另一种可选的实现方式中,存储空间为命名空间,第一区域和第二区域为命名空间中的区域。
结合第二方面或第一方面中任一种可能的实现方式,在另一种可选的实现方式中,存储空间为叠瓦磁记录盘提供的存储空间,第一区域和第二区域为叠瓦磁记录盘中提供的存储空间中的区域。
命名空间或叠瓦磁记录盘打开主机的数量具有物理约束,在本发明实施例中,一个存储空间可供多个主机使用,提高了命名空间或叠瓦磁记录盘可分配的主机数量,提高了多主机并行处理数据访问的效率,以及存储系统的数据访问性能。
第三方面,本申请提供一种数据管理装置,所述数据管理装置包括用于执行第一方面或第一方面任一种可能实现方式中的数据管理方法的各个模块。
有益效果可以参见第一方面中任一方面的描述,此处不再赘述。所述数据管理装置具有实现上述第一方面中任一方面的方法实例中行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现,例如,该数据管理装置可以应用于存储系统或与存储系统通信的计算设备。
上述的硬件或软件包括一个或多个与上述功能相对应的模块。在一个可能的设计中,数据管理装置包括:通信单元,用于接收第一写请求和第二写请求;数据访问单元,用于将第一数据写入第一区域,将第二数据写入第二区域。其中,第一写请求包括来自第一主机的第一数据,第二写请求包括来自第二主机的第二数据;存储系统包含支持追加型写入的存储空间,存储空间包含第一区域和第二区域,第一区域和第二区域分别包含存储空间的一段连续地址;在第一区域处于分配给第一主机的状态的同时,第二区域处于分配给第二主机的状态。
作为一种可选的实现方式,存储系统存储有约束信息,约束信息用于指示在第一时长内,存储空间能够支持进行数据访问的主机的最大数量。
作为另一种可选的实现方式,通信单元,还用于接收来自第一主机的第一分配请求;数据管理装置还包括:空间分配单元;空间分配单元,用于依据第一分配请求为第一主机分配第一区域。
作为另一种可选的实现方式,通信单元,还用于接收来自第二主机的第二分配请求;空间分配单元,还用于依据第二分配请求为第二主机分配第二区域。
作为另一种可选的实现方式,数据管理装置还包括:分配解除单元;分配解除单元,用于将第一区域和第一主机的分配关系以及第二区域和第二主机的分配关系解除。
作为另一种可选的实现方式,分配解除单元,具体用于对存储空间中第三区域之前的空隙进行补零,第三区域为存储空间在连续的地址上,依次分配给相应主机的多个区域中的最后一个区域;分配解除单元,具体用于向存储空间对应的所有主机发送关闭消息,关闭消息用于指示多个区域停止处理数据访问,所有主机包括第一主机和第二主机。
作为另一种可选的实现方式,通信单元,还用于当第二数据已写入第二区域,且存储空间中第二区域之前已经分配的区域不具有空隙,向第二主机发送写入成功响应。
作为另一种可选的实现方式,通信单元,具体用于接收来自第二主机的查询请求;通信单元,具体用于依据查询请求向第二主机返回写入成功响应。
作为另一种可选的实现方式,通信单元,还用于当第二数据已写入第二区域,且存储空间中第二区域之前已经分配的区域具有空隙,向第二主机返回写入待定响应。
第四方面,本申请提供一种存储空间管理装置,所述存储空间管理装置包括用于执行第二方面或第一方面任一种可能实现方式中的存储空间管理方法的各个模块。
有益效果可以参见第二方面中任一方面的描述,此处不再赘述。所述存储空间管理装置具有实现上述第二方面中任一方面的方法实例中行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现,例如,该存储空间管理装置可以应用于存储系统。
上述的硬件或软件包括一个或多个与上述功能相对应的模块。在一个可能的设计中,存储系统包含支持追加型写入的存储空间,该存储空间包括第一区域和第二区域,第一区域和第二区域分别包含存储空间的一段连续地址。该存储空间管理装置包括:第一分配单元,用于将第一区域分配给第一主机;第二分配单元,还用于将第二区域处于分配给第二主机;在第一区域处于分配给第一主机的状态的同时,第二区域处于分配给第二主机的状态。
作为一种可选的实现方式,存储系统存储有约束信息,约束信息用于指示在第一时长内,存储空间能够支持进行数据访问的主机的最大数量。
作为另一种可选的实现方式,存储空间管理装置还包括:通信单元;通信单元,用于接收来自第一主机的第一分配请求;第一分配单元,具体用于依据第一分配请求为第一主机分配第一区域。
作为另一种可选的实现方式,通信单元,还用于接收来自第二主机的第二分配请求;第二分配单元,具体用于依据第二分配请求为第一主机分配第一区域。
作为另一种可选的实现方式,存储空间管理装置还包括:解除单元;解除单元,用于将第一区域和第一主机的分配关系以及第二区域和第二主机的分配关系解除。
作为另一种可选的实现方式,解除单元,具体用于对存储空间中第三区域之前的空隙进行补零,第三区域为存储空间在连续的地址上,依次分配给相应主机的多个区域中的最后一个区域。解除单元,具体用于向存储空间对应的所有主机发送关闭消息,关闭消息用于指示多个区域停止处理数据访问,所有主机包括第一主机和第二主机。
结合第四方面或第三方面中任一种可能的实现方式,在另一种可选的实现方式中,存储空间为命名空间,第一区域和第二区域为命名空间中的区域。
结合第四方面或第三方面中任一种可能的实现方式,在另一种可选的实现方式中,存储空间为叠瓦磁记录盘提供的存储空间,第一区域和第二区域为叠瓦磁记录盘中提供的存储空间中的区域。
第五方面,本申请提供一种数据存储系统,包括上述任一方面所述的第一主机、第二主机和存储系统。该存储系统包含支持追加型写入的存储空间,存储空间包含第一区域和第二区域,第一区域和第二区域分别包含存储空间的一段连续地址;在第一区域处于分配给第一主机的状态的同时,第二区域处于分配给第二主机的状态。
存储系统接收第一写请求和第二写请求,并将第一数据写入第一区域,将第二数据写入第二区域。该第一写请求包括来自第一主机的第一数据,第二写请求包括来自第二主机的第二数据。
如此,存储系统可以将支持追加型写入的存储空间划分为多个区域,且该存储空间可以同时分配给多个主机,在多个主机进行数据访问的过程中,存储系统仅需在内存中打开一个存储空间所需的页面资源,避免每个主机在内存中打开一个存储空间相应的页面资源,减少了多个主机进行数据访问所需的页面资源,降低了内存的消耗,提高了多主机并行写入数据的性能。另外,若存储系统中内存打开的Plog(如上述的支持追加型写入的存储空间)的数量不变,存储系统可以并行的将多个主机的数据写入一个Plog中,存储系统的内存中可以暂存更多数量主机的缓存数据,减少了多个主机向存储系统写入数据的内存消耗,提高了存储系统并行写入数据的效率。
值得注意的是,该数据存储系统还可以实现上述第二方面或第一方面任一种可能实现方式中的方法。有益效果可以参见第二方面或第一方面中任一方面的描述,此处不再赘述。所述数据存储系统具有实现上述第二方面或第一方面中任一方面的方法实例中行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。
第六方面,本申请提供一种存储系统,包括:存储器和处理器,存储器用于存储一组计算机指令;当处理器执行一组计算机指令时,实现第二方面或第一方面中任一方面所述的方法。
第七方面,本申请提供一种计算机可读存储介质,存储介质中存储有计算机程序或指令,当计算机程序或指令被存储系统中的处理器执行时,实现第二方面或第一方面中任一方面所述的方法。
第八方面,本申请提供一种计算机程序产品,该计算程序产品包括指令,当计算机程序产品在存储系统中的处理器上运行时,使得存储系统中的处理器执行该指令,以实现上述任意一方面或任一方面的可能的实现方式中所述的方法的操作步骤。
第九方面,本申请提供一种芯片,该芯片包括逻辑电路和接口电路,该接口电路,用于获取输入信息和/或输出输出信息;该逻辑电路用于执行上述任一方面或任一方面任意可能的实现方式所述的方法,根据输入信息进行处理和/或生成输出信息,或读/写数据等。该芯片可以设置在上述任一方面中的存储系统中。
第十方面,本申请提供一种硬盘,该硬盘包括控制器和存储介质,硬盘提供支持追加型写入的存储空间,存储空间包含第一区域和第二区域,第一区域和第二区域分别包含存储空间的一段连续地址;控制器用于:处理第一主机对第一区域的访问,以及处理第二主机对第二区域的访问;在第一区域处于分配给第一主机的状态的同时,第二区域处于分配给第二主机的状态。
在一种可能的示例中,存储空间为命名空间,第一区域和第二区域为命名空间中的区域。在另一种可能的示例中,硬盘为叠瓦磁记录盘,存储空间为的逻辑块地址空间,第一区域和第二区域为所逻辑块地址空间中的区域。
在实施例提供的硬盘可以将支持追加型写入的存储空间划分为多个区域,且该存储空间可以同时分配给多个主机,在多个主机进行数据访问的过程中,硬盘仅需在内存中打开一个存储空间所需的页面资源,避免每个主机在内存中打开一个存储空间相应的页面资源,减少了多个主机进行数据访问所需的页面资源,降低了内存的消耗,提高了多主机并行写入数据的性能。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
图1为本申请提供的一种存储系统的示意图;
图2为本申请提供的一种Plog的示意图一;
图3为本申请提供的一种数据管理方法的流程图;
图4为本申请提供的一种存储空间和数据管理的流程图;
图5为本申请提供的一种Plog的示意图二;
图6为本申请提供的一种数据管理装置的结构示意图;
图7为本申请提供的一种存储空间管理装置的结构示意图。
具体实施方式
本申请说明书和权利要求书及上述附图中的术语“第一”、“第二”和“第三”等是用于区别不同对象,而不是用于限定特定顺序。
在本发明实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本发明实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
为了下述各实施例的描述清楚简洁,首先给出相关技术的简要介绍。
图1为本申请提供的一种存储系统的示意图,在图1所示的应用场景中,用户通过应用程序来存取数据,运行这些应用程序的计算机可以被称为“主机”,如图1所示出的第一主机101和第二主机102。主机可以是物理机,也可以是虚拟机(virtual machine,VM)或者容器(container)。物理主机包括但不限于桌面电脑、服务器、笔记本电脑以及移动设备。
在一种可能的示例中,主机通过网络访问存储系统120以存取数据,例如,该网络可以包括交换机110。在另一种可能的示例中,主机也可以通过有线连接与存储系统120通信,例如,通用串行总线(universal serial bus,USB)或快捷外围组件互连标准(peripheral component interconnect express,PCIe)总线等。在另一种实现方式中,主机可以运行在存储系统中。
本申请提供的数据管理方法可以是由存储系统120执行的,例如,该存储系统120可以是集中式存储系统或分布式存储系统。
图1所示的存储系统120可以是一个集中式存储系统。集中式存储系统的特点是有一个统一的入口,所有从外部设备来的数据都要经过这个入口,这个入口就是集中式存储系统的引擎121。引擎121是集中式存储系统中最为核心的部件,许多存储系统的高级功能都在其中实现。
如图1所示,引擎121中可以有一个或多个阵列控制器,图1以引擎121包含一个阵列控制器为例予以说明。在一种可能的示例中,若引擎121具有多个阵列控制器,任意两个阵列控制器之间可以具有镜像通道,实现任意两个阵列控制器互为备份的功能,从而避免硬件故障导致整个存储系统120的不可用。
引擎121还包含前端接口1211和后端接口1214,其中前端接口1211用于与主机通信,从而为主机提供存储服务。而后端接口1214用于与硬盘通信,以扩充存储系统120的容量。通过后端接口1214,引擎121可以连接更多的硬盘,从而形成一个非常大的存储资源池。
在硬件上,如图1所示,阵列控制器至少包括处理器1212、内存1213。处理器1212是一个中央处理器(central processing unit,CPU),用于处理来自存储系统120外部(服务器或者其他存储系统)的数据访问请求,也用于处理存储系统120内部生成的请求。示例性的,处理器1212通过前端端口1211接收主机发送的写数据请求时,会将这些写数据请求中的数据暂时保存在内存1213中。当内存1213中的数据总量达到一定阈值时,处理器1212通过后端端口将内存1213中存储的数据发送给机械硬盘1211、机械硬盘1222、固态硬盘(Solid State Drive,SSD)1223或其他硬盘1224中至少一个硬盘进行持久化存储。
内存1213是指与处理器直接交换数据的内部存储器,它可以随时读写数据,而且速度很快,作为操作系统或其他正在运行中的程序的临时数据存储器。内存包括至少两种存储器,例如内存既可以是随机存取存储器,也可以是只读存储器(Read Only Memory,ROM)。举例来说,随机存取存储器是DRAM,或者SCM。DRAM是一种半导体存储器,与大部分随机存取存储器(Random Access Memory,RAM)一样,属于一种易失性存储器(volatilememory)设备。然而,DRAM和SCM在本实施例中只是示例性的说明,内存还可以包括其他随机存取存储器,例如静态随机存取存储器(Static Random Access Memory,SRAM)等。而对于只读存储器,举例来说,可以是可编程只读存储器(Programmable Read Only Memory,PROM)、可抹除可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)等。另外,内存1213还可以是双列直插式存储器模块或双线存储器模块(Dual In-line MemoryModule,简称DIMM),即由动态随机存取存储器(DRAM)组成的模块,还可以是SSD。实际应用中,控制器中可配置多个内存1213,以及不同类型的内存1213。本实施例不对内存1213的数量和类型进行限定。此外,可对内存1213进行配置使其具有保电功能。保电功能是指系统发生掉电又重新上电时,内存1213中存储的数据也不会丢失。具有保电功能的内存被称为非易失性存储器。
内存1213中存储有软件程序,处理器1212运行内存1213中的软件程序可实现对硬盘的管理。例如将硬盘抽象化为存储资源池,并将存储资源池以逻辑单元号(logical unitnumber,LUN)的形式提供给服务器使用等。这里的LUN其实就是在服务器上看到的硬盘。当然,一些集中式存储系统本身也是文件服务器,可以为服务器提供共享文件服务。
上述的内存1213也可以是其他存储器,该存储器可以用于存储一组计算机指令;当处理器1212执行该组计算机指令时,可以实现本发明实施例提供的数据管理方法和存储空间管理方法。例如,该其他存储器可以是但不限于易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是ROM、PROM、EPROM、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是RAM,其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如SRAM、DRAM、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data date SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhancedSDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
在一种可能的情况下,图1所提供的存储系统120可以包含支持追加型写入的存储空间,如图2所示,图2为本申请提供的一种Plog的示意图一,存储系统120可以包括多个Plog(如Plog-1、Plog-2、Plog-3…Plog-N)。例如,Plog可以为存储系统120提供数据写入服务,承接主机的数据写入等。一种实现方式,Plog为挂载给主机的LUN提供存储空间。另一种实现方式,直接将Plog中的区域挂载给主机。为主机提供存储空间。
在第一种可能的示例中,存储系统120为集中式存储系统,多个Plog的存储空间可以由一个硬盘提供,如图1所示出的固态硬盘1223。
在第二种可能的示例中,存储系统120为集中式存储系统,多个Plog的存储空间可以由多个硬盘提供,如图1所示,Plog-1的存储空间由可以由固态硬盘1223提供,Plog-2的存储空间由可以由机械硬盘1222提供。
在第三种可能的示例中,存储系统120为集中式存储系统,一个Plog的存储空间可以由多个硬盘提供,使得该Plog具有跨硬盘的数据保护功能,例如提供多副本或者纠删码(Erasure Coding,EC)技术的数据保护。其中,EC技术包含独立磁盘冗余阵列(RedundantArray of Independent Disks,RAID)技术。
在第四种可能的示例中,存储系统120为集中式存储系统,一个硬盘提供一个Plog。
以上示例仅为说明在集中式存储系统中,Plog提供的存储空间的实现方式,不应理解为对本申请的限定。
例如,图1所示的存储系统120还可以是分布式存储系统,该分布式存储系统包括存储节点集群,存储节点集群包括一个或多个存储节点,各个存储节点之间可以相互通信。存储节点可以是服务器、台式计算机等。在硬件上,存储节点可以包括处理器、内存和网卡等。其中,处理器可以是一个CPU,用于处理来自数据访问请求。
在第一种可能的情形中,若存储系统120为分布式存储系统,多个Plog的存储空间可以由分布式存储系统中的一个存储节点提供。
在第二种可能的情形中,若存储系统120为分布式存储系统,多个Plog的存储空间可以由分布式存储系统中的多个存储节点提供,如Plog-1的存储空间由多个存储节点中第一存储节点提供,Plog-2的存储空间由多个存储节点中第二存储节点提供。
在第三种可能的示例中,存储系统120为分布式存储系统,一个Plog的存储空间可以由多个存储节点提供,使得该Plog具有跨存储节点的数据保护功能,例如提供多副本或者纠EC技术的数据保护。其中,EC技术包含RAID技术。
在第四种可能的示例中,存储系统120为分布式存储系统,一个硬盘提供一个Plog。
以上示例仅为说明在分布式存储系统中,Plog提供的存储空间的实现方式,不应理解为对本申请的限定。
另外,图1中只示出了一个引擎121,然而在实际应用中,存储系统中可包含两个或两个以上引擎121,多个引擎121之间做冗余或者负载均衡。
值得注意的是,Plog是支持追加型写入的存储空间的一种实现形式,图2为本发明实施例以Plog为例对追加型写入的存储空间进行说明的。
作为一种可选的实现方式,在图1所示出的该数据存储系统中,引擎121可以不具有硬盘槽位,硬盘需要放置在硬盘框中,后端接口1214与硬盘框通信。后端接口1214以适配卡的形态存在于引擎121中,一个引擎121上可以同时使用两个或两个以上后端接口1214来连接多个硬盘框。或者,适配卡也可以集成在主板上,此时适配卡可通过PCIE总线与处理器1212通信。
硬盘框包括控制单元和若干个硬盘。控制单元可具有多种形态。一种情况下,硬盘框属于智能盘框,如控制单元包括CPU和内存。CPU用于执行地址转换以及读写数据等操作。内存用于临时存储将要写入硬盘的数据,或者从硬盘读取出来将要发送给控制器的数据。另一种情况下,控制单元是一个可编程的电子部件,例如数据处理单元(data processingunit,DPU)。DPU具有CPU的通用性和可编程性,但更具有专用性,可以在网络数据包,存储请求或分析请求上高效运行。DPU通过较大程度的并行性(需要处理大量请求)与CPU区别开来。可选的,这里的DPU也可以替换成图形处理单元(graphics processing unit,GPU)、嵌入式神经网络处理器(neural-network processing units,NPU)等处理芯片。通常情况下,控制单元的数量可以是一个,也可以是两个或两个以上。控制单元的功能可以卸载到网卡硬盘框中的网卡上。换言之,在该种实施方式中,硬盘框内部不具有控制单元,而是由网卡来完成数据读写、地址转换以及其他计算功能。此时,网卡是一个智能网卡。它可以包含CPU和内存。CPU用于执行地址转换以及读写数据等操作。内存用于临时存储将要写入硬盘的数据,或者从硬盘读取出来将要发送给控制器的数据。也可以是一个可编程的电子部件,例如DPU。硬盘框中的网卡和硬盘之间没有归属关系,网卡可访问该硬盘框中任意一个硬盘(如图1所示出的机械硬盘1221、机械硬盘1222、固态硬盘1223和其他硬盘1224),因此在存储空间不足时扩展硬盘会较为便捷。
按照引擎与硬盘框之间通信协议的类型,硬盘框可以是支持串行连接的小型计算机系统接口(serial attached small computer system interface,SAS)的硬盘框,也可以是支持非易失性存储器快速(non-volatile memory express,NVMe)接口规范的硬盘框以及其他类型的硬盘框。SAS硬盘框,可以采用SAS3.0协议,每个框支持25块SAS硬盘。引擎通过板载SAS接口或者SAS接口模块与硬盘框连接。NVMe接口的硬盘框,NVMe硬盘插在NVMe硬盘框内。NVMe硬盘框再通过RDMA端口与引擎连接,或者NVMe硬盘框通过PCIe总线与引擎连接。
下面将结合附图对本发明实施例的实施方式进行详细描述。
图3为本申请提供的一种数据管理方法的流程图,图3中的第一主机31用于实现图1所示出的第一主机101的功能,第二主机32用于实现图1所示出的第二主机102的功能,控制节点33可以实现存储系统120的处理功能,如该控制节点33可以由图1中的阵列控制器来实现,若存储系统为分布式存储系统,该控制节点33还可以由分布式存储系统中的一个或多个存储节点来实现。本发明实施例提供的数据管理方法包括以下步骤S310~S330。
S310,第一主机31向控制节点33发送第一写请求。
对应的,控制节点33接收来自第一主机31的第一写请求。
该第一写请求包括来自第一主机31的第一数据。该第一写请求可以是写I/O请求,也可以是写日志请求等。
S320,第二主机32向控制节点33发送第二写请求。
对应的,控制节点33接收来自第二主机32的第二写请求。
该第二写请求包括来自第二主机32的第二数据。
上述的第一数据和第二数据,可以是但不限于:业务数据或日志(log)等,该日志可以是记录业务数据的预写式日志(write ahead log,WAL),还可以是主机的数据操作记录等。
存储系统120中的多个Plog支持追加型写入,如图2所示,Plog-1包含第一区域(区域1)和第二区域(区域2),该第一区域和第二区域分别包含一段连续地址。
在第一区域处于分配给第一主机的状态的同时,该第二区域可以处于分配给第二主机的状态。值得注意的是,“区域处于分配给主机的状态”是指主机可以对该区域进行数据访问,数据访问的操作包括读操作或写操作等,因此,第一区域可以称为第一主机31的可写入位置,第二区域可以称为第二主机32的可写入位置。本发明实施例中的区域分配给主机,可以是直接分配,也可以是间接分配。例如,直接分配给主机,可以是将区域挂载给主机,即该区域对主机可见;又如,间接分配给主机,可以是将区域分配给主机挂载的LUN,为LUN提供存储空间。
在一种可能的示例中,Plog-1还包含已写区域、第三区域和空白区域。
该已写区域是指Plog-1中已经存储有业务数据或log、WAL等的区域。
在第一区域处于分配给第一主机的状态的同时,Plog-1中的第三区域处于分配给第三主机的状态,该第三区域可以包含一段连续地址。
空白区域是指Plog-1中未存储有业务数据或log、WAL等的区域,且该区域也未被控制节点33分配给其他主机。
值得注意的是,图2中各区域的位置仅为本申请提供的示例,不应理解为对本申请的限定。
例如,该Plog-1中不存在空白区域,Plog-1中的尾部区域即为第三区域。
又如,该Plog-1中不存在第三区域和空白区域,Plog-1中的尾部区域即为第二区域。
又如,该Plog-1中不存在已写区域、空白区域和第三区域,Plog-1中的头部区域即为第一区域,Plog-1中的尾部区域即为第二区域。
在本发明实施例提供的数据管理方法中,无论Plog中是否包括已写区域和空白区域等,一个Plog可以处于被分配给至少两个主机的状态,在数据写入过程中,尤其是对于多主机并行写入数据的情形,控制节点33仅需在存储系统的内存中申请一个Plog所对应的页面资源,避免了每个主机都需要申请一个Plog所需的页面资源,降低了内存的消耗,提高了多主机并行写入数据的性能。
值得注意的是,存储系统中的内存还可以是指内存池,该内存池是将一个或多个内存进行虚拟化得到的。
请继续参见图3,本发明实施例提供的数据管理方法还包括以下步骤S330。
S330,控制节点33将第一数据写入第一区域,将第二数据写入第二区域。
相较于通常技术中,每个主机都需要与Plog的存储容量一致的内存资源,导致存储系统的内存空间不足;在本发明实施例提供的数据管理方法中,控制节点33仅需为多个主机在数据存储系统的内存中申请一个Plog所对应的页面资源,避免了每个主机都需要申请一个Plog所需的页面资源,降低了内存的消耗,提高了多主机并行写入数据的性能。
换句话说,在本发明实施例提供的数据管理方法中,存储系统的在相同内存容量下,可以为更多主机分配区域用于进行数据写入,减少了多个主机向存储系统写入数据的内存消耗,提高了存储系统并行写入数据的效率。
此外,上述S310~S330仅为本发明实施例为说明数据管理方法的一种可能的示例,在S330的执行过程中,控制节点还可以将更多主机(一个或多个)的数据写入第一区域和第二区域所在的Plog。
这里以控制节点33还可以将第三主机的第三数据写入Plog-1为例进行说明,如在第一区域处于分配给第一主机的状态的同时,Plog-1中的第二区域处于分配给第二主机的状态,且Plog-1中的第三区域处于分配给第三主机的状态,则在S330的执行过程中,控制节点33还可以将第三主机的第三数据写入第三区域。
主机向分配区域写数据过程中,写入的数据不能覆盖或超出主机对应的分配区域。示例的,在第一主机向第一区域写入第一数据的过程中,若第一数据的数据量超过第一区域的存储空间,则控制节点还可以在第一区域写满之后,向第一主机发送写满返回码,该写满返回码用于指示第一区域已经写满,以便第一主机重新向控制节点申请区域,以便将第一数据中的剩余数据写入其他Plog的区域,或该Plog中的其他区域中。
作为一种可选的实现方式,为了避免一个Plog用于过多的主机进行数据读写,存储系统120中还可以存储有约束信息,该约束信息用于指示在第一时长内,存储空间能够支持进行数据访问的主机的最大数量。示例的,该约束信息可以用表格的形式来表示。
在一种可能的情形中,存储系统120中多个Plog的约束信息可以是相同的,每个Plog支持写数据的主机的最大数量也是相同的,图2所示出的多个Plog的约束信息可以如下表1所示。
表1
其中,存储系统120中的多个Plog(Plog-1~Plog-N)中每个Plog均可以供3个主机使用。
在第二种可能的情形中,存储系统120中多个Plog的约束信息可以是不同的,每个Plog支持写数据的主机的最大数量也是不同的,图2所示出的多个Plog的约束信息可以如下表2所示。
表2
Plog | 约束信息 |
Plog-1 | 3 |
Plog-2 | 4 |
Plog-3 | 5 |
··· | ··· |
Plog-N | N+2 |
其中,Plog-1支持写数据的主机的最大数量为3,Plog-2支持写数据的主机的最大数量为4,Plog-3支持写数据的主机的最大数量为5,Plog-N支持写数据的主机的最大数量为N+2。
在第三种可能的情形中,存储系统120中多个Plog支持写数据的主机的最大数量还可以是依据Plog的序号或标识确定的,例如,奇数Plog(如Plog-1和Plog-3)支持写数据的主机的最大数量为3,偶数Plog(如Plog-2和Plog-4)支持写数据的主机的最大数量为4。
以上三种可能的情形仅为本发明实施例为说明约束信息而提供的可能的示例,约束信息还可以是依据每个存储空间所包含的连续地址对应的存储容量确定的。
如此,存储系统中存储的约束信息可以约束存储空间支持写数据的主机的最大数量,从而避免单个存储空间中支持过多的主机写数据,约束单个存储空间中写数据的主机的负载数量,有利于控制节点有效的控制存储系统中存储空间读写数据的节奏,提高存储系统的数据写入性能。
另外,由于存储系统可以将支持追加型写入的存储空间划分为多个区域,且该存储空间可以同时分配给多个主机,因此,在多个主机进行数据访问的过程中,存储系统仅需在内存中打开一个存储空间所需的页面资源,避免每个主机在内存中打开一个存储空间相应的页面资源,减少了多个主机进行数据访问所需的页面资源,降低了内存的消耗,提高了多主机并行写入数据的性能。
为了确定多个主机在Plog中写入数据的区域,本发明实施例提供一种可选的实现方式,如图4所示,图4为本申请提供的一种存储空间管理和数据管理的流程图,该数据管理方法包括以下步骤S410~S440。
S410,第一主机31向控制节点33发送第一分配请求。
对应的,控制节点33接收来自第一主机31的第一分配请求。
第一主机31向存储系统120申请存储空间用于持久化存储,该第一分配请求用于指示控制节点33为该第一主机31分配区域的存储容量。
在一种可能的情况下,该第一分配请求所指示的区域的存储容量大于或等于第一主机31在本轮数据写入过程实际所需的存储空间,以便满足第一主机31多次写入的需求,提高存储系统120的数据写入性能。
在第一种可能的示例中,该第一分配请求所指示的区域的存储容量可以是固定的,如512千字节(kilo bytes,KB)。
在第二种可能的示例中,该第一分配请求所指示的区域的存储容量也可以是第一主机31依据第一主机31的写入性能进行预估确定的。如第一主机31在一定时长内的写入速度较快,则该区域的存储容量可以是1兆字节(mega bytes,MB);如第一主机31在一定时长内的写入速度较慢,则该区域的存储容量可以是64KB。
值得注意的是,上述两种可能的示例仅为本发明实施例为说明第一分配请求给出的示例,不应理解为对本申请的限定。
在控制节点33接收到该第一分配请求后,可以依据第一分配请求为第一主机分配第一区域。也就是说,若存储系统接收到来自第一主机的分配请求,则存储系统可以将支持追加型写入的存储空间中的一个或多个区域分配给第一主机,存储空间的其他区域可以分配给其他主机。
如此,在数据写入过程中,存储系统的内存中一个存储空间可以供多个主机使用,这降低了每个主机进行数据访问所需的内存资源,提高了存储系统的内存可供主机进行数据访问的数量,提高了存储系统的数据访问性能。
S420,控制节点33依据第一分配请求向第一主机发送第一消息。
该第一消息用于指示为第一主机分配第一区域。
值得注意的是,该第一区域对应的存储容量可以是与第一分配请求所指示的存储容量相等,该第一区域对应的存储容量还可以大于第一分配请求所指示的存储容量。
在一种可能的示例中,该第一消息包括第一区域所指示的LBA,以便第一主机31依据该第一区域所指示的LBA读写数据。本发明实施例中,第一消息还可以包括其他用于指示第一区域的信息,例如第一区域的起始地址等,本发明实施例对此不作限定。
S430,第一主机31向控制节点33发送第一写请求。
关于S430的具体过程可以参考上述S310的描述。
另外,第一主机31接收到第一消息之后可以进行计时,如图4所示出的T2(第二时长),在T2内,第一主机31可以对第一区域进行数据的写入。
S440,控制节点33向第一主机31返回第一写响应。
在第一种可能的情形中,当第一数据已写入第一区域,且存储空间中第一区域之前已经分配的区域不具有空隙,存储系统向第一主机发送写入成功响应(第一写响应)。空隙是指在存储空间的区域中未存储数据的空白区域,或称空置的存储位(bit),“存储空间中第一区域之前已经分配的区域不具有空隙”是指第一区域之前已经分配的区域中不具有空白区域,即区域中每个存储位均已被数据(如0和1)填充。如图2所示,若区域1之前的已写区域中每个存储位都被数据填充,且第一写请求包括的第一数据已经写入区域1,则控制节点33可以向第一主机31返回写入成功响应。
由于存储空间中第一区域之前已经分配的区域不具有空隙,且第一数据已写入第一区域,因此,存储系统确定第一主机在本轮的数据写入过程满足追加写语义,向第一主机返回写入成功响应,以便第一主机确定第一数据已写入成功,避免第一主机重复的向该存储空间写入第一数据,从而提高了存储系统的数据写入性能。
示例的,追加写语义是指在日志型存储过程中,存储系统使用追加写(appendwrite)的方式将数据写入存储空间,且不能对完成写入的区域再进行修改,以保证数据的一致性。在日志型存储中,即便在发生正在写入位置出现错误时,也可以较容易的回退到一致性的时间点。
在第二种可能的情形中,若第一数据已写入第一区域,且存储空间中第一区域之前已经分配的区域具有空隙,存储系统向第一主机返回写入待定响应(第一写响应)。如图2所示,若区域1之前的已写区域中存在至少一个存储位未被数据填充,且第一写请求包括的第一数据已经写入区域1,则控制节点33可以向第一主机31返回写入待定响应。
由于存储空间中第一区域之前已经分配的区域具有空隙,且第一数据已写入第一区域,因此,存储系统判断第一主机在本轮的数据写入过程不满足追加写语义,向第一主机返回写入待定响应,避免第一主机重复的向该存储空间写入第一数据,从而提高了存储系统的数据写入性能。
如此,控制节点33可以依据第一主机31的第一分配请求,为第一主机分配Plog中的第一区域,以便第一主机31对该第一区域进行数据写入,在控制节点33将第一写请求包括的第一数据写入第一区域之后,控制节点33还可以向第一主机31返回第一写响应,以便第一主机31确定第一数据已写入第一区域,避免第一主机31重复向第一区域写数据,提高了存储系统120的数据写入性能。
作为一种可选的实现方式,在控制节点33接收到第一分配请求之后,控制节点33还可以进行计时,如图4所示出的T1(第一时长),该T1为存储系统120中该第一区域所对应的Plog的本轮数据写入的时长,请继续参见图4,在控制节点33接收到第一主机31的第一分配请求之后,本发明实施例提供的数据管理方法还可以包括以下步骤S450~S480。
S450,控制节点33接收来自第二主机32的第二分配请求。
如图4所示,一种实现方式,在T1内,控制节点33可以继续接收第二主机32的第二分配请求,以便依据该第二分配请求为第二主机32分配Plog中的可写入位置。关于第二分配请求更详尽的内容可以参考第一分配请求的相关阐述,此处不再赘述。
在存储系统将存储空间中第一区域分配给第一主机的状态下,若控制节点33在第一时长内接收到该第二分配请求后,可以依据第二分配请求为第二主机分配第二区域。也就是说,存储系统还可以在第一时长内,将存储空间中第二区域分配给第二主机,进而,一个存储空间可以供多个主机进行数据访问,在数据访问过程中,存储系统的内存中可以仅打开一个存储空间所需的页面资源,这降低了多个主机进行数据访问所需的内存资源,提高了存储系统的内存可供主机进行数据访问的能力,提高了存储系统的数据访问性能。
S460,控制节点33依据第二分配请求向第二主机32发送第二消息。
对应的,第二主机32接收来自控制节点33的该第二消息。
该第二消息用于指示为第二主机分配第二区域。
如图2所示,若在存储系统120的本轮数据写入过程中,Plog-1分配给2个主机使用,则该第二区域所包含的连续地址可以与第一区域包含的连续地址是连续的。
S470,第二主机32向控制节点33发送第二写请求。
对应的,控制节点33接收来自第二主机32的第二写请求。
关于S470的具体过程可以参考上述S320的描述。
另外,第二主机32接收到第二消息之后可以进行计时,如图4所示出的T2(第二时长),在T2内,第二主机32可以对第二区域进行数据的写入。
S480,控制节点33向第二主机32返回第二写响应。
在一种可能的示例中,当第二数据已写入第二区域,且存储空间中第二区域之前不具有空隙,存储系统向第二主机发送写入成功响应(第二写响应)。如图2所示,当已写区域和区域1中均不具有空置的存储bit时,控制节点33可以确定Plog-1中区域2之前没有空隙,并在第二写请求包括的第二数据已经写入区域2的情况下,控制节点33可以向第二主机32返回写入成功响应(第二写响应)。
由于存储空间中第二区域之前已经分配的区域不具有空隙,且第二数据已写入第二区域,因此,存储系统判断本轮的数据写入满足追加写语义,向第二主机返回写入成功响应,以便第二主机确定第二数据已写入成功,避免第二主机重复的向该存储空间写入第二数据,从而提高了存储系统的数据写入性能。
在另一种可能的示例中,若第二数据已写入第二区域,且存储空间中第二区域之前已经分配的区域具有空隙,存储系统向第二主机返回写入待定响应(第一写响应)。如图2所示,当已写区域和区域1中至少一个具有空置的存储bit时,控制节点33可以确定Plog-1中区域2之前具有空隙,并在第二写请求包括的第二数据已经写入区域2的情况下,控制节点33可以向第二主机32返回写入待定响应(第二写响应)。
由于存储空间(如Plog-1)中,第二区域之前已经分配的区域具有空隙,且第二数据已写入第二区域,因此,存储系统判断本轮的数据写入过程不满足追加写语义,向第二主机返回写入待定响应,以便第二主机确定第二数据虽然已经写入第二区域,但是第二数据的写入过程为非法写入,避免第二区域被重复操作,从而提高了存储系统的数据写入性能。
值得注意的是,若存储系统(控制节点33)已经向第二主机返回写入待定响应,并在一定时长后,将第二区域之前已经分配的区域具有的空隙进行补零,在存储系统接收到第二主机的查询请求之后,存储系统还可以向第二主机返回写入成功响应,以便第二主机确认第二数据已写入第二区域,且第二数据的写入过程满足追加写语义。示例的,若第二主机32先接收到写入待定响应,在T2内,第二主机32还可以向控制节点33发送查询请求,若控制节点33确定第一数据和第二区域之间不具有空隙后,控制节点33还可以依据该查询请求向第二主机32返回上述的写入成功响应。
换言之,第二主机32在收到写入待定响应后,可以通过主动向控制节点33查询第二数据的写入是否成功,若控制节点33确定第一数据和第二区域之间不具有空隙,且第二数据已经写入第二区域,则控制节点33可以向第二主机33返回写入成功响应,以便第二主机33确定第二数据已经写入成功,且第二区域满足追加写语义。
由于存储空间中第二区域之前已经分配的区域具有空隙,且第二数据已写入第二区域,因此,存储系统判断本轮的数据写入不满足追加写语义,向第二主机返回写入待定响应,以便第二主机确定第二数据虽然已经写入第二区域,但是第二数据的写入过程为非法写入,避免第二区域被重复操作,从而提高了存储系统的数据写入性能。
另外,若第二主机33不主动向控制节点33查询第二数据是否写入成功,第二主机32还可以在接收到写入待定响应后,若到达计时时间(如图4所示出的T2),则确定第二数据写入成功。
值得注意的是,为了避免第二主机32错误地判断第二数据的写入成功与否,控制节点33还可以对T1和T2的大小进行控制,如设置T2大于或等于T1,又由于第二主机32开始向第二区域写第二数据的时间晚于控制节点33接收到第二分配请求的时间,因此,T2的结束时间晚于T1的结束时间,从而,避免了第二主机32错误的确定第二数据已经成功写入第二区域,也避免了T2时间内,其他主机对该第二区域进行操作,提高了存储系统120的数据写入性能。
作为一种可选的实现方式,在第一时长后,控制节点33可以将第一区域与第一主机的分配关系以及第二区域与第二主机的分配关系解除。或称控制节点33关闭第一区域所在Plog的数据写入过程。该数据写入过程包括控制节点33为主机分配Plog中区域的过程,以及主机向Plog中的区域写数据的过程。
如此,在达到第一时长的情况下,存储系统可以将存储空间中的区域与主机的分配关系解除,从而避免该存储空间在写满后依然处于打开状态,避免了存储空间的内存始终打开该存储空间对应的页面资源,降低了内存的消耗,提高存储系统的数据访问性能。示例的,控制节点33可以根据接收到第一分配请求后的第一时长将第一区域与第一主机的分配关系以及第二区域与第二主机的分配关系解除,有利于控制节点33实现存储系统的区域分配时间和数据写入时间匹配,避免存储系统120中的内存长期维持该Plog的缓存,减少存储系统120中的内存占用,提高了存储系统120的数据写入性能。
在一种可能的示例中,控制节点33将第一区域与第一主机的分配关系以及第二区域与第二主机的分配关系解除,可以包括:控制节点33对存储空间中第三区域之前的空隙进行补零,并向存储空间对应的所有主机发送关闭消息。
该第三区域为存储空间在连续的地址上,依次分配给相应主机的多个区域中的最后一个区域,如图2所示出的区域3。
另外,上述的关闭消息用于指示多个区域停止处理数据访问,所有主机包括第一主机和第二主机。
例如,控制节点33对Plog中第三区域之前的空隙进行补零,该第三区域可以包含第一区域所在Plog中本轮数据写入过程分配的最后一段连续地址;控制节点33还向该Plog中已经分配的区域对应的所有主机发送第三消息,第三消息用于指示已经分配的区域停止处理数据访问,所有主机包括第一主机、第二主机,以及第三区域对应的第三主机。
在本发明实施例提供的方法中,若达到本轮数据访问的结束时间(如上述的第一时长),存储系统可以将存储空间在连续的地址上,依次分配给相应主机的多个区域中的最后一个区域之前的空隙补零,从而使得存储空间的数据写入过程满足追加写语义;此外,存储系统还可以向存储空间对应的所有主机返回关闭消息,以便该所有主机确定该存储空间的本轮数据访问过程结束,释放存储系统相应的内存资源,提升存储系统的数据写入性能。
具体的,首先,由于Plog是以日志型存储的形式存储数据,Plog内存储地址是连续的。第一区域作为Plog内第一个区域,因此,第一区域之前的区域不具有空隙;其次,由于第三区域包含第一区域所在Plog中本轮数据写入过程分配的最后一段连续地址,因此,第三区域为本轮数据写入过程中的最后一个区域;最后,控制节点将第三区域之前的空隙进行补零操作,使得Plog中第三区域之前的所有已经分配的区域均被数据填充,实现了Plog的追加写语义。
针对于上述控制节点33将第一区域与第一主机的分配关系以及第二区域与第二主机的分配关系解除,在图2的基础上,本发明实施例提供一种可能的具体实现方式,如图5所示,图5为本申请提供的一种Plog的示意图二,图5给出了在数据写入过程中,控制节点33为3个主机分配该Plog-1的3个区域的写入情况。
区域1(第一区域)包括已经写入第一主机的第一数据的区域,和未写数据的区域(如图5所述的未写1)。
区域2(第二区域)包括已经写入第二主机的第二数据的区域,和未写数据的区域(如图5所述的未写2)。
区域3(第三区域)包括已经写入第三主机的第三数据的区域,和未写数据的区域(如图5所述的未写3)。
控制节点33可以判断各主机的数据写入是否成功,如图5所示出的区域1,在第一数据已经写入区域1的情况下,由于Plog-1中在区域1之前的已写区域已经被数据填充(第一数据和已写区域之间不存在空隙),则控制节点33确定第一主机的第一数据已经写入成功,控制节点33还可以向第一主机31返回写入成功响应。
又如图5所示出的区域2,在第二数据已经写入区域2的情况下,由于Plog-1中在区域2之前存在空隙(未写1),换言之,区域2不能满足Plog-1的追加写语义,则控制节点33可以向第二主机32返回写入待定响应,第二主机32依据该写入待定响应确定第二主机的第二数据已经写入区域2,但第二数据的写入过程并未结束。区域3和区域2类似,不再赘述。
在数据已经写入分配区域的情况下,由于控制节点了可以判断分配区域与Plog中在前的区域之间是否具有空隙(未写区域),进而确定Plog是否满足追加写语义,对空隙(未写区域)进行补零,从而实现分配区域之前的位置不再发生修改,满足Plog的追加写语义。
另外,若控制节点33还接收到任一主机对区域1~区域3中的已写数据的区域进行写入数据的请求,则控制节点33向该主机返回消息,该消息表示该已写数据的区域已经写满,无法写入信息,从而实现存储系统只能在已分配区域写入的约束,避免出现其他主机对并行写入区域(区域1~区域3)的破坏,提升存储系统的数据写入性能。
请继续参见图5,在达到第一时长后,控制节点还可以对Plog-1已分配的区域进行补零,但在实际补零的过程中,可以不对已分配区域中的尾部区域(区域3)进行补零。由于在后续的数据写入过程中,可以紧接已分配区域中的尾部区域写入数据,因此,不对该区域3进行补零,也不会影响Plog-1的追加写语义。除此之外,由于无需对区域3进行补零,还可以减少Plog-1中的存储资源消耗,提升存储系统的存储资源利用率。
可以理解的是,为了实现上述实施例中功能,存储系统包括了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本申请中所公开的实施例描述的各示例的单元及方法步骤,本申请能够以硬件或硬件和计算机软件相结合的形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用场景和设计约束条件。
图6和图7为本申请的实施例提供的可能的数据管理装置和存储空间管理装置的结构示意图。这些装置可以用于实现上述方法实施例中存储系统的功能,因此也能实现上述方法实施例所具备的有益效果。在本申请的实施例中,该数据管理装置和存储空间管理装置可以是如图1所示的存储系统120,还可以是应用于存储系统中的控制节点。
如图6所示,图6为本申请提供的一种数据管理装置的结构示意图,该数据管理装置600包括该数据管理装置600包括包括通信单元610、数据访问单元620、空间分配单元630和分配解除单元640,该数据管理装置600可以实现图3~图5所示出的控制节点33或存储系统120的功能,应理解,本实施例仅对数据管理装置600的结构和功能单元进行示例性划分,本申请并不对其具体划分做任何限定。
当数据管理装置600用于实现图3所示的方法实施例中控制节点33的功能时,通信单元610用于执行S310和S320,数据访问单元620用于执行S320。
当数据管理装置600用于实现图4所示的方法实施例中控制节点33的功能时,通信单元610、数据访问单元620、空间分配单元630和分配解除单元640用于协同实现执行S410~S480。
示例的,空间分配单元630可以为第一主机分配第一区域,为第二主机分配第二区域。分配解除单元640可以将第一区域和第二区域的分配关系解除。
应理解的是,本发明实施例的数据管理装置600可以通过专用集成电路(Application Specific Integrated Circuit,ASIC)实现,或可编程逻辑器件(programmable logic device,PLD)实现,上述PLD可以是复杂程序逻辑器件(complexprogrammable logical device,CPLD),现场可编程门阵列(Field Programmable GateArray,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。通过软件实现图3至图5所示的数据管理方法时,数据管理装置600及其各个单元也可以为软件单元。
在一种可选的实现方式中,数据管理装置600还可以包括存储单元,该存储单元可以用于保存上述的约束信息。
有关上述数据管理装置600更详细的描述可以直接参考上述图3~图5所示的实施例中相关描述直接得到,这里不加赘述。
如图7所示,图7为本申请提供的一种存储空间管理装置的结构示意图,该存储空间管理装置700包括通信单元710、第一分配单元720、第二分配单元730和解除单元740,该存储空间管理装置700可以实现图3~图5所示出的控制节点33或存储系统120的功能,应理解,本实施例仅对存储空间管理装置700的结构和功能单元进行示例性划分,本申请并不对其具体划分做任何限定。
当存储空间管理装置700用于实现图4所示的方法实施例中控制节点33的功能时,通信单元710、第一分配单元720、第二分配单元730和解除单元740用于协同实现执行S410~S480及其可能的实现方式。
示例的,第一分配单元720可以为第一主机分配第一区域,第二分配单元730可以为第二主机分配第二区域。解除单元740可以将第一区域和第一主机的分配关系以及第二区域和第二主机的分配关系解除。
应理解的是,本发明实施例的存储空间管理装置700可以通过ASIC实现,或PLD实现,上述PLD可以是CPLD,FPGA,GAL或其任意组合。通过软件实现图3至图5所示的方法时,存储空间管理装置700及其各个单元也可以为软件单元。
在一种可选的实现方式中,存储空间管理装置700还可以包括存储单元,该存储单元可以用于保存上述的约束信息。有关上述存储空间管理装置700更详细的描述可以直接参考上述图3~图5所示的实施例中相关描述直接得到,这里不加赘述。
本发明前述实施例,支持追加型写入的存储空间为Plog,在本发明另一个实施例中,支持追加型写入的存储空间还可以是叠瓦磁记录(shingled magneting recording,SMR)盘提供的存储空间。在SMR盘中,SMR的盘片上的磁道以瓦片的排布方式被组织,使得SMR磁盘的存储密度增加,但是写磁头定位到一个磁道上比其他标准磁盘显得很大,也就是说写磁头横跨的磁道数目由标准磁盘的一个变成多个。在同等体积的情况下,由于SMR磁盘的密度增加,SMR磁盘的存储容量增加,从而可以存储更多数据。SMR盘包含控制器和存储介质,控制器控制马达移动磁头,从而访问存储介质相应磁道。
SMR盘将磁道划分为若干个带(Band),即由连续磁道所构成的可连续写入区域,每个区域构成一个需要顺序写入的基本单元。Band是SMR盘上的物理概念,其对应的逻辑概念是“区域”(zone),是主机能够访问的SMR盘的顺序写区域。一个zone的大小通常在256MB量级。因此,在由SMR提供存储空间的实施例中,存储空间中的区域为SMR盘的Band对应的逻辑区域。
本发明前述实施例,支持追加型写入的存储空间为Plog或SMR盘提供的存储空间,在本发明另一个实施例中,存储空间还可以是支持分区命名空间(zoned namespace,ZNS)的SSD提供的命名空间(namespace)。该ZNS SSD将一个namespace的逻辑地址空间切分成一个个的区域zone。Zone的基本操作包括读(read)、追加写(append write)、空间管理(zonemanagement)和获取日志页面(get log page)等。另外,在每一个zone中,数据是顺序写入的。所述第一区域和所述第二区域为所述命名空间中的区域zone。SSD包含控制器和存储介质,存储介质可以是闪存Flash。控制器用于执行对SSD的数据访问。
上述SMR盘和ZNS SSD这两个实施例中,所涉及的具体实现可以参考前述Plog实施例的描述,本发明在此不现赘述。
可以理解的是,本申请的实施例中的处理器可以CPU、NPU或GPU,还可以是其它通用处理器、数字信号处理器(Digital Signal Processor,DSP)、ASIC、FPGA或者其它可编程逻辑器件、晶体管逻辑器件,硬件部件或者其任意组合。通用处理器可以是微处理器,也可以是任何常规的处理器。
本申请的实施例中的方法步骤可以通过硬件的方式来实现,也可以由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于RAM、闪存、ROM、PROM、EPROM、EEPROM、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于存储设备中。当然,处理器和存储介质也可以作为分立组件存在于存储设备中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机程序或指令。在计算机上加载和执行所述计算机程序或指令时,全部或部分地执行本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、网络设备、用户设备或者其它可编程装置。所述计算机程序或指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机程序或指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是集成一个或多个可用介质的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,例如,软盘、硬盘、磁带;也可以是光介质,例如,数字视频光盘(digital video disc,DVD);还可以是半导体介质,例如,SSD。
在本申请的各个实施例中,如果没有特殊说明以及逻辑冲突,不同的实施例之间的术语和/或描述具有一致性、且可以相互引用,不同的实施例中的技术特征根据其内在的逻辑关系可以组合形成新的实施例。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。在本申请的文字描述中,字符“/”,一般表示前后关联对象是一种“或”的关系;在本申请的公式中,字符“/”,表示前后关联对象是一种“相除”的关系。
可以理解的是,在本申请的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本申请的实施例的范围。上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定。
Claims (41)
1.一种数据管理方法,其特征在于,所述方法由存储系统执行,所述方法包括:
接收第一写请求和第二写请求;其中,所述第一写请求包括来自第一主机的第一数据,所述第二写请求包括来自第二主机的第二数据;所述存储系统包含支持追加型写入的存储空间,所述存储空间包含第一区域和第二区域,所述第一区域和所述第二区域分别包含所述存储空间的一段连续地址;在所述第一区域处于分配给所述第一主机的状态的同时,所述第二区域处于分配给所述第二主机的状态;
将所述第一数据写入所述第一区域,将所述第二数据写入所述第二区域。
2.根据权利要求1所述的方法,其特征在于,所述存储系统存储有约束信息,所述约束信息用于指示在第一时长内,所述存储空间能够支持进行数据访问的主机的最大数量。
3.根据权利要求1或2所述的方法,其特征在于,在所述接收第一写请求之前,所述方法还包括:
接收来自所述第一主机的第一分配请求;
依据所述第一分配请求为所述第一主机分配所述第一区域。
4.根据权利要求3所述的方法,其特征在于,在接收所述第一主机的第一分配请求之后,所述方法还包括:
接收来自所述第二主机的第二分配请求;
依据所述第二分配请求为所述第二主机分配所述第二区域。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述方法还包括:
将所述第一区域和所述第一主机的分配关系以及所述第二区域和所述第二主机的分配关系解除。
6.根据权利要求5所述的方法,其特征在于,所述将所述第一区域和所述第一主机的分配关系以及所述第二区域和所述第二主机的分配关系解除,包括:
对所述存储空间中第三区域之前的空隙进行补零,所述第三区域为所述存储空间在连续的地址上,依次分配给相应主机的多个区域中的最后一个区域;
向所述存储空间对应的所有主机发送关闭消息,所述关闭消息用于指示所述多个区域停止处理数据访问,所述所有主机包括所述第一主机和所述第二主机。
7.根据权利要求1-6中任一项所述的方法,其特征在于,所述方法还包括:
当所述第二数据已写入所述第二区域,且所述存储空间中所述第二区域之前已经分配的区域不具有空隙,向所述第二主机返回写入成功响应。
8.根据权利要求7所述的方法,其特征在于,所述向所述第二主机返回写入成功响应,包括:
接收来自所述第二主机的查询请求;
依据所述查询请求向所述第二主机返回所述写入成功响应。
9.根据权利要求1-8中任一项所述的方法,其特征在于,所述方法还包括:
当所述第二数据已写入所述第二区域,且所述存储空间中所述第二区域之前已经分配的区域具有空隙,向所述第二主机返回写入待定响应。
10.根据权利要求1-9任一项所述的方法,其特征在于,所述存储空间为命名空间,所述第一区域和所述第二区域为所述命名空间中的区域。
11.根据权利要求1-9任一项所述的方法,其特征在于,所述存储空间为叠瓦磁记录盘提供的存储空间,所述第一区域和所述第二区域为所述叠瓦磁记录盘中提供的存储空间中的区域。
12.一种存储空间管理方法,其特征在于,所述方法由存储系统执行,其中,所述存储系统中支持追加型写入的存储空间包含第一区域和第二区域,所述第一区域和所述第二区域分别包含所述存储空间的一段连续地址;所述方法包括:
将所述第一区域分配给第一主机;
将所述第二区域处于分配给第二主机;在所述第一区域处于分配给所述第一主机的状态的同时,所述第二区域处于分配给所述第二主机的状态。
13.根据权利要求12所述的方法,其特征在于,所述存储系统存储有约束信息,所述约束信息用于指示在第一时长内,所述存储空间能够支持进行数据访问的主机的最大数量。
14.根据权利要求11或12所述的方法,其特征在于,将所述第一区域分配给第一主机,包括:
接收来自所述第一主机的第一分配请求;
依据所述第一分配请求为所述第一主机分配所述第一区域。
15.根据权利要求12-14中任一项所述的方法,其特征在于,将所述第二区域分配给第二主机,包括:
接收来自所述第二主机的第二分配请求;
依据所述第二分配请求为所述第一主机分配所述第一区域。
16.根据权利要求12-15中任一项所述的方法,其特征在于,所述方法还包括:
将所述第一区域和所述第一主机的分配关系以及所述第二区域和所述第二主机的分配关系解除。
17.根据权利要求16所述的方法,其特征在于,所述将所述第一区域和所述第一主机的分配关系以及所述第二区域和所述第二主机的分配关系解除,包括:
对所述存储空间中第三区域之前的空隙进行补零,所述第三区域为所述存储空间在连续的地址上,依次分配给相应主机的多个区域中的最后一个区域;
向所述存储空间对应的所有主机发送关闭消息,所述关闭消息用于指示所述多个区域停止处理数据访问,所述所有主机包括所述第一主机和所述第二主机。
18.根据权利要求12-17中任一项所述的方法,其特征在于,所述存储空间为命名空间,所述第一区域和所述第二区域为所述命名空间中的区域。
19.根据权利要求12-17中任一项所述的方法,其特征在于,所述存储空间为叠瓦磁记录盘的逻辑块地址空间,所述第一区域和所述第二区域为所逻辑块地址空间中的区域。
20.一种数据管理装置,其特征在于,所述数据管理装置应用于所述存储系统,所述装置包括:
通信单元,用于接收第一写请求和第二写请求;其中,所述第一写请求包括来自第一主机的第一数据,所述第二写请求包括来自第二主机的第二数据;所述存储系统包含支持追加型写入的存储空间,所述存储空间包含第一区域和第二区域,所述第一区域和所述第二区域分别包含所述存储空间的一段连续地址;在所述第一区域处于分配给所述第一主机的状态的同时,所述第二区域处于分配给所述第二主机的状态;
数据访问单元,用于将所述第一数据写入所述第一区域,将所述第二数据写入所述第二区域。
21.根据权利要求20所述的装置,其特征在于,所述存储系统存储有约束信息,所述约束信息用于指示在第一时长内,所述存储空间能够支持进行数据访问的主机的最大数量。
22.根据权利要求20或21所述的装置,其特征在于,所述通信单元,还用于接收来自所述第一主机的第一分配请求;
所述数据管理装置还包括:空间分配单元;
所述空间分配单元,用于依据所述第一分配请求为所述第一主机分配所述第一区域。
23.根据权利要求20-22中任一项所述的装置,其特征在于,所述通信单元,还用于接收来自所述第二主机的第二分配请求;
所述空间分配单元,还用于依据所述第二分配请求为所述第二主机分配所述第二区域。
24.根据权利要求20-23中任一项所述的装置,其特征在于,所述装置还包括:分配解除单元;
所述分配解除单元,用于将所述第一区域和所述第一主机的分配关系以及所述第二区域和所述第二主机的分配关系解除。
25.根据权利要求24所述的装置,其特征在于,所述分配解除单元,具体用于对所述存储空间中第三区域之前的空隙进行补零,所述第三区域为所述存储空间在连续的地址上,依次分配给相应主机的多个区域中的最后一个区域;
所述所述分配解除单元,具体用于向所述存储空间对应的所有主机发送关闭消息,所述关闭消息用于指示所述多个区域停止处理数据访问,所述所有主机包括所述第一主机和所述第二主机。
26.根据权利要求20-25中任一项所述的装置,其特征在于,所述通信单元,还用于当所述第二数据已写入所述第二区域,且所述存储空间中所述第二区域之前已经分配的区域不具有空隙,向所述第二主机返回写入成功响应。
27.根据权利要求26所述的装置,其特征在于,所述通信单元,具体用于接收来自所述第二主机的查询请求;
所述通信单元,具体用于依据所述查询请求向所述第二主机返回所述写入成功响应。
28.根据权利要求20-25中任一项所述的装置,其特征在于,所述通信单元,还用于当所述第二数据已写入所述第二区域,且所述存储空间中所述第二区域之前已经分配的区域具有空隙,向所述第二主机返回写入待定响应。
29.根据权利要求20-28中任一项所述的装置,其特征在于,所述存储空间为命名空间,所述第一区域和所述第二区域为所述命名空间中的区域。
30.根据权利要求20-28中任一项所述的装置,其特征在于,所述存储空间为叠瓦磁记录盘的逻辑块地址空间,所述第一区域和所述第二区域为所逻辑块地址空间中的区域。
31.一种存储空间管理装置,其特征在于,所述存储空间管理装置应用于存储系统,其中,所述存储系统中支持追加型写入的存储空间包含第一区域和第二区域,所述第一区域和所述第二区域分别包含所述存储空间的一段连续地址;所述装置包括:
第一分配单元,用于将所述第一区域分配给第一主机;
第二分配单元,用于将所述第二区域处于分配给第二主机;在所述第一区域处于分配给所述第一主机的状态的同时,所述第二区域处于分配给所述第二主机的状态。
32.根据权利要求31所述的装置,其特征在于,所述存储系统存储有约束信息,所述约束信息用于指示在第一时长内,所述存储空间能够支持进行数据访问的主机的最大数量。
33.根据权利要求31或32所述的装置,其特征在于,所述装置还包括:通信单元;
所述通信单元,用于接收来自所述第一主机的第一分配请求;
所述第一分配单元,具体用于依据所述第一分配请求为所述第一主机分配所述第一区域。
34.根据权利要求31-33中任一项所述的装置,其特征在于,所述通信单元,还用于接收来自所述第二主机的第二分配请求;
所述第二分配单元,具体用于依据所述第二分配请求为所述第一主机分配所述第一区域。
35.根据权利要求31-34中任一项所述的装置,其特征在于,所述装置还包括:解除单元;
所述解除单元,用于将所述第一区域和所述第一主机的分配关系以及所述第二区域和所述第二主机的分配关系解除。
36.根据权利要求35所述的装置,其特征在于,所述解除单元,具体用于对所述存储空间中第三区域之前的空隙进行补零,所述第三区域为所述存储空间在连续的地址上,依次分配给相应主机的多个区域中的最后一个区域;
所述解除单元,具体用于向所述存储空间对应的所有主机发送关闭消息,所述关闭消息用于指示所述多个区域停止处理数据访问,所述所有主机包括所述第一主机和所述第二主机。
37.一种存储系统,其特征在于,包括:所述存储系统包括存储器和处理器,所述存储器用于存储一组计算机指令;当所述处理器执行所述一组计算机指令时,实现权利要求1-11中任一项所述的方法,或执行权利要求12-19中任一项所述的方法。
38.一种计算机可读存储介质,其特征在于,所述存储介质中存储有计算机程序或指令,当所述计算机程序或指令被存储系统中的处理器执行时,实现如权利要求1-11中任一项所述的方法,或执行权利要求12-19中任一项所述的方法。
39.一种硬盘,其特征在于,所述硬盘包括控制器和存储介质,所述硬盘提供支持追加型写入的存储空间,所述存储空间包含第一区域和第二区域,所述第一区域和所述第二区域分别包含所述存储空间的一段连续地址;所述控制器用于:
处理第一主机对所述第一区域的访问;
处理第二主机对所述第二区域的访问;在所述第一区域处于分配给所述第一主机的状态的同时,所述第二区域处于分配给所述第二主机的状态。
40.根据权利要求39所述的硬盘,其特征在于,所述存储空间为命名空间,所述第一区域和所述第二区域为所述命名空间中的区域。
41.根据权利要求39所述的硬盘,其特征在于,所述硬盘为叠瓦磁记录盘,所述存储空间为的逻辑块地址空间,所述第一区域和所述第二区域为所逻辑块地址空间中的区域。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP22823836.6A EP4332745A1 (en) | 2021-06-18 | 2022-03-21 | Data management method and apparatus, and storage space management method and apparatus |
PCT/CN2022/082038 WO2022262345A1 (zh) | 2021-06-18 | 2022-03-21 | 一种数据管理方法、存储空间管理方法及装置 |
US18/534,695 US20240104014A1 (en) | 2021-06-18 | 2023-12-10 | Data management method, and storage space management method and apparatus |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2021106810483 | 2021-06-18 | ||
CN202110681048 | 2021-06-18 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115495008A true CN115495008A (zh) | 2022-12-20 |
Family
ID=84464165
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110918777.6A Pending CN115495008A (zh) | 2021-06-18 | 2021-08-11 | 一种数据管理方法、存储空间管理方法及装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20240104014A1 (zh) |
EP (1) | EP4332745A1 (zh) |
CN (1) | CN115495008A (zh) |
WO (1) | WO2022262345A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116048430B (zh) * | 2023-04-03 | 2023-07-14 | 苏州浪潮智能科技有限公司 | 随机写入指令处理方法、smr硬盘及计算机设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102622189B (zh) * | 2011-12-31 | 2015-11-25 | 华为数字技术(成都)有限公司 | 存储虚拟化的装置、数据存储方法及系统 |
US10073774B2 (en) * | 2016-04-29 | 2018-09-11 | Netapp, Inc. | Managing input/output operations for shingled magnetic recording in a storage system |
CN106201355B (zh) * | 2016-07-12 | 2018-12-11 | 腾讯科技(深圳)有限公司 | 数据处理方法和装置以及存储系统 |
CN112099728B (zh) * | 2019-06-18 | 2022-09-16 | 华为技术有限公司 | 一种执行写操作、读操作的方法及装置 |
CN114237489B (zh) * | 2020-09-09 | 2024-04-05 | 浙江宇视科技有限公司 | 将逻辑资源写入smr盘的方法、装置、电子设备及存储介质 |
-
2021
- 2021-08-11 CN CN202110918777.6A patent/CN115495008A/zh active Pending
-
2022
- 2022-03-21 EP EP22823836.6A patent/EP4332745A1/en active Pending
- 2022-03-21 WO PCT/CN2022/082038 patent/WO2022262345A1/zh active Application Filing
-
2023
- 2023-12-10 US US18/534,695 patent/US20240104014A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4332745A1 (en) | 2024-03-06 |
US20240104014A1 (en) | 2024-03-28 |
WO2022262345A1 (zh) | 2022-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11029853B2 (en) | Dynamic segment allocation for write requests by a storage system | |
WO2022017002A1 (zh) | 一种垃圾回收方法及装置 | |
US8924659B2 (en) | Performance improvement in flash memory accesses | |
US20170336990A1 (en) | Multi-tier scheme for logical storage management | |
CN107908571B (zh) | 一种数据写入方法、闪存装置及存储设备 | |
US20050228963A1 (en) | Defragmenting objects in a storage medium | |
WO2017149592A1 (ja) | ストレージ装置 | |
CN105159622A (zh) | 一种减小ssd读写io时延的方法与系统 | |
US8694563B1 (en) | Space recovery for thin-provisioned storage volumes | |
US20230244394A1 (en) | Gradually Reclaim Storage Space Occupied by a Proof of Space Plot in a Solid State Drive | |
WO2023035646A1 (zh) | 一种扩展内存的方法、装置及相关设备 | |
WO2023045483A1 (zh) | 一种存储设备、数据存储方法及存储系统 | |
WO2023227004A1 (zh) | 内存访问热度统计方法、相关装置及设备 | |
US20240104014A1 (en) | Data management method, and storage space management method and apparatus | |
WO2021035555A1 (zh) | 一种固态硬盘的数据存储方法、装置及固态硬盘ssd | |
WO2017107162A1 (zh) | 一种异构混合内存组件、系统及存储方法 | |
US20240070120A1 (en) | Data processing method and apparatus | |
CN117992360A (zh) | 存储系统及存储方法 | |
CN115079936A (zh) | 一种数据写入方法及装置 | |
CN117149062A (zh) | 一种磁带损坏数据的处理方法以及计算装置 | |
TW202036278A (zh) | 用來在儲存伺服器中進行基於管線的存取管理的方法及設備 | |
EP4307129A1 (en) | Method for writing data into solid-state hard disk | |
CN115328819A (zh) | 固态存储设备及写/读数据的方法 | |
CN115525605A (zh) | 一种文件系统的传输系统、方法 | |
CN117348789A (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 |