CN104580439B - 一种云存储系统中使数据均匀分布的方法 - Google Patents

一种云存储系统中使数据均匀分布的方法 Download PDF

Info

Publication number
CN104580439B
CN104580439B CN201410841392.4A CN201410841392A CN104580439B CN 104580439 B CN104580439 B CN 104580439B CN 201410841392 A CN201410841392 A CN 201410841392A CN 104580439 B CN104580439 B CN 104580439B
Authority
CN
China
Prior art keywords
service node
storage service
disk
available space
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
Application number
CN201410841392.4A
Other languages
English (en)
Other versions
CN104580439A (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.)
Shenzhen Innovation Software Technology Co Ltd
Shenzhen Innovation Technology Co Ltd
Original Assignee
Shenzhen Innovation Software Technology Co Ltd
Shenzhen Innovation Technology 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 Shenzhen Innovation Software Technology Co Ltd, Shenzhen Innovation Technology Co Ltd filed Critical Shenzhen Innovation Software Technology Co Ltd
Priority to CN201410841392.4A priority Critical patent/CN104580439B/zh
Publication of CN104580439A publication Critical patent/CN104580439A/zh
Application granted granted Critical
Publication of CN104580439B publication Critical patent/CN104580439B/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
    • 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

Abstract

本申请公开了一种云存储系统中使数据均匀分布的方法,A、客户端向元数据服务节点发出写请求,所述写请求中包括所需的存储空间、文件基本信息、现在要写第几个数据块;B、元数据服务节点运用哈希算法,从所有可用的存储服务节点中随机出一个,再运用哈希算法在所选的存储服务节点上随机选出一个磁盘,元数据服务节点将所选的存储服务节点以及磁盘的标识作为位置分配信息进行保存;C、元数据服务节点将位置分配信息发送至客户端;D、客户端根据所述位置分配信息将数据写入相应位置的磁盘。E、客户端判断是否写满当前数据块,若是,返回步骤A,否则继续执行步骤F;F、客户端判断是否完成写入过程,若是结束本流程,否则返回步骤A。

Description

一种云存储系统中使数据均匀分布的方法
技术领域
本申请涉及计算机网络及存储技术领域,尤其涉及一种云存储系统中使数据均匀分布的方法。
背景技术
随着计算机网络,特别是因特网(Internet)的迅猛发展,越来越多的资料被数据化,全球信息存储量每年急剧增长。传统的信息系统概念发生了巨大的变化,这些变化突出地表现在信息的存储、传递、发布以及获取方式所发生的革命性变革。与此同时,大量数据密集型应用,如视频监控,广电行业,数字图书馆,医疗视频图像处理,海量视频在线编辑等,对存储系统的容量,性能,安全性,可扩展性和可用性提出了更高要求。传统的直接数据存储方式过于简单化,过于集中管理而造成了大量数据的堆积。这样需要大量的存储数据的介质,而导致服务器的回应下降乃至崩溃,这样一来就会有大量数据会随着服务器的崩溃而丢失。因此传统的直接数据存储模式渐渐不能满足需求,信息存储的需求和应用的复杂性提出了新的存储模式。
云存储是在云计算概念上延伸和发展出来的一个新的概念,是指通过集群应用、网格技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统。与传统的存储设备相比,云存储不仅仅是一个硬件,而是一个网络设备、存储设备、服务器、应用软件、公用访问接口、接入网、和客户端程序等多个部分组成的复杂系统。各部分以存储设备为核心,通过应用软件来对外提供数据存储和业务访问服务。
云存储具有分布数据的功能,实际上它的数据存储方式是物理上是分布的,逻辑上是集中的,也就是说数据和程序可以不位于一个服务器上,而是分散到多个服务器。这样一个服务器出现问题受影响的只是一小部分数据,而且通过自身的修复机制能在短时间内恢复数据。优点分散控制,集中操作、分级管理、配置灵活、高可靠性,易于维护。
然而在实际应用过程中,仍然会出现部分存储服务节点存储量较高,而仍然存在部分存储服务节点的存储量较少的情形。
发明内容
本申请提供了一种云存储系统中数据均匀分布的方法,能够将数据均匀分布到不同的存储服务节点,
本申请实施例提供的一种云存储系统中使数据均匀分布的方法,存储服务节点启动时,向元数据服务节点注册磁盘信息并定期动态报告磁盘的使用情况;该方法包括如下步骤:
A、客户端向元数据服务节点发出写请求,所述写请求中包括所需的存储空间、文件基本信息、现在要写第几个数据块;
B、元数据服务节点运用哈希算法,从所有可用的存储服务节点中随机出一个,再运用哈希算法在所选的存储服务节点上随机选出一个磁盘,元数据服务节点将所选的存储服务节点以及磁盘的标识作为位置分配信息进行保存;
C、元数据服务节点将位置分配信息发送至客户端;
D、客户端根据所述位置分配信息将数据写入相应位置的磁盘。
E、客户端判断是否写满当前数据块,若是,返回步骤A,否则继续执行步骤F;
F、客户端判断是否完成写入过程,若是结束本流程,否则返回步骤A。
较佳地,该方法进一步包括:
客户端向元数据服务节点请求文件的位置分配信息;请求信息中包含了文件基本信息;
客户端根据位置分配信息按顺序从对应存储服务节点的对应磁盘读取数据块。
较佳地,该方法进一步包括:
G、元数据服务节点判断磁盘是否平衡,若是,执行步骤H;
H、在存储服务节点中找到第一存储服务节点和第二存储服务节点,其中,第一存储节点包含有可用空间或可用空间百分比最大的磁盘,第二存储服务节点包含有可用空间或可用空间百分比最小的磁盘;
I、元数据服务节点发送命令给第二存储服务节点,使其复制部分数据块到第一存储服务节点;复制成功后把元数据中的旧的块地址信息更新为新的块地址信息;
J、元数据服务节点命令第二存储服务节点将已被复制到第一存储服务节点的数据块删除。
较佳地,判断磁盘是否平衡的判断依据是如下之一或其组合:
云存储服务系统中增加或减少磁盘,则不平衡;
磁盘的可用空间或可用空间百分比是否大于第一阈值,若是则平衡,否则不平衡;
每个磁盘可用空间百分比在预定范围内,则平衡,否则不平衡;
可用空间百分比最大的磁盘与可用空间百分比最小的磁盘的可用空间百分比差值超过第二阈值,则不平衡,否则平衡。
较佳地,所述数据块的大小为16MB。
从以上技术方案可以看出,写数据过程将所要写的数据分成多个数据块,将所述数据块均匀写入多个存储服务节点中;读数据过程则根据元数据从多个存储服务节点获取所需的数据;当存储服务节点的容量发生变化时自动均衡,调整数据位置保证数据的完整性和一致性,充分利用数据节点的带宽和磁盘的带宽。
附图说明
图1为数据块在存储服务节点中分布的示意图。
图2a为本申请实施例提供的客户端写数据的流程示意图;
图2b为根据本申请实施例,客户端写入数据的原理框图;
图3a为本申请实施例提供的客户端读数据的流程示意图;
图3b为根据本申请实施例,客户端读数据的原理框图;
图4为本申请实施例提供的存储服务节点的容量动态调整流程示意图。
具体实施方式
本申请云存储系统中使数据均匀分布的方法具体包括两方面技术内容:一方面是客户端写数据过程以及相应的读数据过程,所述写数据过程将所要写的数据分成多个数据块,将所述数据块均匀写入多个存储服务节点中;读数据过程则解决如何从多个存储服务节点获取所需的数据的问题;另一方面是存储服务节点的容量动态调整过程,根据磁盘实时容量动态调整各个存储服务节点的容量分配;特别地,当云存储系统中新增存储服务节点时,自动将其他存储服务节点的数据转移一部分到新增的存储服务节点;当存储服务节点减少前,计算所要减少的存储服务节点中存储的数据并将数据转移到其他存储服务节点。
为使本申请技术方案的技术原理、特点以及技术效果更加清楚,以下结合具体实施例对本申请技术方案进行详细阐述。
本申请所涉及的云存储系统将元数据和数据分开存储,其中元数据集中存储在元数据服务节点,而数据按一定大小分块的组织方式存储于多个存储服务节点(Chunk),元数据服务节点存储着文件大小,存放位置等文件属性信息。元数据服务节点对实际存放在存储服务节点中的数据起着组织,控制的作用。
图1为根据本申请实施例方案,数据块在存储服务节点中分布的示意图。图1所示的示例中包括3个存储服务节点,其中每个存储服务节点分别包括2个磁盘,存储服务节点和磁盘分别编号。客户端所需要写入的文件1被分割为6个数据块,其中文件1-1写入磁盘1,文件1-2写入磁盘2并以此类推。文件2也被分成6个数据块,其中文件2-1写入磁盘6,文件2-2写入磁盘1,并以此类推。
存储服务节点启动的时候向元数据服务节点注册磁盘信息并定期动态报告磁盘的使用情况。假定数据块的分割大小为16MB。客户端、元数据服务节点、存储服务节点均有此共识。
本申请实施例提供的客户端写数据的处理流程如图2a所示,包括如下步骤:
步骤201:客户端向元数据服务节点发出写请求,所述写请求中包括所需的存储空间;写请求信息中还包含了文件基本信息(文件名、创建时间等)、现在要写第几个数据块。
步骤202:元数据服务节点运用哈希算法,从所有可用的存储服务节点中随机出一个,再运用哈希算法在所选的存储服务节点上随机选出一个磁盘,元数据服务节点将所选的存储服务节点以及磁盘的标识作为位置分配信息进行保存。
步骤203:元数据服务节点将位置分配信息发送至客户端。
步骤204:客户端根据所述位置分配信息将数据写入相应位置的磁盘。
步骤205:客户端判断是否写满当前数据块,若是,执行步骤206,否则继续执行步骤204。
步骤206:客户端判断是否完成写入过程,若是结束本流程,否则返回步骤201。
根据本申请实施例,客户端写入数据的原理框图如图2b所示。
本申请实施例提供的客户端读数据的过程如图3所示,包括如下步骤:
步骤301:客户端向元数据服务节点请求文件的位置分配信息。请求信息中包含了文件基本信息(文件名、创建时间等)。
步骤302:客户端根据位置分配信息按顺序从对应存储服务节点的对应磁盘读取数据块。
本申请的数据平衡过程的基本设计思路是:
元数据服务节点判断磁盘是否平衡,若是,在存储服务节点中找到第一存储服务节点和第二存储服务节点,其中,第一存储节点包含有可用空间或可用空间百分比最大的磁盘,第二存储服务节点包含有可用空间或可用空间百分比最小的磁盘;
元数据服务节点发送命令给第二存储服务节点,使其复制部分数据块到第一存储服务节点;复制成功后把元数据中的旧的块地址信息更新为新的块地址信息;
元数据服务节点命令第二存储服务节点将已被复制到第一存储服务节点的数据块删除。
其中,判断磁盘是否平衡的判断依据可以是如下之一或其组合:
云存储服务系统中增加了新的磁盘,则不平衡;新增磁盘所在的存储服务节点为第一存储服务节点。云存储服务系统中原有的可用空间(或可用空间百分比)最小的磁盘所在的存储服务节点为第二存储服务节点。如果存在多个磁盘可用空间(或可用空间百分比)相同的情形,则随机选取其中一个或将其所在的存储服务节点均作为第二存储节点;
云存储服务系统中要减少磁盘,则不平衡;减少的磁盘所在的存储服务节点为第二服务节点,云存储服务系统中原有的可用空间(或可用空间百分比)最大的磁盘所在的存储服务节点为第一存储服务节点;
磁盘的可用空间(或可用空间百分比)是否大于第一阈值,若是则平衡,否则不平衡;在不平衡的情况下,可用空间(或可用空间百分比)小于第一阈值的磁盘所在存储服务节点为第二存储服务节点,可用空间(或可用空间百分比)最大的磁盘所在的存储服务节点为第一存储服务节点
每个磁盘可用空间百分比在预定范围内,则平衡,否则不平衡;在不平衡的情况下,可用空间百分比最大的磁盘所在的存储服务节点为第一存储服务节点,可用空间百分比最小的磁盘所在的存储服务节点为第二存储服务节点,
可用空间百分比最大的磁盘与可用空间百分比最小的磁盘的可用空间百分比差值超过第二阈值,则不平衡,否则平衡。不平衡的情况下,可用空间百分比最大的磁盘所在的存储服务节点为第一存储服务节点,可用空间百分比最小的磁盘所在的存储服务节点为第二存储服务节点。
以新增磁盘为例,本申请根据磁盘实时容量动态调整各个存储服务节点的容量分配的具体实现过程的过程如图4所示,包括如下步骤:
步骤401:在云存储服务系统中新增加一台存储服务节点(称为第一存储服务节点),该节点包含16个磁盘。
步骤402:云存储服务系统中的各个存储服务节点启动后,向元数据服务节点注册节点信息和磁盘信息。
步骤403:元数据服务节点监控到新的节点和磁盘加入集群。启动平衡机制。
步骤404:在原有的存储服务节点中找出可用空间(或可用空间百分比)最小的磁盘,查找元数据服务节点得知该磁盘存储了那些数据块。称所述磁盘所在的存储服务节点为第二存储服务节点。
步骤405:发送命令给第二存储服务节点复制数据到第一存储服务节点。复制成功后把元数据中的旧的块地址信息更新为新的块地址信息。
例如,可以运用哈希算法随机选取数据块其中一部分(如100个数据块),将这100个数据块复制到新增的磁盘上。
步骤406:元数据服务节点命令第二存储服务节点将已被复制到第一存储服务节点的数据块删除。
步骤407:元数据服务节点判断磁盘是否平衡,如果需要再平衡重复步骤404-406,否则退出平衡机制。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请的保护范围,凡在本申请技术方案的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (5)

