功能描述数据存储管理程序(Datastore)类型管理允许Trove的用户从操作者列出的名单中选择数据库存储管理程序和版本。操作者将可以控制数据库存储管理程序的类型,添加一个新的版本并去活一个老版本。为了实现这个功能,用户可以指定数据库存储管理程序类型和可选择的版本。数据库存储管理程序类型是一种数据库引擎的家族,诸如:mysql, mongodb, cassandra 等。
数据库存储管理程序版本定义了引擎的版本以及为了实现这个引擎所包含的系统包。每种datastore类型具有几个引擎的版本,每种类型有一个缺省的版本。 版本具有激活或者未激活状态。 用户可以用激活的版本创建数据库实例。未激活的版本对用户不可见,用户不可以用未激活的版本创建数据库实例。 但是未激活的版本可以被已经运行的实例使用。
对每种datastore类型而言,操作者可以指定运行实例的操作系统镜像。对每种类型的每个版本而言,操作者可以指定不同的镜像。这样我们可以灵活的选择镜像,数据库类型和版本。
每个版本应该指定系统包的列表。 这些系统包提供了指定数据库的指定版本的在指定镜像上的安装。
这里有可能只指定一个包。但是大多数情况下需要指定多个具有确切版本的包。 对于mysql 来说,你可以指定server, client, shared 和 shared-compat 包。这种情况只在你有不只一个可用版本的情况下才影响。 例如: 如果你仅仅指定 "mysql-server-5.5" 包,但是你又有mariadb 和 percona 可用, 你可以将 mysql-server-5.5, mariadb-shared-5.5, percona-client-55 安装上去。
管理的资源至此,Trove又出现了两种新的资源:datastore_type 和 datastore_version。datastore_type允许操作者定义新的datastore 类型,datastore_type 包含以下数据:id – 一个系统定义UUID值,该值在第一次创建时赋予datastore type.name - datastore type 的名字engine – 提供操作的管理者级别的名字image_id – 镜像的UUID,该镜像将用于实例的部署default_version – 如果用户不指定版本,将使用缺省版本User can see only id and name of datastore type.用户将只能看到id 和 datastore type 的名字 datastore_version资源允许操作者定义指定数据库类型的版本。 包含以下数据。 id -一个系统定义UUID值,该值在第一次创建时赋予datastore type.版本name - datastore type版本 的名字datastore_type – 该版本从属的datastore 类型image_id -镜像的UUID,该镜像将用于实例的部署packages – 用空格隔开的系统镜像列表,该系统镜像提供了这个版本的datastoreactive - bool (1|0) – 表示这个版本是否被激活User can see only id and name, also user can see and use only active versions用户将只能看到id 和 datastore type 的名字,而且用户只能够看到和使用激活的版本。 为了实现这个功能,操作者应在数据库中定义datastore 类型 和 可用的版本。 trove-manage 将有以下命令:
 update_datastore_type name engine image_id 用指定的名字更新datastore type ,如果指定的名字不存在,则将新创建,本命令返回UUID 或者 datastore type 的新建或者更新的名字。 update_datastore_version datastore_type name image_id packages active 用指定的名字更新版本, 如果指定的名字不存在,则将新创建,本命令返回UUID 或者 datastore type 版本的新建或者更新的名字。
