Database-as-a-Service通过在操作基础设施时减轻管理员的管理负担去简化对云中的数据库的操作。依靠紧紧结合在底层基础设施和把许多常见操作自动化,DBaaS大大简化了许多这样的活动。然而,失败(failures)可能导致服务中断。因此,至关重要的是,为了使failures对最终用户透明,DBaaS平台解释和处理它们的方式,
Trove实现了这几个方面
第一,trove与OpenSatck基础设施紧密结合,与Nova,Neutron,Swift,Cinder和keystone紧密集成。它把启动一个新的服务器所需的大量的配置和设定都自动化,类似于其他工具如Puppet,Chef和Ansible所做的那样。它还允许网站管理员建立标准配置和使用那些配置可靠地启动服务器。
这个配置支持尤为重要的领域是复制和聚合。没有Trove,用户可能要靠自己手动配置这些特性和管理失效和故障转移。Trove使这些功能自动化,并且这些功能正在被分阶段实施。
Trove中最初被实施的复制(replication)使用了MysqL内置的复制(replication)特性,用于MysqL数据储存。后续阶段将此功能扩展到包括聚合和复制所有Trove支持的数据储存。第一个版本的这个特性,用户可以创建一个单独的MysqL实例,然后创建一个从属的实例。创建从属(slave)的行为会建立一个新的与最初的实例同等的复制实例
以下命令说明用户将如何做到这一点。以下的Trove实例运行一个MysqL5.5:
$ trove list +--------------------------------------+------+-----------+-------------------+--------+-----------+------+ | ID | Name | Datastore | Datastore Version | Status | Flavor ID | Size | +--------------------------------------+------+-----------+-------------------+--------+-----------+------+ | d2bd91ef-3d7c-43ae-97a9-f0726c91d322 | m1 | MysqL | 5.5 | ACTIVE | 7 | 2 +--------------------------------------+------+-----------+-------------------+--------+-----------+------+
$ trove create s1 7 --size 2 --slave_of d2bd91ef-3d7c-43ae-97a9-f0726c91d322 +-------------------+--------------------------------------+ | Property | Value | +-------------------+--------------------------------------+ | created | 2014-06-13T14:33:27 | | datastore | MysqL | | datastore_version | 5.5 | | flavor | 7 | | id | 9ffc7b3a-9205-412a-9cd2-521f95755c43 | | name | s1 | | slaveOf | d2bd91ef-3d7c-43ae-97a9-f0726c91d322 | | status | BUILD | | updated | 2014-06-13T14:33:27 | | volume | 2 | +-------------------+--------------------------------------+
$ trove show 9ffc7b3a-9205-412a-9cd2-521f95755c43 +-------------------+---------------------------------------------+ | Property | Value | +-------------------+---------------------------------------------+ | created | 2014-06-13T14:33:27 | | datastore | MysqL | | datastore_version | 5.5 | | flavor | 7 | | id | 9ffc7b3a-9205-412a-9cd2-521f95755c43 | | name | s1 | | slaveOf | d2bd91ef-3d7c-43ae-97a9-f0726c91d322 | | status | ACTIVE | | updated | 2014-06-13T14:33:27 | | volume | 2 | +-------------------+---------------------------------------------+ $ trove show d2bd91ef-3d7c-43ae-97a9-f0726c91d322 +-------------------+---------------------------------------------+ | Property | Value | +-------------------+---------------------------------------------+ | created | 2014-06-13T14:33:27 | | datastore | MysqL | | datastore_version | 5.5 | | flavor | 7 | | id | d2bd91ef-3d7c-43ae-97a9-f0726c91d322 | | name | s1 | | slaves | 9ffc7b3a-9205-412a-9cd2-521f95755c43 | | status | ACTIVE | | updated | 2014-06-13T14:33:27 | | volume | 2 | +-------------------+---------------------------------------------+
$ trove detach_replication <slave instance>