1.一种云存储系统中使数据均匀分布的方法,其特征在于,存储服务节点启动时,向元数据服务节点注册磁盘信息并定期动态报告磁盘的使用情况;该方法包括如下步骤:
A、客户端向元数据服务节点发出写请求,所述写请求中包括所需的存储空间、文件基本信息、现在要写第几个数据块;
B、元数据服务节点运用哈希算法,从所有可用的存储服务节点中随机出一个,再运用哈希算法在所选的存储服务节点上随机选出一个磁盘,元数据服务节点将所选的存储服务节点以及磁盘的标识作为位置分配信息进行保存;
C、元数据服务节点将位置分配信息发送至客户端;
D、客户端根据所述位置分配信息将数据写入相应位置的磁盘;
E、客户端判断是否写满当前数据块,若是,返回步骤A,否则继续执行步骤F;
F、客户端判断是否完成写入过程,若是结束本流程,否则返回步骤A。
2.根据权利要求1所述的方法,其特征在于,该方法进一步包括:
客户端向元数据服务节点请求文件的位置分配信息;请求信息中包含了文件基本信息;
客户端根据位置分配信息按顺序从对应存储服务节点的对应磁盘读取数据块。
3.根据权利要求1所述的方法,其特征在于,该方法进一步包括:
G、元数据服务节点判断磁盘是否平衡,若否,执行步骤H;
H、在存储服务节点中找到第一存储服务节点和第二存储服务节点,其中,第一存储节点包含有可用空间或可用空间百分比最大的磁盘,第二存储服务节点包含有可用空间或可用空间百分比最小的磁盘;
I、元数据服务节点发送命令给第二存储服务节点,使其复制部分数据块到第一存储服务节点;复制成功后把元数据中的旧的块地址信息更新为新的块地址信息;
J、元数据服务节点命令第二存储服务节点将已被复制到第一存储服务节点的数据块删除。
4.根据权利要求3所述的方法,其特征在于,判断磁盘是否平衡的判断依据是如下之一或其组合:
云存储服务系统中增加或减少磁盘,则不平衡;
磁盘的可用空间或可用空间百分比是否大于第一阈值,若是则平衡,否则不平衡;
每个磁盘可用空间百分比在预定范围内,则平衡,否则不平衡;
可用空间百分比最大的磁盘与可用空间百分比最小的磁盘的可用空间百分比差值超过第二阈值,则不平衡,否则平衡。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述数据块的大小为16MB。
CN201410841392.4A 2014-12-30 2014-12-30 一种云存储系统中使数据均匀分布的方法 Active CN104580439B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410841392.4A CN104580439B (zh) 2014-12-30 2014-12-30 一种云存储系统中使数据均匀分布的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410841392.4A CN104580439B (zh) 2014-12-30 2014-12-30 一种云存储系统中使数据均匀分布的方法

