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-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       }   }}应答html

(无应答体)mysql

 

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。配置项 本表经过外键configuration_group_id 维护了 配置组的 多对一的关系。数据存储配置参数 本表包含了医嘱配置参数并将他们与指定的存储版本相关联:管理命令trove-manage 命令以下,对于每个数据存储版原本说,该命令提供了加载指定目录下的配置参数json文件的功能。
trove-manage load_datastore_config_parameters [datastore_version_id] [full path to the json file]sql

相关文章
相关标签/搜索