CN106993064A - 一种基于Openstack云平台实现海量数据可伸缩性存储的系统及其构建方法与应用 - Google Patents
一种基于Openstack云平台实现海量数据可伸缩性存储的系统及其构建方法与应用 Download PDFInfo
- Publication number
- CN106993064A CN106993064A CN201710410439.5A CN201710410439A CN106993064A CN 106993064 A CN106993064 A CN 106993064A CN 201710410439 A CN201710410439 A CN 201710410439A CN 106993064 A CN106993064 A CN 106993064A
- Authority
- CN
- China
- Prior art keywords
- data
- storage
- couchdb
- component
- openstack
- 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.)
- Pending
Links
Classifications
-
- 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]
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- 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/065—Replication mechanisms
-
- 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]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- 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/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- 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/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- 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/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于Openstack云平台实现海量数据可伸缩性存储的系统及其构建方法与应用。本发明基于Openstack云平台,结合CouchDB技术和Openstack的可扩展的存储方案。以Openstack云平台作为基础设施,在该平台上构建CouchDB数据库集群。一方面,充分利用Openstack云平台组件和虚拟化技术构建良好的数据存储平台,满足可扩展性的需求;另一方面,利用CouchDB数据库的存储优势,构建数据库集群,通过复制机制同步数据,满足一致性需求。
Description
技术领域
本发明涉及一种基于Openstack云平台实现海量数据可伸缩性存储的系统及其构建方法与应用,属于云环境下存储优化的技术领域。
背景技术
云存储是在云计算(cloud computing)概念上延伸和衍生发展出来的一个新的概念,也是云计算应用在存储领域的产物。云存储通过集群应用、网格技术或分布式系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协调工作,共同对外提供数据存储和业务访问功能,从而保证了数据的安全性,并节约存储空间。云存储系统的结果模型由4层组成:
(1)存储层:是云存储最基础的部分。存储设备可以是FC光纤通道,可以是NAS和ISCSI等IP存储设备,也可以是SAS等DAS存储设备。云存储中的存储设备往往数量庞大且分布在不同地域,彼此通过广域网、互联网连接在一起。
(2)基础管理层:这是云存储最核心的部分,也是云存储中最难以实现的部分。基础管理层通过集群、分布式文件系统和网格计算等技术,实现云存储中多个存储设备之间的协同工作,使多个存储设备可以对外提供同一种服务,并提供更大更强更好的数据访问性能。
(3)应用接口层:这是云存储中最灵活多变的部分。不同的云存储运营单位可以根据实际业务类型,开发不同的应用服务接口,提供不同的应用服务。比如视频监控应用平台、网络硬盘应用平台、远程数据备份应用平台等。
(4)访问层:任何一个授权用户都可以通过标准的公用应用接口来登录云存储系统,享受云存储服务。云存储运营单位不同,云存储提供的访问类型和访问手段也不同。
Openstack是一种开源的基础设施及服务的云计算平台。2010年7月以Apache2.0许可授权开源,源代码来自于NASA的Nebula云平台和Rackspace的分布式云存储(Swift)项目。从最早的Essex版本,Openstack社区已经推出了14个版本,其对应的组件也不断完善。目前,Openstack的最新的版本Newton由Nova、Glance、Cinder、Keystone、Horizon、Netron等六个核心模块组成。一方面,这些模块分别独立地提供各自不同的基础服务功能。
另一个方面,各个组件之间又互相联系,共同合作,旨在为所有类型的云提供简单可实现、大规模可扩展的云主机管理方案。
CouchDB(Cluster Of Unreliable Commodity Hardware),是一个开源的面向文档的数据库管理系统,可以通过RESETful JavaScript Object Notation(JSON)API访问。具有高度可伸缩性,提供了高可用性和高可靠性,即使运行在容易出现故障的硬件上也是如此。CouchDB是基于JSON和REST的面向文档的分布式数据库,其最大的意义在于它是一个面向web应用的新一代存储系统。具有如下特点:
(1)CouchDB是分布式的数据库,它可以把存储系统分布到n台物理节点上,并且很好的协调和同步节点之间的数据读写一致性。对于基于web的大规模应用文档应用,分布式可以让它不必像传统的关系数据库那样分库拆表,在应用代码层进行大量的改动。
(2)CouchDB是面向文档的数据库,存储半结构化的数据,比较类似lucene的index结构,特别适合存储文档,因此很适合CMS、电话本、地址等应用,在这些应用场合,文档数据库比关系数据库要更加方便。
(3)CouchDB支持REST API,可以让用户通过javaScript来操作CouchDB数据库,也可以使用javaScript编写查询语句,这样开发的系统操作会很简单和方便。
CouchDB文档数据以JSON格式的文档存储在数据库中,每个文档通过唯一ID和版本号标识。因此,CouchDB可以在同一数据库中存储任意格式的数据文档,满足不同格式的数据存储需求。
随着互联网的发展与数据量的增加,越来越多的企业和用户利用云存储解决数据存储问题,网络中的数据呈指数级增长,这些数据来自不同的领域,有着各种不同格式。对于这样的格式多样的海量数据而言,传统的集中式存储方案已经无法满足现有的存储需求。采用分布式存储技术,通过添加节点的方式动态伸缩以保证可扩展性,已经成为必然的选择。NoSQL做为云存储的解决方法之一,没有表结构和数据类型的约束,提供数据实时存储、检索和维护,满足海量数据存储的并发性、高可用性和可扩展性,成为重点考虑的对象。作为NoSQL的典型代表,CouchDB既可以扩展移植到移动设备上,同时也支持分布式节点的精确同步复制,确保了大量数据的存储和查询性能。然而,CouchDB结构简单,不支持自主扩展,可伸缩性差,应用过程中可能由于资源不足导致节点失效。所以,寻找一种既能够充分利用CouchDB数据库的优越性,同时也可以克服其缺点的云存储方案,十分必要。
发明内容
针对现有技术的不足,本发明提供一种基于Openstack云平台实现海量数据可伸缩性存储的系统。
本发明还提供一种上述存储系统的构建方法。
本发明还提供一种利用上述系统进行数据检索的方法。
发明概述:
针对传统的集中式存储方案已经无法满足现有的存储需求,本发明提出了一种基于Openstack云平台,结合CouchDB技术和Openstack的可扩展的存储方案。其核心是以Openstack云平台作为基础设施,在该平台上构建CouchDB数据库集群。一方面,充分利用Openstack云平台组件和虚拟化技术构建良好的数据存储平台,满足可扩展性的需求;另一方面,利用CouchDB数据库的存储优势,构建数据库集群,通过复制机制同步数据,满足一致性需求。
本发明的技术方案为:
一种基于Openstack云平台实现海量数据可伸缩性存储的系统,包括基础设施模块、数据存储模块和数据检索模块;基础设施模块对计算资源、存储资源和网络资源进行管理并对用户身份进行认证;数据存储模块实现数据弹性存储和维护;数据弹性存储通过构建CouchDB数据库集群实现,所述CouchDB数据库集群利用openstack云平台提供的云主机构建,采用扁平化结构部署;每台云主机构建一个CouchDB数据库,提供数据存储与检索功能;所述openstack云平台上的云主机通过CouchDB的复制机制实现对等。所述复制机制,是涉及到两个数据库之间的一种增量处理方法,旨在将源数据库中所有活跃的文档复制到目标数据库中,从而实现各CouchDB实例之间互相同步。
根据本发明优选的,CouchDB的复制机制对于实现分布式数据复制包括一次性复制和持久性复制;一次性复制发送POST请求到指定数据库的_replicate URL;其中,请求题为JSON文档,包含以下内容:
POST/_replicate HTTP/1.1
{“source”:“example-database”,“target”:“http://example.org/example-database”};
source与target分别表示复制的源数据库和目的数据库。其中,可以只使用数据库名字表示一个本地数据库,而使用一个完整的URL地址来表示一个远程数据库。
根据本发明优选的,基础设施模块包括主控制节点和计算节点;主控制节点管理和监控整个Openstack云平台,提供用户界面功能、RESTful API功能、网络资源管理功能和安全认证功能;计算节点为用户提供云主机资源和存储资源,提供云主机管理功能、虚拟网络管理功能和数据存储功能。利用Openstack各组件间的松耦合的特点,基础设施模块结构的设计包括两类节点。主控制节点不参与云主机、存储设备及计算的实际操作。用户界面功能使得用户能够更方便、更简单地使用和操作。
进一步优选的,计算节点包括KVM模块、neutron模块和nova模块;通过配置计算节点的nova模块,在nova.conf配置文件中添加主控制节点的IP及主控制节点中keystone的认证令牌tenant,实现主控制节点对计算节点的控制操作。
进一步优选的,所述安全认证功能包括openstack权限管理、用户身份认证、组件服务的注册和访问端点的注册。
根据本发明优选的,数据检索模块通过CouchDB视图实现文档检索,CouchDB视图通过JavaScript函数定义,并保存于design documents文档中;数据检索模块通过MapReduce运行。CouchDB视图的功能与关系型数据库中的视图功能类似,用于动态地聚合和呈现同一个数据库中的数据,CouchDB中对数据的查询和索引在查询视图的过程中同时完成,即对数据的查询过程也是一个索引过程。
进一步优选的,CouchDB视图要完成的文档过滤和索引描述,在design documents中的map和reduce函数中定义;其中,Map函数实现对数据的过滤或者查询,reduce函数实现对Map函数返回结果的聚合。CouchDB中的视图均是通过JavaScript进行保存,并且对design documents的写法有严格的要求。design documents文档与普通的JSON文档一样,可以存储在数据库中并被复制。
一种上述存储系统的构建方法,包括步骤如下:
A、控制节点构建:
A1、添加keystone;keystone用于组件注册;组件注册的具体方法是,通过#keystone-create命令在keystone上创建相应的user、service、endpoint,并获取tenant令牌;keystone是Openstack中用于身份认证的组件,其他所有的组件要发挥其应有的作用,均需要在安装成功后向keystone进行注册;
A2、Nova的安装与配置;Nova负责管理Openstack云平台的计算资源;Nova提供自动创建和管理云主机的功能;Nova安装完成后,配置Nova的配置文件nova.conf,添加keystone的认证标识;Nova是Openstack Compute的代号,是Openstack的重要组成部分,也是IaaS的重要组成部分,用于管理平台所有资源。
A3、安装glance镜像;glance镜像提供虚拟机镜像的查询与存储服务;glance镜像包括组件glance-api和组件glance-registry;组件glance-api接受和反馈用户的镜像请求;组件glance-registry存储上传的虚拟机镜像;组件glance-registry提供Nova创建并启动云主机时用到的虚拟机镜像;glance镜像完成相应的配置文件glance-api.conf和glance-registry.conf,得到keystone的认证;openstack平台上启动是实例均是虚拟机,而虚拟机需要得到启动,必须有相应的系统镜像。
A4、添加Neutron网络管理模块,完成虚拟网络服务;虚拟网络服务也需要在keystone上进行注册;
B、CouchDB数据库集群搭建:
B1、CouchDB数据库集群在分布式环境下,通过CouchDB Lounge实现;Lounge包括组件Dumbproxy和组件Smartproxy;组件Dumbproxy处理文档GET和文档PUT请求,组件Smartproxy负责视图的处理;Lounge为每个数据库节点分配一个keyspace,Lounge通过用户发来的HTTP请求中的URL获得相应的文档ID,同时映射到每个数据库节点上;CouchDBLounge是一个基于代理的分区和集群框架;Lounge为每个数据库节点分配一个keyspace,用户可以向集群中尽可能多地添加主机;Lounge通过用户发来的HTTP请求中的URL获得相应的文档ID,同时映射到每个数据库节点上,从而保证了分配的一致性;
B2、CouchDB数据库集群使用冗余存储的方法实现负载均衡;利用CouchDB数据库集群的复制机制实现负载均衡,对数据进行2~3个备份,将数据的冗余性进行封装;将数据的冗余性进行封装使得在集群的上层可以将备份的数据作为一个整体的单元来对待,而让逻辑分区自己管理数据冗余和数据恢复。这样的操作,将一个逻辑上单一的数据库分成了多个部分,而这些部分可以分布在不同的云主机上。
根据本发明优选的,所述存储系统的构建方法还包括步骤A5,添加Horizon,Horizon给用户和管理员提供可视化的界面。这样可以通过界面完成虚拟机、网络的查看和创建。
一种利用上述系统进行数据检索的方法,包括步骤如下:
1)用户端通过用户界面发送HTTP请求的URL,请求检索某数据库、文档或视图;
2)CouchDB Lounge架构的组件Dumbproxy接受到相应的用户请求POST;
3)Map步骤:对用户请求执行map操作,即运行Map函数,产生包含文档ID及key/value对,用于reduce函数的输入;
4)Reduce步骤:对Map函数产生的结果执行reduce函数,产生一个单独的,对所有value的化简结果;其中,CouchDB本身包含三个内嵌的reduce函数:_count,_sum和_stats,分别返回Map结果集中值的个数、求和结果及统计结果;
5)将查询结果通过Smartproxy合并后,发送给客户端,完成数据检索。
根据本发明优选的,所述Map函数由java实现。
本发明的有益效果为:
1、本发所述基于Openstack云平台实现海量数据可伸缩性存储的系统,基于Openstack平台,结合CouchDB数据库集群实现一种弹性存储的方案,实现了对海量的、不同格式的数据的灵活存储和并行处理;其中,底层基础设施模块包括控制节点,负责管理和监控整个Openstack云平台,以及若干个计算节点执行具体的操作;如果对平台物理资源进行扩展,仅增加计算节点,并进行相应的配置即可,实现根据需求对资源进行分配和调度,满足可扩展性需求是一种可靠灵活、可扩展的数据存储方案;
2、本发所述基于Openstack云平台实现海量数据可伸缩性存储的系统,将CouchDB数据库构建在强大的B-树存储引擎之上,B-树存储引擎对CouchDB中的数据进行排序,并提供一种能够在对数均摊时间内执行搜索、插入和删除操作的机制;同时,CouchDB中的MapReduce特性生成键/值对,CouchDB将它们插入到B-树引擎中,并根据它们的键进行排序,实现通过键进行高效查找,并提高B-树中的操作性能;
3、本发所述基于Openstack云平台实现海量数据可伸缩性存储的系统,具有高可靠性和可用性;在实际应用中,传统存储系统可能发生硬件故障、系统崩溃、网络断开等异常并导致数据丢失;而构建的CouchDB数据库集群采用的复制机制,不仅实现多主机间的数据同步,还可在计算节点出现故障后,快速启动新的节点,将旧节点上的数据备份直接复制到新节点上,实现快速启动节点,保障系统稳定性。
附图说明
图1是本发明所述基于Openstack云平台实现海量数据可伸缩性存储的系统的结构示意图;
图2是本发明所述基础设施模块的结构示意图;
图3是利用本发明所述基于Openstack云平台实现海量数据可伸缩性存储的系统进行数据检索的方法工作流程图。
具体实施方式
下面结合实施例和说明书附图对本发明做进一步说明,但不限于此。
实施例1
如图1-3所示。
一种基于Openstack云平台实现海量数据可伸缩性存储的系统,包括基础设施模块、数据存储模块和数据检索模块;基础设施模块对计算资源、存储资源和网络资源进行管理并对用户身份进行认证;数据存储模块实现数据弹性存储和维护;数据弹性存储通过构建CouchDB数据库集群实现,所述CouchDB数据库集群利用openstack云平台提供的云主机构建,采用扁平化结构部署;每台云主机构建一个CouchDB数据库,提供数据存储与检索功能;所述openstack云平台上的云主机通过CouchDB的复制机制实现对等。所述复制机制,是涉及到两个数据库之间的一种增量处理方法,旨在将源数据库中所有活跃的文档复制到目标数据库中,从而实现各CouchDB实例之间互相同步。
实施例2
如实施例1所述的基于Openstack云平台实现海量数据可伸缩性存储的系统,所不同的是,CouchDB的复制机制对于实现分布式数据复制包括一次性复制和持久性复制;一次性复制发送POST请求到指定数据库的_replicate URL;其中,请求题为JSON文档,包含以下内容:
POST/_replicate HTTP/1.1
{“source”:“example-database”,“target”:“http://example.org/example-database”};
source与target分别表示复制的源数据库和目的数据库。其中,只使用数据库名字表示一个本地数据库,而使用一个完整的URL地址来表示一个远程数据库。
实施例3
如实施例1所述的基于Openstack云平台实现海量数据可伸缩性存储的系统,所不同的是,基础设施模块包括主控制节点和计算节点;主控制节点管理和监控整个Openstack云平台,提供用户界面功能、RESTful API功能、网络资源管理功能和安全认证功能;计算节点为用户提供云主机资源和存储资源,提供云主机管理功能、虚拟网络管理功能和数据存储功能。利用Openstack各组件间的松耦合的特点,基础设施模块结构的设计包括两类节点。主控制节点不参与云主机、存储设备及计算的实际操作。用户界面功能使得用户能够更方便、更简单地使用和操作,这里使用Web页面作为用户界面。
实施例4
如实施例3所述的基于Openstack云平台实现海量数据可伸缩性存储的系统,所不同的是,计算节点包括KVM模块、neutron模块和nova模块;通过配置计算节点的nova模块,在nova.conf配置文件中添加主控制节点的IP及主控制节点中keystone的认证令牌tenant,实现主控制节点对计算节点的控制操作。
实施例5
如实施例3所述的基于Openstack云平台实现海量数据可伸缩性存储的系统,所不同的是,所述安全认证功能包括openstack权限管理、用户身份认证、组件服务的注册和访问端点的注册。
实施例6
如实施例1所述的基于Openstack云平台实现海量数据可伸缩性存储的系统,所不同的是,数据检索模块通过CouchDB视图实现文档检索,CouchDB视图通过JavaScript函数定义,并保存于design documents文档中;数据检索模块通过MapReduce运行。CouchDB视图的功能与关系型数据库中的视图功能类似,用于动态地聚合和呈现同一个数据库中的数据,CouchDB中对数据的查询和索引在查询视图的过程中同时完成,即对数据的查询过程也是一个索引过程。
实施例7
如实施例6所述的基于Openstack云平台实现海量数据可伸缩性存储的系统,所不同的是,CouchDB视图要完成的文档过滤和索引描述,在design documents中的map和reduce函数中定义;其中,Map函数实现对数据的过滤或者查询,reduce函数实现对Map函数返回结果的聚合。CouchDB中的视图均是通过JavaScript进行保存,并且对designdocuments的写法有严格的要求。design documents文档与普通的JSON文档一样,可以存储在数据库中并被复制。
实施例8
一种如实施例1-7所述存储系统的构建方法,包括步骤如下:
A、控制节点构建:
A1、添加keystone;keystone用于组件注册;组件注册的具体方法是,通过#keystone-create命令在keystone上创建相应的user、service、endpoint,并获取tenant令牌;keystone是Openstack中用于身份认证的组件,其他所有的组件要发挥其应有的作用,均需要在安装成功后向keystone进行注册;
A2、Nova的安装与配置;Nova负责管理Openstack云平台的计算资源;Nova提供自动创建和管理云主机的功能;Nova安装完成后,配置Nova的配置文件nova.conf,添加keystone的认证标识;Nova是Openstack Compute的代号,是Openstack的重要组成部分,也是IaaS的重要组成部分,用于管理平台所有资源。
A3、安装glance镜像;glance镜像提供虚拟机镜像的查询与存储服务;glance镜像包括组件glance-api和组件glance-registry;组件glance-api接受和反馈用户的镜像请求;组件glance-registry存储上传的虚拟机镜像;组件glance-registry提供Nova创建并启动云主机时用到的虚拟机镜像;glance镜像完成相应的配置文件glance-api.conf和glance-registry.conf,得到keystone的认证;openstack平台上启动是实例均是虚拟机,而虚拟机需要得到启动,必须有相应的系统镜像。
A4、添加Neutron网络管理模块,完成虚拟网络服务;虚拟网络服务也需要在keystone上进行注册;
B、CouchDB数据库集群搭建:
B1、CouchDB数据库集群在分布式环境下,通过CouchDB Lounge实现;Lounge包括组件Dumbproxy和组件Smartproxy;组件Dumbproxy处理文档GET和文档PUT请求,组件Smartproxy负责视图的处理;Lounge为每个数据库节点分配一个keyspace,Lounge通过用户发来的HTTP请求中的URL获得相应的文档ID,同时映射到每个数据库节点上;CouchDBLounge是一个基于代理的分区和集群框架;Lounge为每个数据库节点分配一个keyspace,用户可以向集群中尽可能多地添加主机;Lounge通过用户发来的HTTP请求中的URL获得相应的文档ID,同时映射到每个数据库节点上,从而保证了分配的一致性;
B2、CouchDB数据库集群使用冗余存储的方法实现负载均衡;利用CouchDB数据库集群的复制机制实现负载均衡,对数据进行3个备份,将数据的冗余性进行封装;将数据的冗余性进行封装使得在集群的上层可以将备份的数据作为一个整体的单元来对待,而让逻辑分区自己管理数据冗余和数据恢复。这样的操作,将一个逻辑上单一的数据库分成了多个部分,而这些部分可以分布在不同的云主机上。
实施例9
如实施例8所述的存储系统的构建方法,所不同的是,所述存储系统的构建方法还包括步骤A5,添加Horizon,Horizon给用户和管理员提供可视化的界面。这样可以通过界面完成虚拟机、网络的查看和创建。
实施例10
一种利用实施例1-7所述系统进行数据检索的方法,包括步骤如下:
1)用户端通过用户界面发送HTTP请求的URL,请求检索某数据库、文档或视图;
2)CouchDB Lounge架构的组件Dumbproxy接受到相应的用户请求POST;
3)Map步骤:对用户请求执行map操作,即运行Map函数,产生包含文档ID及key/value对,用于reduce函数的输入;
4)Reduce步骤:对Map函数产生的结果执行reduce函数,产生一个单独的,对所有value的化简结果;其中,CouchDB本身包含三个内嵌的reduce函数:_count,_sum和_stats,分别返回Map结果集中值的个数、求和结果及统计结果;
5)将查询结果通过Smartproxy合并后,发送给客户端,完成数据检索。
实施例11
如实施例10所述数据检索的方法,所不同的是,所述Map函数由java实现。
Claims (10)
1.一种基于Openstack云平台实现海量数据可伸缩性存储的系统,其特征在于,包括基础设施模块、数据存储模块和数据检索模块;基础设施模块对计算资源、存储资源和网络资源进行管理并对用户身份进行认证;数据存储模块实现数据弹性存储和维护;数据弹性存储通过构建CouchDB数据库集群实现,所述CouchDB数据库集群利用openstack云平台提供的云主机构建,采用扁平化结构部署;每台云主机构建一个CouchDB数据库,提供数据存储与检索功能;所述openstack云平台上的云主机通过CouchDB的复制机制实现对等。
2.根据权利要求1所述的基于Openstack云平台实现海量数据可伸缩性存储的系统,其特征在于,CouchDB的复制机制对于实现分布式数据复制包括一次性复制和持久性复制;一次性复制发送POST请求到指定数据库的_replicate URL;其中,请求题为JSON文档,包含以下内容:
POST/_replicate HTTP/1.1
{“source”:“example-database”,“target”:“http://example.org/example-database”};
source与target分别表示复制的源数据库和目的数据库。
3.根据权利要求1所述的基于Openstack云平台实现海量数据可伸缩性存储的系统,其特征在于,基础设施模块包括主控制节点和计算节点;主控制节点管理和监控整个Openstack云平台,提供用户界面功能、RESTful API功能、网络资源管理功能和安全认证功能;计算节点为用户提供云主机资源和存储资源,提供云主机管理功能、虚拟网络管理功能和数据存储功能。
4.根据权利要求3所述的基于Openstack云平台实现海量数据可伸缩性存储的系统,其特征在于,计算节点包括KVM模块、neutron模块和nova模块;通过配置计算节点的nova模块,在nova.conf配置文件中添加主控制节点的IP及主控制节点中keystone的认证令牌tenant,实现主控制节点对计算节点的控制操作。
5.根据权利要求3所述的基于Openstack云平台实现海量数据可伸缩性存储的系统,其特征在于,所述安全认证功能包括openstack权限管理、用户身份认证、组件服务的注册和访问端点的注册。
6.根据权利要求1所述的基于Openstack云平台实现海量数据可伸缩性存储的系统,其特征在于,数据检索模块通过CouchDB视图实现文档检索,CouchDB视图通过JavaScript函数定义,并保存于design documents文档中;数据检索模块通过MapReduce运行。
7.根据权利要求6所述的基于Openstack云平台实现海量数据可伸缩性存储的系统,其特征在于,CouchDB视图要完成的文档过滤和索引描述,在design documents中的map和reduce函数中定义;其中,Map函数实现对数据的过滤或者查询,reduce函数实现对Map函数返回结果的聚合。
8.一种如权利要求1-7任意一项所述存储系统的构建方法,其特征在于,包括步骤如下:
A、控制节点构建:
A1、添加keystone;keystone用于组件注册;组件注册的具体方法是,通过#keystone-create命令在keystone上创建相应的user、service、endpoint,并获取tenant令牌;
A2、Nova的安装与配置;Nova负责管理Openstack云平台的计算资源;Nova提供自动创建和管理云主机的功能;Nova安装完成后,配置Nova的配置文件nova.conf,添加keystone的认证标识;
A3、安装glance镜像;glance镜像提供虚拟机镜像的查询与存储服务;glance镜像包括组件glance-api和组件glance-registry;组件glance-api接受和反馈用户的镜像请求;组件glance-registry存储上传的虚拟机镜像;组件glance-registry提供Nova创建并启动云主机时用到的虚拟机镜像;glance镜像完成相应的配置文件glance-api.conf和glance-registry.conf,得到keystone的认证;
A4、添加Neutron网络管理模块,完成虚拟网络服务;
B、CouchDB数据库集群搭建:
B1、CouchDB数据库集群在分布式环境下,通过CouchDB Lounge实现;Lounge包括组件Dumbproxy和组件Smartproxy;组件Dumbproxy处理文档GET和文档PUT请求,组件Smartproxy负责视图的处理;Lounge为每个数据库节点分配一个keyspace,Lounge通过用户发来的HTTP请求中的URL获得相应的文档ID,同时映射到每个数据库节点上;CouchDBLounge是一个基于代理的分区和集群框架;
B2、CouchDB数据库集群使用冗余存储的方法实现负载均衡;利用CouchDB数据库集群的复制机制实现负载均衡,对数据进行2~3个备份,将数据的冗余性进行封装。
9.根据权利要求8所述的存储系统的构建方法,其特征在于,所述存储系统的构建方法还包括步骤A5,添加Horizon,Horizon给用户和管理员提供可视化的界面。
10.一种利用权利要求1-7任意一项所述的系统进行数据检索的方法,其特征在于,包括步骤如下:
1)用户端通过用户界面发送HTTP请求的URL,请求检索某数据库、文档或视图;
2)CouchDB Lounge架构的组件Dumbproxy接受到相应的用户请求POST;
3)Map步骤:对用户请求执行map操作,即运行Map函数,产生包含文档ID及key/value对,用于reduce函数的输入;
4)Reduce步骤:对Map函数产生的结果执行reduce函数,产生一个单独的,对所有value的化简结果;其中,CouchDB本身包含三个内嵌的reduce函数:_count,_sum和_stats,分别返回Map结果集中值的个数、求和结果及统计结果;
5)将查询结果通过Smartproxy合并后,发送给客户端,完成数据检索。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710410439.5A CN106993064A (zh) | 2017-06-03 | 2017-06-03 | 一种基于Openstack云平台实现海量数据可伸缩性存储的系统及其构建方法与应用 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710410439.5A CN106993064A (zh) | 2017-06-03 | 2017-06-03 | 一种基于Openstack云平台实现海量数据可伸缩性存储的系统及其构建方法与应用 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106993064A true CN106993064A (zh) | 2017-07-28 |
Family
ID=59422048
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710410439.5A Pending CN106993064A (zh) | 2017-06-03 | 2017-06-03 | 一种基于Openstack云平台实现海量数据可伸缩性存储的系统及其构建方法与应用 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106993064A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107404410A (zh) * | 2017-09-08 | 2017-11-28 | 北京百悟科技有限公司 | 一种云环境下构建虚拟网络功能平台的方法及装置 |
CN107682228A (zh) * | 2017-11-02 | 2018-02-09 | 郑州云海信息技术有限公司 | 一种OpenStack集群的状态监控方法及其装置 |
CN107894915A (zh) * | 2017-10-30 | 2018-04-10 | 北京人大金仓信息技术股份有限公司 | 一种基于云平台的数据分析即服务系统 |
CN107948259A (zh) * | 2017-11-14 | 2018-04-20 | 郑州云海信息技术有限公司 | 一种云服务器资源的配置方法和配置系统 |
CN107977254A (zh) * | 2017-12-05 | 2018-05-01 | 郑州云海信息技术有限公司 | 云数据系统中请求的响应方法和计算机可读存储介质 |
CN108053863A (zh) * | 2017-12-22 | 2018-05-18 | 中国人民解放军第三军医大学第附属医院 | 适合大小文件的海量医疗数据存储系统及数据存储方法 |
CN109656686A (zh) * | 2018-12-17 | 2019-04-19 | 武汉烽火信息集成技术有限公司 | OpenStack上部署容器云方法、存储介质、电子设备及系统 |
CN110704159A (zh) * | 2019-09-25 | 2020-01-17 | 江苏医健大数据保护与开发有限公司 | 一种基于OpenStack的一体化云操作系统 |
CN110750334A (zh) * | 2019-10-25 | 2020-02-04 | 北京计算机技术及应用研究所 | 一种基于Ceph的网络靶场后端存储系统设计方法 |
CN111210879A (zh) * | 2020-01-06 | 2020-05-29 | 中国海洋大学 | 一种用于超大规模药物数据的分级存储优化方法 |
CN111586101A (zh) * | 2020-04-02 | 2020-08-25 | 西安远望谷物联网科技有限公司 | 一种基于OpenStack云平台的自动化安装方法与系统 |
CN111949378A (zh) * | 2020-08-28 | 2020-11-17 | 腾讯科技(深圳)有限公司 | 虚拟机启动模式切换方法和装置、存储介质及电子设备 |
CN116049136A (zh) * | 2022-12-21 | 2023-05-02 | 广东天耘科技有限公司 | 基于云计算平台的MySQL集群部署方法和系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104580519A (zh) * | 2015-01-29 | 2015-04-29 | 福建师范大学福清分校 | 一种快速部署openstack云计算平台的方法 |
US20160142257A1 (en) * | 2014-11-13 | 2016-05-19 | Cisco Technology, Inc. | Periodic advertisements of host capabilities in virtual cloud computing infrastructure |
-
2017
- 2017-06-03 CN CN201710410439.5A patent/CN106993064A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160142257A1 (en) * | 2014-11-13 | 2016-05-19 | Cisco Technology, Inc. | Periodic advertisements of host capabilities in virtual cloud computing infrastructure |
CN104580519A (zh) * | 2015-01-29 | 2015-04-29 | 福建师范大学福清分校 | 一种快速部署openstack云计算平台的方法 |
Non-Patent Citations (3)
Title |
---|
徐芳辰,沈苏彬: "一种基于OpenStack的云存储方案", 《计算机技术与发展》 * |
徐芳辰: "面向RFID数据的云存储技术研究和实现", 《中国优秀硕士学位论文全文数据库信息科技辑(月刊)》 * |
韩璞: "《OpenStack技术原理与实战》", 30 April 2016, 西安电子科技大学出版社 * |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107404410A (zh) * | 2017-09-08 | 2017-11-28 | 北京百悟科技有限公司 | 一种云环境下构建虚拟网络功能平台的方法及装置 |
CN107894915A (zh) * | 2017-10-30 | 2018-04-10 | 北京人大金仓信息技术股份有限公司 | 一种基于云平台的数据分析即服务系统 |
CN107682228A (zh) * | 2017-11-02 | 2018-02-09 | 郑州云海信息技术有限公司 | 一种OpenStack集群的状态监控方法及其装置 |
CN107948259A (zh) * | 2017-11-14 | 2018-04-20 | 郑州云海信息技术有限公司 | 一种云服务器资源的配置方法和配置系统 |
CN107977254A (zh) * | 2017-12-05 | 2018-05-01 | 郑州云海信息技术有限公司 | 云数据系统中请求的响应方法和计算机可读存储介质 |
CN107977254B (zh) * | 2017-12-05 | 2021-07-27 | 郑州云海信息技术有限公司 | 云数据系统中请求的响应方法和计算机可读存储介质 |
CN108053863A (zh) * | 2017-12-22 | 2018-05-18 | 中国人民解放军第三军医大学第附属医院 | 适合大小文件的海量医疗数据存储系统及数据存储方法 |
CN108053863B (zh) * | 2017-12-22 | 2020-09-11 | 中国人民解放军第三军医大学第一附属医院 | 适合大小文件的海量医疗数据存储系统及数据存储方法 |
CN109656686A (zh) * | 2018-12-17 | 2019-04-19 | 武汉烽火信息集成技术有限公司 | OpenStack上部署容器云方法、存储介质、电子设备及系统 |
CN110704159A (zh) * | 2019-09-25 | 2020-01-17 | 江苏医健大数据保护与开发有限公司 | 一种基于OpenStack的一体化云操作系统 |
CN110704159B (zh) * | 2019-09-25 | 2022-05-06 | 江苏医健大数据保护与开发有限公司 | 一种基于OpenStack的一体化云操作系统 |
CN110750334A (zh) * | 2019-10-25 | 2020-02-04 | 北京计算机技术及应用研究所 | 一种基于Ceph的网络靶场后端存储系统设计方法 |
CN110750334B (zh) * | 2019-10-25 | 2024-02-02 | 北京计算机技术及应用研究所 | 一种基于Ceph的网络靶场后端存储系统设计方法 |
CN111210879A (zh) * | 2020-01-06 | 2020-05-29 | 中国海洋大学 | 一种用于超大规模药物数据的分级存储优化方法 |
CN111210879B (zh) * | 2020-01-06 | 2021-03-26 | 中国海洋大学 | 一种用于超大规模药物数据的分级存储优化方法 |
CN111586101A (zh) * | 2020-04-02 | 2020-08-25 | 西安远望谷物联网科技有限公司 | 一种基于OpenStack云平台的自动化安装方法与系统 |
CN111949378B (zh) * | 2020-08-28 | 2021-09-10 | 腾讯科技(深圳)有限公司 | 虚拟机启动模式切换方法和装置、存储介质及电子设备 |
CN111949378A (zh) * | 2020-08-28 | 2020-11-17 | 腾讯科技(深圳)有限公司 | 虚拟机启动模式切换方法和装置、存储介质及电子设备 |
CN116049136A (zh) * | 2022-12-21 | 2023-05-02 | 广东天耘科技有限公司 | 基于云计算平台的MySQL集群部署方法和系统 |
CN116049136B (zh) * | 2022-12-21 | 2023-07-28 | 广东天耘科技有限公司 | 基于云计算平台的MySQL集群部署方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106993064A (zh) | 一种基于Openstack云平台实现海量数据可伸缩性存储的系统及其构建方法与应用 | |
Campbell et al. | Extreme scale with full sql language support in microsoft sql azure | |
US8103628B2 (en) | Directed placement of data in a redundant data storage system | |
Nayak et al. | Type of NOSQL databases and its comparison with relational databases | |
Deka | A survey of cloud database systems | |
Abourezq et al. | Database-as-a-service for big data: An overview | |
CN103842969B (zh) | 信息处理系统 | |
US10922303B1 (en) | Early detection of corrupt data partition exports | |
CN109690494B (zh) | 系统存储装置中的分层容错 | |
CN102420854A (zh) | 面向云存储的分布式文件系统 | |
CN103124299A (zh) | 一种异构环境下的分布式块级别存储系统 | |
Chandra et al. | A study on cloud database | |
Xiahou et al. | Multi-datacenter cloud storage service selection strategy based on AHP and backward cloud generator model | |
CN117677943A (zh) | 用于混合数据处理的数据一致性机制 | |
CN107276914B (zh) | 基于cmdb的自助资源分配调度的方法 | |
Wei et al. | Scalable join queries in cloud data stores | |
Jiang et al. | A novel clustered MongoDB-based storage system for unstructured data with high availability | |
Ma et al. | A transparent data middleware in support of multi-tenancy | |
CN110362590A (zh) | 数据管理方法、装置、系统、电子设备及计算机可读介质 | |
Mathur et al. | Cloud based distributed databases: the future ahead | |
US11757703B1 (en) | Access requests processing and failover handling across multiple fault tolerance zones | |
Chen et al. | A performance evaluation of distributed database architectures | |
Nawab et al. | The challenges of global-scale data management | |
WO2023078760A1 (en) | Database synchronization employing parallel poll threads | |
Pankowski | Consistency and availability of Data in replicated NoSQL databases |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170728 |