CN112039982A - 一种高效能分布式云存储方法及系统 - Google Patents

一种高效能分布式云存储方法及系统 Download PDF

Info

Publication number
CN112039982A
CN112039982A CN202010885200.5A CN202010885200A CN112039982A CN 112039982 A CN112039982 A CN 112039982A CN 202010885200 A CN202010885200 A CN 202010885200A CN 112039982 A CN112039982 A CN 112039982A
Authority
CN
China
Prior art keywords
data
node
data block
directory
nodes
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
CN202010885200.5A
Other languages
English (en)
Other versions
CN112039982B (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.)
Huaqiao University
Original Assignee
Huaqiao University
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 Huaqiao University filed Critical Huaqiao University
Priority to CN202010885200.5A priority Critical patent/CN112039982B/zh
Publication of CN112039982A publication Critical patent/CN112039982A/zh
Application granted granted Critical
Publication of CN112039982B publication Critical patent/CN112039982B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1847File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
    • 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/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • H04L67/108Resource delivery mechanisms characterised by resources being split in blocks or fragments

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种高效能分布式云存储方法及系统,涉及云存储技术领域;本发明采用带有多个数据节点和目录节点的分布式云存储系统,通过数据节点分别监测已用磁盘空间、每秒磁盘数据传输量和每秒网络数据传输量三个参数判断数据节点是否处于满负荷状态,同时将状态信息发送给所有目录节点,从而动态维护一个非满负荷数据节点队列提升云存储系统的性能;此外,通过判断数据块处于热点数据块或者回收数据块来动态调整每个数据块的副本数,对于热点数据块,增加副本数可以使得数据读取过程中效率提高;对于回收数据块,适量的减少副本数也可以在不降低读取速度的基础上节约存储空间,进一步提高整个云存储系统的性能。

Description

