Trove系列(八)——Trove的配置管理相关的功能介绍
概述MySQL 配置管理功能允许Trove 用户重载由Trove服务的操作者提供的缺省MySQL配置环境。这是通过影响MySQL 的includedir 命令来实现的。
这些MySQL 的includedir 命令已经预先定义在/etc/mysql/conf.d 中了。 保存到这个目录的配置文件将在MySQL启动时被解释。my.cnf文件 或者 MySQL的缺省目录里的值将被替换。
为了实现这个管理功能, 当一个实例被创建时,一个数据库实例可以(可选的)关联到一个配置上。也可以当实例被创建后附加一个配置到这个实例上。一个配置是一个 key / value对的集合。 这些有效的key / value在MySQL手册上有定义,地址: http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html。 一些命令可以自动生效,另外一些命令需要服务器重启来生效。
当通过增加新的key/value 对 或者 修改原有的 key/value对来更新一个配置时, 服务将为每个与配置相关的实例更新overrides.cnf 文件。
如果值允许自动更新的话,服务将尝试自动更新运行的MySQL实例。
MySQL 配置管理功能特性将集成进由https://blueprints.launchpad.net/trove/+spec/quotas 规定的两个最大定额值:(1)每个租户的最大配置组个数 (2) 每个配置组的最大值个数。
系统允许操作者配置 key/value 对的有效规则 。 该规则能够赋予配置组上去。 这些有效规则在 configuration-validation.conf文件中定义, 用户通过API 得到这些规则。这些API定义在下面的文档中。
服务选项Mysql
见https://wiki.openstack.org/wiki/Trove/Configurations/mysql-options
Cassandra
见 http://www.datastax.com/documentation/cassandra/2.0/cassandra/configuration/configCassandra_yaml_r.htmlAPI两种新的资源:configurations 和 configuration-parameters 将作为 Trove 的 API暴露给用户。configurations 资源允许用户创建一个新的配置组,组里包含用户定义的名字,描述以及 一组将要写入到MySQL overrides.cnf文件里去的 key value对。 配置组资源提供以下数据: •id – 第一次创建配置组时系统分配的UUID值.•name – 用户定义的配置组名字.•description – 用户定义的配置组描述 (可选).•values – 赋予配置组的一组键值对.•instances - 与配置组关联的一组实例(如果可用). 配置参数资源包含以下信息: •name – 键的名字.•description – 可选项/设置 的 描述.•default - 由MySQL提供的键的缺省值。服务提供者可以根据实例的大小或者硬件的配置来选择重载一定的MySQL缺省值。缺省由MySQL 的缺省值提供.•configurable – 是否允许被配置。•dynamic – 是否允许在MySQL 运行时动态更新值•type – 键的数据类型 (Boolean, String, Integer)
API 细节 Create / Modify / List Instance
为了实现这个功能,create/modify/list 实例的操作将不能破坏目前的1.0规则。 这些操作允许用户将一个配置组关联到一个新的或者已经存在的实例上,并决定那个配置组已经通过这些操作关联到已经运行的实例上了。
Get an Instance Default Configuration (GET)根据套餐应用到实例上的缺省配置应答结构
Create an Instance (POST)请求消息API 细节:配置
Get Configuration (GET)请求(无消息体)应答{ "configurations": { "id": "12345678-1111-2222-3333-444444444444", "name": "Enhanced Performance Settings", "description": "Performance Enhancing Settings", "values": { "ft_min_word_len": "2", "key_buffer_size": "300M" }, "instances": [ { "id": "dea5a2f7-3ec7-4496-adab-0abb5a42d635", "name": "json_rack_instance" } ] }}Get Configurations (GET)请求(无消息体)应答{ "configurations": [ { "id": "12345678-1111-2222-3333-444444444444", "name": "Enhanced Performance Settings", "description": "Performance Enhancing Settings" }, { "id": "11111111-2222-3333-4444-444444444444", "name": "Another great configuration group", "description": "Super Speed MySQL" } ]} Create a Configuration (POST)创建这个配置时,调用者必须提供一个名字和至少一个值。描述项是可选的。 请求 { "configuration" : { "name" : "Enhanced Performance Settings", "description" : "Performance Enhancing Settings", "values" : { "ft_min_word_len" : "2", "key_buffer_size" : "300M" } }}应答 { "configuration" : { “id” : “12345678-1111-2222-3333-444444444444”, "name" : "Enhanced Performance Settings", "description" : "Performance Enhancing Settings", "values" : { "ft_min_word_len" : "2", "key_buffer_size" : "300M" } }} Update a Configuration Parameter (GET)更新一个配置时,用户必须提供ID 以及更新所需的属性。当更新值数组时,调用者必须提供一组完全的值,该值将代替目前条目中的值。 请求{ "configuration" : { "values" : { "join_buffer_size": 1048576 } }}应答
(无应答体)
Update all Configuration Parameters (PUT) 更新一个配置时,用户必须提供ID 以及更新所需的属性。当更新值数组时,调用者必须提供一组完全的值,该值将代替目前条目中的值 请求{ "configuration" : { "values" : { "key_buffer_size" : 102400 } }} 应答{ "configuration" : { “id” : “12345678-1111-2222-3333-444444444444”, "name" : "Enhanced Performance Settings", "description" : "Performance Enhancing Settings", "values" : { "key_buffer_size" : 102400 } }}请求(无消息体)应答{ "parameters":[ { "name":"autocommit", "description":"Enable or disable MySQLs autocommit feature", "default":"true", "configurable":"true", "dynamic":"true", "type":"boolean" } ]}
数据库模式在trove 数据库中添加了两个条目:configuration_group 和 configuration_item。 这些条目保存由用户提供的配置组的数据。本表描述了本配置组所包含的 ID, 名字,描述 和 租户ID。配置组
本表描述了本配置组所包含的 ID, 名字,描述 和 租户ID。
数据存储配置参数
本表包含了医嘱配置参数并将他们与指定的存储版本相关联:
管理命令trove-manage 命令如下,对于每一个数据存储版本来说,该命令提供了加载指定目录下的配置参数json文件的功能。
trove-manage load_datastore_config_parameters [datastore_version_id] [full path to the json file]
Trove系列(八)——Trove的配置管理相关的功能介绍的更多相关文章
- Trove系列(五)—Trove的数据存储管理程序类型和版本管理功能介绍
功能描述数据存储管理程序(Datastore)类型管理允许Trove的用户从操作者列出的名单中选择数据库存储管理程序和版本.操作者将可以控制数据库存储管理程序的类型,添加一个新的版本并去活一个老版本. ...
- SQL Server 2008空间数据应用系列八:基于Bing Maps(Silverlight)的空间数据存储
原文:SQL Server 2008空间数据应用系列八:基于Bing Maps(Silverlight)的空间数据存储 友情提示,您阅读本篇博文的先决条件如下: 1.本文示例基于Microsoft S ...
- C语言高速入门系列(八)
C语言高速入门系列(八) C语言位运算与文件 本章引言: 在不知不觉中我们的C高速入门系列已经慢慢地接近尾声了,而在这一节中,我们会对 C语言中的位运算和文件进行解析,相信这两章对于一些人来说是陌生的 ...
- C#编译器优化那点事 c# 如果一个对象的值为null,那么它调用扩展方法时为甚么不报错 webAPI 控制器(Controller)太多怎么办? .NET MVC项目设置包含Areas中的页面为默认启动页 (五)Net Core使用静态文件 学习ASP.NET Core Razor 编程系列八——并发处理
C#编译器优化那点事 使用C#编写程序,给最终用户的程序,是需要使用release配置的,而release配置和debug配置,有一个关键区别,就是release的编译器优化默认是启用的.优化代码 ...
- Bing Maps进阶系列八:在Bing Maps中集成OpenStreetMap地图
Bing Maps进阶系列八:在Bing Maps中集成OpenStreetMap地图 OSM(OpenStreetMap-开放街道地图)服务就是一种发布自己地图数据图片为服务的一种实现类型,开放街道 ...
- 爬虫系列(八) 用requests实现天气查询
这篇文章我们将使用 requests 调用天气查询接口,实现一个天气查询的小模块,下面先贴上最终的效果图 1.接口分析 虽然现在网络上有很多免费的天气查询接口,但是有很多网站都是需要注册登陆的,过程比 ...
- 在 Apache 上使用网络安全服务(NSS)实现 HTTPS--RHCE 系列(八)
在 Apache 上使用网络安全服务(NSS)实现 HTTPS--RHCE 系列(八) 发布:linux培训 来源:Linux认证 时间:2015-12-21 15:26 分享到: 达内lin ...
- Keil MDK STM32系列(八) STM32F4基于HAL的PWM和定时器输出音频
Keil MDK STM32系列 Keil MDK STM32系列(一) 基于标准外设库SPL的STM32F103开发 Keil MDK STM32系列(二) 基于标准外设库SPL的STM32F401 ...
- 微软云平台windows azure入门系列八课程
微软云平台windows azure入门系列八课程: Windows Azure入门教学系列 (一): 创建第一个WebRole程序与部署 Windows Azure入门教学系列 (二): 创建第一个 ...
随机推荐
- EF---延迟加载技术
延迟加载: 优点:只在需要的时候加载数据,不需要预先计划,避免了各种复杂的外连接.索引.视图操作带来的低效率问题 使用方式:两步 第一:在需要延迟加载的属性前加上virtual ,该属性的类型可以是任 ...
- java不足前面补0
// 0 代表前面补充0 // 3代表长度为3 // d 代表参数为正数型 result=String.format("%0"+3+"d",result);
- Django---Mysql数据库链接
Django链接Mysql数据库: 第一步:创建应用 python manage.py startapp index 第二步:将应用添加到配置里面 settings INSTALLED_APPS = ...
- Shell输入输出重定向
全部可用的重定向命令列表 命令 说明 command > file 将输出重定向到 file. command < file 将输入重定向到 file. command >> ...
- Python装饰函数
from time import ctime, sleep def tsfunc(func): def wrappedFunc(): print('[%s] %s() classed' % (ctim ...
- 2018牛客网暑期ACM多校训练营(第四场) A - Ternary String - [欧拉降幂公式][扩展欧拉定理]
题目链接:https://www.nowcoder.com/acm/contest/142/A 题目描述 A ternary string is a sequence of digits, where ...
- html中载入自执行getElementById("xx")得到null
<!DOCTYPE HTML> <html> <head> <title>Scope Chain & Closure Example </ ...
- python-面向对象-10-单例
单例 目标 单例设计模式 __new__ 方法 Python 中的单例 01. 单例设计模式 设计模式 设计模式 是 前人工作的总结和提炼,通常,被人们广泛流传的设计模式都是针对 某一特定问题 的成熟 ...
- 关于微信小程序,你想知道的他们都问了
微信公开课深圳站小程序专场刚刚结束,大家通过"微信公开课+"互动小程序提出了许多问题.我们筛选了后台问得最多的九个问题进行解答,快来看看这里有没有你想要的答案吧! @谢杨:小程序是 ...
- memcached-session-manager 教程实现session共享
1简单介绍 1.1决定用什么序列化策略. 1.2配置tomcat 1.2.1加入 memcached-session-manager jar 包到tomcat中. ...