CN105095290A - 一种分布式存储系统的数据布局方法 - Google Patents
一种分布式存储系统的数据布局方法 Download PDFInfo
- Publication number
- CN105095290A CN105095290A CN201410204711.0A CN201410204711A CN105095290A CN 105095290 A CN105095290 A CN 105095290A CN 201410204711 A CN201410204711 A CN 201410204711A CN 105095290 A CN105095290 A CN 105095290A
- Authority
- CN
- China
- Prior art keywords
- node
- virtual domain
- dummy
- dummy node
- physical store
- 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
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种分布式存储系统的数据布局方法,包括:创建逻辑存储空间,创建多个虚拟域,在所述多个虚拟域的每一个中设置多个虚拟节点,创建多个物理存储节点,对于所述多个虚拟域的每一个,将其中的多个虚拟节点的每一个映射到相应的物理存储节点。
Description
技术领域
本发明涉及数据存储技术,并且尤其涉及分布式存储系统的数据布局方法。
背景技术
现有技术中存在多种数据布局(即实现数据从逻辑空间到物理存储空间的映射)方案。其中一种方案(例如,HDFS分布式文件系统)采用随机分布的方法实现数据布局。该方法根据每个存储节点的存储空间利用情况,随机选择空闲空间较多的存储节点,然后将文件写入该节点,并在控制节点的内存的映射表中记录该文件的存储节点地址,在读取文件时,根据文件名或ID号查找映射表,得到存储节点的地址,然后从该存储节点读取文件。然而该方法存在可扩展性问题,能够管理的最大文件数量将受内存容量限制,而且当文件数量达到上千万或亿级时,其文件查找操作也会成为性能瓶颈。
发明内容
本发明公开一种分布式存储系统的数据布局方法,包括:
创建逻辑存储空间,
创建多个虚拟域,在所述多个虚拟域的每一个中设置多个虚拟节点,
创建多个物理存储节点,
对于所述多个虚拟域的每一个,将其中的多个虚拟节点的每一个映射到相应的物理存储节点。
优选地,每一个虚拟域具有相同数量的虚拟节点,
每一个虚拟域的所有虚拟节点被标记,使得不同虚拟域之间具有相同标记的虚拟节点,
所述映射使得所述多个虚拟域的具有相同标记虚拟节点被映射到不同的物理存储节点。
优选地,每一个虚拟域的所有虚拟节点根据虚拟节点的数量按序被标记。
优选地,向所述逻辑存储空间写入文件包括:
根据所述文件产生哈希值,
将该哈希值映射到第一虚拟域的第一虚拟节点,
根据设置的文件副本数量,将该文件分别写入多个物理存储节点,所述多个物理存储节点分别对应于包括所述第一虚拟节点的多个虚拟节点,所述多个虚拟节点具有相同的标记。
本发明的方法具有良好的可扩展性,可适用于EB级存储系统。本发明能够根据数据的可靠性要求设置不同的复制策略,并可动态修改复制策略,当调整复制策略时,不会产生额外的数据迁移。
附图说明
在参照附图阅读了本发明的具体实施方式以后,本领域技术人员将会更清楚地了解本发明的各个方面。本领域技术人员应当理解的是,这些附图仅仅用于配合具体实施方式说明本发明的技术方案,而并非意在对本发明的保护范围构成限制。
图1是根据本发明实施例的分布式存储系统的数据布局方法的示意图。
图2是根据本发明实施例的分布式存储系统的数据布局方法的一个实例。
具体实施方式
图1是根据本发明实施例的分布式存储系统的数据布局方法的示意图。
如图1所示,在101中,创建逻辑存储空间,用户通过逻辑存储空间写入和读取数据。在一个示例中,可以为创建的一个或多个逻辑存储空间根据数据的可靠性要求设置相应的数据副本数量,使得当在该逻辑存储空间写入数据时,在该数量的物理存储节点上分别写入数据副本。
在102中,创建多个虚拟域,在所述多个虚拟域的每一个中设置多个虚拟节点。虚拟域的数量可以和最大副本数量相同。每一个虚拟域可以具有相同数量的虚拟节点。在一个示例中,每一个虚拟域的所有虚拟节点被标记,使得不同虚拟域之间具有相同标记的虚拟节点。在一个示例中,可以根据虚拟节点的数量按序标记每一个虚拟域的所有虚拟节点。例如,将虚拟域A中的各个虚拟节点标记为1、2…M,将虚拟域B中的各个虚拟节点标记为1、2…M。
在103中,创建多个物理存储节点。
在104中,对于所述多个虚拟域的每一个,将其中的多个虚拟节点的每一个映射到相应的物理存储节点。在一个示例中,映射使得所述多个虚拟域的具有相同标记虚拟节点被映射到不同的物理存储节点。
根据本发明的一个实施例,向所述逻辑存储空间写入文件包括:
根据所述文件产生哈希值,例如可以根据文件名产生哈希值,
将该哈希值映射到第一虚拟域的第一虚拟节点,
根据期望的文件副本数量,将该文件的多个副本分别写入多个物理存储节点,所述多个物理存储节点分别对应于包括所述第一虚拟节点的多个虚拟节点,所述多个虚拟节点具有相同的标记。
图2是根据本发明实施例的分布式存储系统的数据布局方法的一个实例。如图所示,数据布局的实现包括3个层次:逻辑存储空间、虚拟域、物理存储节点。在该实例中,创建了4个逻辑存储空间,分别为Volume1、Volume2、Volume4、Volume4,并将其副本数分别设置为1,2,3,1。设置的存储系统的数据副本数最大为3,则可以据此创建3个虚拟域,分别为虚拟域1、虚拟域2、虚拟域3。每个虚拟域中的虚拟节点数为M。虚拟节点的数量可以根据存储系统的物理存储节点数量来设置,例如可以为物理存储节点的数量的几十倍。每个虚拟域中的虚拟节点的编号从1开始,依次递增。物理存储节点为实际存储数据的物理存储设备。存储系统中的物理存储节点可以在线、渐进扩展,并且不同物理存储设备的容量可以不同。在该实施例中,物理存储节点数量为N。
然后,可以分别针对每个虚拟域,将其中的虚拟节点映射到物理存储节点,即依次针对虚拟域1、虚拟域2、虚拟域3,分别执行将虚拟节点映射到物理存储节点的过程。在映射过程中,判断要被分配虚拟节点的物理存储节点的存储空间是否足够,如果存储空间不足则尝试将待分配虚拟节点映射至另一物理存储节点,以及判断要被分配虚拟节点的物理存储节点上的虚拟节点的标记是否与待分配的讯节点相同,若相同则尝试将待分配虚拟节点映射至另一物理存储节点,如此使得不同虚拟域的同一标记的虚拟节点不会被分配到同一个物理存储节点。
以下示例性地描述依次针对虚拟域1、虚拟域2、虚拟域3,分别执行将虚拟节点映射到物理存储节点的过程。
对于虚拟域1,对于虚拟域1的虚拟节点VNi,判断是否将其映射到存储节点SNj。如果SNj已经分配的虚拟节点的数量小于阈值,则将虚拟节点VNi分配到SNj并且开始分配下一个虚拟节点VNi+1,否则尝试下一个存储节点SNj+1,如此直至虚拟域1的所有虚拟节点已分配完成。
然后,执行将虚拟域2的虚拟节点映射到物理存储节点的过程,对于虚拟域2的虚拟节点VNi,判断是否将其映射到存储节点SNj。如果SNj已经分配的虚拟节点的数量小于阈值,并且虚拟域1的虚拟节点VNi未被分配到该节点则将虚拟节点VNi分配到SNj并且开始分配下一个虚拟节点VNi+1,否则尝试下一个存储节点SNj+1,如此直至虚拟域2的所有虚拟节点已分配完成。
然后,执行将虚拟域3的虚拟节点映射到物理存储节点的过程,对于虚拟域3的虚拟节点VNi,判断是否将其映射到存储节点SNj。如果SNj已经分配的虚拟节点的数量小于阈值,并且虚拟域1、虚拟域2的虚拟节点VNi未被分配到该节点则将虚拟节点VNi分配到SNj并且开始分配下一个虚拟节点VNi+1,否则尝试下一个存储节点SNj+1,如此直至虚拟域3的所有虚拟节点已分配完成。
在完成上述将每个虚拟域的虚拟节点映射到物理节点的过程后,就可以向逻辑存储空间写入文件或数据。
在该实例中,向Volume1写入文件的过程如下:
第一步:根据文件名或文件号计算哈希值H;
第二步:根据H将其映射到虚拟域1的虚拟节点,VNi;
第三步:将数据写入虚拟域1的虚拟节点VNi所对应的存储节点。
在该实例中,向Volume2写入文件的过程如下:
第一步:根据文件名或文件号计算哈希值H;
第二步:根据H将其映射到虚拟域1的虚拟节点,为VNi;
第三步:将数据写入虚拟域1的虚拟节点VNi所对应的存储节点。
第四步:将数据写入虚拟域2的虚拟节点VNi所对应的存储节点。
在该实例中,向Volume3写入文件的过程如下:
第一步:根据文件名或文件号计算哈希值H;
第二步:根据H将其映射到虚拟域1的虚拟节点,为VNi;
第三步:将数据写入虚拟域1的虚拟节点VNi所对应的存储节点。
第四步:将数据写入虚拟域2的虚拟节点VNi所对应的存储节点。
第五步:将数据写入虚拟域3的虚拟节点VNi所对应的存储节点。
通过以上实施方式的描述,本领域中的普通技术人员能够理解,在不偏离本发明的精神和范围的情况下,还可以对本发明的具体实施方式作各种变更和替换。这些变更和替换都落在本发明权利要求书所限定的范围内。
Claims (4)
1.一种分布式存储系统的数据布局方法,其特征在于,包括:
创建逻辑存储空间,
创建多个虚拟域,在所述多个虚拟域的每一个中设置多个虚拟节点,
创建多个物理存储节点,
对于所述多个虚拟域的每一个,将其中的多个虚拟节点的每一个映射到相应的物理存储节点。
2.如权利要求1所述的方法,其特征在于,
每一个虚拟域具有相同数量的虚拟节点,
每一个虚拟域的所有虚拟节点被标记,使得不同虚拟域之间具有相同标记的虚拟节点,
所述映射使得所述多个虚拟域的具有相同标记虚拟节点被映射到不同的物理存储节点。
3.如权利要求2所述的方法,其特征在于,
每一个虚拟域的所有虚拟节点根据虚拟节点的数量按序被标记。
4.如权利要求2或3所述的方法,其特征在于,
向所述逻辑存储空间写入文件包括:
根据所述文件产生哈希值,
将该哈希值映射到第一虚拟域的第一虚拟节点,
根据设置的文件副本数量,将该文件分别写入多个物理存储节点,所述多个物理存储节点分别对应于包括所述第一虚拟节点的多个虚拟节点,所述多个虚拟节点具有相同的标记。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410204711.0A CN105095290B (zh) | 2014-05-15 | 2014-05-15 | 一种分布式存储系统的数据布局方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410204711.0A CN105095290B (zh) | 2014-05-15 | 2014-05-15 | 一种分布式存储系统的数据布局方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105095290A true CN105095290A (zh) | 2015-11-25 |
CN105095290B CN105095290B (zh) | 2019-02-15 |
Family
ID=54575743
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410204711.0A Active CN105095290B (zh) | 2014-05-15 | 2014-05-15 | 一种分布式存储系统的数据布局方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105095290B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106560806A (zh) * | 2015-12-31 | 2017-04-12 | 哈尔滨安天科技股份有限公司 | 基于二维平面成角的文件存储方法及系统 |
WO2019028799A1 (zh) * | 2017-08-10 | 2019-02-14 | 华为技术有限公司 | 一种数据访问方法、装置和系统 |
CN111414422A (zh) * | 2020-03-19 | 2020-07-14 | 上海达梦数据库有限公司 | 一种数据分布方法、装置、设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009029792A2 (en) * | 2007-08-29 | 2009-03-05 | Nirvanix, Inc. | Method and system for global usage based file location manipulation |
CN102255962A (zh) * | 2011-07-01 | 2011-11-23 | 成都市华为赛门铁克科技有限公司 | 一种分布式存储方法、装置和系统 |
CN102904794A (zh) * | 2012-09-27 | 2013-01-30 | 北京邮电大学 | 一种虚拟网络映射方法和装置 |
US20130080488A1 (en) * | 2011-09-23 | 2013-03-28 | Alibaba Group Holding Limited | Management Apparatus and Method of Distributed Storage System |
CN103136114A (zh) * | 2011-11-30 | 2013-06-05 | 华为技术有限公司 | 存储方法及存储装置 |
-
2014
- 2014-05-15 CN CN201410204711.0A patent/CN105095290B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009029792A2 (en) * | 2007-08-29 | 2009-03-05 | Nirvanix, Inc. | Method and system for global usage based file location manipulation |
CN102255962A (zh) * | 2011-07-01 | 2011-11-23 | 成都市华为赛门铁克科技有限公司 | 一种分布式存储方法、装置和系统 |
US20130080488A1 (en) * | 2011-09-23 | 2013-03-28 | Alibaba Group Holding Limited | Management Apparatus and Method of Distributed Storage System |
CN103136114A (zh) * | 2011-11-30 | 2013-06-05 | 华为技术有限公司 | 存储方法及存储装置 |
CN102904794A (zh) * | 2012-09-27 | 2013-01-30 | 北京邮电大学 | 一种虚拟网络映射方法和装置 |
Non-Patent Citations (1)
Title |
---|
韩德志: "云环境下的虚拟化技术探析", 《华中科技大学学报(自然科学版)》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106560806A (zh) * | 2015-12-31 | 2017-04-12 | 哈尔滨安天科技股份有限公司 | 基于二维平面成角的文件存储方法及系统 |
WO2019028799A1 (zh) * | 2017-08-10 | 2019-02-14 | 华为技术有限公司 | 一种数据访问方法、装置和系统 |
US11416172B2 (en) | 2017-08-10 | 2022-08-16 | Huawei Technologies Co., Ltd. | Physical disk and virtual disk mapping in storage systems |
US11748037B2 (en) | 2017-08-10 | 2023-09-05 | Huawei Technologies Co., Ltd. | Physical disk and virtual disk mapping in storage systems |
CN111414422A (zh) * | 2020-03-19 | 2020-07-14 | 上海达梦数据库有限公司 | 一种数据分布方法、装置、设备和存储介质 |
CN111414422B (zh) * | 2020-03-19 | 2023-09-29 | 上海达梦数据库有限公司 | 一种数据分布方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105095290B (zh) | 2019-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104395904B (zh) | 高效的数据对象存储和检索 | |
CN103902669B (zh) | 一种基于不同存储介质的分离式文件系统 | |
CN103136114B (zh) | 存储方法及存储装置 | |
TWI544334B (zh) | 資料儲存裝置與資料儲存裝置操作方法 | |
CN101777026B (zh) | 一种存储管理方法、硬盘及存储系统 | |
EP2069979B1 (en) | Dynamic fragment mapping | |
CN103942161B (zh) | 只读缓存的去冗余系统及方法以及缓存的去冗余方法 | |
US10503692B2 (en) | Filter file system with inode number as primary database key | |
JP2010079886A5 (zh) | ||
CN104899154B (zh) | 基于嵌入式系统混合主存的页面管理方法 | |
CN105787037B (zh) | 一种重复数据的删除方法及装置 | |
CN103838853A (zh) | 一种基于不同存储介质的混合文件系统 | |
CN101493794A (zh) | 一种闪存数据处理方法及装置 | |
CN103164343B (zh) | 基于相变存储器的分页、ecc校验及多位预取方法及其结构 | |
CN105446664B (zh) | 一种对存储器进行文件存储方法和存储装置 | |
CN104714894A (zh) | 一种分层的基于随机映射的相变内存磨损均衡方法及系统 | |
CN102999441B (zh) | 一种细粒度内存访问的方法 | |
CN104731713A (zh) | 基于随机映射的相变内存磨损均衡方法及系统 | |
CN102999571A (zh) | 一种集群中单机多节点的实现方法 | |
CN104834477A (zh) | 基于闪存的数据写入方法和装置 | |
CN103714013A (zh) | 一种文件系统的存储空间的配置方法及装置 | |
CN105095290A (zh) | 一种分布式存储系统的数据布局方法 | |
CN106155580B (zh) | 一种基于嵌入式多媒体卡eMMC的存储方法及系统 | |
CN102253985A (zh) | 一种文件系统数据的管理方法及系统 | |
CN102763070B (zh) | 磁盘缓存的管理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |