CN111936960B - 分布式存储系统中数据存储方法、装置及计算机程序产品 - Google Patents
分布式存储系统中数据存储方法、装置及计算机程序产品 Download PDFInfo
- Publication number
- CN111936960B CN111936960B CN201880003863.0A CN201880003863A CN111936960B CN 111936960 B CN111936960 B CN 111936960B CN 201880003863 A CN201880003863 A CN 201880003863A CN 111936960 B CN111936960 B CN 111936960B
- Authority
- CN
- China
- Prior art keywords
- data
- strip
- storage node
- stripe
- client
- 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.)
- Active
Links
Images
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
-
- 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/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- 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
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- 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/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
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)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种分布式存储系统数据存储方法,客户端生成分条的数据,将分条中的条带的数据并发地发送到条带对应的存储节点,减少存储节点间数据交互,提高了写并发度,存储节点接收客户端发送的条带的数据,并且记录相同逻辑地址对应的条带的数据的先后顺序,从而提高了分布式块存储系统的写性能,保证了数据的一致性。
Description
技术领域
本发明涉及信息技术领域,尤其涉及一种分布式存储系统中数据存储方法、装置及计算机程序产品。
背景技术
分布式存储系统中包含存储节点和分条,每一个分条包含多个条带,一个存储节点对应分条中的一个条带,也就是一个存储节点为分条中的一个条带提供存储空间。通常,如图1所示,多个存储节点中会包含一个主存储节点(存储节点1),主存储节点用于接收客户端发送的数据,然后主存储节点选择分条,将数据划分成条带的数据,将其他存储节点存储的条带的数据发送到相应的存储节点(存储节点2、存储节点3和存储节点4)。上述操作虽然保证了分布式存储系统中的数据一致性,但主存储节点很容易成为数据写入瓶颈,而且增加了存储节点间的数据交互,降低了分布式存储系统的写性能。
发明内容
本申请提供了一种分布式存储系统数据存储方法、装置及计算机程序产品,不需要主存储节点,在保证了数据一致性的前提下,减少存储节点间的数据交互,提高分布式存储系统的写性能。
本申请的第一方面提供了一种分布式存储系统中数据存储方法,该分布式存储系统包含M个存储节点Nj;其中,j为整数1到M中的每一个值;在该方法中,该存储节点Nj接收分条SN中的条带SUNj的数据;该分条SN包含M个条带SUNj;该存储节点Nj接收分条SK中的条带SUKj的数据;该条带SUKj的数据的逻辑地址与该条带SUNj的数据的逻辑地址相同;N与K不同,该分条SK包含M个条带SUKj;该存储节点Nj生成记录;该记录用于指示该条带SUNj的数据先于该条带SUKj的数据到达该存储节点Nj。在该数据存储方法中,存储节点Nj直接从客户端接收该条带SUNj的数据和该条带SUKj的数据,并且用记录指示该条带SUNj的数据先于该条带SUKj的数据到达该存储节点Nj,从而在存储节点Nj存储多份相同逻辑地址的数据时,可以根据记录确定最新版本的数据。由于在该数据存储方法中,不需要主存储节点,因此减少存储节点间的数据交互,提高分布式存储系统的写性能。
具体实现,在本申请第一方面的记录可以基于该条带SUNj的标识和该条带SUKj的标识指示该条带SUNj的数据先于该条带SUKj的数据到达该存储节点Nj。其中,该条带SUNj的数据和该条带SUKj的数据可以是由同一客户端发送的,也可以是由不同的客户端发送的。
结合本申请第一方面,在一种可能的实现方式中,该存储节点Nj将该记录备份到该M个存储节点中一个或多个其他存储节点,从而提高记录的可靠性。当该存储节点Nj发生故障,从备份该记录的一个存储节点获得该记录,根据该记录在恢复出来的该条带SUNj的数据和该条带SUKj的数据中确定该条带SUKj的数据为最新数据。
结合本申请第一方面及上述各可能的实现方式,在一种可能的实现方式中,该存储节点Nj接收第三客户端发送的读请求;该读请求包含所述逻辑地址;该存储节点Nj基于该逻辑地址查询该记录确定该条带SUKj的数据为最新数据;该存储节点Nj向该第三客户端返回该SUKj的数据。
结合本申请第一方面及上述各可能的实现方式,在一种可能的实现方式中,该条带SUNj和该条带SUKj是由分条元数据服务器从该存储节点Nj分配的。
本申请第二方面提供了一种分布式存储系统中的存储节点,该分布式存储系统包含M个存储节点Nj;其中,j为整数1到M中的每一个值;该存储节点作为该存储节点Nj包括多种单元,用于实现本申请第一方面及第一方面的各种实现方式。
本申请第三方面提供了一种分布式存储系统中的存储节点,该分布式存储系统包含M个存储节点Nj;其中,j为整数1到M中的每一个值;该存储节点作为该存储节点Nj包括接口和处理器,该接口和该处理器通信,该处理器用于实现本申请第一方面及第一方面的各种实现方式。
本申请第四方面提供了一种计算机程序产品,该计算机程序产品包含计算机指令,该计算机指令用于分布式存储系统中的存储节点,该分布式存储系统包含M个存储节点Nj;其中,j为整数1到M中的每一个值;该存储节点作为该存储节点Nj运行该计算机指令用于实现本申请第一方面及第一方面的各种实现方式。
本申请第五方面提供了一种分布式存储系统中数据存储方法,该分布式存储系统包含M个存储节点Nj;其中,j为整数1到M中的每一个值;该方法包括:第一客户端接收第一写请求;该第一写请求包含第一数据和逻辑地址;该第一客户端将该第一数据划分为分条SN中的一个或多个条带SUNj的数据;该分条SN包含M个条带SUNj;该第一客户端将该一个或多个条带SUNj的数据发送到存储节点Nj;第二客户端接收第二写请求;该第二写请求包含第二数据和该逻辑地址;该第二客户端将该第三数据划分为分条SK中的一个或多个条带SUKj的数据;N与K不同,该分条SK包含M个条带SUKj;该第二客户端将所述一个或多个条带SUKj的数据发送到该存储节点Nj。
结合本申请第五方面,一种可能的实现方式中,该条带SUNj和该条带SUKj是由分条元数据服务器从该存储节点Nj分配的。
结合本申请第五方面,一种可能的实现方式中,该一个或多个条带SUNj的数据中的每一个还包括数据条带状态信息,该数据条带状态信息用于标识该分条SN的每个数据条带是否为空。
附图说明
图1为现有技术中分布式存储系统数据存储示意图;
图2为本发明实施例分布式块存储系统示意图;
图3为本发明实施例分布式块存储系统中服务器结构示意图;
图4为本发明实施例分布式块存储系统分区视图示意图;
图5为本发明实施例分布式块存储系统中条带与存储节点关系示意图;
图6为本发明实施例分布式块存储系统中客户端写数据的方法流程图;
图7为本发明实施例分布块存储系统中客户端确定分区示意图;
图8为本发明实施例分布式块存储系统中存储节点存储数据的方法流程图;
图9为本发明实施例分布式块存储系统中存储节点结构示意图。
本发明实施例
本发明实施例中的分布式存储系统,如华为的系列,9000系列。示例性的如图2所示,分布式存储系统包括多台服务器,如服务器1、服务器2、服务器3、服务器4、服务器5和服务器6,服务器间通过InfiniBand或以太网络等互相通信。本发明实施例中,分布式存储系统中的服务器又称为存储节点。在实际应用当中,分布式存储系统中服务器的数量可以根据实际需求增加,本发明实施例对此不作限定。
分布式存储系统的服务器中包含如图3所示的结构。如图3所示,分布式存储系统中的每台服务器包含中央处理单元(Central Processing Unit,CPU)301、内存302、接口303、硬盘1、硬盘2和硬盘3,内存302中存储计算机指令,CPU301执行内存302中的计算机指令执行相应的操作。接口303可以为硬件接口,如网络接口卡(Network Interface Card,NIC)或主机总线适配器(Host Bus Adaptor,HBA)等,也可以为程序接口模块等。硬盘包含固态硬盘(Solid State Disk,SSD)、机械硬盘或者混合硬盘。机械硬盘如HDD(Hard DiskDrive),硬盘接口可以为串行高级技术连接(Serial Advanced Technology Attachment,SATA)接口,串行连接小型计算机系统接口(Serial Attached Small Computer SystemInterface,SAS)接口,光纤通道(Fiber Channel,FC)接口,快速外设互联(PeripheralComponent Interconnect-Express,PCIe)接口,或者快速非易失性存储器(Non-VolatileMemory Express,NVMe)接口等。CPU201可以由现场可编程逻辑门阵列(FieldProgrammable Gate Array,FPGA)或其他硬件代替,或者,FPGA或其他硬件与CPU301共同执行上述相应的操作。为方便描述,本发明实施例将CPU301与内存302称为处理器,或者将替代CPU301和内存302的硬件称为处理器,或者将CPU301和内存302以及其他硬件的组合称为处理器。
分布式存储系统中的客户端根据主机写请求向分布式存储系统写入数据或根据主机的读请求从分布式存储系统中读取数据。本发明实施例中所示的服务器可以作为客户端。另外客户端也可以由独立于图3所示的服务器的设备。本发明实施例中的主机的具体形态可以为服务器、虚拟机(Virtual Machine,VM)、终端设备等,本发明实施例对此不作限定。分布式存储系统的客户端为主机提供分布式存储系统的存储资源。例如,在分布式块存储系统中,客户端为主机提供块资源,如逻辑单元,从而为主机提供数据访问操作。其中,逻辑单元又称为逻辑单元号(Logical Unit Number,LUN)。在分布式文件存储系统中,客户端为主机提供文件资源,在分布式对象存储系统中,客户端为主机提供对象资源。
本发明实施例以分布式块存储系统为例,客户端提供块协议访问接口,从而客户端提供分布式块存储接入点服务,主机可以通过客户端访问分布式块存储系统中存储资源池中的存储资源。通常,该块协议访问接口用于向主机提供LUN。服务器运行分布式块存储系统程序使包含硬盘的服务器作为存储节点,用于存储客户端接收的数据。示例性的,服务器可以以一块硬盘默认作为一个存储节点,即当服务器中包含多块硬盘时,可以作为多个存储节点,另一种实现,服务器运行分布式块存储系统程序作为一个存储节点,本发明实施例对此不作限定。因此,存储节点的结构可参考图4及相关描述。分布式块存储系统初始化时,将哈希空间(如0~2^32,)划分为N等份,每1等份是1个分区(Partition),这N等份按照硬盘数量进行均分。例如,分布式块存储系统中N默认为3600,即分区分别为P1,P2,P3…P3600。假设当前分布式块存储系统有18块硬盘(存储节点),则每块存储节点承载200个分区。分区P包含M个存储节点Nj,分区与存储节点对应关系,即分区与分区包含的存储节点Nj的映射,也称为分区视图,如图4所示,以分区包含4个存储节点Nj为例,分区视图为“P2-存储节点N1-存储节点N2-存储节点N3-存储节点N4”。其中,j为整数1到M中的每一个值。在分布式块存储系统初始化时会分配好,后续会随着分布式块存储系统中硬盘数量的变化进行调整。一种实现方式,客户端保存该分区视图。
根据分布式块存储系统的可靠性要求,可以使用纠删码(Erasure Coding,EC)算法提高数据可靠性,如使用3+1模式,即3个数据条带和1个校验条带组成分条。在本发明实施例中,分区以分条的形式存储数据,一个分区包含R个分条Si,其中,i为整数1到R中的每一个值。本发明实施例以P2为例进行描述。
分布式块存储系统按照8千字节(Kilobyte,KB)为单位对硬盘进行分片管理,并在硬盘的元数据管理区域记录每个8KB分片的分配信息,硬盘的分片组成存储资源池。分布式块存储系统包含分条元数据服务器,具体实现可以为分条管理程序运行在分布式块存储系统中的一台或多台服务器上。分条元数据服务器为分区分配分条。仍以图5所示分区视图为例,分条元数据服务器根据分区视图,如图5所示,分条元数据服务器为分区P2的分条Si从分区对应的存储节点Nj分配分条中条带SUij的存储地址,即存储空间,具体包括:为SUi1从存储节点N1分配存储地址,为SUi2从存储节点N2分配存储地址,为SUi3从存储节点N3分配存储地址,为SUi4从存储节点N4分配存储地址。另一种实现,分条元数据服务器不为分区P2的分条Si从分区对应的存储节点Nj分配分条中条带SUij的存储地址,即当客户端向存储节点写入数据时,存储节点Nj分配分条中条带SUij的存储地址。为条带SUij分配的存储地址,具体可以是存储节点Nj中硬盘的逻辑地址,例如逻辑块地址(Logical Block Address,LBA);另外一种实现,在支持开放通道(Open-channel)的SSD中,分条元数据服务器从存储节点Nj分配分条中条带SUij的存储地址还可以为SSD的物理地址。另外一种实现方式,存储节点Nj中硬盘为LUN,即存储节点挂载的LUN。分条元数据记录分条标识与条带标识的映射关系,即Si和存储节点Nj分配分条中条带SUij的对应关系,根据该对应关系可以查找到分条Si所包含的条带SUij。进一步的,分条元数据服务器还记录条带SUij和分条Si的对应关系,根据该对应关系,可以使用条带SUij查找到分条Si,从而查询分条信息,例如Si所包含的所有条带SUij。
为减少分条元数据服务器管理的条带标识的数量,分条元数据服务器为分条中条带标识分配版本号,当一个分条释放后,更新该释放后的分条中条带的条带标识版本号,从而作为新的分条中条带的条带标识。分条元数据服务器预先为分条Si分配条带SUij,可以减少客户端写入数据时的等待时间,从而提升分布式块存储系统的写性能。本发明实施例中,分条Si中条带SUij在分布式块存储系统中具有唯一的标识。
本发明实施例中,客户端挂载分布式块存储系统分配的逻辑单元,从而进行数据访问操作。其中,逻辑单元又称为逻辑单元号(Logical Unit Number,LUN)。在分布式块存储系统中,一个逻辑单元可以只挂载给一个客户端;一个逻辑单元也可以挂载给多个客户端,即多个客户端共享一个逻辑单元。逻辑单元是由图2所示的存储资源池提供的。
本发明实施例中,如图6所示,本发明实施例包括如下步骤:
步骤601:第一客户端接收第一写请求。
第一写请求包含第一数据和逻辑地址。在分布式块存储系统中,分布式块存储系统提供的LUN的LBA。逻辑地址用于指示第一数据在该LUN中的写入位置。
步骤602:第一客户端确定逻辑地址分布在分区P。
本发明实施例以分区P2为例,结合图4,第一客户端存储有分布式块存储系统的分区视图。如图7所示,第一客户端根据分区视图,确定第一写请求包含的逻辑地址所在的分区。其中一种实现,第一客户端根据逻辑地址生成键Key,根据哈希算法计算Key的哈希值,确定哈希值对应的分区,从而确定逻辑地址分布在分区P2。也称为第一数据分布在分区P2。
步骤603:第一客户端从R个分条中获得分条SN;其中,N为整数1到R中的一个值。
分条元数据服务器管理分区与分条的对应关系,以及分条中条带与存储节点的关系。其中第一客户端从R个分条中获得分条SN的一种实现,第一客户端确定逻辑地址分布在分区P2,第一客户端查询分条元数据服务器获得分区P2包含的R个分条中的一个分条SN。因为逻辑地址是分布式块存储系统中存储客户端写入数据的地址,因此,逻辑地址分布在分区P与第一数据分布在分区P具有相同的含义。第一客户端从R个分条中获得分条SN的另一种实现,可以为第一客户端从R个分条中已经分配给第一客户端的分条中获得分条SN。客户端可以存储分区与分条的映射关系。客户端可以缓存分条元数据服务器分配好的分条。
步骤604:第一客户端将第一数据划分为分条SN中的一个或多个条带SUNj的数据。
分条SN由条带组成,第一客户端接收第一写请求,缓存第一写请求包含的第一数据,根据分条中条带的大小划分缓存的数据,示例性的,第一客户端根据分条中条带的长度划分得到条带大小的数据,根据条带大小的数据的逻辑地址对分区中的存储节点数M(例如4)取模,从而确定条带大小的数据在分条中的位置,即对应的条带SUNj,进而根据分区视图确定条带SUNj对应存储节点Nj,从而相同逻辑地址的条带的数据分布在相同的存储节点。例如将第一数据划分为1个或多个条带SUNj的数据。本发明实施例以P2为例,结合图5,分条SN包含4个条带,分别为SUN1、SUN2、SUN3和SUN4。以将第一数据划分为2个条带的数据为例,即分别为SUN1的数据和SUN2的数据。条带SUN3的数据可以由第一客户端接收的其他写请求中的数据划分得到,具体可参考第一请求的描述。进而根据SUN1的数据、SUN2的数据和SUN3的数据生成校验条带SUN4的数据,校验条带SUN4的数据也称为校验数据。关于分条中数据条带的数据如何生成校验条带的数据可参考现有分条实现算法,本发明实施例不再赘述。
本发明实施例中,分条SN包含4个条带,即3个数据条带和1个校验条带。当第一客户端缓存数据超过一定时间需要将数据写入存储节点,但不能凑满数据条带的数据时,如只有划分第一数据得到的条带SUN1的数据和SUN2的数据时,根据SUN1的数据和SUN2的数据生成校验条带。可选的,有效的数据条带SUNj的数据包含分条SN的数据条带状态信息,有效的数据条带SUNj是指数据不为空的条带,本发明实施例中有效数据条带SUN1的数据和SUN2的数据均包含分条SN的数据条带状态信息,数据条带状态信息用于标识分条SN的每个数据条带是否为空。如用1标识数据条带不为空,用0表示数据条带为空,则SUN1的数据包含的数据条带状态信息为110、SUN2的数据包含的数据条带状态信息为110,即表示SUN1不为空、SUN2不为空和SUN3为空。根据SUN1的数据和SUN2的数据生成的校验条带SUN4的数据包含数据条带状态信息的校验数据。因为SUN3的为空,第一客户端不需要用全0数据代替SUN3的数据并写入存储节点N3,减少了数据写入量。第一客户端在读取分条SN时,根据数据条带SUN1的数据或SUN2的数据包含的分条SN的数据条带状态信息,确定SUN3的数据为空。
当SUN3不为空,则本发明实施例中SUN1的数据、SUN2的数据和SUN3的数据包含的数据条带状态信息为111,根据SUN1的数据、SUN2的数据和SUN3的数据生成的校验条带SUN4的数据包含数据条带状态信息的校验数据。
本发明实施例中,数据条带SUNj的数据还包括元数据,例如数据条带SUNj标识、数据条带SUNj的数据的逻辑地址。
步骤605:第一客户端将一个或多个条带SUNj的数据发送到存储节点Nj。
本发明实施例中,第一客户端将第一数据划分得到的SUN1的数据发送到存储节点N1,将第一数据划分得到的SUN2的数据发送到存储节点N2。第一客户端可以并发将分条SN的条带SUNj的数据发送到存储节点Nj,不需要主存储节点,减少了存储节点数据交互,而且提高了写并发度,从而提高了分布式块存储系统的写性能。
进一步的,在只有第一客户端向分布式块存储系统提供的LUN写入数据的情况下,第一客户端接收第二写请求;第二写请求包含第二数据和图6描述的逻辑地址,第一客户端根据图6流程中描述的算法确定逻辑地址分布在分区P2,第一客户端从R个分条中获得分条SK,第一客户端将第二数据划分为分条SK中的一个或多个条带SUKj的数据,如SUK1的数据和SUK2的数据,第一客户端将一个或多个条带SUKj的数据发送到存储节点Nj,即将SUK1的数据发送到存储节点N1,将SUK2的数据发送到存储节点N2。其中,K为整数1到R中的一个值,N与K不同。本发明实施例,逻辑地址分布在分区P与第二数据分布在分区P具有相同的含义。进一步的,有效的数据条带SUKj的数据包含分条KY的数据条带状态信息。进一步的,数据条带SUKj的数据还包含数据条带SUKj的数据的元数据,例如条带SUKj标识,条带SUKj的数据的逻辑地址。进一步描述可参考图6第一客户端的描述,在此不再赘述。第一客户端从R个分条中获得分条SK的含义可参考第一客户端从R个分条中获得分条SN的含义,在此不再赘述。
在另一种实现方式中,在多客户端向分布式块存储系统提供的LUN写入数据的情况下,例如第一客户端和第二客户端,可以由第二客户端执行上述第一客户端所执行的第二写请求的操作。
进一步的,在一个逻辑单元挂载给多个客户端的情况下,如挂载给第一客户端和第二客户端,第二客户端接收第三写请求;第三写请求包含第三数据和图6描述的逻辑地址。第二客户端根据图6流程中描述的算法确定逻辑地址分布在分区P2,第二客户端从R个分条中获得分条SK,第二客户端将第三数据划分为分条SK中的一个或多个条带SUKj的数据,如SUK1的数据和SUK2的数据,第二客户端将一个或多个条带SUKj的数据发送到存储节点Nj,即将SUK1的数据发送到存储节点N1,将SUK2的数据发送到存储节点N2。其中,K为整数1到R中的一个值,N与K不同。逻辑地址分布在分区P与第三数据分布在分区P具有相同的含义。第二客户端从R个分条中获得分条SK的含义可参考第一客户端从R个分条中获得分条SN的含义,在此不再赘述。进一步的,有效的数据条带SUKj的数据包含分条SK的数据条带状态信息。进一步的,数据条带SUKj的数据还包括第二客户端标识和第二客户端获得分条SK的时间戳TPK中的至少一种。进一步的,数据条带SUKj的数据还包含元数据,如数据条带SUKj标识,数据条带SUKj的数据的逻辑地址。关于第二客户端的进一步描述可参考图6第一客户端的描述,在此不再赘述。
在图6所示的实施例中,客户端将数据划分为条带的数据,将条带的数据发送到对应的存储节点,不需要主存储节点,减轻了主存储节点压力,减少了存储节点间的数据交互,同时将分条的条带的数据并发写到相应存储节点,也提升了分布式块存储系统的写性能。
与图6所示的第一客户端实施例相对应,如图8所示,存储节点Nj执行如下步骤:
步骤801:存储节点Nj分条SN中的条带SUNj的数据。
结合图6所示实施例,存储节点N1接收第一客户端发送SUN1的数据,存储节点N2接收第一客户端发送SUN2的数据,存储节点N3接收第一客户端发送SUN3的数据,存储节点N4接收第一客户端发送SUN4的数据。分条SN包括M个条带SUNj,即条带SUN1到条带SUNM。
步骤802:存储节点Nj分条SK中的条带SUKj的数据。
结合图6所示实施例,存储节点N1接收第一客户端发送SUK1的数据,存储节点N2接收第一客户端发送SUK2的数据,存储节点N3接收第一客户端发送SUK3的数据,存储节点N4接收第一客户端发送SUK4的数据。分条SK包括M个条带SUKj,即条带SUK1到条带SUKM。条带SUKj的数据的逻辑地址与条带SUNj的数据的逻辑地址相同。本发明另一实施例,分条SK中的条带SUKj的数据是由第二客户端发送的。
步骤803:存储节点Nj生成记录;该记录用于指示条带SUNj的数据先于条带SUKj的数据到达存储节点Nj。
在本发明实施例的一种实现方式中,该记录基于条带SUNj的标识和条带SUKj的标识指示条带SUNj的数据先于条带SUKj的数据到达存储节点Nj,从而基于该记录保证数据的一致性。即将条带SUNj的标识和条带SUKj的标识作为一个条目。在该条目中,可以基于这两个条带标识的先后顺序来表示这两个条带的数据到达存储节点Nj的先后顺序。在另一种实现方式中,在该条目中,也可以基于这两个条带标识与其他符合组合来表示这两个条带的数据到达存储节点Nj的先后顺序。
本发明实施例中,存储节点Nj将该记录备份到M个存储节点中一个或多个其他存储节点。例如,以存储节点N1为例,可以将记录备份到存储节点N2、存储节点N3和存储节点N4中一个或多个,从而可以提高记录的可靠性,防止记录因为存储节点N1发生故障丢失。存储节点Nj存储备份该记录的存储节点的标识。另一种实现方式,防止因为存储节点Nj故障导致存储的备份该记录的存储节点的标识,从而无法确定恢复出来的条带SUNj的数据和条带SUKj的数据中确定条带SUKj的数据为最新数据,还可以由分条元数据服务器确定M个存储节点间的记录的备份关系
本发明实施例,存储节点Nj还记录条带SUNj的数据的逻辑地址与条带SUNj的标识的映射以及条带SUKj的数据的逻辑地址与条带SUKj的标识的映射。为方便查询存储节点Nj存储的记录,可以用条带的数据的逻辑地址为索引来组织记录。存储节点Nj存储条带SUNj的数据,记录条带SUNj的标识与存储条带SUNj的数据的地址的映射,存储节点Nj存储条带SUKj的数据,记录条带SUKj的标识与存储条带SUKj的数据的地址的映射。本发明实施例中,对于存储校验数据的条带,即校验条带,存储节点需要记录校验条带的标识与存储校验条带的数据的地址的映射,不需要记录校验条带的数据的逻辑地址与校验条带的标识的映射,因为校验条带的数据没有逻辑地址。
在本发明实施例,存储节点Nj按照接收到的条带的数据的顺序在缓存中存储条带的数据的逻辑地址与条带的标识的映射。因此,存储节点Nj基于该映射生成记录。即本发明实施例中不要求接收到条带的数据立即生成记录,可以将生成记录作为后台任务执行,从而提高存储节点Nj处理条带的数据的性能。当存储节点用于存储校验条带的数据,即校验数据时,存储节点Nj按照接收到的校验条带的数据的顺序在缓存中存储条带的标识与该存储节点Nj存储校验条带的数据的逻辑地址的映射,存储节点Nj基于该映射生成记录。另一种实现方式,储节点Nj按照接收到的校验条带的数据的顺序在缓存中存储校验条带的数据,存储节点Nj基于该缓存的数据的顺序生成记录。
本发明实施例中,存储节点Nj接收客户端发送的读请求,该读请求中包含逻辑地址。因为条带SUNj的数据的逻辑地址与条带SUKj的数据的逻辑地址相同,存储节点Nj还记录条带SUNj的数据的逻辑地址与条带SUNj的标识的映射以及条带SUKj的数据的逻辑地址与条带SUKj的标识的映射,因此需要确定条带SUNj的数据与条带SUKj的数据中的最新数据,即最新版本的数据,从而基于该记录保证数据的一致性。存储节点Nj基于逻辑地址查询存储的记录确定条带SUKj的数据为最新数据。客户端可以为第一客户端或第二客户端,还可以为除第一客户端和第二客户端以外的客户端。
在本发明实施例中,存储节点Nj发生故障,条带SUNj的数据和条带SUKj的数据丢失,分条元数据服务器根据分条SN在M-1个存储节点上的分条SN的其他条带的数据恢复条带SUNj的数据,根据分条SK在M-1个存储节点上的分条SK的其他条带的数据恢复条带SUKj的数据。例如,存储节点N1发生故障,条带SUN1的数据和条带SUK1的数据丢失,基于上述方式恢复条带SUN1的数据和条带SUK1的数据。另一种实现方式,可以由客户端实现条带的数据的恢复。存储节点Nj从备份记录的其他存储节点获得记录,根据记录在恢复出来的条带SUNj的数据和条带SUKj的数据中确定条带SUKj的数据为最新数据,从而基于该记录保证数据的一致性。存储节点Nj从分条元数据服务器查询M个存储节点间的记录的备份关系,确定存储存储节点Nj的记录的存储节点的标识,从而根据该存储节点的标识从该存储节点获得存储节点Nj的记录。
结合本发明实施例的各种实现,本发明实施例提供了分布式存储系统中的存储节点作为分布式存储系统中的存储节点Nj,如图9所示,存储节点Nj包含接收单元901和生成单元902;其中,接收单元901,用于接收分条SN中的条带SUNj的数据以及分条SK中的条带SUKj的数据;其中,所述分条SN包含M个条带SUNj,所述分条SK包含M个条带SUKj,所述条带SUKj的数据的逻辑地址与所述条带SUNj的数据的逻辑地址相同,N与K不同;生成单元902,用于生成记录;所述记录用于指示所述条带SUNj的数据先于所述条带SUKj的数据到达所述存储节点Nj。所述记录基于所述条带SUNj的标识和所述条带SUKj的标识指示所述条带SUNj的数据先于所述条带SUKj的数据到达所述存储节点Nj。其中,一种实现方式,所述条带SUNj的数据和所述条带SUKj的数据是由第一客户端发送的;另一种实现方式,所述条带SUNj的数据是由第一客户端发送的,所述条带SUKj的数据是由第二客户端发送的。
进一步的,在图9所示的存储节点Nj,还包括备份单元,用于将所述记录备份到所述M个存储节点中一个或多个其他存储节点。
进一步的,在图9所示的存储节点Nj还包括查询确定单元和返回单元;所述接收单元,还用于接收第三客户端发送的读请求;所述读请求包含所述逻辑地址;所述查询确定单元,用于基于所述逻辑地址查询所述记录确定所述条带SUKj的数据为最新数据;所述返回单元,用于向所述第三客户端返回所述SUKj的数据。
进一步的,在图9所示的存储节点Nj还包括获得确定单元,用于当所述存储节点Nj发生故障,从备份所述记录的一个存储节点获得所述记录,根据所述记录在恢复出来的所述条带SUNj的数据和所述条带SUKj的数据中确定所述条带SUKj的数据为最新数据。
本发明实施例的图9所示的存储节点的实现可以参考本发明实施例中的存储节点,例如存储节点Nj。另一种实现方式,图9所示的存储节点中的单元可以为软件模块,可以运行在服务器上,从而使存储节点完成本发明实施例中描述的各种实现。
本发明实施例还提供了一种客户端,包括多个单元,用于实现本发明实施例中客户端的操作。客户端实现可以参考本发明实施例中的存储节点,例如存储节点Nj。另一种实现方式,客户端实现的单元可以为软件模块,可以运行在服务器上,从而使存储节点完成本发明实施例中描述的各种实现。
相应的,本发明实施例还提供了计算机可读存储介质和计算机程序产品,计算机可读存储介质和计算机程序产品中包含计算机指令用于实现本发明实施例中描述的各种方案。
本发明实施例中描述分条、数据条带、校验条带和存储节点所使用的标识只是为更清楚地描述本发明实施例,实际产品实现中并不要求一定带有类似的标识,因此,本发明实施例描述分条、数据条带、校验条带和存储节点所使用的标识并不是对本发明的限定。
在本发明实施例的另一种实现中,也可以不基于分区查找相应的分条和存储节点。
在本发明所提供的几个实施例中,应该理解到,所公开的装置、方法,可以通过其它的方式实现。例如,以上所描述的装置实施例所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例各方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
Claims (17)
1.一种分布式存储系统中数据存储方法,其特征在于,所述分布式存储系统包含M个存储节点Nj;其中,j为整数1到M中的每一个值;所述方法包括:
所述存储节点Nj接收分条SN中的条带SUNj的数据;所述分条SN包含M个条带SUNj;
所述存储节点Nj接收分条SK中的条带SUKj的数据;所述条带SUKj的数据的逻辑地址与所述条带SUNj的数据的逻辑地址相同;N与K不同,所述分条SK包含M个条带SUKj;
所述存储节点Nj生成记录;所述记录用于指示所述条带SUNj的数据先于所述条带SUKj的数据到达所述存储节点Nj;
所述存储节点Nj将所述记录备份到所述M个存储节点中一个或多个其他存储节点;
当所述存储节点Nj发生故障,从备份所述记录的一个存储节点获得所述记录,根据所述记录在恢复出来的所述条带SUNj的数据和所述条带SUKj的数据中确定所述条带SUKj的数据为最新数据。
2.根据权利要求1所述的方法,其特征在于,所述记录基于所述条带SUNj的标识和所述条带SUKj的标识指示所述条带SUNj的数据先于所述条带SUKj的数据到达所述存储节点Nj。
3.根据权利要求1所述的方法,其特征在于,所述条带SUNj的数据和所述条带SUKj的数据是由第一客户端发送的。
4.根据权利要求1所述的方法,其特征在于,所述条带SUNj的数据是由第一客户端发送的,所述条带SUKj的数据是由第二客户端发送的。
5.根据权利要求1所述的方法,其特征在于,
所述条带SUNj和所述条带SUKj是由分条元数据服务器从所述存储节点Nj分配的。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述存储节点Nj接收第三客户端发送的读请求;所述读请求包含所述逻辑地址;
所述存储节点Nj基于所述逻辑地址查询所述记录确定所述条带SUKj的数据为最新数据;
所述存储节点Nj向所述第三客户端返回所述SUKj的数据。
7.一种分布式存储系统中的存储节点,其特征在于,所述分布式存储系统包含M个存储节点Nj;其中,j为整数1到M中的每一个值;所述存储节点作为所述存储节点Nj包括:
接收单元,用于接收分条SN中的条带SUNj的数据以及分条SK中的条带SUKj的数据;其中,所述分条SN包含M个条带SUNj,所述分条SK包含M个条带SUKj,所述条带SUKj的数据的逻辑地址与所述条带SUNj的数据的逻辑地址相同,N与K不同;
生成单元,用于生成记录;所述记录用于指示所述条带SUNj的数据先于所述条带SUKj的数据到达所述存储节点Nj;
备份单元,用于将所述记录备份到所述M个存储节点中一个或多个其他存储节点;
获得确定单元,用于当所述存储节点Nj发生故障,从备份所述记录的一个存储节点获得所述记录,根据所述记录在恢复出来的所述条带SUNj的数据和所述条带SUKj的数据中确定所述条带SUKj的数据为最新数据。
8.根据权利要求7所述的存储节点,其特征在于,所述记录基于所述条带SUNj的标识和所述条带SUKj的标识指示所述条带SUNj的数据先于所述条带SUKj的数据到达所述存储节点Nj。
9.根据权利要求7所述的存储节点,其特征在于,所述条带SUNj的数据和所述条带SUKj的数据是由第一客户端发送的。
10.根据权利要求7所述的存储节点,其特征在于,所述条带SUNj的数据是由第一客户端发送的,所述条带SUKj的数据是由第二客户端发送的。
11.根据权利要求7所述的存储节点,其特征在于,所述存储节点Nj还包括查询确定单元和返回单元;
所述接收单元,还用于接收第三客户端发送的读请求;所述读请求包含所述逻辑地址;
所述查询确定单元,用于基于所述逻辑地址查询所述记录确定所述条带SUKj的数据为最新数据;
所述返回单元,用于向所述第三客户端返回所述SUKj的数据。
12.一种分布式存储系统中的存储节点,其特征在于,所述分布式存储系统包含M个存储节点Nj;其中,j为整数1到M中的每一个值;所述存储节点作为所述存储节点Nj包括接口和处理器,所述接口和所述处理器通信,所述处理器用于:
接收分条SN中的条带SUNj的数据;所述分条SN包含M个条带SUNj;
j接收分条SK中的条带SUKj的数据;所述条带SUKj的数据的逻辑地址与所述条带SUNj的数据的逻辑地址相同;N与K不同,所述分条SK包含M个条带SUKj;
生成记录;所述记录用于指示所述条带SUNj的数据先于所述条带SUKj的数据到达所述存储节点Nj;
所述存储节点Nj将所述记录备份到所述M个存储节点中一个或多个其他存储节点;
当所述存储节点Nj发生故障,从备份所述记录的一个存储节点获得所述记录,根据所述记录在恢复出来的所述条带SUNj的数据和所述条带SUKj的数据中确定所述条带SUKj的数据为最新数据。
13.根据权利要求12所述的存储节点,其特征在于,所述记录基于所述条带SUNj的标识和所述条带SUKj的标识指示所述条带SUNj的数据先于所述条带SUKj的数据到达所述存储节点Nj。
14.根据权利要求12所述的存储节点,其特征在于,所述条带SUNj的数据和所述条带SUKj的数据是由第一客户端发送的。
15.根据权利要求12所述的存储节点,其特征在于,所述条带SUNj的数据是由第一客户端发送的,所述条带SUKj的数据是由第二客户端发送的。
16.根据权利要求12所述的存储节点,其特征在于,
所述条带SUNj和所述条带SUKj是由分条元数据服务器从所述存储节点Nj分配的。
17.根据权利要求12所述的存储节点,其特征在于,所述处理器还用于:
接收第三客户端发送的读请求;所述读请求包含所述逻辑地址;
基于所述逻辑地址查询所述记录确定所述条带SUKj的数据为最新数据;
向所述第三客户端返回所述SUKj的数据。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2018/123349 WO2020132849A1 (zh) | 2018-12-25 | 2018-12-25 | 分布式存储系统中数据存储方法、装置及计算机程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111936960A CN111936960A (zh) | 2020-11-13 |
CN111936960B true CN111936960B (zh) | 2022-08-19 |
Family
ID=71126800
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880003863.0A Active CN111936960B (zh) | 2018-12-25 | 2018-12-25 | 分布式存储系统中数据存储方法、装置及计算机程序产品 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11775194B2 (zh) |
EP (1) | EP3889752B1 (zh) |
CN (1) | CN111936960B (zh) |
WO (1) | WO2020132849A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109814805B (zh) * | 2018-12-25 | 2020-08-25 | 华为技术有限公司 | 存储系统中分条重组的方法及分条服务器 |
CN113311993B (zh) * | 2021-03-26 | 2024-04-26 | 阿里巴巴创新公司 | 数据存储方法及数据读取方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017088572A1 (zh) * | 2015-11-23 | 2017-06-01 | 华为技术有限公司 | 一种处理数据的方法、装置及系统 |
CN107908499A (zh) * | 2017-11-02 | 2018-04-13 | 华为技术有限公司 | 一种数据校验方法及装置 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7363444B2 (en) * | 2005-01-10 | 2008-04-22 | Hewlett-Packard Development Company, L.P. | Method for taking snapshots of data |
TWI476610B (zh) * | 2008-04-29 | 2015-03-11 | Maxiscale Inc | 同級間冗餘檔案伺服器系統及方法 |
CN103535014B (zh) * | 2013-04-23 | 2016-09-28 | 华为技术有限公司 | 一种网络存储系统、数据处理方法和客户端 |
CN105471930B (zh) * | 2014-07-28 | 2019-03-26 | 浙江大华技术股份有限公司 | 一种读取分布式数据的方法、系统和设备 |
SG11201703410YA (en) * | 2014-12-27 | 2017-06-29 | Huawei Tech Co Ltd | Data processing method, apparatus, and system |
US9671971B2 (en) * | 2015-03-27 | 2017-06-06 | Intel Corporation | Managing prior versions of data for logical addresses in a storage device |
CN107844268B (zh) * | 2015-06-04 | 2021-09-14 | 华为技术有限公司 | 一种数据分发方法、数据存储方法、相关装置以及系统 |
CN109445687B (zh) * | 2015-09-30 | 2022-04-26 | 华为技术有限公司 | 一种数据存储方法以及协议服务器 |
CN105404469B (zh) * | 2015-10-22 | 2018-11-13 | 浙江宇视科技有限公司 | 一种视频数据的存储方法和系统 |
WO2017113276A1 (zh) * | 2015-12-31 | 2017-07-06 | 华为技术有限公司 | 分布式存储系统中的数据重建的方法、装置和系统 |
CN107436725B (zh) | 2016-05-25 | 2019-12-20 | 杭州海康威视数字技术股份有限公司 | 一种数据写、读方法、装置及分布式对象存储集群 |
CN112328168A (zh) | 2017-06-29 | 2021-02-05 | 华为技术有限公司 | 分片管理方法和分片管理装置 |
CN108491290B (zh) * | 2018-03-28 | 2021-07-23 | 新华三技术有限公司 | 一种数据写入方法及装置 |
-
2018
- 2018-12-25 CN CN201880003863.0A patent/CN111936960B/zh active Active
- 2018-12-25 EP EP18944365.8A patent/EP3889752B1/en active Active
- 2018-12-25 WO PCT/CN2018/123349 patent/WO2020132849A1/zh unknown
-
2021
- 2021-06-25 US US17/358,682 patent/US11775194B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017088572A1 (zh) * | 2015-11-23 | 2017-06-01 | 华为技术有限公司 | 一种处理数据的方法、装置及系统 |
CN107908499A (zh) * | 2017-11-02 | 2018-04-13 | 华为技术有限公司 | 一种数据校验方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
EP3889752A1 (en) | 2021-10-06 |
EP3889752B1 (en) | 2024-09-25 |
US11775194B2 (en) | 2023-10-03 |
US20210318826A1 (en) | 2021-10-14 |
CN111936960A (zh) | 2020-11-13 |
EP3889752A4 (en) | 2021-12-01 |
WO2020132849A1 (zh) | 2020-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106708425B (zh) | 分布式多模存储管理 | |
US7676628B1 (en) | Methods, systems, and computer program products for providing access to shared storage by computing grids and clusters with large numbers of nodes | |
CN111949210B (zh) | 分布式存储系统中元数据存储方法、系统及存储介质 | |
US11188246B2 (en) | Composite aggregate architecture | |
CN107924291B (zh) | 存储系统 | |
US9946485B1 (en) | Efficient data marker representation | |
CN110199512B (zh) | 存储系统中存储设备的管理方法及装置 | |
CN110325958B (zh) | 分布式块存储系统中数据存储方法、装置及计算机可读存储介质 | |
WO2021017782A1 (zh) | 分布式存储系统访问方法、客户端及计算机程序产品 | |
US11340829B1 (en) | Techniques for log space management involving storing a plurality of page descriptor (PDESC) page block (PB) pairs in the log | |
US20210326207A1 (en) | Stripe reassembling method in storage system and stripe server | |
CN111913664B (zh) | 一种数据写入方法及装置 | |
US11775194B2 (en) | Data storage method and apparatus in distributed storage system, and computer program product | |
CN112714910B (zh) | 分布式存储系统及计算机程序产品 | |
US10929032B1 (en) | Host hinting for smart disk allocation to improve sequential access performance | |
CN114579045A (zh) | 存储装置、存储装置的操作方法和存储服务器的操作方法 | |
US11079956B2 (en) | Storage system and storage control method | |
US8935488B2 (en) | Storage system and storage control method | |
US11144445B1 (en) | Use of compression domains that are more granular than storage allocation units | |
US9778850B1 (en) | Techniques for zeroing non-user data areas on allocation |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220228 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Applicant after: Huawei Cloud Computing Technologies Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Applicant before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |