文档章节

Openstack Trove概要

宅蓝三木
 宅蓝三木
发布于 2017/06/12 10:36
字数 1263
阅读 4.5K
收藏 0

精选30+云产品,助力企业轻松上云!>>>

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

Build好镜像好需要将其上传到glance服务:

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

 

 

上一篇: CSS概要
下一篇: ATOM快捷键操作
宅蓝三木
粉丝 37
博文 53
码字总数 60515
作品 0
海淀
高级程序员
私信 提问
加载中
请先登录后再评论。
openstack trove之RDS镜像制作

自从Tesora被以色列公司收购后,原先tesora的CTO(trove的PTL)出走verizon,trove就几乎冷门了下来,官方的镜像制作被delete,只有在github上还有人clone了一些分支在维护,但这些脚本多多少...

Jon_Wong
2018/05/28
0
0
OpenStack 各个组件的功能和名称

OpenStack 是一整套资源管理软件的集合,也是当前最热的开源虚拟化管理软件之一,有一个全球139个国家将近两万开发者参与的开源社区(www.openstack.org)作为支持。OpenStack项目的目的是快...

foolish239587
2018/06/20
0
0
OpenStack 各个组件的功能和名称

OpenStack 是一整套资源管理软件的集合,也是当前最热的开源虚拟化管理软件之一,有一个全球139个国家将近两万开发者参与的开源社区(www.openstack.org)作为支持。OpenStack项目的目的是快...

foolish239587
2014/11/16
0
0
Openstack架构简介(一)

1.1.1openstack介绍: openstack是(infrastructure as a service,基础设置即服务)IAAS架构的实现,OpenStack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许...

osc_2o58qy76
2018/03/22
4
0
DBaaS与Trove

DBaaS是目前云计算服务的重要部分,数据库作为一种特殊的应用程序,在应用中普遍存在。而其独特性不仅在于普遍性,而且其性能对应用的表现是至关重要 的。数据库的通用性和重要性使得维护一个...

加油2018
2013/08/14
623
0

没有更多内容

加载失败,请刷新页面

加载更多

Android错误:无法在设备上安装* .apk *:超时 - Android error: Failed to install *.apk on device *: timeout

问题: I'm getting this error from time to time and don't know what causing this: 我不时收到这个错误,不知道是什么导致这个: When trying to run/debug an Android app on a real de......

富含淀粉
19分钟前
9
0
CKEditor 5 + SpringBoot实战(三):SpringData JPA数据持久化

在本系列的文章中,我将介绍如何在Spring Boot Application中使用CKEditor编辑器。介绍的内容包括基本环境的搭建,文件上传,SpringData JPA数据持久化,CKEditor5的安装,CKEditor图片上传,...

树下魅狐
37分钟前
5
0
直播 | 百度地图智能物流解决方案全新发布

本文作者:用****9 物流行业历经规模化增长阶段之后,开始更加注重效率的提高、成本的降低以及服务质量的提升。早在2015年,百度地图开放平台就推出了快递物流行业解决方案,并通过线上、线下...

百度开发者中心
04/16
7
0
Confluence 如何查看页面 ID

如果你希望查看页面的 ID 你有 2 个方法。 例如,你希望查看 https://www.cwiki.us/display/CONFLUENCEWIKI/Get+started 页面的 Page ID 的话。 如果你的标题栏没有特殊字符,那么将会使用英...

honeymoose
今天
11
0
Linux系统 Centos7 环境基于Docker部署Rocketmq服务

消息队列 基本概述 MQ,Message Queue,基于TCP协议构建的简单协议,区别于具体的通信协议。 基于通信协议定义和抽象的更高层次的通信模型,一般都是生产者和消费者模型,又或者说服务端和客户端...

mazhilin
今天
12
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部