Publications (2)

Publication Number Publication Date
CN104580439A CN104580439A (zh) 2015-04-29
CN104580439B true CN104580439B (zh) 2020-01-03

Family

ID=53095596

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410841392.4A Active CN104580439B (zh) 2014-12-30 2014-12-30 一种云存储系统中使数据均匀分布的方法

Country Status (1)

Country Link
CN (1) CN104580439B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105224244B (zh) * 2015-09-07 2018-09-18 浙江宇视科技有限公司 一种文件存储的方法和装置
CN106100880B (zh) * 2016-06-12 2019-07-05 南京邮电大学 一种云数据资源部署及可视化管理方法
CN106569739A (zh) * 2016-10-09 2017-04-19 南京中新赛克科技有限责任公司 一种数据写入优化的方法
CN108632305B (zh) * 2017-03-16 2021-05-25 杭州海康威视数字技术股份有限公司 云存储系统、媒体数据存储方法及系统
CN110058784B (zh) 2018-01-18 2020-08-04 杭州海康威视系统技术有限公司 存储数据的方法和装置
CN110287222A (zh) * 2019-05-29 2019-09-27 贵州观云易优游科技发展有限公司 一种书籍信息存储方法及系统
CN111552441B (zh) * 2020-04-29 2023-02-28 重庆紫光华山智安科技有限公司 数据存储方法和装置、主节点及分布式系统
CN112905345B (zh) * 2021-02-23 2024-04-05 深圳市网心科技有限公司 任务调配方法、分布式存储系统、服务器
CN114791832B (zh) * 2022-04-24 2024-02-27 深圳软牛科技集团股份有限公司 在设备空间不足时ios系统修复的方法、装置及相关组件
CN116860564B (zh) * 2023-09-05 2023-11-21 山东智拓大数据有限公司 一种云服务器数据管理方法及其数据管理装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101504670A (zh) * 2009-03-04 2009-08-12 成都市华为赛门铁克科技有限公司 数据操作方法、系统、客户端和数据服务器
CN101539950A (zh) * 2009-05-08 2009-09-23 成都市华为赛门铁克科技有限公司 数据存取方法和装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL147073A0 (en) * 2001-12-10 2002-08-14 Monosphere Ltd Method for managing the storage resources attached to a data network
CN102855294B (zh) * 2012-08-13 2016-12-21 北京联创信安科技股份有限公司 一种智能哈希数据布局方法、集群存储系统及其方法
CN102882983B (zh) * 2012-10-22 2015-06-10 南京云创存储科技有限公司 一种云存储系统中提升并发访问性能的数据快速存储方法
CN103152395B (zh) * 2013-02-05 2015-12-09 北京奇虎科技有限公司 一种分布式文件系统的存储方法及装置
CN103442070A (zh) * 2013-08-30 2013-12-11 华南理工大学 基于统计预测的私有云存储资源调配方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101504670A (zh) * 2009-03-04 2009-08-12 成都市华为赛门铁克科技有限公司 数据操作方法、系统、客户端和数据服务器
CN101539950A (zh) * 2009-05-08 2009-09-23 成都市华为赛门铁克科技有限公司 数据存取方法和装置