API规范用户可以列出数据存储管理程序的类型和可用的版本 Datastore types list (New call)请求消息结构tGET /{tenant_id}/datastores应答消息结构{    "id": "73144fc8-f2c5-4490-a2d7-76604c4528dd",    "links": [...    ],    "name": "MongoDB"}{    "id": "e60153d4-8ac4-414a-ad58-fe2e0035704a",    "links": [...    ],    "name": "Mysql"} Show datastore type (New call)请求消息结构tGET /{tenant_id}/datastores/e60153d4-8ac4-414a-ad58-fe2e0035704a应答消息结构{    "id": "e60153d4-8ac4-414a-ad58-fe2e0035704a",    "links": [...    ],    "name": "Mysql"} Datastore type versions list (New call)请求消息结构tGET /{tenant_id}/datastores/e60153d4-8ac4-414a-ad58-fe2e0035704a/versions应答消息结构{    "id": "7d109ae8-d38f-41c8-86e4-a8e613f81be5",    "links": [...    ],    "name": "ubuntu percona-5.5.33"}{    "id": "8ae342fb-19ac-4882-8978-fe1afb38c7c7",    "links": [...    ],    "name": "fedora oracle-5.1.71"}{    "id": "94ed1f9f-6c1a-4d6e-87e9-04ecff37b64b",    "links": [...    ],    "name": "ubuntu maria-10.0.4"} Show version (New call)请求消息结构GET /{tenant_id}/datastores/versions/7d109ae8-d38f-41c8-86e4-a8e613f81be5应答消息结构{    "id": "7d109ae8-d38f-41c8-86e4-a8e613f81be5",    "links": [...    ],    "name": "ubuntu percona-5.5.33"} Create instance with specified datastore type and version (Existing call)请求消息结构POST /instances{"instance" : {      "flavorRef" : "2",      "name" : "as",      "datastore": {          "type" : "e60153d4-8ac4-414a-ad58-fe2e0035704a",          "version" : "94ed1f9f-6c1a-4d6e-87e9-04ecff37b64b"      },      "volume" : { "size" : "1" }    }}应答消息结构{    "created": "2013-10-09T10:56:56",    "flavor": {        "id": "2",        "links": [...        ]    },    "id": "86bb7492-d797-4562-b864-851c8fad7216",    "links": [...    ],    "name": "as",    "datastore": {        "type": "Mysql",        "version": "ubuntu maria-10.0.4"    },    "status": "BUILD",    "updated": "2013-10-09T10:56:56",    "volume": {        "size": 1    }} List instances (Existing call)请求消息结构tGET /instances应答消息结构{    "flavor": {        "id": "2",        "links": [...        ]    },    "id": "b1f0dff8-6303-4711-9d23-e899abc5d24d",    "links": [...    ],    "name": "as_2",    "datastore": {        "type": "Mysql"    },    "status": "ACTIVE",    "volume": {        "size": 1    }}{    "flavor": {        "id": "2",        "links": [...        ]    },    "id": "be1f10ae-afa9-4f75-808d-f7782784f363",    "links": [...    ],    "name": "as_2",    "datastore": {        "type": "Mysql"    },    "status": "ACTIVE",    "volume": {        "size": 1    }} l  Get instance (Existing call)
请求消息结构tGET /instances/be1f10ae-afa9-4f75-808d-f7782784f363应答消息结构{    "created": "2013-10-08T09:05:45",    "flavor": {        "id": "2",        "links": [...        ]    },    "id": "be1f10ae-afa9-4f75-808d-f7782784f363",    "links": [...    ],    "name": "as_2",    "datastore": {        "type": "Mysql",        "version": "ubuntu maria-10.0.4"    },    "status": "ACTIVE",    "updated": "2013-10-08T09:05:52",    "volume": {        "size": 1    }}

