Trove的安装采用最简单的两节点架构,即Controller节点和Compute节点。基于Red Hat 7.0系统,使用Open Stack-Juno版本。
Controller节点必须包含:数据库服务组件、消息队列组件、NTP服务、身份认证服务、镜像服务和计算管理服务。其他组件可选。
Compute节点必须包含:KVM虚拟机管理组件、compute组件、计算网络组件。
Trove的安装必须基于一个已成型的OpenStack环境,且此OpenStack环境必须已经安装有计算服务、镜像服务、身份验证服务。如果要想做备份与恢复,还需要Swift组件;如果想要数据存储在块存储卷上,则还需要块存储组件。
本安装是先从网上下载相关的rpm安装包,手动进行安装。如果有条件,可以使用配置OpenStack源,连接网络进行自动下载安装。
Trove的具体的安装和配置步骤如下:
1.安装openstack-trove和python-troveclient
1)所需安装包和依赖包如下:
openstack-trove-2014.1-1.el7.noarch.rpmopenstack-trove-api-2014.1-1.el7.noarch.rpmopenstack-trove-common-2014.1-1.el7.noarch.rpmopenstack-trove-conductor-2014.1-1.el7.noarch.rpmopenstack-trove-guestagent-2014.1-1.el7.noarch.rpmopenstack-trove-taskmanager-2014.1-1.el7.noarch.rpmpexpect-2.3-11.el7.noarch.rpmpython-trove-2014.1-1.el7.noarch.rpmpython-troveclient-1.0.5-1.el7.noarch.rpm
2)把上述安装包上传到controller节点上,直接执行如下命令进行安装即可:
[[email protected] trove_rpm]# rpm -ivh *.rpm
2.准备OpenStack环境
1)设置环境变量
[[email protected] ~]# source admin-operc.sh注:[[email protected] ~]# cat admin-openrc.shexport OS_TENANT_NAME=adminexport OS_USERNAME=adminexport OS_PASSWORD=adminexport OS_AUTH_URL=http://controller:35357/v2.0
2)使用Keystone创建Trove用户鉴权,并赋予service租户和admin权限,替换TROVE_PASSWORD为真正的Trove密码。
[[email protected] ~]# keystone user-create --name trove --pass TROVE_PASSWORD[[email protected] ~]# keystone user-role-add --user trove --tenant service --role admin
3)分别编辑trove.conf、trove-taskmanager.conf和trove-conductor.conf文件,在DEFAULT项中添加或修改如下内容:
[DEFAULT]log_dir = /var/log/trovetrove_auth_url = http://controller:5000/v2.0nova_compute_url = http://controller:8774/v2cinder_url = http://controller:8776/v1swift_url = http://controller:8080/v1/AUTH_sql_connection = mysql://trove:[email protected]/trove ##替换TROVE_PASSWORD为trove的SQL连接密码notifier_queue_hostname = controllerrpc_backend = rabbitrabbit_host = controllerrabbit_password = RABBIT_PASSWD ##RABBIT_PASSWD 使用安装消息队列时默认用户的密码替换它
4)从http://git.openstack.org/cgit/openstack/trove/plain/etc/trove/api-paste.ini?h=stable/juno上获取文本内容,存放在/etc/trove目录下的api-paste.ini文件中,若文件不存在则创建它。同时修改api-paste.ini文件的配置。
[filter:authtoken]auth_uri = http://controller:5000/v2.0identity_uri = http://controller:35357admin_user = troveadmin_password = TROVE_PASSWORD ##用户Trove的密码admin_tenant_name = servicesigning_dir = /var/cache/trove ##保证/var/cache/trove目录的属主是Trove
5)修改trove.conf文件如下:
[DEFAULT]...default_datastore = mysqladd_addresses = Truenetwork_label_regex = ^NETWORK_LABEL$api_paste_config = /etc/trove/api-paste.ini
6)修改配置文件trove-taskmanager.conf:
[DEFAULT]...nova_proxy_admin_user = adminnova_proxy_admin_pass = ADMIN_PASSWD ##安装Keystone时创建admin用户的密码nova_proxy_admin_tenant_name = servicetaskmanager_manager = trove.taskmanager.manager.Manager
7)在数据库中创建Trove用户。
[[email protected] trove]# mysql -uroot -P’ROOT_PASSWD/' ##连接到OpenStack的数据库服务组件,替换ROOT_PASSWD 为root的真实密码 MariaDB [(none)]> CREATE DATABASE trove;##创建Trove库 MariaDB [(none)]> GRANT ALL PRIVILEGES ON trove.* TO [email protected]/'localhost/' IDENTIFIED BY /'trove/'; MariaDB [(none)]> GRANT ALL PRIVILEGES ON trove.* TO [email protected]/'%/' IDENTIFIED BY /'trove/';
8)准备数据库服务。
初始化数据库:[[email protected] trove]# su -s /bin/sh -c /"trove-manage db_sync/" trove 创建数据库:[[email protected] trove]# su -s /bin/sh -c /"trove-manage datastore_update mysql /'/'/" trove
9)创建Trove镜像,即创建一个你想使用的、哪种类型的数据库的镜像,如MySQL,MongoDB等。创建这个镜像之前,必须保证Trove Guest Agent已经安装,并且必须配置好trove-guestagent.conf文件,使得可以连接OpenStack环境。
在trove-guestagent.conf文件中增加如下配置:
[DEFAULT]rabbit_host = controllerrabbit_password = RABBIT_PASS ## 使用安装消息队列时默认用户的密码替换它nova_proxy_admin_user = adminnova_proxy_admin_pass = ADMIN_PASSWD ##安装Keystone时创建admin用户的密码
nova_proxy_admin_tenant_name=service
trove_auth_url = http://controller:35357/v2.0
10)使用trove-manage命令更新数据存储。
例如,创建MYSQL 5.5数据存储。
[[email protected] trove]# trove-manage --config-file /etc/trove/trove.conf datastore_version_update mysql mysql-5.5 mysql glance_image_ID mysql- server-5.5 1
11)在数据库模块中注册服务并指定Trove服务。
[[email protected] trove]# keystone service-create --name trove --type database --description /"OpenStack Database Service/"[[email protected] trove]# keystone endpoint-create --service-id $(keystone service-list | awk /'/ trove / {print $2}/') --publicurl http:// controller:8779/v1.0/%(tenant_id)s --internalurl http://controller:8779/ v1.0/%(tenant_id)s --adminurl http://controller:8779/v1.0/%(tenant_id) s --region regionOne
12)启动Trove服务组件,并配置为随开机自启动。
[[email protected] trove]# systemctl enable openstack-trove-api.service openstack-trove-taskmanager.service openstack-trove-conductor.service[[email protected] trove]# systemctl start openstack-trove-api.service openstack- trove-taskmanager.service openstack-trove-conductor.service
13)验证。
[[email protected] ~]# source ~/demo-openrc.sh
检索Trove实例列表。
[[email protected] ~]# trove list
假设你已经创建了一个你想要的数据库镜像,并且已经升级数据存储来使用镜像,那么现在就可以创建Trove实例了。使用trove create命令:
trove create name 1---size=1---databases DBNAME --users USER:PASSWORD --datastore_version mysql-5.5 --datastore mysql