Rocky版新功能集锦之三:Trove

摘要:8月31日,备受业界关注的OpenStack第18个版本Rocky正式发布。在人工智能,机器学习,NFV和边缘计算等用户的驱动下,Rocky版本的OpenStack变得比以往更强大,它带来了数十种增强功能,并支持各种硬件架构,包括裸机管理服务等,这些更新和升级能够很好的满足基础设施的新需求。OpenStack正力争为业界提供一个开放,完善,稳定,功能齐全的最优解决方案。今天将围绕Rocky版本的Trove项目,对项目的新特性进行展示,业界需要掌握的关键点都在这里。

Trove简介

Trove是OpenStack官方的database-as-service项目,提供关系型或非关系型数据库的部署、配置、备份、恢复和监控,大大简化了操作流程。它在OpenStack Havana版本中被孵化,并被正式集成在OpenStack Icehouse版本中。项目的原始赞助商为HP和Rackspace,主要贡献者有Tesora,Rackspace,HP,IBM,Redhat,eBay,Mirantis。

Rocky版本Trove功能变更一览

在最新发布的OpenStack Rocky版本中,Trove未引入新的特性,更注重修复部分bug,例如:

1、MariaDB在主备切换的时候,如果在将副本附加到新主服务器之前重新激活旧主服务器,则可能会在旧主服务器上意外创建新的GTID,并同步到这些副本,从服务器无法变更为主服务器。该问题通过先将副本附加到新主服务来解决。

2、取消从Nova创建Volume,直接通过cinderclient创建volume。

3、Peviously root disable API返回没有任何内容的HTTP 200响应,现在将返回更合适的HTTP 204响应。

Trove项目架构

图1 Trove系统架构图

图1展示了Torve项目的架构,它由trove-api,trove-taskmanager,trove-conductor和trove-guestagent子系统构成,各子系统之间通过RPC进行通信。在这4个子系统中:

1、trove-api 提供REST风格的API,完成一些数据层面的逻辑操作(直接操作DB),比如获取实例列表、集群列表等,将复杂的异步任务它都交给taskmanager去完成,例如创建虚拟机、卷等操作。

2、trove-taskmanager与OpenStack的核心组件Nova、Cinder、Neutron等进行操作,完成数据库实例的创建、删除等资源操作。

3、trove-guestagent集成在vm镜像里面,创建、管理、备份数据库等,并通过周期性任务,实时更新数据库状态。

4、trove-conductor作为trove数据库访问的中间件,避免了trove-guestagent直接访问trove数据库。

Trove抽象出系统的公共基础架构,通过对基础架构的继承开发,可支持各种不同类型数据库。这也使得用户可以通过统一的方式操作不同类型的数据库,降低了使用难度。OpenStack Trove目前支持Cassandra,CouchBase,CouchDB,DataStax Enterprise,DB2,MariaDB,MongoDB,MySQL,Oracle,Percona Server,PostgreSQL,Redis和Vertica。

Trove常用操作


图2 Trove概念架构图

图2显示了Trove的概念架构图,trove的主要操作也是围绕这几个概念实现的,分别为instance操作、datastore操作、backup操作、cluster操作、configuration操作、replica操作、user操作和database操作。下面展示了它们的部分操作,详细的操作参数可通过trove --help获得。

  1. Instance操作

Instance代表一个运行有mysql或MongoDB等的虚拟机,对Instance的操作即可落在虚拟机上,也可落在mysql、MongoDB上。

? trove create:创建一个trove instance
? trove delete:删除一个trove instance
? trove resize-instance:调整虚拟机的flavor
? trove resize-volume:调整mysql或MongoDB等载盘的大小
? trove restart:重启一个trove instance
? trove show:显示一个trove instance的detail信息
? trove update:更新一个trove instance的信息
? trove list: 展示当前项目下的所有trove instances
? trove root-disable: 禁止mysql等获得root权限
? trove root-enable: 运行mysql等获得root权限

  1. datastore操作

Datastore维护着当前Trove能够支持的数据库系统版本和对应镜像等信息。
? trove datastore-list:显示有哪些datastore trove
? datastore-show:显示一个datastore的detail信息
? trove datastore-version-list:显示一个datastore的version list
? trove datastore-version-show:显示一个datastore的一个version的detail信息

  1. backup操作

trove提供备份mysql或MongoDB中的数据库到swift的操作,支持全量备份和增量备份。

? trove backup-create:创建一个数据库的backup
? trove backup-delete:删除指定ID的backup
? trove backup-list:列出可用的所有backups
? trove backup-list-instance:列出指定instance对应数据库的所有可用backups
? trove backup-show:显示指定ID的backup的detail信息
? trove backup-copy:从一个backup copy生成一个新的backup

  1. cluster操作

针对有些数据库系统有cluster的概念,比如MongoDB。

? trove cluster-create:创建一个新的cluster
? trove cluster-delete:删除一个cluster
? trove cluster-instances:列出一个cluster的所有instances
? trove cluster-list:列出所有的clusters
? trove cluster-show:显示指定ID的cluster的detail信息
? trove cluster-grow: 向cluster中添加更多的instance
? trove cluster-shrink: 从cluster中移除instance
? trove cluster-seset_status: 设置cluster的任务状态为None
? trove cluster-upgrade:将cluster升级到一个新的datastore

  1. configuration group操作

trove提出了配置组的概念,这是为了是用户可以定制不同Instance中数据库系统的配置参数,针对不同的数据库系统类型,支持的配置参数也不相同,比如mysql支持的配置参数定义在:trove/templates/mysql/validation-rules.json。此外,trove限制每个instance只能配置一个configuration group。

? trove configuration-create:创建一个新的configuration group
? trove configuration-delete:删除一个configuration group
? trove configuration-attach:attach一个configuration group到一个trove instance上
? trove configuration-detach:detach一个trove instance上的configuration group
? trove configuration-default:显示一个trove instance的默认configuration group
? trove configuration-instances:显示绑定到一个configuration group上的所有trove instances
? trove configuration-list:显示所有的configuration group
? trove configuration-show:显示一个configuration group的detail信息
? trove configuration-parameter-list:列出指定version的datastore支持的configuration group配置参数
? trove configuration-parameter-show:显示指定version的datastore支持的configuration group的某一项配置的详细信息
? trove configuration-patch:把新的<values> patch到一个configuration group
? trove configuration-update:更新一个configuration group的信息

  1. replica操作

为了支持数据库的高可用,trove可动态添加或删除一个instance副本。

? trove create [--replica_of <source_instance>] [--replica_count <count>] :为一个instance添加一个新的副本
? trove detach-replica: 去除一个instance的副本

  1. user操作

trove支持创建数据库系统的user,并支持赋予/收回 user访问数据库系统的权限。

? trove user-create:创建一个数据库系统的user
? trove user-delete:删除一个数据库系统的user
? trove user-grant-access:赋予user访问database(可以同时指定多个)的权限
? trove user-revoke-access:收回user访问database的权限
? trove user-list:list一个数据库系统的所有users
? trove user-show:显示一个数据库系统中指定user的detail信息
? trove user-show-access:显示一个数据库系统中指定user访问database的权限信息

  1. database操作

trove支持在一个数据库系统上创建多个database;

? trove database-create:在一个数据库系统上创建database
? trove database-delete:删除一个数据库系统上的database
? trove database-list:列举一个数据库系统上的所有databases

除了这些操作,Trove还有针对security group、metadata、log等,这些操作使得Trove功能十分强大,满足了用户的需求。

Rocky版本遇到的问题与解决方案

目前,Trove向虚拟机中注入guestagent的配置文件等是通过Nova api中的personality参数,但是此参数已经从OpenStack Queens版本中启用,将来会从Nova代码中移除。未来,Trove将使用Nova api中的--user-data参数进行文件的注入,具体操作如下:

1、重建trove.instance.models.BaseIntance中的get_injected_file函数,用来获取注入文件内容、路径、所有者和权限,生成InjectedFile对象,请将所有需要注入的文件构成InjectedFile list返回。

2、调整trove.taskmanger.models.FreshIntanceTask中的_prepare_userdata函数,基于InjectFile对象建立cloud-config脚本。如果Trove中还存在datastore_manager的cloudinit脚本,将会对该cloudinit脚本进行检测,然后将它和cloud-config脚本转化为mime multi part file类型脚本,以防止传递给cloud-init的数据类型大于一种。

3、利用-user-data传递参数给Nova api,虚拟机启动的时候,cloud-init通过执行脚本完成文件的注入。

未来Trove server与Trove guest agent间的通信将采用octaviad的网络架构模式。

参考链接:
https://github.com/openstack/trove
https://wiki.openstack.org/wiki/Trove
https://docs.openstack.org/developer/trove/
https://docs.openstack.org/releasenotes/trove/rocky.html

搞个大事件


值此Rocky版本发布之际,九州云将于10月10日上午10:00,正式线上同步发布全球首款基于 Rocky版本第七代全新开源云管理平台 ——Animbus? 7.0系列产品。

10月10日10点,诚邀业界同仁一同品鉴。

原文地址:http://blog.51cto.com/99cloud/2295948

时间: 2024-07-30 19:55:14

Rocky版新功能集锦之三:Trove的相关文章

Salesforce Spring &#39;20新功能集锦系列(二)

一.使用Data Mask保护沙盒数据 对于Salesforce管理员和开发人员,Data Mask是功能强大的新数据安全资源.管理员可以使用数据掩码自动加密沙盒中的数据,无需手动保护数据和沙盒组织的访问权限. 01.适用范围 此更新适用于Enterprise, Performance, and Unlimited版本,仅支持Lightning Experience. 关注微信公众号[自由侠部落],加入Salesforce学习群,一起学习吧 02.更新原因 Data Mask使用平台原生的混淆技

