CN112783419A - 分布式存储方法及装置、电子设备和存储介质 - Google Patents

分布式存储方法及装置、电子设备和存储介质 Download PDF

Info

Publication number
CN112783419A
CN112783419A CN201911075911.XA CN201911075911A CN112783419A CN 112783419 A CN112783419 A CN 112783419A CN 201911075911 A CN201911075911 A CN 201911075911A CN 112783419 A CN112783419 A CN 112783419A
Authority
CN
China
Prior art keywords
storage
sub
nodes
spaces
node
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.)
Granted
Application number
CN201911075911.XA
Other languages
English (en)
Other versions
CN112783419B (zh
Inventor
牛克强
张力
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201911075911.XA priority Critical patent/CN112783419B/zh
Publication of CN112783419A publication Critical patent/CN112783419A/zh
Application granted granted Critical
Publication of CN112783419B publication Critical patent/CN112783419B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开涉及一种分布式存储方法及装置、电子设备和存储介质。所述方法包括:将云盘划分为多个子存储空间,并建立所述多个子存储空间与多个存储节点之间的对应关系;接收存储请求;根据所述多个子存储空间的元数据,确定所述存储请求对应的第一子存储空间,并根据所述多个子存储空间与所述多个存储节点之间的对应关系,确定所述第一子存储空间对应的第一存储节点;将所述存储请求转发至所述第一存储节点,以便所述第一存储节点根据所述第一存储节点中存储的元数据和所述存储请求,对所述第一子存储空间进行读操作和/或写操作。本公开提供了分布式存储方案,对一个云盘的多个读写操作可以在多个存储节点进行,从而能够提高云盘的读写速度。

Description

分布式存储方法及装置、电子设备和存储介质
技术领域
本公开涉及分布式存储技术领域,尤其涉及一种分布式存储方法及装置、电子设备和存储介质。
背景技术
SCSI(Small Computer System Interface,小型计算机系统接口)是一种用于计算机及其周边设备(如硬盘、软驱、光驱、打印机、扫描仪等)之间的系统级接口的独立处理器标准。SCSI与IDE(Integrated Drive Electronics,电子集成驱动器)是不同的接口,IDE接口是普通PC(Personal Computer,个人计算机)的标准接口,而SCSI并不是专门为硬盘设计的接口,而是一种广泛应用于小型机上的高速数据传输技术。
TGT(TarGeT)是为创建和维护SCSI target驱动提供支持的架构。TGT能将块设备或者文件转换为SCSI设备并提供iSCSI(Internet Small Computer System Interface,互联网小型计算机系统接口)或者iSER(iSCSI Extensions for Remote direct memoryaccess,用于远程直接数据存取的互联网小型计算机系统接口扩展)等SAN(Storage AreaNetwork,存储区域网络)中常用的传输方式来访问这些设备。
图1中的架构A示出了传统的企业存储的示意架构。如图1中的架构A所示,传统的企业存储应用通常要求支持SCSI或者iSCSI。图1中的架构B示出了云存储的示意架构。如图1中的架构B所示,分布式云存储一般使用专用客户端给用户提供服务。为了使分布式云存储同时支持云上应用和企业存储应用,在企业级的分布式存储应用中,通常使用TGT架构加专用客户端的组网方式。这种方式的优点是配置简单,分层清晰。然而,由于SCSI和TGT为单机单实例设计,无法实现多个节点之间的交互,导致只能采用单个主节点加多个备用节点的方式。一主多备的模式必然会造成分布式存储的性能瓶颈。在一主多备的模式下,主节点故障带来的切换时间开销将会非常大。
发明内容
本公开提出了一种分布式存储技术方案。
根据本公开的第一方面,提供了一种分布式存储方法,应用于云存储服务端,包括:
将云盘划分为多个子存储空间,并建立所述多个子存储空间与多个存储节点之间的对应关系;
接收存储请求,其中,所述存储请求用于请求对所述云盘进行读操作和/或写操作;
根据所述多个子存储空间的元数据,确定所述存储请求对应的第一子存储空间,并根据所述多个子存储空间与所述多个存储节点之间的对应关系,确定所述第一子存储空间对应的第一存储节点;
将所述存储请求转发至所述第一存储节点,以便所述第一存储节点根据所述第一存储节点中存储的元数据和所述存储请求,对所述第一子存储空间进行读操作和/或写操作。
在一种可能的实现方式中,所述将云盘划分为多个子存储空间,包括:
将所述云盘划分为多个分片,并将每个分片分别作为子存储空间。
在一种可能的实现方式中,所述将云盘划分为多个子存储空间,包括:
将所述云盘划分为多个分片,将每个所述分片划分为多个条带,并将每个条带分别作为子存储空间。
在一种可能的实现方式中,不同的存储节点能够同时对不同的子存储空间进行读操作和写操作,且不同的存储节点能够同时对同一子存储空间进行读操作。
在一种可能的实现方式中,还包括:
基于子存储空间的分布式锁机制,控制不同的存储节点对于同一子存储空间的写操作,以使不同的存储节点不能同时对同一子存储空间进行写操作。
在一种可能的实现方式中,还包括:
将所述多个子存储空间的元数据存储在所述多个存储节点中。
在一种可能的实现方式中,所述将所述多个子存储空间的元数据存储在所述多个存储节点中,包括:
对于所述多个存储节点中的任意一个存储节点,根据所述多个子存储空间与所述多个存储节点之间的对应关系,获得该存储节点对应的子存储空间的元数据;
将该存储节点对应的子存储空间的元数据存储在该存储节点中。
在一种可能的实现方式中,还包括:
当检测到所述多个存储节点中的第二存储节点发生故障或出现异常时,根据所述多个子存储空间与多个存储节点之间的对应关系,确定所述第二存储节点对应的第二子存储空间;
将所述第二子存储空间的元数据存储在所述多个存储节点中的第三存储节点中,并更新所述多个子存储空间与多个存储节点之间的对应关系。
根据本公开的第二方面,提供了一种分布式存储装置,应用于云存储服务端,包括:
划分模块,用于将云盘划分为多个子存储空间,并建立所述多个子存储空间与多个存储节点之间的对应关系;
接收模块,用于接收存储请求,其中,所述存储请求用于请求对所述云盘进行读操作和/或写操作;
第一确定模块,用于根据所述多个子存储空间的元数据,确定所述存储请求对应的第一子存储空间,并根据所述多个子存储空间与所述多个存储节点之间的对应关系,确定所述第一子存储空间对应的第一存储节点;
转发模块,用于将所述存储请求转发至所述第一存储节点,以便所述第一存储节点根据所述第一存储节点中存储的元数据和所述存储请求,对所述第一子存储空间进行读操作和/或写操作。
在一种可能的实现方式中,所述划分模块用于:
将所述云盘划分为多个分片,并将每个分片分别作为子存储空间。
在一种可能的实现方式中,所述划分模块用于:
将所述云盘划分为多个分片,将每个所述分片划分为多个条带,并将每个条带分别作为子存储空间。
在一种可能的实现方式中,不同的存储节点能够同时对不同的子存储空间进行读操作和写操作,且不同的存储节点能够同时对同一子存储空间进行读操作。
在一种可能的实现方式中,还包括:
控制模块,用于基于子存储空间的分布式锁机制,控制不同的存储节点对于同一子存储空间的写操作,以使不同的存储节点不能同时对同一子存储空间进行写操作。
在一种可能的实现方式中,还包括:
存储模块,用于将所述多个子存储空间的元数据存储在所述多个存储节点中。
在一种可能的实现方式中,所述存储模块用于:
对于所述多个存储节点中的任意一个存储节点,根据所述多个子存储空间与所述多个存储节点之间的对应关系,获得该存储节点对应的子存储空间的元数据;
将该存储节点对应的子存储空间的元数据存储在该存储节点中。
在一种可能的实现方式中,还包括:
第二确定模块,用于当检测到所述多个存储节点中的第二存储节点发生故障或出现异常时,根据所述多个子存储空间与多个存储节点之间的对应关系,确定所述第二存储节点对应的第二子存储空间;
更新模块,用于将所述第二子存储空间的元数据存储在所述多个存储节点中的第三存储节点中,并更新所述多个子存储空间与多个存储节点之间的对应关系。
根据本公开的第三方面,提供了一种电子设备,包括:
一个或多个处理器;
与所述一个或多个处理器关联的存储器,所述存储器用于存储可执行指令,所述可执行指令在被所述一个或多个处理器读取执行时,执行上述方法。
根据本公开的第四方面,提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。
在本公开实施例中,通过将云盘划分为多个子存储空间,建立该多个子存储空间与多个存储节点之间的对应关系,接收存储请求,根据该多个子存储空间的元数据,确定存储请求对应的第一子存储空间,根据该多个子存储空间与该多个存储节点之间的对应关系,确定第一子存储空间对应的第一存储节点,并将存储请求转发至第一存储节点,以便第一存储节点根据第一存储节点中存储的元数据和存储请求,对第一子存储空间进行读操作和/或写操作,由此提供了能够适应企业级分布式存储应用的分布式存储方案,同一云盘能够利用多个存储节点的性能,对一个云盘的多个读写操作可以在多个存储节点进行,从而能够提高云盘的读写速度。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。
图1中的架构A示出了传统的企业存储的示意架构,图1中的架构B示出了云存储的示意架构。
图2中的架构C示出了本公开实施例提供的一种能够适用于企业级分布式存储应用的示意架构。
图3示出本公开实施例提供的分布式存储应用的另一示意图。
图4示出本公开实施例提供的分布式存储方法的流程图。
图5示出本公开实施例提供的分布式存储方法中将云盘划分为多个分片的示意图。
图6示出本公开实施例提供的分布式存储方法中将每个分片划分为多个条带的示意图。
图7示出本公开实施例提供的分布式存储方法中将分片作为子存储空间,以及建立多个分片与多个存储节点之间的对应关系的示意图。
图8示出本公开实施例提供的分布式存储方法中将条带作为子存储空间,以及建立多个条带与多个存储节点之间的对应关系的示意图。
图9示出根据本公开实施例的分布式存储装置的框图。
图10示出本公开实施例提供的一种电子设备1900的框图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
另外,为了更好地说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
本公开实施例可以基于SCSI系统实现。当然,本公开实施例也可以应用于其他分布式存储应用场景中,本公开实施例对此不做限制。
在本公开实施例中,为了使分布式云存储同时支持云上应用和企业存储应用,提出了适应云存储的分布式SCSI(DSCSI,Distributed SCSI)。分布式SCSI能够实现分布式锁机制,从而使多个存储节点能够互斥地进行写操作。图2中的架构C示出了本公开实施例提供的一种能够适用于企业级分布式存储应用的示意架构。如图2所示,架构C能够同时支持云上应用和企业存储应用,并采用分布式SCSI和专用客户端(Client)。图3示出本公开实施例提供的分布式存储应用的另一示意图。如图3所示,用户节点(HostA、HostB)可以访问DSCSI,DSCSI上存储元数据(Meta),且DSCSI与专用客户端(Client)相配合实现分布式存储。
图4示出本公开实施例提供的分布式存储方法的流程图。该分布式存储方法应用于云存储服务端。例如,可以应用于云存储服务端的计算节点中。云存储服务端可以部署在云端服务器上。在一些可能的实现方式中,该分布式存储方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。如图4所示,该方法包括步骤S11至步骤S14。
在步骤S11中,将云盘划分为多个子存储空间,并建立所述多个子存储空间与多个存储节点之间的对应关系。
在本公开实施例中,云盘可以指建立在分布式存储系统之上的磁盘实例,云盘可以像计算机磁盘一样被读写使用。
在一种可能的实现方式中,可以按照固定容量对云盘进行划分。例如,固定容量为32GB,云盘的容量为128GB,则可以将云盘划分为4个子存储空间,每个子存储空间的容量为32GB。
在一种可能的实现方式中,所述将云盘划分为多个子存储空间,包括:将所述云盘划分为多个分片,并将每个分片分别作为子存储空间。在一个示例中,可以按照固定容量将云盘划分为多个分片。例如,固定容量为32GB,云盘的容量为128GB,则可以将云盘划分为4个分片,每个分片的容量为32GB。图5示出本公开实施例提供的分布式存储方法中将云盘划分为多个分片的示意图。在图5所示的示例中,将云盘划分为n个分片,即,分片的数量为n,其中,n为大于1的整数。
在另一种可能的实现方式中,所述将云盘划分为多个子存储空间,包括:将所述云盘划分为多个分片,将每个所述分片划分为多个条带,并将每个条带分别作为子存储空间。在该实现方式中,可以采用相关技术中的条带化(striping)技术,将每个分片划分为多个条带,在此不再赘述。图6示出本公开实施例提供的分布式存储方法中将每个分片划分为多个条带的示意图。在图6所示的示例中,分片0包括条带0、条带4和条带8,分片1包括条带1、条带5和条带9,分片2包括条带2、条带6和条带10,分片3包括条带3、条带7和条带11。在该实现方式中,通过将分片进一步条带化为多个条带,能够支持更大数量的并发读写操作,从而能够进一步扩大吞吐量、提升分布式存储性能以及分散热点。
在其他可能的实现方式中,在将所述云盘划分为多个分片且将每个所述分片划分为多个条带之后,还可以对每个所述条带进行更精细的划分,并将划分得到的存储空间作为所述子存储空间,本公开实施例对此不作限定。
在本公开实施例中,一个存储节点可以对应于一个或多个子存储空间。在一种可能的实现方式中,子存储空间的数量可以大于或等于存储节点的数量。
在一种可能的实现方式中,若将每个分片分别作为子存储空间,则一个存储节点可以对应于一个或多个分片。在一个示例中,分片的数量可以大于或等于存储节点的数量。
图7示出本公开实施例提供的分布式存储方法中将分片作为子存储空间,以及建立多个分片与多个存储节点之间的对应关系的示意图。在图7所示的示例中,分片的数量为n,存储节点的数量为m,其中,n和m均为大于1的整数。在图7中,存储节点0对应于分片1,存储节点1对应于分片0和分片2,存储节点m对应于分片n。
在一种可能的实现方式中,若将每个条带分别作为子存储空间,则一个存储节点可以对应于一个或多个条带,且一个存储节点可以对应于不同分片上的条带。
图8示出本公开实施例提供的分布式存储方法中将条带作为子存储空间,以及建立多个条带与多个存储节点之间的对应关系的示意图。在图8所示的示例中,分片的数量为3,分别是分片0至分片3,条带的数量为12,分别是条带0至条带11。在图8中,存储节点0对应于分片2上的条带2、条带6和条带10,存储节点1对应于分片0上的条带0、条带4和条带8,存储节点2对应于分片1上的条带9和分片3上的条带11,存储节点3对应于分片3上的条带3、条带7和条带11。
在一种可能的实现方式中,所述方法还包括:将所述多个子存储空间的元数据存储在所述多个存储节点中。
作为该实现方式的一个示例,可以在存储节点中缓存子存储空间的元数据。
在该实现方式中,通过在各个存储节点中分别存储元数据,能够提高对云盘进行读写操作的速度。
作为该实现方式的一个示例,将所述多个子存储空间的元数据存储在所述多个存储节点中,包括:对于所述多个存储节点中的任意一个存储节点,根据所述多个子存储空间与所述多个存储节点之间的对应关系,获得所述存储节点对应的子存储空间的元数据;将所述存储节点对应的子存储空间的元数据存储在所述存储节点中。例如,存储节点0对应于子存储空间1,则将子存储空间1的元数据存储在存储节点0中;又如,存储节点1对应于子存储空间0和子存储空间2,则将子存储空间0和子存储空间2的元数据存储在存储节点1中。
作为该实现方式的另一个示例,可以将所有子存储空间的元数据分别存储在每个存储节点中,即,可以将整个云盘的元数据分别存储在每个存储节点中。例如,可以在存储节点0中存储子存储空间1至子存储空间n的元数据。
在步骤S12中,接收存储请求,其中,所述存储请求用于请求对所述云盘进行读操作和/或写操作。
其中,存储请求也可以称为IO请求或者读写请求,存储请求可以包括读请求和/或写请求,其中,读请求用于请求对云盘进行读操作,写请求用于请求对云盘进行写操作。对云盘进行读操作指的是读取云盘的数据,对云盘进行写操作指的是往云盘写入数据。
在一种可能的实现方式中,存储请求可以通过SCSI的TGT架构生成,其中,TGT架构可以用于提供SCSI target服务。
在步骤S13中,根据所述多个子存储空间的元数据,确定所述存储请求对应的第一子存储空间,并根据所述多个子存储空间与所述多个存储节点之间的对应关系,确定所述第一子存储空间对应的第一存储节点。
其中,第一子存储空间表示存储请求对应的子存储空间,第一子存储空间是所述多个子存储空间中的一个子存储空间;第一存储节点表示第一子存储空间对应的存储节点,第一存储节点是所述多个存储节点中的一个存储节点。在本公开实施例中,根据所述多个子存储空间的元数据,可以从所述多个子存储空间中确定存储请求对应第一子存储空间;根据所述多个子存储空间与所述多个存储节点之间的对应关系,可以从所述多个存储节点中确定第一子存储空间对应的第一存储节点。
在步骤S14中,将所述存储请求转发至第一存储节点,以便所述第一存储节点根据所述第一存储节点中存储的元数据和所述存储请求,对所述第一子存储空间进行读操作和/或写操作。
在一种可能的实现方式中,不同的存储节点能够同时对不同的子存储空间进行读操作和写操作,且不同的存储节点能够同时对同一子存储空间进行读操作。在该实现方式中,通过允许不同的存储节点能够同时对不同的子存储空间进行读操作和写操作,以及允许不同的存储节点能够同时对同一子存储空间进行读操作,由此能够充分利用分布式的存储节点的性能,使得企业级的分布式存储性能大大提高。
在一种可能的实现方式中,还包括:基于子存储空间的分布式锁机制,控制不同的存储节点对于同一子存储空间的写操作,以使不同的存储节点不能同时对同一子存储空间进行写操作。
在一个示例中,若存储请求包括写请求,存储请求对应的子存储空间为第一子存储空间,且第一子存储空间对应的存储节点为第一存储节点,则第一存储节点在接收到存储请求后,判断第一子存储空间的分布式锁是否处于可用状态。若第一子存储空间的分布式锁处于可用状态的情况下,则第一存储节点将第一子存储空间的分布式锁置为占用状态,根据第一存储节点中存储的元数据和存储请求中的写请求,对第一子存储空间进行写操作,并在写操作完成后,将第一子存储空间的分布式锁置为可用状态。
在本公开实施例中,可以将所有需要持久化存储的数据均存储在云盘中,而不在企业的本地磁盘中存储数据,由此即使本地磁盘或者用户主机发生故障或者出现异常,也不影响这些数据的存储。
在本公开实施例中,通过将云盘划分为多个子存储空间,建立该多个子存储空间与多个存储节点之间的对应关系,接收存储请求,根据该多个子存储空间的元数据,确定存储请求对应的第一子存储空间,并根据该多个子存储空间与该多个存储节点之间的对应关系,确定第一子存储空间对应的第一存储节点,并将存储请求转发至第一存储节点,以便第一存储节点根据第一存储节点中存储的元数据和存储请求,对第一子存储空间进行读操作和/或写操作,由此提供了能够适应企业级分布式存储应用的分布式存储方案,同一云盘能够利用多个存储节点的性能,对一个云盘的多个读写操作可以在多个存储节点进行,从而能够提高云盘的读写速度。采用本公开实施例,即使在单个云盘容量非常大或者读写操作非常频繁的情况下,也不容易产生存储性能瓶颈。
在一种可能的实现方式中,还包括:当检测到所述多个存储节点中的第二存储节点发生故障或出现异常时,根据所述多个子存储空间与多个存储节点之间的对应关系,确定第二存储节点对应的第二子存储空间;将第二子存储空间的元数据存储在所述多个存储节点中的第三存储节点中,并更新所述多个子存储空间与多个存储节点之间的对应关系。
在该实现方式中,第二存储节点可以是所述多个存储节点中的任意一个存储节点,第三存储节点可以所述多个存储节点中任意一个未发生故障的存储节点。在所述实现方式中,发生故障或者出现异常的存储节点上的子存储空间的元数据可以快速迁移到运行正常的存储节点上,由此能够保障企业级的分布式存储性能。
另外,在本公开实施例中,采用计算节点与存储节点独立集群的方式部署,实现了计算存储分离,由此能够避免计算与存储资源争抢造成的性能损耗。
可以理解,本公开提及的上述各个方法实施例,在不违背原理逻辑的情况下,均可以彼此相互结合形成结合后的实施例,限于篇幅,本公开不再赘述。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
此外,本公开还提供了分布式存储装置、电子设备、计算机可读存储介质、程序,上述均可用来实现本公开提供的任一种分布式存储方法,相应技术方案和描述和参见方法部分的相应记载,不再赘述。
图9示出根据本公开实施例的分布式存储装置的框图。该分布式存储装置应用于云存储服务端。如图9所示,该分布式存储装置包括:划分模块21,用于将云盘划分为多个子存储空间,并建立所述多个子存储空间与多个存储节点之间的对应关系;接收模块22,用于接收存储请求,其中,所述存储请求用于请求对所述云盘进行读操作和/或写操作;第一确定模块23,用于根据所述多个子存储空间的元数据,确定所述存储请求对应的第一子存储空间,并根据所述多个子存储空间与所述多个存储节点之间的对应关系,确定所述第一子存储空间对应的第一存储节点;转发模块24,用于将所述存储请求转发至所述第一存储节点,以便所述第一存储节点根据所述第一存储节点中存储的元数据和所述存储请求,对所述第一子存储空间进行读操作和/或写操作。
在一种可能的实现方式中,所述划分模块21用于:将所述云盘划分为多个分片,并将每个分片分别作为子存储空间。
在一种可能的实现方式中,所述划分模块21用于:将所述云盘划分为多个分片,将每个所述分片划分为多个条带,并将每个条带分别作为子存储空间。
在一种可能的实现方式中,不同的存储节点能够同时对不同的子存储空间进行读操作和写操作,且不同的存储节点能够同时对同一子存储空间进行读操作。
在一种可能的实现方式中,还包括:控制模块,用于基于子存储空间的分布式锁机制,控制不同的存储节点对于同一子存储空间的写操作,以使不同的存储节点不能同时对同一子存储空间进行写操作。
在一种可能的实现方式中,还包括:存储模块,用于将所述多个子存储空间的元数据存储在所述多个存储节点中。
在一种可能的实现方式中,所述存储模块用于:对于所述多个存储节点中的任意一个存储节点,根据所述多个子存储空间与所述多个存储节点之间的对应关系,获得该存储节点对应的子存储空间的元数据;将该存储节点对应的子存储空间的元数据存储在该存储节点中。
在一种可能的实现方式中,还包括:第二确定模块,用于当检测到所述多个存储节点中的第二存储节点发生故障或出现异常时,根据所述多个子存储空间与多个存储节点之间的对应关系,确定所述第二存储节点对应的第二子存储空间;更新模块,用于将所述第二子存储空间的元数据存储在所述多个存储节点中的第三存储节点中,并更新所述多个子存储空间与多个存储节点之间的对应关系。
在本公开实施例中,通过将云盘划分为多个子存储空间,建立该多个子存储空间与多个存储节点之间的对应关系,接收存储请求,根据该多个子存储空间的元数据,确定存储请求对应的第一子存储空间,并根据该多个子存储空间与该多个存储节点之间的对应关系,确定第一子存储空间对应的第一存储节点,并将存储请求转发至第一存储节点,以便第一存储节点根据第一存储节点中存储的元数据和存储请求,对第一子存储空间进行读操作和/或写操作,由此提供了能够适应企业级分布式存储应用的分布式存储方案,同一云盘能够利用多个存储节点的性能,对一个云盘的多个读写操作可以在多个存储节点进行,从而能够提高云盘的读写速度。采用本公开实施例,即使在单个云盘容量非常大或者读写操作非常频繁的情况下,也不容易产生存储性能瓶颈。
在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
本公开实施例还提出一种非易失性计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。
本公开实施例还提出一种电子设备,包括:一个或多个处理器;与所述一个或多个处理器关联的存储器,所述存储器用于存储可执行指令,所述可执行指令在被所述一个或多个处理器读取执行时,执行上述方法。
电子设备可以被提供为服务器或其它形态的设备。
图10示出本公开实施例提供的一种电子设备1900的框图。例如,电子设备1900可以被提供为一服务器。参照图10,电子设备1900包括处理组件1922,其进一步包括一个或多个处理器,以及由存储器1932所代表的存储器资源,用于存储可由处理组件1922的执行的指令,例如应用程序。存储器1932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以执行上述方法。
电子设备1900还可以包括一个电源组件1926被配置为执行电子设备1900的电源管理,一个有线或无线网络接口1950被配置为将电子设备1900连接到网络,和一个输入输出(I/O)接口1958。电子设备1900可以操作基于存储在存储器1932的操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
在示例性实施例中,还提供了一种非易失性计算机可读存储介质,例如包括计算机程序指令的存储器1932,上述计算机程序指令可由电子设备1900的处理组件1922执行以完成上述方法。
本公开可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (11)

1.一种分布式存储方法,其特征在于,应用于云存储服务端,包括:
将云盘划分为多个子存储空间,并建立所述多个子存储空间与多个存储节点之间的对应关系;
接收存储请求,其中,所述存储请求用于请求对所述云盘进行读操作和/或写操作;
根据所述多个子存储空间的元数据,确定所述存储请求对应的第一子存储空间,并根据所述多个子存储空间与所述多个存储节点之间的对应关系,确定所述第一子存储空间对应的第一存储节点;
将所述存储请求转发至所述第一存储节点,以便所述第一存储节点根据所述第一存储节点中存储的元数据和所述存储请求,对所述第一子存储空间进行读操作和/或写操作。
2.根据权利要求1所述的方法,其特征在于,所述将云盘划分为多个子存储空间,包括:
将所述云盘划分为多个分片,并将每个分片分别作为子存储空间。
3.根据权利要求1所述的方法,其特征在于,所述将云盘划分为多个子存储空间,包括:
将所述云盘划分为多个分片,将每个所述分片划分为多个条带,并将每个条带分别作为子存储空间。
4.根据权利要求1至3中任意一项所述的方法,其特征在于,不同的存储节点能够同时对不同的子存储空间进行读操作和写操作,且不同的存储节点能够同时对同一子存储空间进行读操作。
5.根据权利要求1至3中任意一项所述的方法,其特征在于,还包括:
基于子存储空间的分布式锁机制,控制不同的存储节点对于同一子存储空间的写操作,以使不同的存储节点不能同时对同一子存储空间进行写操作。
6.根据权利要求1至3中任意一项所述的方法,其特征在于,还包括:
将所述多个子存储空间的元数据存储在所述多个存储节点中。
7.根据权利要求6所述的方法,其特征在于,所述将所述多个子存储空间的元数据存储在所述多个存储节点中,包括:
对于所述多个存储节点中的任意一个存储节点,根据所述多个子存储空间与所述多个存储节点之间的对应关系,获得该存储节点对应的子存储空间的元数据;
将该存储节点对应的子存储空间的元数据存储在该存储节点中。
8.根据权利要求1至3中任意一项所述的方法,其特征在于,还包括:
当检测到所述多个存储节点中的第二存储节点发生故障或出现异常时,根据所述多个子存储空间与多个存储节点之间的对应关系,确定所述第二存储节点对应的第二子存储空间;
将所述第二子存储空间的元数据存储在所述多个存储节点中的第三存储节点中,并更新所述多个子存储空间与多个存储节点之间的对应关系。
9.一种分布式存储装置,其特征在于,应用于云存储服务端,包括:
划分模块,用于将云盘划分为多个子存储空间,并建立所述多个子存储空间与多个存储节点之间的对应关系;
接收模块,用于接收存储请求,其中,所述存储请求用于请求对所述云盘进行读操作和/或写操作;
第一确定模块,用于根据所述多个子存储空间的元数据,确定所述存储请求对应的第一子存储空间,并根据所述多个子存储空间与所述多个存储节点之间的对应关系,确定所述第一子存储空间对应的第一存储节点;
转发模块,用于将所述存储请求转发至所述第一存储节点,以便所述第一存储节点根据所述第一存储节点中存储的元数据和所述存储请求,对所述第一子存储空间进行读操作和/或写操作。
10.一种电子设备,其特征在于,包括:
一个或多个处理器;
与所述一个或多个处理器关联的存储器,所述存储器用于存储可执行指令,所述可执行指令在被所述一个或多个处理器读取执行时,执行权利要求1至8中任意一项所述的方法。
11.一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1至8中任意一项所述的方法。
CN201911075911.XA 2019-11-06 2019-11-06 分布式存储方法及装置、电子设备和存储介质 Active CN112783419B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911075911.XA CN112783419B (zh) 2019-11-06 2019-11-06 分布式存储方法及装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911075911.XA CN112783419B (zh) 2019-11-06 2019-11-06 分布式存储方法及装置、电子设备和存储介质

Publications (2)

Publication Number Publication Date
CN112783419A true CN112783419A (zh) 2021-05-11
CN112783419B CN112783419B (zh) 2024-05-24

Family

ID=75747522

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911075911.XA Active CN112783419B (zh) 2019-11-06 2019-11-06 分布式存储方法及装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN112783419B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110515740A (zh) * 2019-08-16 2019-11-29 苏州浪潮智能科技有限公司 一种数据读取方法、装置及设备
CN114168083A (zh) * 2021-12-10 2022-03-11 四川爱联科技股份有限公司 一种数据存储系统、方法及电子设备

Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102088491A (zh) * 2011-02-01 2011-06-08 西安建筑科技大学 一种面向分散式的云存储安全架构及其数据存取方法
CN102255962A (zh) * 2011-07-01 2011-11-23 成都市华为赛门铁克科技有限公司 一种分布式存储方法、装置和系统
CN102307221A (zh) * 2011-03-25 2012-01-04 国云科技股份有限公司 一种云存储系统及其实现方法
US20120259901A1 (en) * 2011-03-31 2012-10-11 Lee Eo-Hyung Distributed storage of data in a cloud storage system
US20130041872A1 (en) * 2011-08-12 2013-02-14 Alexander AIZMAN Cloud storage system with distributed metadata
US20130204849A1 (en) * 2010-10-01 2013-08-08 Peter Chacko Distributed virtual storage cloud architecture and a method thereof
US20140006354A1 (en) * 2010-05-03 2014-01-02 Panzura, Inc. Executing a cloud command for a distributed filesystem
CN104503708A (zh) * 2014-12-29 2015-04-08 成都致云科技有限公司 数据散列存储的方法及装置
CN104679665A (zh) * 2013-12-02 2015-06-03 中兴通讯股份有限公司 一种实现分布式文件系统块存储的方法及系统
CN105354250A (zh) * 2015-10-16 2016-02-24 浪潮(北京)电子信息产业有限公司 一种面向云存储的数据存储方法及装置
CN105426125A (zh) * 2015-11-09 2016-03-23 深圳市迪菲特科技股份有限公司 一种数据存储方法及装置
CN107046563A (zh) * 2017-01-19 2017-08-15 无锡华云数据技术服务有限公司 一种分布式高效云盘的实现方法、系统及云平台
CN107249046A (zh) * 2017-08-15 2017-10-13 李俊庄 一种基于区块链的分布式云存储系统构建方法
CN107943421A (zh) * 2017-11-30 2018-04-20 成都华为技术有限公司 一种基于分布式存储系统的分区划分方法及装置
CN109144966A (zh) * 2018-07-06 2019-01-04 航天星图科技(北京)有限公司 一种海量时空数据的高效组织与管理方法
CN111868676A (zh) * 2018-03-15 2020-10-30 净睿存储股份有限公司 在基于云的存储系统中服务i/o操作

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140006354A1 (en) * 2010-05-03 2014-01-02 Panzura, Inc. Executing a cloud command for a distributed filesystem
US20130204849A1 (en) * 2010-10-01 2013-08-08 Peter Chacko Distributed virtual storage cloud architecture and a method thereof
CN102088491A (zh) * 2011-02-01 2011-06-08 西安建筑科技大学 一种面向分散式的云存储安全架构及其数据存取方法
CN102307221A (zh) * 2011-03-25 2012-01-04 国云科技股份有限公司 一种云存储系统及其实现方法
US20120259901A1 (en) * 2011-03-31 2012-10-11 Lee Eo-Hyung Distributed storage of data in a cloud storage system
CN102255962A (zh) * 2011-07-01 2011-11-23 成都市华为赛门铁克科技有限公司 一种分布式存储方法、装置和系统
US20130041872A1 (en) * 2011-08-12 2013-02-14 Alexander AIZMAN Cloud storage system with distributed metadata
CN104679665A (zh) * 2013-12-02 2015-06-03 中兴通讯股份有限公司 一种实现分布式文件系统块存储的方法及系统
CN104503708A (zh) * 2014-12-29 2015-04-08 成都致云科技有限公司 数据散列存储的方法及装置
CN105354250A (zh) * 2015-10-16 2016-02-24 浪潮(北京)电子信息产业有限公司 一种面向云存储的数据存储方法及装置
CN105426125A (zh) * 2015-11-09 2016-03-23 深圳市迪菲特科技股份有限公司 一种数据存储方法及装置
CN107046563A (zh) * 2017-01-19 2017-08-15 无锡华云数据技术服务有限公司 一种分布式高效云盘的实现方法、系统及云平台
CN107249046A (zh) * 2017-08-15 2017-10-13 李俊庄 一种基于区块链的分布式云存储系统构建方法
CN107943421A (zh) * 2017-11-30 2018-04-20 成都华为技术有限公司 一种基于分布式存储系统的分区划分方法及装置
CN111868676A (zh) * 2018-03-15 2020-10-30 净睿存储股份有限公司 在基于云的存储系统中服务i/o操作
CN109144966A (zh) * 2018-07-06 2019-01-04 航天星图科技(北京)有限公司 一种海量时空数据的高效组织与管理方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110515740A (zh) * 2019-08-16 2019-11-29 苏州浪潮智能科技有限公司 一种数据读取方法、装置及设备
CN114168083A (zh) * 2021-12-10 2022-03-11 四川爱联科技股份有限公司 一种数据存储系统、方法及电子设备
CN114168083B (zh) * 2021-12-10 2023-08-08 四川爱联科技股份有限公司 一种数据存储系统、方法及电子设备

Also Published As

Publication number Publication date
CN112783419B (zh) 2024-05-24

Similar Documents

Publication Publication Date Title
US10459663B2 (en) Thin provisioning of raid storage
US10073747B2 (en) Reducing recovery time in disaster recovery/replication setup with multitier backend storage
US9292214B2 (en) Systems and methods for migrating data
US20180329647A1 (en) Distributed storage system virtual and storage data migration
US20160092119A1 (en) Data migration between different types of storage systems
US10528374B2 (en) Volume management by virtual machine affiliation auto-detection
US10956382B2 (en) Application aware export to object storage of low-reference data in deduplication repositories
US9654497B2 (en) Virus-release-date-based priority virus scanning
CN113590019B (zh) 用于存储管理的方法、电子设备和计算机程序产品
CN112783419B (zh) 分布式存储方法及装置、电子设备和存储介质
US10956273B2 (en) Application aware export to object storage of low-reference data in deduplication repositories
US9715477B2 (en) Shared-bandwidth multiple target remote copy
US10789008B2 (en) Reducing write collisions in data copy
US20190250844A1 (en) Efficient data migration in hierarchical storage management system
US10664200B2 (en) Directing read request with disk deduplication
US9471223B2 (en) Volume class management
US9223513B2 (en) Accessing data in a dual volume data storage system using virtual identifiers
US10404274B2 (en) Space compression for file size reduction
US20150302189A1 (en) Efficient modification and creation of authorization settings for user accounts
US10528294B2 (en) Provisioning and managing virtual machines from a storage management system
US11023158B2 (en) Constraining placement of replica segment pairs among device pairs based on coding segment count
US10866752B2 (en) Reclaiming storage space in raids made up of heterogeneous storage drives
US11748314B2 (en) Method, device and computer program product for data replication
US10956354B2 (en) Detecting a type of storage adapter connected and miscabling of a microbay housing the storage adapter
US10248353B2 (en) Dynamicly freeing storage space in tiered storage systems

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
GR01 Patent grant
GR01 Patent grant