CN107948229A - 分布式存储的方法、装置及系统 - Google Patents

分布式存储的方法、装置及系统 Download PDF

Info

Publication number
CN107948229A
CN107948229A CN201610895126.9A CN201610895126A CN107948229A CN 107948229 A CN107948229 A CN 107948229A CN 201610895126 A CN201610895126 A CN 201610895126A CN 107948229 A CN107948229 A CN 107948229A
Authority
CN
China
Prior art keywords
storage
service node
information
priority
distributed
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
CN201610895126.9A
Other languages
English (en)
Other versions
CN107948229B (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201610895126.9A priority Critical patent/CN107948229B/zh
Publication of CN107948229A publication Critical patent/CN107948229A/zh
Application granted granted Critical
Publication of CN107948229B publication Critical patent/CN107948229B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1034Reaction to server failures by a load balancer

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及分布式存储的方法、装置及系统。所述方法包括:获取各存储服务节点的状态信息,根据所述状态信息确定各存储服务节点的优先级;根据优先级由高到低的顺序选取预置数量的存储服务节点,作为被分配服务节点;向各个被分配服务节点分配相同数据。本发明使得数据能够分散开存储在不同物理位置的介质上,提高了容灾性能,有利于保证数据可靠性。

Description

分布式存储的方法、装置及系统
技术领域
本发明涉及数据存储技术领域,特别是涉及分布式存储的方法、分布式存储的装置以及分布式存储的系统。
背景技术
在大型分布式存储的业务场景下,随着用户量数据量的增多,硬件发生故障已经是极为常见的现象,在庞大的集群里,每天可能都会发生磁盘故障、主机故障,甚至网络交换机故障、机架电源故障等;对于这些物理层面的故障,会导致数据的副本数下降,集群数据可靠性降低。
现有分布式存储技术中,对于数据的物理位置分布主要有两大类:对等分布和自由组织。对等分布就是将同一数据的多个备份分布在对等的磁盘、以及对等的偏移位置上,将多备份的物理信息映射到逻辑索引信息上,提供数据的快速访问;在数据出现故障时,便于找出其他备份进行修复。自由组织则不对数据分布作限制,数据上传时将同一数据的多个备份自由的分布在存储集群中,多备份的物理信息依赖元数据中心的索引记录;当数据出现故障时,查询元数据中心的索引,找出其他可用备份进行修复。
然而,对于对等分布,数据会出现在某三块对等盘集中访问的情况,影响磁盘上所有数据访问;若出现对等损坏的三块磁盘时,涉及到的数据将全部丢失;修复损坏的磁盘时,其他两备份必须要为修复提供一定带宽,有可能引起数据访问过热,导致修复慢的情况。对于自由组织,缺乏对物理多备份进行交换机容灾、机架隔离,可靠性和可用性难以保障;修复过程中,可能出现大量数据都需要查找元数据中心的索引信息,影响全局用户正常访问。
在保证分布式存储集群的数据可靠性、以及快速修复已经损坏的磁盘上的数据方面,上述两种分布式存储技术的效果差强人意。
发明内容
基于此,本发明实施例提供的分布式存储的方法、装置及系统,能够在数据损坏时,快速修复损坏的数据,保证数据的可靠性。
本发明一方面提供分布式存储的方法,包括:
获取各存储服务节点的状态信息,根据所述状态信息确定各存储服务节点的优先级;
根据优先级由高到低的顺序选取预置数量的存储服务节点,作为被分配服务节点;
向各个被分配服务节点分配相同数据。
本发明另一方面提供分布式存储的装置,包括:
优先级确定单元,用于获取各存储服务节点的状态信息,根据所述状态信息确定各存储服务节点的优先级;
节点选取单元,用于根据优先级由高到低的顺序选取预置数量的存储服务节点,作为被分配服务节点;
数据存储单元,用于向各个被分配服务节点分配相同数据。
本发明另一方面提供分布式存储的系统,包括客户端,以及上述的分布式存储的装置;所述客户端与所述分布式存储的装置通信连接。
上述技术方案,在分配存储资源时,根据各存储服务节点的状态信息确定各存储服务节点的优先级;根据实际需要选取预置数量的最高优先级的存储服务节点,作为被分配服务节点;进而向各个被分配服务节点分配相同数据。使得多备份数据能够分散开存储在不同物理位置的介质上,基于此容灾分布机制,进一步保证了数据可靠性;同时也有利于实现存储量和磁盘负载在集群内的均衡。
附图说明
图1为实现分布式存储的系统环境示意图;
图2为图1中物理存储环境的示意图;
图3为一实施例的分布式存储的方法的示意性流程图;
图4为一实施例中获取各存储服务节点的状态信息的示意性流程图;
图5为一实施例中建立存储链结构的示意性流程图;
图6为一实施例中客户端有上传数据需要存储时请求分配的示意性流程图;
图7为一实施例中分布式存储的效果的示意图;
图8为另一实施例的分布式存储的方法的示意性流程图;
图9为另一实施例中数据均衡处理的示意性流程图;
图10为又一实施例的分布式存储的装置的示意性结构;
图11为又一实施例的分布式存储的装置的示意性结构。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1为实现分布式存储的系统环境示意图。如图1所示,包括客户端client100、存储资源管理服务200(以下也称为ChunkMaster)、若干存储服务节点300(以下也称为ChunkNode)以及物理存储环境400。其中,客户端client100只需与存储资源管理服务200通信,根据需要向存储资源管理服务200发出相应的任务指令。一个存储资源管理服务200同时管理多个存储服务节点300,可实时获取到各个存储服务节点300的状态信息,以及对存储服务节点300的存储资源进行分配;每个存储服务节点300可对应物理存储环境400中多个具体磁盘。此外,存储资源管理服务200还负责向客户端client100提供存储资源的分配信息。
进一步的,图2为图1中物理存储环境400示意图,例如高性能文件系统(HighPerformance File System,简称HPFS)提供的存储资源,包括若干个分离设置的机架(机架1、机架2…机架n);每个机架内设置有若干个磁盘Disk,例如图2所示的Disk1~Disk120;每个磁盘被划分为若干个大小相同的存储块,例如每个磁盘均被划分为120个特定类型的存储块Chunk。基于此存储资源,以下实施例将以Chunk为例进行说明。
Chunk是整个文件系统的基本存储空间分配单元,多个位于不同机器上不同磁盘的Chunk构成了整个文件系统可用的存储空间。而Chunk之间可以互相配对,形成应用态的Raid1(一种磁盘阵列)存储。一个用户角度的文件被划分为多个数据片,一般定长划分,这些数据片可存储在不同的Chunk上。各Chunk可由一个Chunk inode(即Chunk的索引节点)来描述,Chunk inode中有一个offset(偏移量)变量表明其data section(数据域)的已使用区间位置;而数据片的inode(即数据片的索引节点)主要是保存了一个offset和length(数据片长度),分别表示该数据片在Chunk里的偏移量和数据片长度,这样有利于保证访问效率。其中,在Chunk中的数据片删除时,Chunk可能不会立即回收对应的存储空间,只在Chunkinode中记录相关信息;如果删除很频繁,导致每个Chunk已使用区间会有很多空洞而不能重复利用,可通过对Chunk重新进行初始化来解决该问题。
由于Chunk里面的数据片的inode并不是代表真正的文件,因此在这样的分布式文件系统中还需要有一索引层,该索引层可由Chunkmaster进行管理。读取文件时,通过该索引层可找出数据片所在的Chunk,访问这些Chunk可读取对应的数据。
结合图1、图2所示的环境示意图,以下对分布式存储的方法及分布式存储的装置的各实施例分别进行说明。
图3为一实施例的分布式存储的方法的示意性流程图;本实施例的方法可应用于图1所示的存储资源管理服务,即步骤S11~S13的执行主体可以为存储资源管理服务。当然,存储资源管理服务并不属于步骤的限定条件,也适用于在实现分布式存储的过程中能够执行其中一个或多个步骤的主体。参考图3所示,本实施例中的分布式存储的方法包括以下步骤:
S11,获取各存储服务节点的状态信息,根据所述状态信息确定各存储服务节点的优先级;
本实施例中优先级的高低反映各存储服务节点的可用性,将影响各存储服务节点被分配的优先顺序,优先级高的存储服务节点优先被分配,以改善数据访问效率。优选的,获取的状态信息包括但不限于存储介质剩余空间信息、流量信息、每秒读写操作次数信息IOPS(Input/Output Operations Per Second,每秒进行读写I/O操作的次数)以及存储介质负载信息等。
为了更合理的确定各存储服务节点的优先级,优化存储资源分配,优选的,步骤S11中,至少基于两种不同的状态信息,并对不同状态信息赋予对应的权重,以此基础对各存储服务节点的优先级进行计算。例如:根据存储介质剩余空间信息、流量信息以及存储介质负载三种状态信息,可按照下面的公式计算优先级:
p=m1*k1+m2*k2+m3*k3;
k1+k2+k3=1;
其中,p表示存储服务节点的优先级,m1、m2、m3分别表示存储服务节点对应的存储介质剩余空间信息、流量信息、存储介质负载;k1、k2、k3分别表示存储介质剩余空间信息、流量信息、存储介质负载三者对应的权重。
本实施例计算得到的优先级p数值越大(即优先级越高),表明对应的存储服务节点的可用性越好,会被存储资源管理服务优先被分配;相反,得到的优先级p数值越小(即优先级越低),表明对应的存储服务节点的可用性越差,应当避免被分配新的存储任务,以保证数据的可靠性和访问效率。
S12,根据优先级由高到低的顺序选取预置数量的存储服务节点,作为被分配服务节点;
本实施例中,由于确定出的优先级越高,表明对应的存储服务节点的可用性越好,因此优先被分配。被分配服务节点是通过优先级选取出来的,参考图2所示的存储资源,各个被分配服务节点对应的物理存储介质可能分散在不同的物理位置,且一般情况下不对等。例如各个被分配服务节点对应的磁盘分散在不同机架中,由于机架的物理位置隔离,有利于提高容灾性能。
S13,向各个被分配服务节点分配相同数据。
其中,相同数据可以为上传的需存储的数据,以及该数据对应的若干份副本数据。本实施例中不同机架设置有多个磁盘,每个磁盘包括多个Chunk块,为了便于在数据恢复时快速找到副本数据的实际存储位置,本实施例还可预先获取各存储服务节点的存储介质的空闲存储块信息,根据空闲存储块信息建立用于指示物理存储顺序的存储链结构。对应的,在向各个被分配服务节点分配相同数据过程中,先获取各个被分配服务节点的存储链结构,然后根据存储链结构向各个被分配服务节点分配相同数据。换句话说,获取空闲存储块在磁盘中的偏移量,获取磁盘ID,以及获取该磁盘所在的机架ID,由偏移量、磁盘ID、机架ID三部分共同确定该空闲存储块的物理存储地址,在向各个被分配服务节点分配相同数据过程中,按照物理地址先后分配对应的空闲存储块。
下面结合图4~图6,对本实施例的分布式存储的方法作进一步的举例说明。在下面的示例中。其中,存储资源管理服务ChunkMaster对应三个ChunkNode,分别为存储服务节点1(ChunkNode1)、存储服务节点2(ChunkNode2)以及存储服务节点3(ChunkNode3)。
其中,参考图4所示,获取各个ChunkNode的状态信息的具体过程如下:
1:ChunkMaster向ChunkNode1发出收集状态信息的请求,即执行CollectStat();
2:ChunkNode1将其状态信息返回给所述ChunkMaster;
3:ChunkMaster向ChunkNode2发出收集状态信息的请求,即执行CollectStat();
4:ChunkNode2将其状态信息返回给所述ChunkMaster;
5:ChunkMaster向ChunkNode3发出收集状态信息的请求,即执行CollectStat();
6:ChunkNode3将其状态信息返回给所述ChunkMaster;
至此一轮统计结束,根据ChunkMaster获取到的ChunkNode的状态信息,以及不同状态信息代表的权重,计算各ChunkNode的优先级。
可以理解的是,获取各个ChunkNode的状态信息的顺序不限于上述示例,在带宽允许的前提下,可同时向三个ChunkNode分别请求获取状态信息。
此外,参考图5所示,初始化Chunk以及建立存储链结构的具体过程如下:
1:客户端client向存储资源管理服务ChunkMaster发送添加空闲存储资源的指令,以提供当前的空闲存储资源,即client执行AddFreeChunk();
2:ChunkMaster收到该指令后返回一应答信息;
3:client收到应答信息之后,向ChunkMaster发送初始化节点指令,即client执行InitChunk();
4-9:ChunkMaster收到指令后,分别向三个存储服务节点ChunkNode1、ChunkNode2、ChunkNode3发送初始化指令,以对各个ChunkNode的存储介质的Chunk块进行初始化;ChunkNode1、ChunkNode2、ChunkNode3在对其存储介质的Chunk块初始化之后,分别向ChunkMaster返回相应的初始化应答信息。
10:ChunkMaster收到ChunkNode1、ChunkNode2、ChunkNode3的初始化应答信息之后,向client返回初始化完成信息。
11:client向ChunkMaster发送创建存储链的指令,即执行setupChunk();
12:ChunkMaster收到该指令,根据各ChunkNode的存储介质的空闲Chunk块信息建立Chunk链(即存储链结构),用于指示各ChunkNode对应的空闲Chunk块的分配先后以及物理地址,通过执行CreateChunkChain()可实现;
13:ChunkMaster建立Chunk链之后,向client返回对应的消息,告知Chunk链已建立。
至此,ChunkMaster在收到分配任务时,可根据选取出的被分配ChunkNode,以及对应的Chunk链,执行有效的存储资源分配,向各个被分配ChunkNode分配相同数据。
优选的,若统计的状态信息中包含剩余空间信息时,在每轮统计结束时,ChunkMaster还可根据本轮统计的信息对存储链结构进行更新,保证存储链结构的准确性。
如图6所示,在客户端client有上传数据需要存储时,具体请求分配过程如下:
1:客户端client向存储资源管理服务ChunkMaster发送分配请求;
2:ChunkMaster根据优先级选择对应数量的被分配ChunkNode;
3.ChunkMaster更新ChunkNode的优先级,以及更新Chunk链;
4.ChunkMaster将被分配ChunkNode信息返回client。
基于此优先级选取出的ChunkNode,所对应的存储介质通常分散在不同的物理位置,且实际物理地址并不对等。结合建立的Chunk链,可得到如图7所示的存储资源分配情况,即图中灰色区域,对于顶层应用来说,数据存储的逻辑地址相同(即灰色区域对应的数字编号),但对于物理层来说,逻辑地址对应的实际地址可能不同,由此使得上传的数据能够分散到不同机架中不对等的位置,既解决了对等分布磁盘的访问缓慢问题,也有利于提高容灾性能,保证数据的可靠性和可用性。
图8为另一实施例的分布式存储的方法的示意性流程图;本实施例在上一实施例的将数据分散进行存储的基础上,还根据数据分布进行存储资源的均衡调整,有利于避免访问过热情况出现。
如图8所示,本实施例中的分布式存储的方法包括步骤:
S21、获取各存储服务节点的状态信息,根据所述状态信息确定各存储服务节点的优先级;
优先的,在此之前,获取空闲块信息,根据空闲块信息建立存储链结构,用于指示物理存储顺序。
S22、根据优先级由高到低的顺序选取预置数量的存储服务节点,作为被分配服务节点;
S23、向各个被分配服务节点分配相同数据;
本实施例中,步骤S21~S23部分即分配存储资源进行数据存储的过程,该部分的具体实施方式参考上述实施例。
S24,重新获取各存储服务节点的状态信息,根据所述状态信息确定更新各存储服务节点的优先级;并更新存储链结构;
由于步骤S23分配数据后,物理存储空间的可用性发生了改变,因此也需更新存储链结构。
S25,获取优先级低于第一预置值的第一存储服务节点,获取优先级高于第二预置值的第二存储服务节点;
得到的若干个第一存储服务节点组成低优先级节点集合,得到的若干个第二存储服务节点组成高优先级节点集合。
优选的,所述第一预置值小于第二预置值,由此可避免优先级差别较小的两个节点进行数据迁移。
S26,将所述第一存储服务节点的数据转存至所述第二存储服务节点;
在一优选实施方式下,得到低优先级节点集合和高优先级节点集合之后,可从两个集合中随机选取两个节点组成节点对,建立各节点对之间的数据迁移任务。
在另一优选实施方式下,可根据存储服务节点的实际优先级与第一预置值或第二预置值的差值大小创建迁移任务。即分别计算低优先级节点集合中各个第一存储服务节点的优先级与第一预置值的差值,分别计算高优先级节点集合中各个第二存储服务节点的优先级与第二预置值的差值,从两个集合中分别找出所述差值最为接近的两个节点,得到若干节点对,建立每个节点对对应的数据迁移任务。这种方式有利于减小迁移任务,减小访问压力。
优选的,在步骤S26之后,由于物理存储空间的可用性发生了改变,需更新各存储服务节点的优先级;并更新存储链结构。
需要说明的是,由于步骤S24~S26部分对应的是数据均衡的处理,因此在客户端没有上传数据需要存储时,步骤S24~S26部分仍然可以执行。另一方面,在进行步骤S22~S23的分配存储时,为了防止出错,禁止执行步骤S24~S26部分,即步骤S22~S23部分的执行优先级高于步骤S24~S26部分。
下面结合图9,对本实施例的数据均衡处理的作进一步的举例说明。在下面的示例中。参考图9所示,实现数据均衡的具体过程如下:
1:ChunkMaster获取高优先级的存储服务节点为ChunkNode1;
可通过预设的第一设置值获取;
2:ChunkMaster获取低优先级的存储服务节点为ChunkNode2;
可通过预设的第二设置值获取;
3:ChunkMaster建立数据迁移任务,并发送至所述低优先级的存储服务节点ChunkNode2;
4:ChunkNode2将其存储介质中的数据发送到ChunkNode1;
5-6:ChunkNode1根据Chunk链的信息,将收到的数据存储到其对应的存储介质;然后返回执行完毕的消息至ChunkNode2;
7:ChunkNode2返回迁移完成的消息至ChunkMaster;
8:ChunkMaster收到ChunkNode2返回迁移完成的消息之后,及时更新Chunk链。
本实施例的分布式存储的方法,由于磁盘中每个Chunk大小一样,所以Chunkinode中offset大小也反映了Chunk剩余空间的大小,从而可以利用Chunkinode中offset值来进行负载均衡,使得每个Chunk的剩余空间更均衡。进而使得数据整体分布更均匀,避免访问过热情况出现。
需要说明的是,对于前述的各方法实施例,为了简便描述,将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。
基于与上述实施例中的分布式存储的方法相同的思想,本发明还提供分布式存储的装置,该装置可用于执行上述分布式存储的方法。为了便于说明,分布式存储的装置实施例的结构示意图中,仅仅示出了与本发明实施例相关的部分,本领域技术人员可以理解,图示结构并不构成对装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
图10为本发明一实施例的分布式存储的装置的示意性结构图;如图10所示,本实施例的分布式存储的装置包括:优先级确定单元710、节点选取单元720、以及数据存储单元730,各单元详述如下:
所述优先级确定单元710,用于获取各存储服务节点的状态信息,根据所述状态信息确定各存储服务节点的优先级;
作为一优选实施方式,所述优先级确定单元710包括:
状态获取模块,用于获取存储服务节点的存储介质剩余空间信息、流量信息、每秒读写操作次数信息、存储介质负载信息中两种以上的状态信息;以及,计算模块,用于获取不同状态信息对应的权重,根据获取到的状态信息及其对应的权重计算各存储服务节点的优先级。
所述节点选取单元720,用于根据优先级由高到低的顺序选取预置数量的存储服务节点,作为被分配服务节点;
所述数据存储单元730,用于向各个被分配服务节点分配相同数据。
作为一优选实施方式,所述的分布式存储的装置还包括:存储链管理单元740,用于获取各存储服务节点的存储介质的空闲存储块信息,根据空闲存储块信息建立用于指示物理存储顺序的存储链结构。对应的,所述数据存储单元730,具体用于获取各个被分配服务节点的存储链结构,根据存储链结构向各个被分配服务节点分配相同数据。
作为一优选实施方式,所述的分布式存储的装置中,所述存储链管理单元710,还用于在根据存储链结构向各个被分配服务节点分配相同数据之后,重新获取各存储服务节点的存储介质的空闲存储块信息,对所述存储链结构进行更新。以确保存储链结构的准确性。
本实施例基于先级选取出的存储服务节点,所对应的存储介质通常分散在不同的物理位置,且实际物理地址并不对等。使得上传的数据能够分散到不同机架中不对等的位置,既解决了对等分布磁盘的访问缓慢问题,也有利于提高容灾性能,保证数据的可靠性和可用性。
图11为另一实施例的分布式存储的装置的示意性结构图;在前一实施例的基础上,本实施例的分布式存储的装置还包括:均衡管理单元750,用于获取优先级低于第一预置值的第一存储服务节点,获取优先级高于第二预置值的第二存储服务节点;以及,将所述第一存储服务节点的数据转存至所述第二存储服务节点。
对应的,所述存储链管理单元740,还用于在将所述第一存储服务节点的数据转存至所述第二存储服务节点之后,重新获取各存储服务节点的存储介质的空闲存储块信息,对所述存储链结构进行更新。
本实施例的分布式存储的装置,使得每个存储块、磁盘以及机架的剩余空间更均衡。进而使得数据整体分布更均匀,避免访问过热情况出现。
此外,还提供了一种分布式存储的系统的实施例,本实施例的分布式存储的系统包括客户端,以及上述实施例所述的分布式存储的装置;所述客户端与所述分布式存储的装置通信连接,所述系统用于实现数据的分布式存储。
需要说明的是,上述示例的分布式存储的装置的实施方式中,各模块/单元之间的信息交互、执行过程等内容,由于与本发明前述方法实施例基于同一构思,其带来的技术效果与本发明前述方法实施例相同,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
此外,上述示例的分布式存储的装置的实施方式中,各功能模块的逻辑划分仅是举例说明,实际应用中可以根据需要,例如出于相应硬件的配置要求或者软件的实现的便利考虑,将上述功能分配由不同的功能模块完成,即将所述分布式存储的装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。其中各功能模既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,作为独立的产品销售或使用。所述程序在执行时,可执行如上述各方法的实施例的全部或部分步骤。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(RandomAccess Memory,RAM)等。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。可以理解,其中所使用的术语“第一”、“第二”等在本文中用于区分对象,但这些对象不受这些术语限制。
以上所述实施例仅表达了本发明的几种实施方式,不能理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (16)

1.一种分布式存储的方法,其特征在于,包括:
获取各存储服务节点的状态信息,根据所述状态信息确定各存储服务节点的优先级;
根据优先级由高到低的顺序选取预置数量的存储服务节点,作为被分配服务节点;
向各个被分配服务节点分配相同数据。
2.根据权利要求1所述的分布式存储的方法,其特征在于,获取各存储服务节点的状态信息之前包括:
获取各存储服务节点的存储介质的空闲存储块信息,根据空闲存储块信息建立用于指示物理存储顺序的存储链结构;
所述向各个被分配服务节点分配相同数据包括:
获取各个被分配服务节点的存储链结构,根据存储链结构向各个被分配服务节点分配相同数据。
3.根据权利要求2所述的分布式存储的方法,其特征在于,获取各存储服务节点的存储介质的空闲存储块信息之前,还包括:
接收添加空闲存储资源的指令,分别对各存储服务节点的存储介质的存储块进行初始化。
4.根据权利要求2所述的分布式存储的方法,其特征在于,根据存储链结构向各个被分配服务节点分配相同数据之后,还包括:
重新获取各存储服务节点的存储介质的空闲存储块信息,对所述存储链结构进行更新。
5.根据权利要求1所述的分布式存储的方法,其特征在于,所述状态信息包括:存储介质剩余空间信息、流量信息、每秒读写操作次数信息、存储介质负载信息中两种以上。
6.根据权利要求5所述的分布式存储的方法,其特征在于,根据所述状态信息确定各存储服务节点的优先级包括:
获取不同状态信息对应的权重,根据获取到的状态信息及其对应的权重计算各存储服务节点的优先级。
7.根据权利要求2所述的分布式存储的方法,其特征在于,根据所述状态信息确定各存储服务节点的优先级之后,还包括:
获取优先级低于第一预置值的第一存储服务节点,获取优先级高于第二预置值的第二存储服务节点;
将所述第一存储服务节点的数据转存至所述第二存储服务节点。
8.根据权利要求7所述的分布式存储的方法,其特征在于,将所述第一存储服务节点的数据转存至所述第二存储服务节点之后,还包括:
重新获取各存储服务节点的存储介质的空闲存储块信息,对所述存储链结构进行更新。
9.根据权利要求1至8任一所述的分布式存储的方法,其特征在于,所述预置数量为3个。
10.一种分布式存储的系统,其特征在于,包括:
优先级确定单元,用于获取各存储服务节点的状态信息,根据所述状态信息确定各存储服务节点的优先级;
节点选取单元,用于根据优先级由高到低的顺序选取预置数量的存储服务节点,作为被分配服务节点;
数据存储单元,用于向各个被分配服务节点分配相同数据。
11.根据权利要求10所述的分布式存储的装置,其特征在于,还包括:
存储链管理单元,用于获取各存储服务节点的存储介质的空闲存储块信息,根据空闲存储块信息建立用于指示物理存储顺序的存储链结构;
所述数据存储单元,用于获取各个被分配服务节点的存储链结构,根据存储链结构向各个被分配服务节点分配相同数据。
12.根据权利要求11所述的分布式存储的装置,其特征在于,所述存储链管理单元,还用于在根据存储链结构向各个被分配服务节点分配相同数据之后,重新获取各存储服务节点的存储介质的空闲存储块信息,对所述存储链结构进行更新。
13.根据权利要求10所述的分布式存储的装置,其特征在于,所述优先级确定单元包括:
状态获取模块,用于获取存储服务节点的存储介质剩余空间信息、流量信息、每秒读写操作次数信息、存储介质负载信息中两种以上的状态信息;
以及,计算模块,用于获取不同状态信息对应的权重,根据获取到的状态信息及其对应的权重计算各存储服务节点的优先级。
14.根据权利要求11所述的分布式存储的装置,其特征在于,还包括:
均衡管理单元,用于获取优先级低于第一预置值的第一存储服务节点,获取优先级高于第二预置值的第二存储服务节点;以及,将所述第一存储服务节点的数据转存至所述第二存储服务节点。
15.根据权利要求14所述的分布式存储的装置,其特征在于,所述存储链管理单元,还用于在将所述第一存储服务节点的数据转存至所述第二存储服务节点之后,重新获取各存储服务节点的存储介质的空闲存储块信息,对所述存储链结构进行更新。
16.一种分布式存储的系统,其特征在于,包括客户端,还包括如权利要求10~15任一项所述的分布式存储的装置;
所述客户端与所述分布式存储的装置通信连接。
CN201610895126.9A 2016-10-13 2016-10-13 分布式存储的方法、装置及系统 Active CN107948229B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610895126.9A CN107948229B (zh) 2016-10-13 2016-10-13 分布式存储的方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610895126.9A CN107948229B (zh) 2016-10-13 2016-10-13 分布式存储的方法、装置及系统

Publications (2)

Publication Number Publication Date
CN107948229A true CN107948229A (zh) 2018-04-20
CN107948229B CN107948229B (zh) 2021-04-13

Family

ID=61928505

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610895126.9A Active CN107948229B (zh) 2016-10-13 2016-10-13 分布式存储的方法、装置及系统

Country Status (1)

Country Link
CN (1) CN107948229B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109408208A (zh) * 2018-09-21 2019-03-01 深圳华大北斗科技有限公司 导航芯片的多任务处理方法、设备、系统以及存储介质
CN109542352A (zh) * 2018-11-22 2019-03-29 北京百度网讯科技有限公司 用于存储数据的方法和装置
CN112684978A (zh) * 2020-12-23 2021-04-20 北京浪潮数据技术有限公司 一种存储设备的存储路径选择方法、系统及装置
CN115048225A (zh) * 2022-08-15 2022-09-13 四川汉唐云分布式存储技术有限公司 一种基于分布式存储的分布式调度方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102414692A (zh) * 2009-04-24 2012-04-11 微软公司 副本数据的动态安置
CN103379156A (zh) * 2012-04-24 2013-10-30 深圳市腾讯计算机系统有限公司 实现存储空间动态均衡的方法、系统和装置
CN103761059A (zh) * 2014-01-24 2014-04-30 中国科学院信息工程研究所 一种用于海量数据管理的多盘位存储方法及系统
CN103929454A (zh) * 2013-01-15 2014-07-16 中国移动通信集团四川有限公司 一种云计算平台中负载均衡存储的方法和系统
CN104468665A (zh) * 2013-09-18 2015-03-25 腾讯科技(深圳)有限公司 数据分布式存储的实现方法和系统
US20150248253A1 (en) * 2012-09-13 2015-09-03 Hyosung Itx Co., Ltd Intelligent Distributed Storage Service System and Method

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102414692A (zh) * 2009-04-24 2012-04-11 微软公司 副本数据的动态安置
CN103379156A (zh) * 2012-04-24 2013-10-30 深圳市腾讯计算机系统有限公司 实现存储空间动态均衡的方法、系统和装置
US20150248253A1 (en) * 2012-09-13 2015-09-03 Hyosung Itx Co., Ltd Intelligent Distributed Storage Service System and Method
CN103929454A (zh) * 2013-01-15 2014-07-16 中国移动通信集团四川有限公司 一种云计算平台中负载均衡存储的方法和系统
CN104468665A (zh) * 2013-09-18 2015-03-25 腾讯科技(深圳)有限公司 数据分布式存储的实现方法和系统
CN103761059A (zh) * 2014-01-24 2014-04-30 中国科学院信息工程研究所 一种用于海量数据管理的多盘位存储方法及系统

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109408208A (zh) * 2018-09-21 2019-03-01 深圳华大北斗科技有限公司 导航芯片的多任务处理方法、设备、系统以及存储介质
CN109408208B (zh) * 2018-09-21 2022-04-01 深圳华大北斗科技股份有限公司 导航芯片的多任务处理方法、设备、系统以及存储介质
CN109542352A (zh) * 2018-11-22 2019-03-29 北京百度网讯科技有限公司 用于存储数据的方法和装置
US11314451B2 (en) 2018-11-22 2022-04-26 Beijing Baidu Netcom Science And Technology Co., Ltd. Method and apparatus for storing data
CN112684978A (zh) * 2020-12-23 2021-04-20 北京浪潮数据技术有限公司 一种存储设备的存储路径选择方法、系统及装置
CN112684978B (zh) * 2020-12-23 2024-02-13 北京浪潮数据技术有限公司 一种存储设备的存储路径选择方法、系统及装置
CN115048225A (zh) * 2022-08-15 2022-09-13 四川汉唐云分布式存储技术有限公司 一种基于分布式存储的分布式调度方法

Also Published As

Publication number Publication date
CN107948229B (zh) 2021-04-13

Similar Documents

Publication Publication Date Title
CN105447075B (zh) 用于动态划分的计算机实现方法
CN107943867B (zh) 支持异构存储的高性能层次化存储系统
WO2020204880A1 (en) Snapshot-enabled storage system implementing algorithm for efficient reclamation of snapshot storage space
US9930118B2 (en) Systems and methods for granular resource management in a storage network
CN102255962B (zh) 一种分布式存储方法、装置和系统
WO2020204882A1 (en) Snapshot-enabled storage system implementing algorithm for efficient reading of data from stored snapshots
US8732217B2 (en) Using a per file activity ratio to optimally relocate data between volumes
CN104657459B (zh) 一种基于文件粒度的海量数据存储方法
US11656803B2 (en) Tiering data strategy for a distributed storage system
CN102662992B (zh) 一种海量小文件的存储、访问方法及装置
US9110919B2 (en) Method for quickly identifying data residing on a volume in a multivolume file system
CN102156738B (zh) 数据块处理方法、数据块存储设备及系统
CN105630418A (zh) 一种数据存储方法及装置
CN105468473A (zh) 数据迁移方法及数据迁移装置
CN107948229A (zh) 分布式存储的方法、装置及系统
US9854037B2 (en) Identifying workload and sizing of buffers for the purpose of volume replication
CN105718217A (zh) 一种精简配置存储池数据一致性维护的方法及装置
US11199972B2 (en) Information processing system and volume allocation method
CN112799841B (zh) 一种数据对象存储管理的方法和装置
WO2020016649A2 (en) Pushing a point in time to a backend object storage for a distributed storage system
CN111324305A (zh) 一种分布式存储系统中数据写入/读取方法
US10684799B2 (en) Flash registry with write leveling
CN111159140A (zh) 数据处理方法、装置、电子设备及存储介质
CN101997919B (zh) 一种存储资源的管理方法及管理装置
CN106547484A (zh) 一种基于raid5的实现内存数据可靠性方法及系统

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