一种高效能分布式云存储方法及系统
技术领域
本发明涉及数据云存储技术领域,尤其涉及一种高效能分布式云存储方法及系统。
背景技术
分布式云存储由于其数据节点多,分散性已经越来越受到欢迎,同时数据存储过程中对数据节点的负荷状态判断是分布式云存储的数据读取过程中很重要的环节。现有技术中对于分布式云存储系统的数据节点负荷状态判断方法主要是目录节点通过监控该数据节点的本地磁盘是否写满,如果本地磁盘没有写满,则该数据节点是非满负荷状态,可以继续写入。但是这样的判断方法中并没有考虑到读写过程数据节点的吞吐量。考虑到数据节点的吞吐量,如果数据节点的本地磁盘中只存储了50%的空间,存储的数据需要被频繁读取,此时数据节点的磁盘读写通道以及网络传输通道都是属于满负荷工作的。所以对于这类数据节点,如果再写入数据块很容易导致数据节点超载,导致整个云存储系统拥塞,性能降低,因此这种数据节点是不能再写入新的数据。
此外,由于数据块的读取命令是平摊到存储该数据块副本的多个数据节点上,只要一个数据节点读取成功即可,而数据节点的个数即为副本数,因此多副本技术数在云存储系统上的应用已经很广泛。但是现有的技术中,如HDFS系统,数据块的副本数通常是静态的,那么会产生一个问题,如果副本数设置的太大,能够提升性能和可靠性,但是浪费大量存储空间;副本数设置的太小则当数据块Bi成为热点数据块时,数据块就会成为云存储系统的性能瓶颈,导致整个系统的性能降级。
由此可见,需要提供一种高效能分布式云存储系统和方法。
发明内容
本发明的目的在于提供一种高效能分布式云存储方法及系统,从而解决现有技术中存在的前述问题。
为了实现上述目的,本发明采用的技术方案如下:
一种高效能分布式云存储方法,包括数据读写过程,具体包括以下步骤:
S1,当客户端需要向云存储系统中写入数据时,客户端从R个冗余的目录节点中随机选择一个目录节点Di,并向所述目录节点Di发送写入命令和需要写入的数据文件F;所述目录节点Di接收到客户端的写入命令后,将需要写入的数据文件F按照预先设置好的数据块大小标准BS分解为多个数据块;
S2,所述目录节点Di针对每个数据块Bi,根据预先配置好的数据块Bi的副本数Li,从非满负荷数据节点队列WQ中,随机选择Li个数据节点,并把需要写入的数据块Bi,发送到所述Li个数据节点;
S3,所述Li个数据节点将数据块Bi写入本地磁盘,同时在数据节点所维护的数据块访问计数器数组中加入数据块Bi的访问计数器Ci,数据块热点计数器数组中加入数据块Bi的热点计数器Hi,并把Ci和Hi的计数值均初始化为0;
S4,重复步骤S2和S3,直到目录节点Di把数据文件F包含的所有数据块写入完毕后,所述目录节点Di把相关的目录信息传送给剩余其他的目录节点;
当所有目录节点更新完目录信息,目录节点Di向客户端发送写入完毕信息;
S5,当客户端需要读取云存储系统中的数据时,客户端随机选择一个目录节点Di’,并向所述目录节点Di’发送读取数据文件F’的命令;
S6,所述目录节点Di’接收到命令后,从维护的目录信息中找到数据文件F’的数据块数量,同时针对每个数据块Bi,所述目录节点Di’找到存储数据块Bi的Li个数据节点;
随机选择一个数据节点Ni’,向所述数据节点Ni’发送读取数据块Bi至客户端的命令;
所述数据节点Ni’读取数据块Bi并将数据块Bi发送给客户端,同时将数据块Bi的访问计数器Ci加1;
S7,重复步骤S6,直到客户端接收到数据文件F’包含的所有数据块,则向客户端发送读取成功信息。
优选地,步骤S2中所述非满负荷数据节点队列WQ的实现方法是:
A1,初始启动时,数据节点处于非满负荷的状态;
A2,当数据节点处于非满负荷的状态时,采集本数据节点的已用磁盘空间、每秒磁盘数据传输量和每秒网络数据传输量三个参数,当任何一个参数超过各自预设的最大值,则向所有目录节点发送该数据节点满负荷状态信息;
A3,当数据节点处于满负荷的状态时,采集本数据节点的已用磁盘空间、每秒磁盘数据传输量和每秒网络数据传输量三个参数,当所述三个参数在连续T分钟内都各自低于预设的最大值,则向所有目录节点发送该数据节点非满负荷状态信息;
A4,所有目录节点都根据接收到的每个数据节点发送的是否满负荷的状态信息,更新非满负荷数据节点队列WQ;当接收到数据节点满负荷的状态信息时,则从非满负荷数据节点队列WQ中移除该数据节点;当接收到数据节点非满负荷的状态信息时,则把该数据节点重新加入到非满负荷数据节点队列WQ中。
更优选地,所述预设的最大值为数据节点硬件配置最大值的90%,即已用磁盘空间预设的最大值为数据节点中所安装硬盘的全部磁盘空间的90%,每秒磁盘数据传输量预设的最大值为数据节点中所安装磁盘的额定最大每秒磁盘数据传输量的90%,每秒网络数据传输量预设的最大值为数据节点中所安装网卡的额定最大每秒网络数据传输量的90%。
优选地,步骤S2中,所述数据块Bi的副本数Li是动态调整过程,其动态调整机制具体包括:
B1,设置每次副本数动态调整量为DL;
B2,数据节点Ni采用数据块访问计数器数组来监控本地存储的数据块Bi并判断该数据块的状态;
B3,当数据块Bi判断为热点数据块,并且数据节点Ni是满负荷工作,则数据节点Ni从R个冗余的目录节点中随机选择一个目录节点Di,并向该目录节点Di发送数据块Bi副本扩展命令,进入步骤B4;
当数据块Bi判断为回收数据块,则数据节点Ni从R个冗余的目录节点中随机选择一个目录节点Di,并向该目录节点Di发送数据块Bi副本回收命令,进入步骤B5;
当数据块Bi判断为普通数据块,则数据块Bi的副本数不做调整;
B4,当目录节点Di接收到数据块Bi副本扩展命令时,则目录节点Di从非满负荷数据节点队列WQ中,随机选择未保存过数据块Bi副本的DL个数据节点,并把需要写入的数据块Bi,发送到这DL个数据节点;当目录节点Di把新增的DL个数据块Bi写入完毕,则更新数据块Bi的副本数Li’=Li+DL,然后把新的副本数Li’和新增的DL个数据块的存储位置,传送给剩余的R-1个目录节点,剩余的R-1个目录节点接收并更新相关的目录信息;
B5,当目录节点Di接收到数据块Bi副本回收命令时,目录节点Di从保存数据块Bi副本的所有数据节点中选择DL个数据节点,优先选择处于满负荷状态的数据节点,并发送回收数据块Bi命令到这DL个数据节点;当数据节点Ni接收到目录节点Di发送的回收数据块Bi命令,则找到数据块Bi并释放其存储空间,并在数据节点Ni所维护的数据块访问计数器数组和热点计数器数组中分别剔除数据块Bi的访问计数器Ci和热点计数器Hi;
当DL个数据块回收完毕,目录节点Di更新数据块Bi的副本数Li’=Li-DL,并把新的副本数Li’和回收的DL个数据块Bi的存储位置,传送给剩余的R-1个目录节点,剩余的R-1个目录节点接收并更新相关的目录信息。
优选地,步骤B1中判断数据块的状态的方法具体包括:
C1,默认创建的数据块Bi为普通数据块,对访问计数器Ci设定一个清零周期,判断数据块Bi的访问计数器Ci是否在一个清零周期TC内超过热点阈值UP;
C2,当数据块Bi的访问计数器Ci在一个清零周期TC内超过热点阈值UP,则判定Bi是热点数据块,并把数据块Bi的热点计数器Hi加1,此时,触发副本数Li动态调整机制进入步骤B4实现数据块Bi的副本扩展;
C3,扩展成功后,数据块Bi重新成为普通数据块,访问计数器Ci立即清零,重新判断访问计数器Ci是否在一个清零周期内超过热点阈值UP,重复步骤C2;
C4,当热点计数器Hi大于0,并且该数据块Bi的访问计数器Ci在连续U个清零周期内低于回收阈值DOWN,则判定该数据块Bi是回收数据块;此时,热点计数器Hi减1,并触发副本数Li动态调整机制进入步骤B5实现对该数据块Bi的副本回收。
此处的热点阈值UP和回收阈值DOWN具体的取值与机器的配置情况有关,本领域技术人员可以根据实际需要进行设置。
更优选地,步骤C1所述热点阈值UP=MDT*TC/BS*90%,其中,MDT为数据节点中所安装磁盘的额定最大每秒磁盘数据传输量,BS是数据块大小,TC为清零周期,通常设置为1小时;
步骤C4中所述回收阈值DOWN设置为3,U的取值一般是5,即连续5个清零周期内数据块Bi的访问次数都不超过3次。
优选地,步骤S4中所述目录信息包括数据文件包含的每个数据块的副本数以及它们的存储的位置。
本发明的另一个目的在于提供一种高效能分布式云存储系统,所述分布式云存储系统与客户端通过网络进行数据读写过程;
所述云存储系统包括R个目录节点和M个数据节点,所述R个目录节点用于保存数据存储在数据节点中的目录信息;客户端可以选择任一个目录节点发送数据读写请求;
当目录节点接收到数据文件写入请求后,将待写入的数据文件分解成数据块后发送到数据节点进行存储;当数据文件存储完成后,将数据文件的相关目录信息传送给剩余的R-1个目录节点;
当目录节点接收到数据文件读取请求后,从目录信息中找到存储待读取数据文件包含的各个数据块的所有数据节点,并选择其中一个数据节点发送读取数据块请求;若发现该数据节点读取或传输数据块失败,则重新选择数据节点进行读取和传输;直到客户端接收到待读取数据文件包含的所有数据块;
此外,所述目录节点通过接收数据节点发来的是否满负荷的状态信息动态维护一个非满负荷数据节点队列WQ;
数据节点用于存储数据,同时数据节点通过监测已用磁盘空间、每秒磁盘数据传输量和每秒网络数据传输量三个参数判断当前数据节点是否处于满负荷状态并将该状态信息发送给目录节点;还用于通过数据块访问计数器组中的访问计数器和数据块热点计数器组中热点计数器用于监测数据块的状态,动态调整数据块的副本数。
本发明的有益效果是:
本发明公开了一种高效能分布式云存储方法及系统,采用带有多个数据节点和目录节点的系统,通过数据节点分别监测已用磁盘空间、每秒磁盘数据传输量和每秒网络数据传输量三个参数判断数据节点是否处于满负荷状态,同时将状态信息发送给所有目录节点,从而动态维护一个非满负荷数据节点队列提升云存储系统的性能;此外,通过判断数据块属于热点数据块或者回收数据块来动态调整每个数据块的副本数,对于热点数据块,增加副本数,可以使得数据读取过程中效率提高;对于回收数据块,适量的减少副本数,也可以在不降低读取速度的基础上节约存储空间,进一步提高整个云存储系统的性能。
附图说明
图1是实施例1中提供的一种高效能分布式云存储方法中写入数据流程图;
图2是实施例1中提供的一种高效能分布式云存储方法中读取数据流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不用于限定本发明。
实施例
本实施例提供了一种高效能分布式云存储方法,主要包括数据读写过程,其中数据写入过程如图1所示,包括以下步骤:
S1,当客户端需要向云存储系统中写入数据时,客户端从R个冗余的目录节点中随机选择一个目录节点Di,并向所述目录节点Di发送写入命令和需要写入的数据文件F;所述目录节点Di接收到客户端的写入命令后,将需要写入的数据文件F按照预先设置好的数据块大小标准BS分解为多个数据块;
例如数据文件F为182M,BS为32M,则F可以分解为6个数据块。
S2,目录节点Di针对每个数据块Bi,根据预先配置好的数据块Bi的副本数Li,从非满负荷数据节点队列中,随机选择Li个数据节点,并把需要写入的数据块Bi,发送到所述Li个数据节点;
S3,所述Li个数据节点将数据块Bi写入本地磁盘,同时在数据节点所维护的数据块访问计数器数组中加入数据块Bi的访问计数器Ci,数据块热点计数器数组中加入数据块Bi的热点计数器Hi,并把Ci和Hi的计数值均初始化为0;
S4,重复步骤S2和S3,直到目录节点Di把数据文件F包含的所有数据块写入完毕后,所述目录节点Di把相关的目录信息,传送给剩余其他的目录节点,从而保证冗余的R个目录节点所维护的目录信息是完全相同的;
本实施例中,相关的目录信息指代的是数据文件F包含的每个数据块Bi的副本数Li及它们的存储的位置。
当所有目录节点都更新完毕目录信息之后,目录节点Di向客户端发送写入完毕信息。
数据读取过程如图2所示,具体包括以下步骤:
客户端从R个冗余的目录节点中随机选择一个目录节点Di’,并向Di’发送读取云存储系统的数据文件F’的命令。
目录节点Di’接收到数据文件F的读取命令之后,从维护的目录信息中,找到数据文件F’包含的数据块数量,同时针对每个数据块Bi,目录节点Di’从维护的目录信息中,找到存储数据块Bi的Li个数据节点。从这Li个数据节点中随机选择一个数据节点Ni’,向该数据节点Ni’发送读取数据块Bi至客户端的命令。
当数据节点Ni’接收到目录节点Di’发送的读取数据块Bi至客户端的命令,则从本地磁盘读取数据块Bi,并通过网络发送数据块Bi至客户端,同时把数据块Bi的访问计数器Ci加1。
在数据读取过程中,若目录节点Di’发现数据节点Ni’读取数据块Bi或者数据节点Ni’发送数据块Bi失败,则目录节点Di’从存储Bi的Li个数据节点再随机选择另一个数据节点Nj,重新进行数据块读取和发送。即只要Li个数据节点中有一个数据节点读取和发送成功,则数据块Bi读取和发送成功。
当客户端接收到数据文件F’包含的所有数据块之后,数据文件F’读取操作就成功结束,向客户端发送读取成功信息。若客户端没有接收到数据文件F包含的所有数据块,则数据文件F’读取操作失败,向客户端发送读取失败信息,可重新进行读取操作。
值得注意的是,在本发明中的存储方法中,选择的数据节点是从动态维护的一个非满负荷数据节点队列WQ中获得,而对于非满负荷数据节点队列动态维护机制,本实施例中则是采用下列方法:
A1,初始启动时,数据节点处于非满负荷的状态;
A2,当数据节点处于非满负荷的状态时,采集本数据节点的已用磁盘空间、每秒磁盘数据传输量和每秒网络数据传输量三个参数,当任何一个参数超过各自预设的最大值,则向所有目录节点发送该数据节点满负荷状态信息;
A3,当数据节点处于满负荷的状态时,采集本数据节点的已用磁盘空间、每秒磁盘读写数据量和每秒网络数据传输量三个参数,当所述三个参数在连续T分钟内都各自低于预设的最大值,则向所有目录节点发送该数据节点非满负荷状态信息;
值得注意的是,已用磁盘空间、每秒磁盘数据传输量和每秒网络数据传输量三个参数预设的最大值可以根据实际需要进行设定,本实施例中的预设的最大值设定为数据节点硬件配置最大值的90%,即已用磁盘空间预设的最大值为数据节点中所安装硬盘的全部磁盘空间的90%,每秒磁盘数据传输量预设的最大值为数据节点中所安装磁盘的额定最大每秒磁盘数据传输量的90%,每秒网络数据传输量预设的最大值为数据节点中所安装网卡的额定最大每秒网络数据传输量的90%。
此处的T分钟也可以根据实际需要进行设置,通常设置为30分钟。
A4,所有目录节点都根据接收到的每个数据节点发送的是否满负荷的状态信息,更新非满负荷数据节点队列WQ,具体为:
当接收到数据节点满负荷的状态信息时,则从非满负荷数据节点队列WQ中移除该数据节点;当接收到数据节点非满负荷的状态信息,则把该数据节点重新加入到非满负荷数据节点队列WQ中。
对于数据块的副本数,本实施例中采用的是副本数动态调整机制,具体的调整方法是:
B1,设置每次副本数动态调整量为DL,DL可以设置为3,也可以根据需要设置成其他的数值;
B2,数据节点Ni采用数据块访问计数器数组来监控本地存储的数据块Bi并判断该数据块的状态;
B3,当数据块Bi判断为热点数据块,并且数据节点Ni是满负荷工作,则数据节点Ni从R个冗余的目录节点中随机选择一个目录节点Di,并向该目录节点Di发送数据块Bi副本扩展命令,进入步骤B4;
当数据块Bi判断为回收数据块,则数据节点Ni从R个冗余的目录节点中随机选择一个目录节点Di,并向Di发送数据块Bi副本回收命令,进入步骤B5;
当数据块Bi判断为普通数据块,则数据块Bi的副本数不做调整;
B4,当目录节点Di接收到数据块Bi副本扩展命令时,则目录节点Di从非满负荷数据节点队列WQ中,随机选择未保存过数据块Bi副本的DL个数据节点,并把需要写入的数据块Bi,发送到这DL个数据节点;当目录节点Di把新增的DL个数据块Bi写入完毕,则更新数据块Bi的副本数Li’=Li+DL,并把新的副本数Li’和新增的DL个数据块的存储位置,传送给剩余的R-1个目录节点,剩余的R-1个目录节点接收并更新相关的目录信息;
B5,当目录节点Di接收到数据块Bi副本回收命令时,目录节点Di从保存数据块Bi副本的所有数据节点中选择DL个数据节点,并发送回收数据块Bi命令到这DL个数据节点;
此处在选择数据节点时优先选择处于满负荷状态的数据节点;
当数据节点Ni接收到目录节点Di发送的回收数据块Bi命令,则根据找到数据块Bi并释放其存储空间,并在数据节点Ni所维护的数据块访问计数器数组和热点计数器数组中分别剔除数据块Bi的访问计数器Ci和热点计数器Hi;当DL个数据块回收完毕,目录节点Di更新数据块Bi的副本数Li’=Li-DL,并把新的副本数Li’和回收的DL个数据块Bi的存储位置,传送给剩余的R-1个目录节点,剩余的R-1个目录节点接收并更新相关的目录信息。
在上述数据块状态判断过程中,本实施例中采用的状态判断方法是通过判断访问计数器的数在一个清零周期内是否大于设定的热点阈值UP来进行判断,具体包括:
首先数据块Bi创建的时候默认为普通数据块。创建之后,数据块Bi的访问计数器Ci是一直增加的,所以随着时间积累它总能够超出热点阈值UP,所以需要设定一个清零周期TC,如每隔1小时,对数据块Bi的访问计数器Ci进行清零。
当数据块Bi的访问计数器Ci在一个清零周期TC内(一小时)超过热点阈值UP,则判定Bi是热点数据块,并把数据块Bi的热点计数器Hi加1。此时,触发副本数Li动态调整机制实现数据块Bi的副本扩展,即扩展DL个数据块Bi副本。扩展成功后,需要立即对访问计数器Ci进行清零,否则数据块Bi的访问计数器Ci仍旧处于超过热点阈值UP的状态。当访问计数器Ci进行清零之后,若下一个清零周期TC内访问计数器Ci仍旧超过热点阈值UP,则会触发下一轮的数据块Bi副本扩展。本实施例中提供的方法通过不断的副本扩展,把数据块Bi的访问热度进行平摊,避免数据块Bi成为整个系统的瓶颈。
当数据块Bi的热点计数器Hi大于0,并且数据块Bi的访问计数器Ci在连续U个清零周期TC内低于回收阈值DOWN,则判定该数据块Bi是回收数据块。此时,热点计数器Hi减1,并触发副本数Li动态调整机制实现数据块Bi的副本回收,即回收DL个数据块Bi副本。
值得注意的是,本发明中的热点计数器Hi本质上是用于记录数据块Bi的扩展次数,对于数据块Bi,扩展了多少次,才允许回收多少次,即回收次数不大于扩展次数。数据块Bi每回收一次,热点计数器Hi减1,直至变成0;当热点计数器Hi变成0之后,表示数据块Bi的副本数量为创建时预设值,为了避免数据块Bi被清空,此时访问计数器Ci即使低于回收阈值DOWN,数据块Bi也不再进行回收。
本实施例中,U可以设置为5,也可以根据实际需要设置为其他值;热点阈值UP和回收阈值DOWN设置值与机器的配置相关,本领域技术人员可以根据实际需要进行设置,本实施例中热点阈值UP=MDT*TC/BS*90%,其中,MDT为数据节点中所安装磁盘的额定最大每秒磁盘数据传输量,BS是数据块大小,TC为清零周期;
步骤C4中所述回收阈值DOWN设置为3,即连续5个清零周期内数据块Bi的访问次数都不超过3次。
实施例2
本实施例提供一种高效能分布式云存储系统,该分布式云存储系统与客户端通过网络进行数据读写过程;
所述云存储系统包括R个目录节点和M个数据节点,所述R个目录节点用于保存数据存储在数据节点中的目录信息;客户端可以选择任一个目录节点发送数据读写请求;
当目录节点接收到数据文件写入请求后,将待写入数据文件分解成数据块后发送到数据节点进行存储;当数据文件存储完成后,将数据文件的目录信息传送给剩余的R-1个目录节点;
当目录节点接收到数据文件读取请求后,从目录信息中找到存储待读取数据文件包含的各个数据块的所有数据节点,并选择其中一个数据节点发送读取数据块请求;若发现该数据节点读取或传输数据块失败,则重新选择数据节点进行读取和传输;直到客户端接收到待读取数据文件包含的所有数据块;
此外,所述目录节点通过接收数据节点发来的是否满负荷的状态信息动态维护一个非满负荷数据节点队列WQ;
数据节点用于存储数据,同时数据节点通过监测已用磁盘空间、每秒磁盘数据传输量和每秒网络数据传输量三个参数判断当前数据节点是否处于满负荷状态并将该状态信息发送给目录节点;还用于通过数据块访问计数器组中的访问计数器和数据块热点计数器组中的热点计数器用于监测数据块的状态,动态调整数据块的副本数。
通过采用本发明公开的上述技术方案,得到了如下有益的效果:
本发明公开了一种高效能分布式云存储方法及系统,采用带有多个数据节点和目录节点的系统,通过数据节点分别监测已用磁盘空间、每秒磁盘数据传输量和每秒网络数据传输量三个参数判断数据节点是否处于满负荷状态,同时将状态信息发送给所有目录节点,从而动态维护一个非满负荷数据节点队列提升云存储系统的性能;此外,通过判断数据块处于热点数据块或者回收数据块来动态调整每个数据块的副本数,对于热点数据块,增加副本数可以使得数据读取过程中效率提高;对于回收数据块,适量的减少副本数也可以在不降低读取速度的基础上节约存储空间,进一步提高整个云存储系统的性能。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。

