首页 » OpenStack系统架构设计实战 » OpenStack系统架构设计实战全文在线阅读

《OpenStack系统架构设计实战》10.4 Trove的安装和配置

关灯直达底部

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