概述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. 禁用ngen版本的.NET Framework dll加载

    在调试时会发现出于性能考虑.NET Framework dll加载的都是ngen版本,比如:System.dll,实际加载System.ni.dll. 如果希望加载非ngen版本,可以设置系统环境变量 ...

  2. Spark2 DataSet 创建新行之flatMap

    val dfList = List(("Hadoop", "Java,SQL,Hive,HBase,MySQL"), ("Spark", & ...

  3. Docker 安装Centos,Tomcat,Jdk等相关的自定义(Dockerfile)镜像

    一.安装Centos镜像 这里Centos 安装 国内daocloud网站提供的官方镜像 docker pull daocloud.io/library/centos:latest 利用docker  ...

  4. 9.5Django操作数据库的增删改查

    2018-9-5 18:10:52 先贴上笔记 day61 2018-04-28 1. 内容回顾 1. HTTP协议消息的格式: 1. 请求(request) 请求方法 路径 HTTP/1.1\r\n ...

  5. ElasticSearch在linux上安装部署(转)

    一.安装准备工作安装参考文档: ELK官网:https://www.elastic.co/ ELK官网文档:https://www.elastic.co/guide/index.html ELK中文手 ...

  6. Java -- 给定一个int数组,拼接出最大数值

    public class ZhiJieTiaoDong { /* 给定一个数组:组合成最大数值 */ public String szpj(int[] args){ if(null == args | ...

  7. empty对如下8种情况返回true

    1.strrchr函数 在W3School站点上的注释如下: strrchr() 函数查找字符串在另一个字符串中最后一次出现的位置,并返回从该位置到字符串结尾的所有字符.如果成失败,否则返回 fals ...

  8. PHP中有丰富的运算符集,它们中大部分直接来自于C语言

    PHP中有丰富的运算符集,它们中大部分直接来自于C语言.按照不同功能区分,运算符可以分为:算术运算符.字符串运算符.赋值运算符.位运算符.条件运算符,以及逻辑运算符等.当各种运算符在同一个表达式中时, ...

  9. Python:正则表达式概念

    #正则表达式内容非常多,网上的学习资源也是目不暇接,我从中筛选学习并且整理出以下 的学习笔记 一.正则表达式匹配过程: 1.依次拿出表达式和文本中的字符比较 2.如果每一个字符都能匹配,则匹配成功:一 ...

  10. consul Consul vs. ZooKeeper, doozerd, etcd

    小结 1.Consul 功能更丰富: 2. 暴露http接口避免暴露系统复杂性 The Consul clients expose a simple HTTP interface and avoid ...