Claims (8)

1.一种高效能分布式云存储方法,其特征在于,包括以下步骤:
S1,当客户端需要向云存储系统中写入数据时,客户端从R个冗余的目录节点中随机选择一个目录节点Di,并向所述目录节点Di发送写入命令和需要写入的数据文件F;所述目录节点Di接收到客户端的写入命令后,将需要写入的数据文件F按照预先设置好的数据块大小标准BS分解为多个数据块;
S2,所述目录节点Di针对每个数据块Bi,根据预先配置好的数据块Bi的副本数Li,从非满负荷数据节点队列WQ中,随机选择Li个数据节点,并把需要写入的数据块Bi,发送到所述Li个数据节点;
S3,所述Li个数据节点将数据块Bi写入本地磁盘,同时在数据节点所维护的数据块访问计数器数组中加入数据块Bi的访问计数器Ci,数据块热点计数器数组中加入数据块Bi的热点计数器Hi,并把Ci和Hi的计数值均初始化为0;
S4,重复步骤S2和S3,直到目录节点Di把数据文件F包含的所有数据块写入完毕后,所述目录节点Di把相关的目录信息传送给剩余其他的目录节点;
当所有目录节点更新完相关的目录信息,目录节点Di向客户端发送写入完毕信息;
S5,当客户端需要读取云存储系统中的数据时,客户端随机选择一个目录节点Di’,并向所述目录节点Di’发送读取数据文件F’的命令;
S6,所述目录节点Di’接收到命令后,从维护的目录信息中找到数据文件F’的数据块数量,同时针对每个数据块Bi,所述目录节点Di’找到存储数据块Bi的Li个数据节点;
随机选择一个数据节点Ni’,向所述数据节点Ni’发送读取数据块Bi至客户端的命令;
所述数据节点Ni’读取数据块Bi并将所述数据块Bi发送给客户端,同时将数据块Bi的访问计数器Ci加1;
S7,重复步骤S6,直到客户端接收到数据文件F’包含的所有数据块,则向客户端发送读取成功信息。
2.根据权利要求1所述的高效能分布式云存储方法,其特征在于,步骤S2中所述非满负荷数据节点队列WQ的实现方法是:
A1,初始启动时,数据节点处于非满负荷的状态;
A2,当数据节点处于非满负荷的状态时,采集本数据节点的已用磁盘空间、每秒磁盘数据传输量和每秒网络数据传输量三个参数,当任何一个参数超过各自预设的最大值,则向所有目录节点发送该数据节点满负荷状态信息;
A3,当数据节点处于满负荷的状态时,采集本数据节点的已用磁盘空间、每秒磁盘数据传输量和每秒网络数据传输量三个参数,当所述三个参数在连续T分钟内都各自低于预设的最大值,则向所有目录节点发送该数据节点非满负荷状态信息;
A4,所有目录节点都根据接收到的每个数据节点发送的是否满负荷的状态信息,更新非满负荷数据节点队列WQ;即当接收到数据节点满负荷状态信息时,则从非满负荷数据节点队列WQ中移除该数据节点;当接收到数据节点非满负荷状态信息时,则把该数据节点重新加入到非满负荷数据节点队列WQ中。
3.根据权利要求2所述的高效能分布式云存储方法,其特征在于,所述预设的最大值为数据节点硬件配置最大值的90%,即已用磁盘空间预设的最大值为数据节点中所安装硬盘的全部磁盘空间的90%,每秒磁盘数据传输量预设的最大值为数据节点中所安装磁盘的额定最大每秒磁盘数据传输量的90%,每秒网络数据传输量预设的最大值为数据节点中所安装网卡的额定最大每秒网络数据传输量的90%。
4.根据权利要求1所述的高效能分布式云存储方法,其特征在于,步骤S2中,所述数据块Bi的副本数Li是动态调整过程,其动态调整机制具体包括:
B1,设置每次副本数动态调整量为DL;
B2,数据节点Ni采用数据块访问计数器数组来监控本地存储的数据块Bi并判断该数据块的状态;
B3,当数据块Bi判断为热点数据块,并且数据节点Ni是满负荷工作,则数据节点Ni从R个冗余的目录节点中随机选择一个目录节点Di,并向该目录节点Di发送数据块Bi副本扩展命令,进入步骤B4;
当数据块Bi判断为回收数据块,则数据节点Ni从R个冗余的目录节点中随机选择一个目录节点Di,并向该目录节点Di发送数据块Bi副本回收命令,进入步骤B5;
当数据块Bi判断为普通数据块,则数据块Bi的副本数不做调整;
B4,当目录节点Di接收到数据块Bi副本扩展命令时,则目录节点Di从非满负荷数据节点队列WQ中,随机选择未保存过数据块Bi副本的DL个数据节点,并把需要写入的数据块Bi,发送到这DL个数据节点;当目录节点Di把新增的DL个数据块Bi写入完毕,则更新数据块Bi的副本数Li’=Li+DL,然后把新的副本数Li’和新增的DL个数据块的存储位置,传送给剩余的R-1个目录节点,剩余的R-1个目录节点接收并更新相关的目录信息;
B5,当目录节点Di接收到数据块Bi副本回收命令时,目录节点Di从保存数据块Bi副本的所有数据节点中选择DL个数据节点,优先选择处于满负荷状态的数据节点,并发送回收数据块Bi命令到这DL个数据节点;当数据节点Ni接收到目录节点Di发送的回收数据块Bi命令,则找到数据块Bi并释放其存储空间,并在数据节点Ni所维护的数据块访问计数器数组和热点计数器数组中分别剔除数据块Bi的访问计数器Ci和热点计数器Hi;
当DL个数据块回收完毕,目录节点Di更新数据块Bi的副本数Li’=Li-DL,然后把新的副本数Li’和回收的DL个数据块Bi的存储位置,传送给剩余的R-1个目录节点,剩余的R-1个目录节点接收并更新相关的目录信息。
5.根据权利要求4所述的高效能分布式云存储方法,其特征在于,步骤B1中判断数据块的状态的方法具体包括:
C1,默认创建的数据块Bi为普通数据块,对访问计数器Ci设定一个清零周期TC,判断数据块Bi的访问计数器Ci是否在一个清零周期TC内超过热点阈值UP;
C2,当数据块Bi的访问计数器Ci在一个清零周期TC内超过热点阈值UP,则判定Bi是热点数据块,并把数据块Bi的热点计数器Hi加1,此时,触发副本数Li动态调整机制进入步骤B4实现数据块Bi的副本扩展;
C3,扩展成功后,数据块Bi重新成为普通数据块,访问计数器Ci立即清零,重新判断访问计数器Ci是否在一个清零周期TC内超过热点阈值UP,重复步骤C2;
C4,当热点计数器Hi大于0,并且数据块Bi的访问计数器Ci在连续U个清零周期内低于回收阈值DOWN,则判定该数据块Bi是回收数据块;此时,热点计数器Hi减1,并触发副本数Li动态调整机制进入步骤B5实现数据块Bi的副本回收。
6.根据权利要求5所述的高效能分布式云存储方法,其特征在于,步骤C1中所述热点阈值UP=MDT*TC/BS*90%,其中,MDT为数据节点中所安装磁盘的额定最大每秒磁盘数据传输量,BS是数据块大小,TC为清零周期;
步骤C4中所述回收阈值DOWN设置为3,即连续U个清零周期内数据块Bi的访问次数都不超过3次。
7.根据权利要求1所述的高效能分布式云存储方法,其特征在于,步骤S4中所述目录信息包括数据文件包含的每个数据块的副本数以及它们的存储位置。
8.一种高效能分布式云存储系统,其特征在于,所述分布式云存储系统与客户端通过网络进行数据读写过程;
所述云存储系统包括R个目录节点和M个数据节点,所述R个目录节点用于保存数据存储在数据节点中的目录信息;客户端可以选择任一个目录节点发送数据读写请求;
当目录节点接收到数据文件写入请求后,将待写入的数据文件分解成数据块后发送到数据节点进行存储;当数据文件存储完成后,将数据文件的目录信息传送给剩余的R-1个目录节点;
当目录节点接收到数据文件读取请求后,从目录信息中找到存储待读取数据文件包含的各个数据块的所有数据节点,并选择相应的数据节点发送读取数据块请求;若发现该数据节点读取或传输数据块失败,则重新选择数据节点进行读取和传输;直到客户端接收到待读取数据文件包含的所有数据块;
此外,所述目录节点通过接收数据节点发来的是否满负荷的状态信息动态维护一个非满负荷数据节点队列WQ;
数据节点用于存储数据,同时数据节点通过监测已用磁盘空间、每秒磁盘数据传输量和每秒网络数据传输量三个参数判断当前数据节点是否处于满负荷状态并将该状态信息发送给目录节点;还用于通过数据块访问计数器组中的访问计数器和数据块热点计数器组中的热点计数器用于监测数据块的状态,动态调整数据块的副本数。
CN202010885200.5A 2020-08-28 2020-08-28 一种高效能分布式云存储方法及系统 Active CN112039982B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010885200.5A CN112039982B (zh) 2020-08-28 2020-08-28 一种高效能分布式云存储方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010885200.5A CN112039982B (zh) 2020-08-28 2020-08-28 一种高效能分布式云存储方法及系统

