Openstack Trove概要
2019独角兽企业重金招聘Python工程师标准>>>
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 "" #创建一个datastoreroot@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
转载于:https://my.oschina.net/kelvinxupt/blog/919058
Openstack Trove概要相关推荐
- 12.OpenStack镜像和存储服务配置
配置镜像服务 编辑 /etc/glance/glance-api.conf与/etc/glance/glance-registry.conf添加以下内容 [DEFAULT]notification_d ...
- devstack 安装trove newtone
一.准备主机 4vcpu,4G mem,centos7 二.预安装软件包 yum install epel-release centos-release-openstack-newton yum in ...
- trove mysql 镜像_trove 基于 centos7 制作 mysql5.6 镜像
本文档是手动制作mysql5.6的trove镜像 openstack版本为newton 1.创建基础虚拟机 登录openstack创建一台虚拟机,这台虚拟机用于制作trove镜像,虚拟机的根磁盘最终会 ...
- [转] OpenStack Kilo 更新日志
OpenStack 2015.1.0 (Kilo)更新日志 原文: https://wiki.openstack.org/wiki/ReleaseNotes/Kilo/zh-hans 目录 [隐藏] ...
- trove mysql 镜像_Linux运维----03.制作trove-mysql5.7镜像
安装mysql yum install http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm yum remove m ...
- OpenStack Trove2
对于公有云计算平台来说,只有计算.网络与存储这三大服务往往是不太够的,在目前互联网应用百花齐放的背景下,几乎所有应用都使用到数据库,而数据 库承载的往往是应用最核心的数据.此外,在大数据分析越来越盛行 ...
- trove mitaka集成
本文介绍ubuntun 14.04 LTS 下openstack trove集成安装的步骤及配置. 1. 安装 1.1 配置apt源: echo "debhttp://ubuntu-clou ...
- 使用Trove的integration定制化trove镜像
注意: 从V版开始,Trove支持在guest instance中将数据库服务作为docker容器运行,所以不需要再为不同的数据库服务维护多个的镜像,这就意味着可以在V版的镜像中看到MYSQL和Mar ...
- trove mysql 镜像_OpenStack(Queens)制作 Trove 镜像
OpenStack(Queens)制作Trove镜像 一:说明 本次制作Trove-mysql镜像,未使用DIB制作,使用的是手动封装的方法.镜像采用的是Centos7版本的官方镜像,大约300M左右 ...
最新文章
- js小球与边框碰撞反弹_四叉树在碰撞检测中的应用
- RocketMQ的Producer详解之分布式事务消息(回顾事务)
- [转]oracle 11g 忘记 默认用户密码
- php %00,Nginx %00 null byte执行任意代码(php)漏洞
- 真实项目中 ThreadLocal 的妙用
- SparkContext: Error initializing SparkContext解决方法
- 一行代码蒸发64亿人民币!黑客盯上区块链漏洞!Python真的变态!
- Linux下Redis的安装和部署
- matplotlib库
- Android APP常见的5类内存泄露及解决方法
- windows 10 80端口占用处理方法_已迁移
- 八种常规常用的SQL查询语句
- nacos 2.0 Scanner SubTypesScanner was not configured
- No input file specified. Nginx PHP
- Cozmo和Vector即将满血复活卷土重来(Digital Dream Labs收购Anki)
- win10离线安装 .NetFramework3.5
- inventor(2):设置单位,显示完整工具区/功能区,创建分割面
- jar完整性测试的Java代码
- 【AUTOSAR】:功能安全(HSM与HOST的配置)
- linux哪个版本支持tipc,Linux TIPC 2.0 Programmerapos;s Guide文档.doc
热门文章
- 利用 Pyecharts 制作饼图
- HOE-S 785026,Meta Hoechst,132869-83-1一种蓝色荧光染料,用于染色DNA
- 用Node.js申请缓存buffer报DEP0005错误的解决方法
- 手游族迎来360手机卫士神助攻 玩家免打扰尽情发育
- hive创建新表——基础
- 安装opensuse的笔记-重庆linux开源组织
- 电脑多久重装一次系统?这几点不注意亏大了!
- 整数分解 费马方法c语言,因数分解(费马的方法)
- Photoshop 无法安装Tych Panel,提示:could not create folder Run Photoshop as administrator or create the ...
- 刚换了Mac本这些快捷键你知道吗?