Also Published As

Publication number Publication date
CN104580439A (zh) 2015-04-29

Similar Documents

Publication Publication Date Title
CN104580439B (zh) 一种云存储系统中使数据均匀分布的方法
US10776216B2 (en) Tiered cloud storage for different availability and performance requirements
CA2901668C (en) Deduplication storage system with efficient reference updating and space reclamation
US9052962B2 (en) Distributed storage of data in a cloud storage system
US20160196320A1 (en) Replication to the cloud
US9031906B2 (en) Method of managing data in asymmetric cluster file system
US10356150B1 (en) Automated repartitioning of streaming data
KR20120015306A (ko) 백업 데이터의 지능적 계층들
CN106534308B (zh) 一种分布式存储系统中解决数据块访问热点的方法及装置
CN111182067A (zh) 一种基于星际文件系统ipfs的数据写入方法及设备
US9984139B1 (en) Publish session framework for datastore operation records
CN108540510B (zh) 一种云主机创建方法、装置及云服务系统
US10298709B1 (en) Performance of Hadoop distributed file system operations in a non-native operating system
US11157456B2 (en) Replication of data in a distributed file system using an arbiter
US10387043B2 (en) Writing target file including determination of whether to apply duplication elimination
JP6564471B2 (ja) 階層化キャッシュフィル
CN111225003B (zh) 一种nfs节点配置方法和装置
WO2009088007A1 (ja) コンテンツ管理装置、コンテンツ管理システム、コンテンツ管理方法およびプログラム
US11010410B1 (en) Processing data groupings belonging to data grouping containers
US11188258B2 (en) Distributed storage system
US10983730B2 (en) Adapting resiliency of enterprise object storage systems
CN111435299B (zh) 一种应用程序的处理方法及装置
US10063256B1 (en) Writing copies of objects in enterprise object storage systems
JP6197666B2 (ja) 記憶装置、複製方法及び複製プログラム
US11394780B2 (en) System and method for facilitating deduplication of operations to be performed

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 518057 Shenzhen Software Park, No. 9, 501, 502, Science and Technology Middle Road, Nanshan District, Shenzhen City, Guangdong Province

Applicant after: Shenzhen Innovation Technology Co., Ltd.

Applicant after: Shenzhen Innovation Software Technology Co., Ltd.

Address before: 518057 Shenzhen Software Park, No. 9, 501, 502, Science and Technology Middle Road, Nanshan District, Shenzhen City, Guangdong Province

Applicant before: UIT Storage Technology (Shenzhen) Co., Ltd.

Applicant before: Chuangxinke Software Technology (Shenzhen) Co., Ltd.

GR01 Patent grant
GR01 Patent grant