概述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-optionsCassandra 见 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的配置管理相关的功能介绍的更多相关文章

  1. Trove系列(五)—Trove的数据存储管理程序类型和版本管理功能介绍

    功能描述数据存储管理程序(Datastore)类型管理允许Trove的用户从操作者列出的名单中选择数据库存储管理程序和版本.操作者将可以控制数据库存储管理程序的类型,添加一个新的版本并去活一个老版本. ...

  2. SQL Server 2008空间数据应用系列八:基于Bing Maps(Silverlight)的空间数据存储

    原文:SQL Server 2008空间数据应用系列八:基于Bing Maps(Silverlight)的空间数据存储 友情提示,您阅读本篇博文的先决条件如下: 1.本文示例基于Microsoft S ...

  3. C语言高速入门系列(八)

    C语言高速入门系列(八) C语言位运算与文件 本章引言: 在不知不觉中我们的C高速入门系列已经慢慢地接近尾声了,而在这一节中,我们会对 C语言中的位运算和文件进行解析,相信这两章对于一些人来说是陌生的 ...

  4. C#编译器优化那点事 c# 如果一个对象的值为null,那么它调用扩展方法时为甚么不报错 webAPI 控制器(Controller)太多怎么办? .NET MVC项目设置包含Areas中的页面为默认启动页 (五)Net Core使用静态文件 学习ASP.NET Core Razor 编程系列八——并发处理

    C#编译器优化那点事   使用C#编写程序,给最终用户的程序,是需要使用release配置的,而release配置和debug配置,有一个关键区别,就是release的编译器优化默认是启用的.优化代码 ...

  5. Bing Maps进阶系列八:在Bing Maps中集成OpenStreetMap地图

    Bing Maps进阶系列八:在Bing Maps中集成OpenStreetMap地图 OSM(OpenStreetMap-开放街道地图)服务就是一种发布自己地图数据图片为服务的一种实现类型,开放街道 ...

  6. 爬虫系列(八) 用requests实现天气查询

    这篇文章我们将使用 requests 调用天气查询接口,实现一个天气查询的小模块,下面先贴上最终的效果图 1.接口分析 虽然现在网络上有很多免费的天气查询接口,但是有很多网站都是需要注册登陆的,过程比 ...

  7. 在 Apache 上使用网络安全服务(NSS)实现 HTTPS--RHCE 系列(八)

        在 Apache 上使用网络安全服务(NSS)实现 HTTPS--RHCE 系列(八) 发布:linux培训 来源:Linux认证 时间:2015-12-21 15:26 分享到: 达内lin ...

  8. Keil MDK STM32系列(八) STM32F4基于HAL的PWM和定时器输出音频

    Keil MDK STM32系列 Keil MDK STM32系列(一) 基于标准外设库SPL的STM32F103开发 Keil MDK STM32系列(二) 基于标准外设库SPL的STM32F401 ...

  9. 微软云平台windows azure入门系列八课程

    微软云平台windows azure入门系列八课程: Windows Azure入门教学系列 (一): 创建第一个WebRole程序与部署 Windows Azure入门教学系列 (二): 创建第一个 ...

随机推荐

  1. 本地项目通过github客户端上传到github网站上

    一.github客户端上传步骤 一.github客户端上传步骤1.百度搜索关键字: GitHub 离线安装包 ==> Github_3.3.4.0版本链接:https://pan.baidu.c ...

  2. 为gitlab10.x增加使用remote_user HTTP头的方式登录

    项目的结构是这样的: 客户端通过Apache来访问后端的gitlab(gitlab的版本是10.4,手动从源码安装的简体中文版) , Apache作为gitlab的反向代理服务器 Apache内置了C ...

  3. 常用linux命令及shell脚本

    参考:Linux命令大全 分割大文件 Split命令 按行分割(只能是文本文件) $split -l 1000 big_file 前缀 按文件大小分割 $split -b 64m big_file 前 ...

  4. linux中守护进程启停工具start-stop-daemon

    1.功能作用 启动和停止系统守护程序 2.位置 /sbin/start-stop-daemon 3.主要参数 Commands: -S|--start -- <argument> ... ...

  5. AFNetWork 简单实用demo

    NSString *postUrl = @"http://www.huway.com/api_index?module=event&action=topads"; NSDi ...

  6. C++ 标准输出cout与printf

    C++标准输出cout与printf都可以,printf用法更死板一些. #include <iostream> int main(int argc, char** argv) { usi ...

  7. yii---where or该如何使用

    今天调试YII项目的时候,遇到一个奇葩的事儿,在调试 where or 查询的时候:调试语句是这样: $str = static::find()->where(['or','username' ...

  8. Java8新特性之Lambda表达式

    lambda表达式是java8给我们带来的几个重量级新特性之一,借用lambda表达式,可以让我们的java程序设计更加简洁.最近新的项目摒弃了1.6的版本,全面基于java8进行开发,本文是java ...

  9. 2018/04/17 每日一个Linux命令 之 tar

    10天没有更新这个每日学习 linux 了,因为实在很忙,晚上还要看会其他知识. 但是也不应该给自己找理由,还是应该每天的坚持下去 -- tar 用于在 linux 解压缩/文件 这个命令下面的参数非 ...

  10. Spark-自定义排序

    一.自定义排序规则-封装类 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /** ...