CN108205573A - 一种数据分布式存储方法及系统 - Google Patents
一种数据分布式存储方法及系统 Download PDFInfo
- Publication number
- CN108205573A CN108205573A CN201611184440.2A CN201611184440A CN108205573A CN 108205573 A CN108205573 A CN 108205573A CN 201611184440 A CN201611184440 A CN 201611184440A CN 108205573 A CN108205573 A CN 108205573A
- Authority
- CN
- China
- Prior art keywords
- node
- partition holding
- storage
- partition
- data
- 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
- 238000000034 method Methods 0.000 title claims abstract description 30
- 238000005192 partition Methods 0.000 claims abstract description 129
- 238000013500 data storage Methods 0.000 claims abstract description 12
- 230000005012 migration Effects 0.000 claims abstract description 11
- 238000013508 migration Methods 0.000 claims abstract description 11
- 238000007726 management method Methods 0.000 claims description 17
- 230000003993 interaction Effects 0.000 claims description 11
- 238000012544 monitoring process Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 14
- 230000007246 mechanism Effects 0.000 description 13
- 238000005516 engineering process Methods 0.000 description 12
- 230000000875 corresponding effect Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 5
- 239000004744 fabric Substances 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 230000006855 networking Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000000151 deposition Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- MKXZASYAUGDDCJ-NJAFHUGGSA-N dextromethorphan Chemical compound C([C@@H]12)CCC[C@]11CCN(C)[C@H]2CC2=CC=C(OC)C=C21 MKXZASYAUGDDCJ-NJAFHUGGSA-N 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 230000009931 harmful effect Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 210000003739 neck Anatomy 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols 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]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据分布式存储方法及系统,涉及IT基础架构中的存储技术领域,所述方法包括:通过把存储系统配置成多个存储分区,将所述存储系统中所有参与数据存储的节点分别配置到相应的存储分区中;每个存储分区中的所有节点通过共享分区内的硬盘,实现数据在存储分区内的存储;所述存储系统中的所有存储分区通过互连,确定各存储分区的存储能力,并根据所确定的存储分区的存储能力,启动存储分区间的数据迁移操作。本发明实施例既具备share nothing架构高可扩展能力,又能够消除share nothing架构的网络瓶颈。
Description
技术领域
本发明涉及信息技术(Information Technology,IT)基础架构中的存储技术领域,特别涉及一种数据分布式存储方法及系统。
背景技术
1.存储集群架构分析
推动着存储系统发展的力量主要来自于两方面,一方面是对于存储系统的容量、性能和数据管理能力的越来越高的需求,另一方面是计算机基础软硬件的发展。
最早的服务器节点只使用本地存储介质保存数据,此时的本地存储容量和性能非常有限,独立于服务器的外置存储设备应运而生,很大程度上解决了容量和性能以及数据共享问题。
外置存储产品主要是以提供存储区域网络(Storage Area Network,SAN)和网络连接存储(Network Attached Storage,NAS)两种服务接口的磁阵设备,服务器通过存储网络访问存储设备。在近三十年的发展历程中,外置存储不断发展,以满足更大容量,更高性能以及更完善的数据管理需求。外置存储的架构也从单控,双控发展到多控集群。
随着存储介质的集成度越来越高,当前单个服务器节点可以轻松集成上百TB(Terabyte)的存储容量;固态硬盘(Solid State Drive,SSD)的使用使得单个服务器节点可以很容易达到每秒几十万读写操作(Input/Output Operations Per Second,IOPS)的存储性能;各类高性能互联(例如无限带宽技术(Infiniband,IB),万兆以太网(10GigabitEthernet,10GE),通用串行互连(PCI Express,PCIe)等)发展使得节点间的通讯带宽大大提升,时延大大减小。在这些技术发展背景下,基于服务器本地存储的分布式存储架构开始挑战外置存储市场。
从实施架构上,多控集群SAN/NAS以及分布式存储都属于存储集群系统,通过多个节点间的协作完成资源管理,对外体现为逻辑上的单个存储服务实体。集群的架构主要有以下几种类型:共享内存(share memory),共享硬盘(share disk),无共享(sharenothing)。
图1是现有技术提供的share memory的集群架构示意图,share memory架构中,集群中每节点各自有独立的中央处理器(Central Processing Unit,CPU),集群各节点间共享一个全局编址的内存池(Memory Pool),所有的数据读写访问都通过这个内存池,整体数据路径较短,性能较好,但节点间耦合非常紧密,高频的内存锁操作要求节点间通讯时延必须非常低,导致集群水平扩展能力很弱。
图2是现有技术提供的share disk的集群架构第一示意图,图3是现有技术提供的share disk的集群架构第二示意图,如图2和图3所示,share disk架构中,集群中每节点各自有独立的CPU和内存,集群各节点物理上都可以访问所有的硬盘。节点和硬盘一般有两种对应方式:一种方式是如图2所示的单个硬盘只归属于集群中一个节点,该方式正常时节点只管理和访问部分硬盘,在该硬盘的归属节点故障退出服务后,由集群中其他节点来接管该硬盘;另一种方式是如图3所示的硬盘不归属于单个节点,该方式所有节点可以访问所有硬盘,即所有节点都可以同时访问,使用分布式锁来实现多个节点对硬盘的访问互斥。前者节点间耦合较低,但节点间可能存在数据转发;后者节点间耦合较高,节点间数据不用转发,但节点间控制(锁,缓存控制等)交互较多。share disk架构硬件方面扩展规模有限,极少看到超过16个以上节点的共享硬盘架构集群。
图4是现有技术提供的share nothing的集群架构示意图,如图4所示,sharenothing架构中,集群中每个节点各自有独立的CPU,内存(Memory)和硬盘(Disk),集群中各个节点只能访问节点本地的硬盘资源,一个节点退出服务,这个节点下的存储资源就无法访问,数据冗余通过跨节点的多副本或者纠删码(Erase Code)方式实现;跨节点的数据访问通过节点间网络转发来实现。这种架构下集群硬件可以使用商用服务器,集群中节点间软硬件耦合较小,系统具有良好的可扩展性;另一方面,由于数据转发和数据跨节点冗余带来的跨节点的通讯量比较大,导致性能不理想。
传统的SAN/NAS集群多采用共享内存(例如HDS USP)或者共享硬盘架构(例如IBMGPFS),使用专用的硬件。分布式存储一般基于商用服务器硬件,采用无共享架构(例如Redhat Gluster等),系统扩展能力高,同时实现存储软件和硬件的分离,提升架构灵活性,降低系统总体成本。
2.share nothing架构下的网络开销分析
share nothing存储架构下,每个节点管理自己本地的硬盘资源,各节点间通过网络互联。
各节点间存在管理交互和数据转发。管理交互主要是集群节点状态信息的交互,这部分属于日常管理开销,对于通讯带宽开销较小,这里不做进一步分析。数据转发主要有两部分,一部分是由于用户访问接入点与数据实际驻留的节点不同,导致的数据在节点间的转发;另一部分是由于系统中数据冗余机制导致的数据在节点间的转发。
用户访问接入点与数据实际驻留的节点不同,导致节点转发数据,根据系统数据分布和索引机制,这种节点间的转发可能是一次或多次。这个问题已经有一些解决方案,例如,Ceph通过与用户共享存储集群中的数据分布信息,使得用户可以根据所访问数据直接索引到集群中数据驻留的对应节点,从而消除此类数据转发。
由于share nothing存储架构中,每个节点只能管理本地的存储资源,一旦某个节点退出服务,则此节点上的存储资源也跟着退出服务。为了避免单个节点退出服务导致数据丢失,这种架构下,需要采用跨节点的数据冗余机制。当前最为主要的跨节点数据冗余机制有副本(Copies)和纠删码(Erase Code)两种。
图5是现有技术提供的副本冗余方式示意图,如图5所示,副本机制是同一份数据在系统里的两个或者多个节点上保留副本。在数据写入流程中,同一份数据的多个副本写入系统中,此时成倍增加系统网络开销和空间开销。另一方面,某个节点退出服务,为了恢复冗余,系统自动在其他节点上重建这个节点上的副本。例如图5中节点Node1退出服务,Node1上的对应数据块冗余度下降,系统需要通过重建过程来恢复这些数据块的副本冗余。例如数据块Data1的重建,需要从Node2读出Data1,写入到还在正常工作的node3~nodex中的任何一个上,使得系统恢复Data1的副本冗余。这个重建过程会带来额外的网络开销。
副本机制空间开销较大,纠删码可以降低冗余空间开销,图6是现有技术提供的纠删码冗余方式示意图,如图6所示,纠删码类似磁盘阵列(Redundant Arrays ofIndependent Disks,RAID)技术,将数据按条带(Strip)组织,每个条带由多个固定大小的数据块组成,每个条带中,分别有固定数目的数据块存放用户数据(例如m)和效验数据(例如n)。写入数据的流程中,将同一个条带的不同数据块存放在不同Node上,条带里写一份数据,会同时写条带上对应的效验数据,从而带来额外的网络开销。当某个Node退出服务时,可以根据条带上剩余的数据块,重构出退出服务Node上的数据块,并将重构出的数据块写入系统中其他Node,从而恢复数据冗余,这个恢复过程也会带来额外的网络开销。例如图6中Node1退出服务,Strip1-D1的重建过程如下:从系统内其他正常工作节点上读取Strip1中至少n个数据块,计算出Strip1-D1的值,再将其写入到系统内仍正常工作的,且还没有存放Strip1数据块的节点上,从而恢复Strip1的冗余。
无论副本机制还是纠删码机制,在写入流程和重建流程中,都存在大量的节点间数据传递,带来网络开销,这个开销总体上与所需要写入和重建的数据量成正比。在写占比高的应用场景,由于数据冗余机制带来的网络开销,不仅对性能造成不良影响,而且也会要求集群内部通讯网络带宽与集群对外服务接口带宽相同或者更高,从而带来集群组网的复杂度和成本上升。
发明内容
根据本发明实施例提供的一种数据分布式存储方法及系统,既具备sharenothing架构高可扩展能力,又能够消除share nothing架构的网络瓶颈。
根据本发明实施例提供的一种数据分布式存储方法,包括:
通过把存储系统配置成多个存储分区,将所述存储系统中所有参与数据存储的节点分别配置到相应的存储分区中;
每个存储分区中的所有节点通过共享分区内的硬盘,实现数据在存储分区内的存储;
所述存储系统中的所有存储分区通过互连,确定各存储分区的存储能力,并根据所确定的存储分区的存储能力,启动存储分区间的数据迁移操作。
优选地,所述的将所述存储系统中所有参与数据存储的节点分别配置到相应的存储分区中包括:
根据每个存储分区的可靠性指标,确定每个存储分区所需的节点数量,并将相应数量的节点配置到每个存储分区。
优选地,所述的每个存储分区中的所有节点通过共享分区内的硬盘,实现数据在存储分区内的存储包括:
将每个存储分区中所有硬盘分别配置给分区中相应的节点,使分区中的相应节点各自独占若干硬盘;
将同一数据对象的冗余数据存储在同一个节点的不同硬盘中。
优选地,所述的存储系统中的所有存储分区通过互连,确定各存储分区的存储能力,并根据所确定的存储分区的存储能力,启动存储分区间的数据迁移操作包括:
通过交互所有存储分区的节点的管理信息,确定各存储分区的存储能力;
根据所确定的各存储分区的存储能力,确定各存储分区的存储能力是否充足;
若存在存储能力不足的存储分区,则将所述存储能力不足的存储分区的部分数据迁移至其它具有充足存储能力的存储分区。
优选地,在所述的确定各存储分区的存储能力之前,还包括:
通过交互每个存储分区中各个节点的管理信息,监控每个存储分区中各个节点的状态;
当监控到一个节点退出工作状态时,从所述退出工作状态的节点所在存储分区中选取其它正常工作的节点作为接管节点,并由所述接管节点接管所述退出工作状态的节点管理的所有硬盘。
优选地,从所述退出工作状态的节点所在存储分区中随机选取接管节点。
优选地,根据负载均衡算法,从所述退出工作状态的节点所在存储分区中选取负载最小的一个或多个接管节点。
优选地,从所述退出工作状态的节点所在存储分区中,选取与所述退出工作状态的节点的物理距离最小的一个或多个接管节点。
优选地,还包括:
监控每个节点管理的所有硬盘;
当监控到某一节点管理的硬盘退出工作状态时,利用所述节点管理的其它硬盘重建所述退出工作状态的硬盘的数据。
根据本发明实施例提供的存储介质,其存储用于实现上述数据分布式存储方法的程序。
根据本发明实施例提供的一种数据分布式存储系统,包括:
多个节点,用于参与数据存储;
多个存储分区,通过对所述多个节点进行分区配置而形成,其每个存储分区被配置有至少两个节点;
系统集群网络,用于将所述多个存储分区进行互联,以便确定各存储分区的存储能力,并根据所确定的存储分区的存储能力,启动存储分区间的数据迁移操作;
多个分区集群网络,其每个分区集群网络对应一个存储分区,用于使该存储分区中的所有节点共享分区中的硬盘,实现数据在存储分区中的存储。
本发明实施例提供的技术方案具有如下有益效果:
1.本发明实施例既满足数据分布式存储系统的高性能要求,又满足高扩展能力要求;
2.本发明能够大大减小数据分布式存储系统中由于数据冗余机制导致的节点间数据转发,有效隔离故障对系统的影响范围。
附图说明
图1是现有技术提供的share memory的集群架构示意图;
图2是现有技术提供的share disk的集群架构第一示意图,该方式正常时节点只管理和访问部分硬盘;
图3是现有技术提供的share disk的集群架构第二示意图,该方式所有节点可以访问所有硬盘;
图4是现有技术提供的share nothing的集群架构示意图;
图5是现有技术提供的副本冗余方式示意图;
图6是现有技术提供的纠删码冗余方式示意图;
图7是本发明实施例提供的数据分布式存储方法流程图;
图8是本发明实施例提供的数据分布式存储系统框图;
图9是本发明实施例提供的数据分布式存储系统架构图。
具体实施方式
以下结合附图对本发明的优选实施例进行详细说明,应当理解,以下所说明的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
图7是本发明实施例提供的数据分布式存储方法流程图,如图7所示,步骤包括:
步骤S101:通过把存储系统配置成多个存储分区,将所述存储系统中所有参与数据存储的节点分别配置到相应的存储分区中。
步骤S101包括:根据每个存储分区的可靠性指标,确定每个存储分区所需的节点数量,并将相应数量的节点配置到每个存储分区,使存储分区中的一个或以上节点退出服务后,该存储分区仍能够提供服务。
步骤S102:每个存储分区中的所有节点通过共享分区内的硬盘,实现数据在存储分区内的存储。
步骤S102包括:将每个存储分区中所有硬盘分别配置给分区中相应的节点,使分区中的相应节点各自独占若干硬盘,将同一数据对象的冗余数据存储在同一个节点的不同硬盘中。也就是说,本实施例在同一个节点上实现数据的冗余机制。
步骤S103:所述存储系统中的所有存储分区通过互连,确定各存储分区的存储能力,并根据所确定的存储分区的存储能力,启动存储分区间的数据迁移操作。
步骤S103包括:通过交互每个存储分区中各个节点的管理信息,监控每个存储分区中各个节点的状态,当监控到一个节点退出工作状态时,从所述退出工作状态的节点所在存储分区中选取其它正常工作的节点作为接管节点,并由所述接管节点接管所述退出工作状态的节点管理的所有硬盘。然后通过交互所有存储分区的节点的管理信息,确定各存储分区的存储能力,然后根据所确定的各存储分区的存储能力,确定各存储分区的存储能力是否充足,如果存在存储能力不足的存储分区,则将所述存储能力不足的存储分区的部分数据迁移至其它具有充足存储能力的存储分区。其中选取接管节点的方式可以采用以下几种:1.随机选取接管节点;2.根据负载均衡算法,选取接管节点;3.根据与所述退出工作状态的节点的物理距离,选取距离最小接管节点。
本实施例在节点退出服务时,通过优先在其所在分区内接管该节点的存储资源,大大减小了数据迁移量。
本实施例的多个分区间采用无共享架构,使得系统具有较好的横向扩展能力。
本实施例还可以监控每个节点管理的所有硬盘,如果监控到某一节点管理的硬盘退出工作状态,由于本实施例在单个节点内实现数据冗余机制,因此利用该节点管理的其它硬盘重建所述退出工作状态的硬盘的数据即可。
本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,该程序在执行时,包括步骤S101至步骤S103。其中,所述的存储介质可以为ROM/RAM、磁碟、光盘等。
图8是本发明实施例提供的数据分布式存储系统框图,如图8所示,包括:
多个节点,用于参与数据存储;
多个存储分区,通过对所述多个节点进行分区配置而形成,其每个存储分区被配置有至少两个节点;
系统集群网络,用于将所述多个存储分区进行互联,以便确定各存储分区的存储能力,并根据所确定的存储分区的存储能力,启动存储分区间的数据迁移操作;
多个分区集群网络,其每个分区集群网络对应一个存储分区,用于使该存储分区中的所有节点共享分区中的硬盘,实现数据在存储分区中的存储。
图8中,在存储系统中,具有多个存储分区,所述多个存储分区间通过系统集群网络互连。在每个存储分区中,每个节点各自具有独立的CPU、内存和硬盘,各个节点通过该存储分区对应的分区集群网络互连。
下面将存储系统和存储分区分别简称为系统和分区。
从硬盘端观察,整个存储系统内的硬件节点分为多个分区,每个分区内的节点采用共享硬盘架构;分区间采用无共享架构。从存储应用观察,系统能够以分区为单位做水平扩展,具备良好的横向扩展(scale-out)特征。
系统正常工作情况下,一个数据对象存储在一个分区中,这个数据对象的冗余机制在一个节点内实现,冗余数据分布和冗余的管理(例如效验,重构等)都在一个节点内处理,冗余机制不产生节点间的通讯。节点发生故障退出服务,由分区内的其他节点接管故障节点的存储资源,这个接管过程只需要传递控制信息,没有所存储数据的跨节点转发。分区中发生故障,如果仍有足够冗余能力,则数据对象继续存储在该分区中,不影响其他分区;当分区中发生的故障,导致该分区无法保证最低冗余时,数据对象迁移到其他分区中。
图9是本发明实施例提供的数据分布式存储系统架构图,如图9所示,整个系统由多个分区(Zone)组成。每个分区中包含多个节点(至少2个),每个节点有自己的CPU和内存,这些节点的硬件可以是开放的商用服务器硬件(COTS)或者是封闭的专有硬件。每个分区中的节点数,应根据系统的可用性指标来决定,例如系统可靠性指标要求系统在任何n个节点失效后仍然可以正常服务,则每个分区的节点数不应小于n+1。
整个系统中的所有节点,由集群网络Fabric 1互联,根据当前技术现实,Fabric1可以是GE/10GE交换网络、InfiniteBand交换网络、PCIe交换网络等。需要说明的是,Fabric1是一种逻辑互联方式,根据应用需求,实施时可以通过双平面组网等方式提升网络可用性。
系统各节点上都运行集群管理软件,该软件通过各节点间的相互管理交互,来确定各个节点的工作状态,在节点退出服务或者恢复服务时,更新集群成员状态。该集群管理软件已有相关技术实现,例如Ceph的Monitor等,其机制不在本发明实施例描述。
每个分区内,由Fabric 2交换网络连接所有的节点和硬盘资源,根据当前技术现实,Fabric 2可以是SAS交换网络、以太网络、PCIe交换网络等。同样的,实施时,Fabric 2可通过双平面组网等方式提升网络可用性。
正常工作时,分区内通过硬件或者软件进行配置,例如通过SAS Zone技术、以太网的VLAN技术等网络配置技术,相关技术不在本申请描述,使得一个分区内的不同节点各自独占一部分硬盘资源,不同节点并不同时访问同一个硬盘。也就是正常工作状态下,系统逻辑上是无共享架构。
但与前述无共享架构不同的是,本实施例中,系统中数据存储并不采用跨节点的冗余方式,所有的数据冗余机制在单个节点内完成。因此,本实施例中不会出现前述无共享架构中由于采用多副本或者纠删码等跨节点冗余机制导致的网络开销。
本实施例中,数据冗余在单个节点管理的不同硬盘间实现,可以采用RAID技术,也可以在多个硬盘间采用多副本,纠删码等冗余方式。同时,根据应用对于冗余的要求选择不同的RAID级别,不同副本数,不同效验数目。单节点内的冗余机制使得单个节点下单个或者多个硬盘退出服务时,该节点上的用户数据不会丢失;而且在单个或者多个硬盘退出服务后,节点上启动重建流程,尝试恢复数据冗余度,保证数据安全。此处描述的节点内的冗余技术,例如RAID、多副本、纠删码等属于已有技术,不在本发明实施例中描述。
本实施例中,数据冗余机制在单个节点下生效,也就是说,数据本身和相关的冗余都放在同一个节点下管理。因此,正常情况下,单个节点下保存的用户数据只能通过该节点进行访问。在某个节点故障退出服务时,这个节点下的硬盘上的数据将无法通过该节点继续访问。系统的集群管理软件发现节点退出服务后,系统选择分区内其他正常节点接管该故障节点下的所有硬盘,使得可以通过该接管节点对该故障节点管理的所有数据进行访问。
节点故障后,系统在分区内选择接管节点,可以采取但不限于如下方式:1)随机选择;2)根据负荷均衡原则选择分区内当前负荷最轻的节点;3)选择分区内物理位置距故障节点最近的节点。
在分区内多个节点故障时,分区内其他节点接管该故障节点的硬盘后,系统判断分区内所剩节点的存储服务能力是否足够,如果分区内所剩节点提供服务能力不足,则系统启动分区间的数据迁移,在系统的不同分区间进行负荷均衡。分区间的负载均衡算法直接依赖分布式存储系统数据分布算法,例如Ceph存储系统的CRUSH算法。由于该数据分布算法并不是本发明实施例覆盖的内容,因此本发明实施例不再描述。
综上所述,本发明的实施例具有以下技术效果:
本发明实施例既具备share nothing架构高可扩展能力,又能够消除sharenothing架构的网络瓶颈。
尽管上文对本发明进行了详细说明,但是本发明不限于此,本技术领域技术人员可以根据本发明的原理进行各种修改。因此,凡按照本发明原理所作的修改,都应当理解为落入本发明的保护范围。
Claims (10)
1.一种数据分布式存储方法,包括:
通过把存储系统配置成多个存储分区,将所述存储系统中所有参与数据存储的节点分别配置到相应的存储分区中;
每个存储分区中的所有节点通过共享分区内的硬盘,实现数据在存储分区内的存储;
所述存储系统中的所有存储分区通过互连,确定各存储分区的存储能力,并根据所确定的存储分区的存储能力,启动存储分区间的数据迁移操作。
2.根据权利要求1所述的方法,所述的将所述存储系统中所有参与数据存储的节点分别配置到相应的存储分区中包括:
根据每个存储分区的可靠性指标,确定每个存储分区所需的节点数量,并将相应数量的节点配置到每个存储分区。
3.根据权利要求1所述的方法,所述的每个存储分区中的所有节点通过共享分区内的硬盘,实现数据在存储分区内的存储包括:
将每个存储分区中所有硬盘分别配置给分区中相应的节点,使分区中的相应节点各自独占若干硬盘;
将同一数据对象的冗余数据存储在同一个节点的不同硬盘中。
4.根据权利要求1所述的方法,所述的存储系统中的所有存储分区通过互连,确定各存储分区的存储能力,并根据所确定的存储分区的存储能力,启动存储分区间的数据迁移操作包括:
通过交互所有存储分区的节点的管理信息,确定各存储分区的存储能力;
根据所确定的各存储分区的存储能力,确定各存储分区的存储能力是否充足;
若存在存储能力不足的存储分区,则将所述存储能力不足的存储分区的部分数据迁移至其它具有充足存储能力的存储分区。
5.根据权利要求4所述的方法,在所述的确定各存储分区的存储能力之前,还包括:
通过交互每个存储分区中各个节点的管理信息,监控每个存储分区中各个节点的状态;
当监控到一个节点退出工作状态时,从所述退出工作状态的节点所在存储分区中选取其它正常工作的节点作为接管节点,并由所述接管节点接管所述退出工作状态的节点管理的所有硬盘。
6.根据权利要求5所述的方法,从所述退出工作状态的节点所在存储分区中随机选取接管节点。
7.根据权利要求5所述的方法,根据负载均衡算法,从所述退出工作状态的节点所在存储分区中选取负载最小的一个或多个接管节点。
8.根据权利要求5所述的方法,从所述退出工作状态的节点所在存储分区中,选取与所述退出工作状态的节点的物理距离最小的一个或多个接管节点。
9.根据权利要求1-8任意一项所述的方法,还包括:
监控每个节点管理的所有硬盘;
当监控到某一节点管理的硬盘退出工作状态时,利用所述节点管理的其它硬盘重建所述退出工作状态的硬盘的数据。
10.一种数据分布式存储系统,包括:
多个节点,用于参与数据存储;
多个存储分区,通过对所述多个节点进行分区配置而形成,其每个存储分区被配置有至少两个节点;
系统集群网络,用于将所述多个存储分区进行互联,以便确定各存储分区的存储能力,并根据所确定的存储分区的存储能力,启动存储分区间的数据迁移操作;
多个分区集群网络,其每个分区集群网络对应一个存储分区,用于使该存储分区中的所有节点共享分区中的硬盘,实现数据在存储分区中的存储。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611184440.2A CN108205573B (zh) | 2016-12-20 | 2016-12-20 | 一种数据分布式存储方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611184440.2A CN108205573B (zh) | 2016-12-20 | 2016-12-20 | 一种数据分布式存储方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108205573A true CN108205573A (zh) | 2018-06-26 |
CN108205573B CN108205573B (zh) | 2023-04-14 |
Family
ID=62603215
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611184440.2A Active CN108205573B (zh) | 2016-12-20 | 2016-12-20 | 一种数据分布式存储方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108205573B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110149384A (zh) * | 2019-05-09 | 2019-08-20 | 北京猫盘技术有限公司 | 基于网络存储设备集群的数据分布式存储方法及装置 |
CN112162698A (zh) * | 2020-09-17 | 2021-01-01 | 北京浪潮数据技术有限公司 | 一种缓存分区重建方法、装置、设备及可读存储介质 |
CN112486418A (zh) * | 2020-12-14 | 2021-03-12 | 重庆邮电大学 | 一种基于Ceph纠删码的异构混合负载均衡存储方法 |
CN112711382A (zh) * | 2020-12-31 | 2021-04-27 | 百果园技术(新加坡)有限公司 | 基于分布式系统的数据存储方法、装置和存储节点 |
WO2023103685A1 (en) * | 2021-12-08 | 2023-06-15 | International Business Machines Corporation | Generating multi-dimensional host-specific storage tiering |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070208790A1 (en) * | 2006-03-06 | 2007-09-06 | Reuter James M | Distributed data-storage system |
US20130318297A1 (en) * | 2012-05-24 | 2013-11-28 | Netapp, Inc. | Network storage systems having clustered raids for improved redundancy and load balancing |
CN103797770A (zh) * | 2012-12-31 | 2014-05-14 | 华为技术有限公司 | 一种共享存储资源的方法和系统 |
US20150356005A1 (en) * | 2014-06-04 | 2015-12-10 | Pure Storage, Inc. | Automatically reconfiguring a storage memory topology |
CN105357294A (zh) * | 2015-10-31 | 2016-02-24 | 成都华为技术有限公司 | 一种存储数据的方法及集群管理节点 |
-
2016
- 2016-12-20 CN CN201611184440.2A patent/CN108205573B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070208790A1 (en) * | 2006-03-06 | 2007-09-06 | Reuter James M | Distributed data-storage system |
US20130318297A1 (en) * | 2012-05-24 | 2013-11-28 | Netapp, Inc. | Network storage systems having clustered raids for improved redundancy and load balancing |
CN103797770A (zh) * | 2012-12-31 | 2014-05-14 | 华为技术有限公司 | 一种共享存储资源的方法和系统 |
US20150356005A1 (en) * | 2014-06-04 | 2015-12-10 | Pure Storage, Inc. | Automatically reconfiguring a storage memory topology |
CN105357294A (zh) * | 2015-10-31 | 2016-02-24 | 成都华为技术有限公司 | 一种存储数据的方法及集群管理节点 |
Non-Patent Citations (1)
Title |
---|
章宏灿等: "一种可扩展分布式RAID存储集群系统", 《计算机研究与发展》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110149384A (zh) * | 2019-05-09 | 2019-08-20 | 北京猫盘技术有限公司 | 基于网络存储设备集群的数据分布式存储方法及装置 |
CN112162698A (zh) * | 2020-09-17 | 2021-01-01 | 北京浪潮数据技术有限公司 | 一种缓存分区重建方法、装置、设备及可读存储介质 |
CN112162698B (zh) * | 2020-09-17 | 2024-02-13 | 北京浪潮数据技术有限公司 | 一种缓存分区重建方法、装置、设备及可读存储介质 |
CN112486418A (zh) * | 2020-12-14 | 2021-03-12 | 重庆邮电大学 | 一种基于Ceph纠删码的异构混合负载均衡存储方法 |
CN112486418B (zh) * | 2020-12-14 | 2022-10-18 | 重庆邮电大学 | 一种基于Ceph纠删码的异构混合负载均衡存储方法 |
CN112711382A (zh) * | 2020-12-31 | 2021-04-27 | 百果园技术(新加坡)有限公司 | 基于分布式系统的数据存储方法、装置和存储节点 |
CN112711382B (zh) * | 2020-12-31 | 2024-04-26 | 百果园技术(新加坡)有限公司 | 基于分布式系统的数据存储方法、装置和存储节点 |
WO2023103685A1 (en) * | 2021-12-08 | 2023-06-15 | International Business Machines Corporation | Generating multi-dimensional host-specific storage tiering |
US11836360B2 (en) | 2021-12-08 | 2023-12-05 | International Business Machines Corporation | Generating multi-dimensional host-specific storage tiering |
Also Published As
Publication number | Publication date |
---|---|
CN108205573B (zh) | 2023-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108205573A (zh) | 一种数据分布式存储方法及系统 | |
CN103763383B (zh) | 一体化云存储系统及其存储方法 | |
CN109857445A (zh) | 存储系统和控制软件配置方法 | |
US7032131B2 (en) | System and method for ensuring merge completion in a storage area network | |
CN107544862B (zh) | 一种基于纠删码的存储数据重构方法和装置、存储节点 | |
CN108696569A (zh) | 在NVMe-oF以太网SSD中提供数据复制的系统和方法 | |
US6928513B2 (en) | System and method for managing data logging memory in a storage area network | |
CN106909312A (zh) | 用于控制从存储系统读取数据的方法和装置 | |
CN100396065C (zh) | 一种iSCSI存储系统的实现方法 | |
US6947981B2 (en) | Flexible data replication mechanism | |
US6934826B2 (en) | System and method for dynamically allocating memory and managing memory allocated to logging in a storage area network | |
US20190235978A1 (en) | Data Protection Cluster System Supporting Multiple Data Tiers | |
CN108551765A (zh) | 输入/输出隔离优化 | |
CN108153622A (zh) | 一种故障处理的方法、装置和设备 | |
CN106685743A (zh) | 区块链集群处理系统和方法 | |
CN105472047B (zh) | 存储系统 | |
CN106227464B (zh) | 一种双层冗余存储系统及其数据写入、读取及恢复方法 | |
CN205490680U (zh) | 基于通用服务器和通用交换机的高可用云计算系统 | |
JP4121255B2 (ja) | クラスタ構成記憶システム | |
CN110383251A (zh) | 存储系统、计算机可读记录介质、系统的控制方法 | |
CN105872031B (zh) | 存储系统 | |
CN113326006B (zh) | 一种基于纠删码的分布式块存储系统 | |
CN109582495A (zh) | 双向复制 | |
CN109144972A (zh) | 一种数据迁移的方法以及数据节点 | |
CN105867842A (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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20240717 Address after: No. 1, Mulong Middle Road, Jiangning Street, Jiangning District, Nanjing, Jiangsu 210000 Patentee after: ZTE Intelligent Technology Nanjing Co.,Ltd. Country or region after: China Address before: 518057 Zhongxing building, science and technology south road, Nanshan District hi tech Industrial Park, Guangdong, Shenzhen Patentee before: ZTE Corp. Country or region before: China |