Publications (2)

Publication Number Publication Date
CN112039982A true CN112039982A (zh) 2020-12-04
CN112039982B CN112039982B (zh) 2022-03-01

Family

ID=73586158

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010885200.5A Active CN112039982B (zh) 2020-08-28 2020-08-28 一种高效能分布式云存储方法及系统

Country Status (1)

Country Link
CN (1) CN112039982B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114827180A (zh) * 2022-06-22 2022-07-29 蒲惠智造科技股份有限公司 云端数据分布式存储的分配方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101141192A (zh) * 2007-06-12 2008-03-12 中兴通讯股份有限公司 一种数字量性能数据的存储和管理方法及其系统
CN103414761A (zh) * 2013-07-23 2013-11-27 北京工业大学 一种基于Hadoop架构的移动终端云资源调度方法
US20150280959A1 (en) * 2014-03-31 2015-10-01 Amazon Technologies, Inc. Session management in distributed storage systems
CN107302561A (zh) * 2017-05-23 2017-10-27 南京邮电大学 一种云存储系统中热点数据副本放置方法
US10291707B1 (en) * 2015-05-18 2019-05-14 Twitter, Inc. Systems and methods for balancing storage resources in a distributed database

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101141192A (zh) * 2007-06-12 2008-03-12 中兴通讯股份有限公司 一种数字量性能数据的存储和管理方法及其系统
CN103414761A (zh) * 2013-07-23 2013-11-27 北京工业大学 一种基于Hadoop架构的移动终端云资源调度方法
US20150280959A1 (en) * 2014-03-31 2015-10-01 Amazon Technologies, Inc. Session management in distributed storage systems
US10291707B1 (en) * 2015-05-18 2019-05-14 Twitter, Inc. Systems and methods for balancing storage resources in a distributed database
CN107302561A (zh) * 2017-05-23 2017-10-27 南京邮电大学 一种云存储系统中热点数据副本放置方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
YINHAO HUANG 等: "Cost Efficient Offloading Strategy for DNN-based Applications in Edge-Cloud Environment", 《2019 IEEE INTL CONF ON PARALLEL & DISTRIBUTED PROCESSING WITH APPLICATIONS, BIG DATA & CLOUD COMPUTING, SUSTAINABLE COMPUTING & COMMUNICATIONS, SOCIAL COMPUTING & NETWORKING (ISPA/BDCLOUD/SOCIALCOM/SUSTAINCOM)》 *
潘竹生 等: "一种带节点失效的BDD网络可靠性分析新方法", 《浙江师范大学学报(自然科学版)》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114827180A (zh) * 2022-06-22 2022-07-29 蒲惠智造科技股份有限公司 云端数据分布式存储的分配方法

Also Published As

Publication number Publication date
CN112039982B (zh) 2022-03-01

Similar Documents

Publication Publication Date Title
US6466950B1 (en) Update log management device and an update log management method decreasing the data amount of transmitting and the update log amount of holding based on the result of comparing the amount of the update log with the amount of the updated data plus the log applied information
JP3810738B2 (ja) ディスクにあるデータの適応的な事前取得
CN1648867B (zh) 数据处理系统
US8074036B2 (en) Data processing system having first, second and third storage systems that are arranged to be changeable between a first status and a second status in response to a predetermined condition at the first storage system
US20040064633A1 (en) Method for storing data using globally distributed storage system, and program and storage medium for allowing computer to realize the method, and control apparatus in globally distributed storage system
US7120741B2 (en) Disk array and method for reading/writing data from/into disk unit
US20170285995A1 (en) Updating of pinned storage in flash based on changes to flash-to-disk capacity ratio
CN102577241B (zh) 分布式缓存资源调度的方法、装置及系统
CN101741536A (zh) 数据级容灾方法、系统和生产中心节点
CN112039982B (zh) 一种高效能分布式云存储方法及系统
CN102394936B (zh) 集群系统无损业务维护方法
CN112988065B (zh) 数据迁移方法、装置、设备及存储介质
CN110442646B (zh) 一种ceph数据同步模块主端写性能优化系统及方法
CN107479833B (zh) 一种面向键值存储的远程非易失内存访问与管理方法
JPWO2008139521A1 (ja) リモートファイルシステム、端末装置およびサーバ装置
CN113553179A (zh) 分布式键值存储负载均衡方法及系统
CN105095495A (zh) 一种分布式文件系统缓存管理方法和系统
CN104202349B (zh) 分布式缓存资源调度的方法、装置及系统
EP3588913A1 (en) Data caching method and apparatus
CN113051428B (zh) 一种摄像机前端存储备份的方法及装置
CN103262042B (zh) 一种分布式存储数据恢复方法、装置及系统
CN108234465A (zh) 一种分布式文件系统中应对异常的冗余方法和装置
CN105808150A (zh) 用于混合式储存设备的固态硬盘快取系统
CN116800691A (zh) 一种缓存数据分割处理方法、系统和存储介质
CN113704349A (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
GR01 Patent grant
GR01 Patent grant