精华内容
下载资源
问答
  • Openstack Trove概要 .docx

    2020-01-02 10:38:35
    Openstack Trove概要Openstack Trove概要Openstack Trove概要Openstack Trove概要Openstack Trove概要Openstack Trove概要Openstack Trove概要Openstack Trove概要Openstack Trove概要Openstack Trove概要Openstack ...
  • 深入理解OpenStack Trove.pdf
  • 《深入理解OpenStack Trove
  • OpenStack Trove Essentials(English)非常清晰的版本,需要的可以下下来收藏,很好的材料!
  • 在基于 Red Hat 的 Linux 发行版上设置 OpenStackTrove 利用 Packstack 在 Scientific Linux CERN 版本上安装 OpenStackOpenStack Trove 测试环境的脚本。 还应该适用于其他基于 Redhat 的发行版。 在setup...
  • OpenStack Trove.pdf

    2019-05-12 16:02:23
    OpenStack Trove,简化IT操作流程,降低使用数据库使用门槛举个例子,曾经我搭建一个LAMP网站,数据库要自己安装,创建,授权,必要的话,还要自己做主从很繁琐,而且不是专业人员也搞不定,有了Dbaas后,我只需要在...
  • 文章对Openstack Trove和沃云数据库即服务平台的架构、组件及功能进行了全面综述,对Openstack Trove和沃云数据库即服务平台在数据库实例管理、元数据管理、备份功能等方面的差异进行对比,并指出Openstack Trove和...
  • Openstack Trove 研究

    2017-03-14 21:32:44
    Openstack Trove 研究
    Openstack Trove 研究
    展开全文
  • OpenStack Trove概要

    2020-12-03 09:43:35
    Openstack Troveopenstack为用户提供的数据库即服务(DBaaS)。所谓DBaaS,即trove既具有数据库管理的功能,又具有云计算的优势。使用trove,用户可以: "按需"获得数据库服务器 配置所获得的数据库服务器或者...

    Trove简介

    Openstack Trove是openstack为用户提供的数据库即服务(DBaaS)。所谓DBaaS,即trove既具有数据库管理的功能,又具有云计算的优势。使用trove,用户可以:

    • "按需"获得数据库服务器
    • 配置所获得的数据库服务器或者数据库服务器集群
    • 对数据库服务器或者数据库服务器集群进行自动化管理
    • 根据数据库的负载让数据库服务器集群动态伸缩

    与openstack的其他组件一样,trove也提供RESTful API,并通过RESTful API和其他组件进行交互。

    Trove架构

    上图为trove的架构图。Trove API和用户进行交互,当Trove API接收到用户请求时,trove API首先会调用Keystone的API来对用户进行认证,认证通过后才会去执行相应的操作。Trove API会同步处理操作简单的一些请求,复杂的请求则会通过Message Queue (RabbitMQ)交给Task Manager来处理。Task Manager会监听RabbitMQ的一个topic,收到请求后就会进行处理。这些请求通常是分配数据库实例、管理数据库实例的生命周期、操作数据库等。和openstack的其他组件一样,Trove也有一个Infrastructure Database来存储自己本身的数据,如数据库实例的信息等。Trove conductor的主要功能是接收来自guest agent的状态更新信息,这些信息会被存储在Infrastructure database里面或者作为调用结果返回给其他服务。通常这些状态更新信息包括:guest agent心跳包,数据库备份状态等。Guest Agent运营于数据库服务器中(虚拟机),给trove其他组件提供了一套内部使用的API,trove的其他组件通过Message Queue来调用这些API,guest agent收到API调用请求后,执行相应的数据库操作。

    Trove的安装部署请参考Openstack官方文档(多坑慎入):

    https://docs.openstack.org/project-install-guide/database/ocata/

    Trove的基本概念

    • 数据库实例(Instance):包含数据库程序的openstack虚拟机,如果用户创建了一个数据库实例,那么他其实就创建了一台openstack虚拟机,并在该虚拟机上启动了数据库服务。
    • Datastore:用来表示和存储数据库的类型、版本、虚拟机镜像等信息。当用户创建一个数据库实例时需要指定Datastore.
    • 配置组(Configuration Group):数据库参数组成的集合。用户可以将配置组应用到一个或多个数据库实例上,因而避免了大量的重复操作。

     

    Trove的用法

    0.添加Datastore

    在创建数据库实例时,需要指定Datastore来告诉trove需要用到的镜像、数据库类型及版本信息。所以在创建数据库实例之前需要在系统中创建Datastore.

    由于版权问题,openstack官方并没有提供可供下载的镜像,需要用户自己去build。可参考文档:

    https://docs.openstack.org/developer/trove/dev/building_guest_images.html

    ad@ltczhp11:~$ glance image-create --name mysql-5.6 --disk-format=qcow2 --container-format=bare --file=./mysql-5.6.qcow2 --visibility public 
    ad@ltczhp11:~$ glance image-list
    +--------------------------------------+--------------------------+
    | ID                                   | Name                     |
    +--------------------------------------+--------------------------+
    | 31d60001-c2bf-496e-9f21-069bb411bd3b | CouchDB                  |
    | eaf27f1b-3a8a-4efb-827c-697fa065933b | DB2                      |
    | 60ca8bfc-28a7-418a-9422-ec6548f23d54 | DIB-Mongodb              |
    | 51103b44-2618-4c15-8ded-4371bea8973a | DIB-Postgres             |
    | 8bc1a6a2-6ec3-4f37-bb54-91134b903996 | mongodb-lsl              |
    | c4c9a58f-bbe6-4640-8488-0c05b52028df | mysql-5.6                |
    | 5d800163-3660-467a-a433-e1827924a741 | PostgreSQL               |
    | 38291f8f-5af6-4338-82b7-3f18dc355cae | ubuntu16.04-server-s390x |
    +--------------------------------------+--------------------------+

    使用trove-manage添加Datastore:

    root@ltczhp11:~# trove-manage datastore_update mysql "" #创建一个datastore
    
    root@ltczhp11:~# trove-manage datastore_version_update mysql 5.6 mysql c4c9a58f-bbe6-4640-8488-0c05b52028df "" 1 #创建一个dadastore的版本,一个dadastore可以有多个版本
    
    root@ltczhp11:~# trove-manage datastore_update mysql 5.6 #指定默认的datastore版本

    1.基本的数据库实例操作

    • 列出所有的数据库实例 
      • $ trove list
    • 创建一个数据库实例 
      • $ trove create vm1 2 --size 3 --datastore mysql
    • 重启一个数据库实例 
      • $ trove restart vm1
    • 删除一个数据库实例 
      • $ trove delete vm1
    • 强制删除一个数据库实例 
      • $ trove force-delete vm1
    • 调整一个数据库实例的规格
      • $ trove resize-volume vm1 4
      • $ trove resize-instance vm1 3

    2.管理数据库用户

    • 列出所有的数据库用户
      • $ trove user-list
    • 创建一个用户
      • $ trove user-create
    • 删除一个用户
      • $ trove user-delete
    • 给一个用户授权访问某个数据库 
      • $ trove user-grant-access
    • 吊销用户对于某一个数据库的访问权限
      • $ trove user-revoke-access
    • 显示用户信息
      • $ trove user-show
    • 显示用户的权限
      • $ trove user-show-access

    3. 数据库管理

    • 在一个数据库实例中创建一个数据库 
      • $ trove database-create
    • 列出一个数据库实例中的所有数据库
      • $ trove database-list
    • 删除一个数据库实例中的某个数据库
      • $ trove database-delete

    4. 副本管理

    • 创建一个副本
      • $ trove create  --replica_of
    • 将一个副本从源数据库分离
      • $ trove detach-replica
    • 让一个副本在副本集合中成为源数据库
      • $ trove promote-to-replica-source
    • 删除挂掉的源数据库
      • $ trove eject-replica-source
    • 设置副本亲和性
      • $ trove create  --replica_of  --locality affinity
      • $ trove create  --replica_of  --locality anti-affinity
    展开全文
  • Since Trove is one of the most recent projects of OpenStack, DBAs and system administrators can find it difficult to set up and run a DBaaS using OpenStack Trove. This book helps DBAs make that step. ...
  • OpenStack Trove1

    2016-05-20 11:13:00
    OpenStack Trove1 作为一种面向OpenStack的数据库即服务框架,Trove为自动化配置和管理几种主要的SQL数据库和NoSQL数据库奠定了基础。 AD:51CTO网+ 首届中国APP创新评选大赛>> 作为一...

    OpenStack Trove1

    作为一种面向OpenStack的数据库即服务框架,Trove为自动化配置和管理几种主要的SQL数据库和NoSQL数据库奠定了基础。

    AD:51CTO网+ 首届中国APP创新评选大赛>>

    作为一种面向OpenStack的数据库即服务框架,Trove为自动化配置和管理几种主要的SQL数据库和NoSQL数据库奠定了基础。

    如今,企业的IT部门面临一个前所未有的挑战:提供更多更好的服务,提高灵活性,降低运营成本,同时又要保证绝对无懈可击、不会发生安全泄密事件。

    说到数据和数据库,这个挑战显得尤为突出。许多重大的IT挑战往往归结为面对数量越来越多的数据和事务,确保这些系统具有可扩展性。为了满足这些目 标,许多企业继续将IT预算的相当大一部分投入到与数据库有关的方面:速度更快的硬件和新的软件许可证以及技能娴熟的数据库管理员。

    数据库即服务(DBaaS)技术带来了大好希望,有助于应对许多这些数据方面的挑战。大致来讲,DBaaS为客户提供了一种自助式方法,从而以一种安全、可扩展、可靠的方式,迅速选择、配置和运行数据管理基础设施。

    举例来说,亚马逊公有云(AWS)为DBaaS提供了形形色色的服务,其中包括关系数据库服务(RDS)、NoSQL数据库服务DynamoDB、数据仓库服务Redshift以及面向云的内存中缓存服务ElastiCache。

    在私有云中,Trove这个属于OpenStack一部分的DBaaS项目提供了一套统一的基础设施,以管理众多不同的云数据库技术。Trove让 IT专业人员得以让用户能够借助一套始终如一的界面/接口,配置和管理一系列广泛的关系数据库和非关系数据库:MySQL、Percona Server、MariaDB、PostgreSQL、MongoDB、Cassandra、Couchbase和Redis。

    DBaaS如何改变企业IT?

    十年左右的时间以来,IT部门眼睁睁看着其用户被公有云所提供的成本低廉、无所不在的解决方案吸引过去。只要刷一下信用卡,就可以迅速轻松地使用这 些服务。由于公有云服务用起来如此方便,使用这些服务的人常常在不受IT部门指导的情况下进行工作。想对利用公有云的内部客户执行企业治理这一套,可谓困 难重重。

    公有云还在它所提供的服务方面提供了众多选择。比如说,亚马逊和第三方在AWS上提供了数量众多的数据库服务。提供同样众多的选择给IT人员带来了挑战,因为他们不可能在每一项能想象得到的数据库技术方面都拥有专长。

    使用OpenStack Trove的DBaaS让IT部门有机会提供数据库方面的更多选择,同时增强灵活性和安全性。下面介绍了DBaaS将从五个方面改变企业IT部门如今管理数据库的方式:

    1. 大幅降低成本方面的最佳实践。

    像OpenStack Trove这种私有云DBaaS解决方案为企业提供了一种灵活的解决方案,这种解决方案可以安全地部署,同时遵循企业治理和数据安全体系。Trove提供 了种类丰富的数据库技术,采用了易于使用、预先包装的配置。由于将使用各自数据库技术的最佳实践整合到这些配置当中,IT人员就不需要具备所有技术方面的 专长。

    标准化配置在降低支持成本的同时,还有助于确保数据完整性和安全性。DBaaS在IT基础设施里面运行,提供了帮助服务易于管理的众多功能,比如自动化备份、自动化升级和补丁管理以及自愈合。

    2. 加快配置,减少等待。

    在企业里面的IT客户看来,DBaaS显著增强了灵活性。申请数据库服务器,然后等上数周、乃至数月来配置服务器,那种日子早就一去不复返了。现在只要轻松点几下按键,就能获得一台全面配置的数据库服务器!

    此外,DBaaS提供的不仅仅是一台预先配置的数据库服务器;它还提供了全面管理的服务,让客户得以致力于最充分地利用数据库,同时依赖基础设施确保数据完整性、安全性和连续性。由于服务在私有云环境里面运行,可以保证符合数据保留和隐私等企业政策。

    3. 更容易享用新的数据库技术。

    在过去几年里,数据库领域已发生了显著的变化,NoSQL和NewSQL解决方案在可扩展性、可用性和灵活数据建模等方面带来了新的好处。在过去,开发人员被迫使用企业标准数据库,或者单独行事,自行管理任何新的数据库技术。

    DBaaS数据库让IT客户得以选择适合其特定使用场合的数据库技术。MySQL在一种场合下也许是合适的解决方法,但是MongoDB在另一种场 合下却可能是合适的解决方案。DBaaS解决方案让用户可以从数据库服务菜单当中选择合适的数据库技术。与此同时,可以向用户保证他们部署的配置已得到 IT部门的审查,从而确保他们遵守行业最佳实践和企业政策。

    4. 更频繁地尝试,更迅速地创新。

    虽然快速配置数据库的好处相当大,但是IT客户同样很容易丢弃数据库、配置新数据库这个事实同样不可小觑。它让客户可以随意尝试,迅速迭代,以便迅速拿出合适的长期解决方案,又没有不必要的妥协。

    5. 减少从开发环境进入到生产环境所花的时间和精力。

    最后,DBaaS提供了一种安全而简单的方法,有助于通过应用程序开发过程,让数据库从开发环境转入到生产环境。在开发阶段,DBaaS可以用面向 开发活动的低成本配置来配置数据库。随着应用程序开始进入到生产环境,DBaaS可以针对生产环境,顺畅无阻地重新配置这些数据库,拥有更高级别的可用性 和性能。

    OpenStack Trove:开源DBaaS

    Trove是一种面向OpenStack的DBaaS框架,它首次亮相于2014年4月发布的代号为IceHouse的OpenStack。它既支 持关系数据库,又支持非关系数据库,让用户可以通过基于Web的用户界面(Horizon)、命令行接口或REST API,迅速配置和运行数据库。

    IT部门和云服务提供商可以配置Trove,提供一系列广泛的数据库配置,具体表现为预先配置的“来宾映像”(guest image)。来宾映像封装了数据库管理方面的最佳实践,有助于确保系统正常运行和管理,不需要IT人员是每一项数据库技术方面的专家。来宾映像可以由操 作人员配置,也可以从诸多公开来源下载。

    然后,用户可以请求单个数据库实例、复制的成对实例或者是提高可扩展性的集群。之后,Trove统一编排配置过程,以满足这些请求,为此它会调用底层的OpenStack服务,比如Nova(计算服务)和Cinder(存储服务)。

    OpenStack Trove将从五个方面改变数据库管理方式

    OpenStack Trove架构

    除了基本的配置外,Trove还能使它配置的数据库实例的生命周期管理实现自动化。等到进行备份时,Trove启动这个过程,将备份内容存储在 Swift对象存储区上。用户然后可以启动新的数据库实例(该实例基于之前执行的备份)。如果用户希望重新调整数据库大小――为此可以改变分配给它的存储 资源或计算资源,Trove就会统一编排整个过程(包括迁移数据)。

    Trove还得益于是OpenStack社区的成员,得到了电子港湾、惠普、IBM、Rackspace、Tesora和OpenStack发行版 提供商(包括红帽、Canonical和Mirantis)等公司的广泛参与。惠普和Rackspace都在生产环境中运行Trove,作为其公有云的一 部分,而电子港湾在其私有云中运行Trove,支持使用众多数据库技术的多个生产应用程序。

    作为Trove项目的主要贡献者,Tesora提供了基于OpenStack Trove的面向企业加固的DBaaS平台,并且为得到OpenStack Trove支持的众多数据库,发行通过认证和测试的来宾映像。

    由于非常诱人的自助式云继续吸引企业及其用户,企业IT部门面临的压力势必会促使它们积极采用开源技术、奉行标准化。在数据管理领域,这几股力量无 疑会促进采用DBaaS技术,而这类技术将让IT部门能够以一种更灵活、更具成本效益、更易于支持、更安全的方式,提供多种多样的服务。

    OpenStack如今俨然成为一种主导性的私有云操作系统,而OpenStack Trove正迅速成为配置和管理企业里面所有关系数据库和非关系数据库资源的合理解决方案。

    原文标题:5 ways OpenStack Trove will change how you manage databases

    posted @ 2016-05-20 11:13 心灵捕手 阅读( ...) 评论( ...)   编辑 收藏
    展开全文
  • OpenStack Trove(Apress,2015)

    2015-09-22 23:37:44
    OpenStack Trove is your step-by-step guide to set up and run a secure and scalable cloud Database as a Service (DBaaS) solution. The book shows you how to set up and configure the Trove DBaaS ...
  • OpenStack Trove2

    2016-05-20 11:13:00
    OpenStack Trove2 对于公有云计算平台来说,只有计算、网络与存储这三大服务往往是不太够的,在目前互联网应用百花齐放的背景下,几乎所有应用都使用到数据库,而数据 库承载的往往是应用最核心的...

    OpenStack Trove2

    对于公有云计算平台来说,只有计算、网络与存储这三大服务往往是不太够的,在目前互联网应用百花齐放的背景下,几乎所有应用都使用到数据库,而数据 库承载的往往是应用最核心的数据。此外,在大数据分析越来越盛行的背景下,对数据库的可靠便捷管理也变得更为重要。因此,DBase as a Service(DBaaS,数据库服务)也就顺理成章地成为了云计算平台为用户创造价值的一个重要服务。

    对比Amazon AWS中各种关于数据的服务,其中最著名的是RDS(SQL-base)和DynamoDB(NoSQL),除了实现了基本的数据管理能力,还具备良好的 伸缩能力、容灾能力和不同规格的性能表现。因此,对于最炙手可热的开源云计算平台Openstack来说,也从Icehouse版加入了DBaaS服务, 代号Trove。直到去年底发布的Openstack Liberty版本,Trove已经经过了4个版本的迭代发布,目前已经成为Openstack官方可选的核心服务之一。本文将深入介绍Trove的原 理、架构与功能,并通过实践来展示Trove的应用。

    Trove的设计目标

    “Trove is Database as a Service for OpenStack. It’s designed to run entirely on OpenStack, with the goal of allowing users to quickly and easily utilize the features of a relational or non-relational database without the burden of handling complex administrative tasks. ”这是Trove在官方首页上对这个项目的说明,有两个关键点。一个是从产品设计上说,它定位不仅仅是关系型数据库,而且还涵盖非关系数据库的服务。另一 个是从产品实现上说,它是完全基于Openstack的。

    从第一点可以看出Trove解决问题的高度已经超越了同类产品。因为我们从其他云 计算平台对比去看,关系型和非关系型数据库都是由不同的服务去提供(比如AWS的RDS和DynamoDB),而且实现上也往往互相独立的系统,不仅UI 不同,API也不一样。而Trove的目标是抽象尽可能多的东西,对外提供统一的UI和API,尽量减少冗余实现,提升平台内聚。只要具备了实例、数据 库、用户、配置、备份、集群、主从复制这些概念,不管是关系型还是非关系型数据库,都能统一管理起来。从最新的Liberty版本发布的情况下,目前开源 的主流关系型和非关系型数据库也得到了支持,比如Mysql(包括Percona和MariaDB分支)、Postgresql、Redis、 MongoDB、CouchDB、Cassandra等等。不过根据官方的介绍,目前只有Mysql是得到了充分的生产性测试,其他的还处于实验性阶段。

    而 第二点完全基于Openstack的,可以说是一个较大的创新。试想,假设你是一个云计算服务商,如果现在要提供数据库服务,只需要在原有平台软件上升级 与配置一下就行,其他什么都不需要,不需要采购数据库服务器硬件,不需要规划网络,不需要规划IDC,这是一种什么样的感觉?Trove完全构建于 Openstack原有的几大基础服务之上。打个比喻类似于Google著名的Bigtable服务是构建于GFS、Borg、Chubby等几个基础服 务之上。所以,Trove实际上拥有了云平台的一些基础特性,比如容灾隔离、动态调度、快速响应等能力,而且从研发的角度看,也大大减少了重复造轮子的现 象。

    图片描述

    Trove的架构介绍

    实 际上Trove的架构(最新版本)与Openstack Nova项目的架构是如出一辙,可以说是Nova的一个简化版。也是典型的Openstack项目架构风格。Trove所管理的各个数据库引擎的差异性主 要体现在trove-guestagent的具体manager和strategies代码实现上。架构如图所示:

    图片描述

    trove- api是接入层,轻量级请求通过在接入层直接处理或者通过直接访问guestagent处理,比如获取实例列表、获取实例规格列表等;而比较重的请求则通 过message bus(Openstack默认实现是Rabbitmq)中转给trove-taskmanager进行调度处理。trove-taskmanager是 调度处理层,主要是处理较重的请求,比如创建实例、实例resize等。
    taskmanager会通过Nova、Swift的API访问Openstack基础的服务,而且是有状态的,是整个系统的核心。trove-conductor是guestagent访问数据库的代理层,主要是为了屏蔽掉guestagent直接对数据库的访问。

    在 Trove目前的实现中,一个数据库实例一一对映到一个vm,而guestagent也是运行在vm里面。vm镜像包含了经过裁剪的操作系统、数据库引擎 和guestagent(镜像具体实现没有标准,数据库引擎和guestagent也都可以在vm启动时通过网络动态装载)。而实例所在分区的硬盘是通过 Cinder提供的云硬盘。每个vm都会关联一个安全组防火墙,只允许数据库服务的端口通过(比如Mysql,默认是TCP 3306端口)。从这里可以看出,Trove创建数据库实例是非常灵活的,后期的调度也非常方便,这些都得益于Nova和Cinder。

    Trove功能介绍

    正如前面说的,实际上Trove是在主流的关系和非关系型数据库的一些核心概念基础上抽象出的一个系统框架,所以其实现的功能也是围绕着这些核心概念的。Trove的概念关系图:

    图片描述
    因此Trove的主要功能也是围绕这几个概念实现的。datastore管理,Instance管理,configuration管理,database管理,user管理,replication管理,backup管理,cluster管理等等。

    从 最新的Liberty版本看,目前Trove的功能还是比较多的,而且扩展性很强。可惜的是实例统计监控功能却没有看到,而统计监控功能的缺失,应该也是 导致了实例容灾的自动切换还没有实现,相信这些都会在不久的新版本中逐渐完善。不过从另外一个角度看,由于数据库对用户来说是非常关键的服务,涉及到核心 数据的数据一致性问题,目前交由用户上层去确认和切换实例也不失一个明智的选择。下面以Mysql数据库作为例子,对Trove的一些重要功能进行分析。

    1、动态resize能力

    分 为instance-resize和volume-resize,前者主要是实例运行的内存大小和cpu核数,后者主要是指数据库分区对应的硬盘卷的大 小。由于实例是跑在vm上的,而vm的cpu和memory的规格可以通过Nova来进行动态调整,所以调整是非常方便快捷的。另外硬盘卷也是由 Cinder提供的动态扩展功能来实现resize。resize过程中服务会有短暂的中断,是由于mysqld重启导致的。

    2、全量与增量备份

    目 前mysql的实现中,备份是由实例vm上的guestagent运行xtrabackup工具进行备份,且备份后的文件会存储在Swift对象存储中。 从备份创建实例的过程则相反。由于xtrabackup强大的备份功能,所以Trove要做的只是做一些粘胶水的工作。

    3、动态配置更新

    目前支持实例的自定义配置,可以创建配置组应该到一组实例上,且动态attach到运行中的实例中生效。

    4、一主多从的一键创建

    在 创建数据库实例的API中,支持批量创建多个从实例,并以指定的实例做主进行同步复制。这样就方便了从一个已有实例创建多个从实例的操作。而且 mysql5.6版本之后的同步复制支持GTID二进制日志,使得主从实例之间关系的建立更加可靠和灵活,在failover处理上也更加快速。

    5、集群创建与管理(percona/mariadb支持)

    Cluster功能目前在mysql原生版本暂时不支持,但是其两个分支版本percona和mariadb基于Galera库实现的集群复制技术是支持的。另外Liberty版本的Trove也提供了对mongodb的集群支持。

    Trove还提供了以其他一些许多功能,使用troveclient可以有详细的帮助信息输出。对于一个要求不是很高的云数据库管理平台,Trove目前这些功能已经够用,而且能够搭配好Openstack其他服务无缝运行起来。

    Trove实践例子

    在 Openstack上启用Trove服务有两个要点。一个是要制作Trove的数据库实例运行的vm镜像,因为要把troveguestagent和相关 的数据库引擎(比如mysql)打包进镜像,而且需要精简OS。另外,就是要有一个包含Trove服务的Openstack环境。幸好Trove项目有个 子项目trove-integration,把这些工作都打包了,方便了开发者使用。本文实践的例子是在一个虚拟机上利用trove- integration建立带Trove的Openstack的运行环境,并且制作Trove实例运行的vm镜像(mysql镜像),并在上面搭建 mysql一主二从实例集群运行起来。

    1、准备一个运行ubuntu的虚拟机(trove-integration建议用ubuntu),内存至少8G以上,CPU最少2核以上,否则跑起整个环境来会比较吃力,用libvirt快速创建一个。

    2、用Git下载trove-integration(https://github.com/openstack/trove-integration.git)。 仔细查看目录可以看到其实是利用了devstack去安装整个Openstack环境,而且里面还带了diskimage-builder工具,专门制作 Openstack的各种vm镜像(利用diskimage-builder创建Trove镜像在Openstack官方也给了专门的讲解 《Building Guest Images for OpenStack Trove》http://docs.openstack.org/developer/trove/dev/building_guest_images.html)。

    3、 安装带Trove的Openstack环境。进入trove-integration目录trove-integration/scripts下,运行. /redstack install,这个过程会比较长,视乎网络速度和运行的机器的速度,在我的虚拟机上运行大概1个小时多一点。redstack是一个入口程序,里面有很 多功能,可以单独运行有详细的帮助信息。

    4、制作mysql的实例运行镜像,并把镜像导入Glance,在Trove中建立 datastore(比如mysql)和version(比如5.6版本)信息,运行./redstack kick-start mysql。(其中version信息是包含存放在Glance中的vm镜像信息)这个过程也有点长,因为是使用diskimage-builder根据 定义好的element去动态下载打包并配置镜像的。
    实际上利用trove-instegration项目建立的实例运行的vm镜像,并没有把guestagent打包进去,而是通过vm文件系统中/etc /init/troveguestagent脚本,在vm启动的时候从宿主机上把guestagent拷贝过去,这个过程其实是很快的,因为程序比较小。

    以上过程可以参考https://wiki.openstack.org/wiki/Trove/trove-integration,由于实际运行可能会由于环境问题导致出错需要重试或者具体问题具体分析。

    5、利用Openstack提供的Trove客户端工具troveclient创建mysql实例并搭建集群。运行trove -h会有详细的帮助信息。

    1)创建主实例

    trove create my_inst_master 8 --size 10 --database my_inst_db --users admin:admin123 --datastore mysql --datastore_version 5.6 

    实例名字为my_inst_master,实例规格ID是8(512MB内存),硬盘卷大小是10GB,并且创建数据库my_inst_db和用户admin(密码是admin123),数据库引擎类型是mysql,版本是5.6版本。

    2)创建主实例的备份(先随便在创建的数据库实例里创建表和插入一些数据)

    trove backup-create my_inst_master my_bak.0001

    创建数据库实例my_inst_master的当前的备份,备份名字为my_bak.0001。

    3)从主实例的备份创建两个从实例,并且建立主从关系

    trove create my_inst_slave 8 --size 10 --backup my_bak.0001 --replica_of my_inst_master --replica_count 2

    创建两个数据库实例,名字以mysql_inst_slave开头,实例规格ID为8,硬盘卷大小是10GB,并且用备份名为my_bak.0001的备份导入数据,且建立到实例my_inst_master的主从复制关系。

    4)动态Resize主实例规格

    trove resize-instance my_inst_master 2

    动态调整实例my_inst_master的instance规格为2(内存2GB大小)

    trove resize-volume my_inst_master 20

    动态调整实例my_inst_master的硬盘卷大小为20GB

    对比与总结

    从以上的介绍可以知道,Openstack的DBaaS服务Trove确实有所创新,不同与业界的类似产品实现。在这样的设计目标与实现机制下,可以说有优点也有缺点,通过与典型的云数据库平台进行对别,稍微总结如下:

    图片描述
    图片描述

    目 前大规模使用Trove做云数据库平台有ebay、Rackspace、HP等公司。近来也得益于Openstack的版本迭代速度较快,从Juno版本 开始每个版本Trove都会带来不少新特性,项目本身也越来越受社区重视,相信在后续版本中,Trove会补足已有的一些缺点,充分利用 Openstack平台的优势,在稳定性和可运营性方面做得更好,特别是在实例创建与调度上提升容灾级别,增加taskmanager这个中心点的容灾能 力,增加数据库实例的监控信息、自动透明切换实例的能力,所以Trove的下两个版本应该是非常值得期待。

    欢迎加入OpenStack微信群,探讨技术和经验,搜索微信号“k15751091376”由管理员拉入

    posted @ 2016-05-20 11:13 心灵捕手 阅读( ...) 评论( ...)   编辑 收藏
    展开全文
  • 开源openstack 2014年初,我们成立了Tesora公司,作为OpenStack Trove公司,专注于开源数据库即服务项目。 但是,这不是一家全新的开源公司。 我们以ParElastic为起点,开发了可以透明地向外扩展MySQL的专有引擎。 ...
  • 为了平衡英国、巴黎、德国、美国和中国开发者的作息习惯,openstack trove项目组在5月18日的weekly meeting上开始讨论新的开会时间。 当前的开会时间是,周三 UTC 18:00 对应的中国时间 CST 是周四的 2:00。中国的...
  • OpenStack Trove组件WSGI和RPC调用流程(参考调用的整个过程) 参考博文:https://blog.csdn.net/bill_xiang_/article/details/72909927 posted on 2019-03-19 10:...
  • Openstack Trove概要

    2017-06-12 10:36:00
    Openstack Troveopenstack为用户提供的数据库即服务(DBaaS)。所谓DBaaS,即trove既具有数据库管理的功能,又具有云计算的优势。使用trove,用户可以: "按需"获得数据库服务器 配置所获得的数据库服务器...
  • 《深入理解Kafka:核心设计与实践原理》_朱忠华_2019-01-01
  • OpenStack Trove组件WSGI和RPC调用流程

    千次阅读 2017-06-08 09:04:38
    本文是基于OpenStack Mitaka版本的Trove组件对WSGI和RPC调用流程进行分析。而OpenStack其他组件的处理流程也都大同小异,因此了解了trove的WSGI和RPC调用流程,学习OpenStack其他组件就可以举一反三了。
  • 在云平台上使用trove有什么优势? 简化IT操作流程,降低使用数据库使用门槛举个例子,曾经我搭建一个LAMP网站,数据库要自己安装,创建,授权,必要的话,还要自己做主从很繁琐,而且不是专业人员也搞不定,...
  • trove在mitaka版本更新了一个功能,configuration 具体如下: trove help |grep configuration configuration-attach Attaches a configuration group to an configuration-create Creates a config...
  • openstack学习路线 有兴趣跟踪开源云中正在发生的事情吗? Opensource.com是您开放源代码云基础设施项目OpenStack中当前活动的来源。 Web上的OpenStack 关于OpenStack,有很多有趣的东西。 这是一个样本: ...
  • systemLog.verbosity 组件的默认日志消息详细程度级别。 详细程度级别决定MongoDB输出的信息和调试消息量。 详细级别可以在0到5之间: 0是MongoDB的默认日志详细程度级别,以包括信息性消息。...
  • openstack负载均衡 稳定的数据库是任何企业应用程序中最常需要的组件之一,而OpenStack背后的开发社区正在努力确保在开源云中使用数据库是一种简单,可靠和高效的体验。 Tesora的Amrith Kumar,NetApp的...
  • Openstack Trove探究(1)- 从API认识trove

    千次阅读 2014-04-06 02:14:18
    TroveOpenstack官方的database-as-a-service项目,最初大家都以Amazon的RDS与之比较,现在开来,小看了Trove的野心,trove的代码中已经开始支持很多NoSQL数据库的管理。这里我先从API和功能上来认识trove。 API中...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,237
精华内容 494
关键字:

openstack的trove