Android Studio 2.3 正式版新功能,你不来看看?!

2017.3.3 Google老大发布了Android Studio 2.3正式版. 在许多2.3beta版本的基础上修复了bug然后推出了正式版.提供了一些新特性,和对部分已有功能的修改完善. Build Instant Run Improvements and UI Changes 之前的版本,会默认勾选上Instant Run 选项,然后在控制面板上只有一个Run 和Debug按钮.编译器自动判断是否需要Instant Run.2.3.0正式版在控制面板上多出了一个Instant Run按

qMISPlat V2.1版新功能介绍

qMISPlat V2.1版重点增加数据统计.表单权限.流程表单权限.流程表单数据初始化等方面的功能,并于2018-7-8号正式发布.新版特性如下: 一.平台整体迁移到.net core 2.1 二.增加全新数据统计版块 1.以eCharts为基础,支持通过编写SQL语句配置多系列饼图.柱状图和折线图的功能: 2.支持配置多级数据统计,支持数据钻取功能: 3.支持在同一界面中,展现多个统计图,支持自定义布局统计图展现功能: 如下所示: 2.1.数据钻取统计 2.2.饼图展现模式 2.3.基本信息

Lightning Chart 8.4版新功能

LightningChat V8.4版在如下功能上做了改进 边距 缩放功能 Legend box 的自动定位 正投影 相机orientation与rotation系统 全新3D 坐标空间转换器 PointLineSeries3D 性能改进 Debugging 功能 Demo 应用程序 的变更 用法改进 如果想获取更多详情,请参考我们的中文网站http://arction.cn/ 原文地址:https://www.cnblogs.com/lightningchart/p/10659499.html

OpenStack Q版本新功能以及各核心组件功能对比

OpenStack Q版本已经发布了一段时间了.今天, 小编来总结一下OpenStack Q版本核心组件的各项主要新功能, 再来汇总一下最近2年来OpenStack N.O.P.Q各版本核心组件的主要新功能.仅供参考, 如有遗漏.错误请指正. 1.1         Q版新功能总结 Q版相对于P版, 主要还是各功能的增强和优化, 其中主要功能有: 计算组件中的vGPU支持.冷迁移至指定主机.PCI NUMA亲和性.卷共享等,镜像组件中的web方式导入镜像, 网络组件中的浮动IP QoS.DVR/

VS2015预览版中的C#6.0 新功能(二)

VS2015预览版中的C#6.0 新功能(一) VS2015预览版中的C#6.0 新功能(三) 自动属性的增强 只读自动属性 以前自动属性必须同时提供setter和getter方法,因而只读属性只能通过先声明field,然后property只提供getter方法来实现,无法通过自动属性来实现.在c#6.0中,可以通过如下的形式声明只读的自动属性: public string FirstName { get; } 对于只读的自动属性,其backing field是readonly的,其值可以在属性

即将到来的Autodesk 主要产品2015版 产品和API新功能在线培训(免费)

一年一度的Autodesk主要产品和API在线培训课程在5月份即将開始.我们呈献给大家5个课程. 1. Revit 2015 产品新功能及API 概览 2. Vault 2015产品新功能及API 概要 3. AutoCAD 2015产品新功能及API 概要 4. Civil3D 2015产品新功能及API 概要 5. Inventor 2015产品新功能及API 概要 报名參加请到这个页面去了解具体信息,请登记报名.课程免费參加,仅仅要有网络就能够參加. Revit API课程在5月16日下午

微软发布了一系列网络安全新功能(关于Windows和Office 365)

微软在旧金山召开的大规模RSA安全会议中发布了一系列新的网络安全功能,Windows和Office 365的新功能旨在帮助企业实现网络安全. 在Windows前端增加了使用Windows Hello的本地Active Directory功能,并允许Windows 10系统登录.微软还推出了新的工具,通过向企业提供将组织策略迁移到云托管的工具来帮助他们更好的使用移动设备来管理产品.(InfoWorld:你需要正确设置Windows 10组策略.新的操作系统:终极Windows 10 Survivo

Docker 1.12.0将要发布的新功能

导读 按计划,6/14 是1.12.0版本的 feature冻结 的日子,再有两个星期Docker 1.12.0也该发布了.这里列出来的新功能,都是已经合并到主分支的功能,不出意外,下一个版本的Docker应该是能体验到了. 下周2016 DockerCon也该开始了,好像也有一场专门来讲Docker新特性的,不过在这之前,我们就可以抢先一步,浏览一下这些新功能.新特性.尤其是前两个,都是比较吸引人的功能. Swarmkit集成 前几天Docker刚刚发布了 Swarmkit ,也就是Swarm