Trove系列(五)—Trove的数据存储管理程序类型和版本管理功能介绍的更多相关文章

  1. 虚拟化(五):vsphere高可用群集与容错(存储DRS是一种可用于将多个数据存储作为单个数据存储群集进行管理的功能)

    vsphere高级功能需要vcenter server和共享存储的支持才能实现.vsphere的高级功能有 vmotion.storage vmotion.vsphere HA.vsphere DRS ...

  2. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_5-1.数据信息安全--微信授权一键登录功能介绍

    笔记 1.数据信息安全--微信授权一键登录功能介绍 简介:讲解登录方式优缺点和微信授权一键登录功能介绍         1.手机号或者邮箱注册             优点:              ...

  3. Spark RDD概念学习系列之Spark的数据存储(十二)

    Spark数据存储的核心是弹性分布式数据集(RDD). RDD可以被抽象地理解为一个大的数组(Array),但是这个数组是分布在集群上的. 逻辑上RDD的每个分区叫一个Partition. 在Spar ...

  4. 安卓中的数据存储方式以及ContentProvider的简单介绍

    1.介绍android的数据存储方式 File存储 sharedPrefrence存储方式 conmtentprovider sqlitedatabase 网络存储   2.请介绍下ContentPr ...

  5. Solr系列五:solr搜索详解(solr搜索流程介绍、查询语法及解析器详解)

    一.solr搜索流程介绍 1. 前面我们已经学习过Lucene搜索的流程,让我们再来回顾一下 流程说明: 首先获取用户输入的查询串,使用查询解析器QueryParser解析查询串生成查询对象Query ...

  6. Trove系列(三)—Trove的功能管理功能介绍

    Trove的功能管理功能Trove的功能管理功能包括给各种不同的版本的 datastore 安装不同的 功能. 本管理功能只适用于激活/去活全系统的功能.唯一例外的是数据存储功能列表功能,该功能对所有 ...

  7. Android编程中的5种数据存储方式

    Android编程中的5种数据存储方式 作者:牛奶.不加糖 字体:[增加 减小] 类型:转载 时间:2015-12-03我要评论 这篇文章主要介绍了Android编程中的5种数据存储方式,结合实例形式 ...

  8. 【Android 应用开发】Android 数据存储 之 SQLite数据库详解

    . 作者 :万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/19028665 . SQLiteDataBase示例程序下 ...

  9. 【Android开发日记】之入门篇(七)——Android数据存储(上)

    在讲解Android的数据源组件——ContentProvider之前我觉得很有必要先弄清楚Android的数据结构. 数据和程序是应用构成的两个核心要素,数据存储永远是应用开发中最重要的主题之一,也 ...

随机推荐

  1. 2015.7.12js-11(DOM基础)

    1.childNodes,获取子节点,本身就是一个数组,可以通过下标childNodes[i]来获取某个子节点. alert(obj.childNodes.length); //高级浏览器会有空白节点 ...

  2. 自定义容器启动脚本报错:exec user process caused "no such file or directory"

    创建容器起不来,一直是restarting状态,查看容器的报错日志如下: standard_init_linux.go:178: exec user process caused "no s ...

  3. NHibernate.3.0.Cookbook第一章第六节Handling versioning and concurrency的翻译

    NHibernate.3.0.Cookbook第一章第六节Handling versioning and concurrency的翻译   第一章第二节Mapping a class with XML ...

  4. 【CF819D】Mister B and Astronomers EXGCD

    [CF819D]Mister B and Astronomers 题意:小鼠Jack想当太空人(哦不,太空鼠)!为此,它在夜晚带领一堆小朋友一起来到户外看星星.一共有 $n​$ 只小鼠,这些小鼠围成一 ...

  5. java.lang.NoClassDefFoundError: org/jdom/input/SAXBuilder

    java.lang.NoClassDefFoundError: org/jdom/input/SAXBuilder 少导入了jdom.jar包. 下载地址:http://www.jdom.org/do ...

  6. thinkCMF----导航高亮显示

    导航高亮显示,有多种方法,这里给出一个简单的表示下: <a href="__ROOT__"> <span class="text db"> ...

  7. vs中如何添加库目录、包含目录以及依赖-----转

    在生成时,可能需要首先生成某些项目,以便生成由其他项目使用的可执行代码.使用 “解决方案属性页”对话框 ->“通用属性”->“项目依赖项” 设置当前生成顺序.若要访问此对话框,请在“解决方 ...

  8. opengl学习笔记(三):经过纹理贴图的棋盘

    opengl纹理贴图的步骤: 1:创建纹理对象,并为它指定一个纹理 2:确定纹理如何应用到每个像素上 3:启用纹理贴图功能 4:绘制场景,提供纹理坐标和几何图形坐标 注意:纹理坐标必须在RGBA模式下 ...

  9. codeforces 894C - Marco and GCD Sequence - [有关gcd数学题]

    题目链接:https://cn.vjudge.net/problem/CodeForces-894C In a dream Marco met an elderly man with a pair o ...

  10. are not called implicitly

    php.net <?php class BaseClass{ function __construct() { print "In BaseClass constructor<b ...