讀古今文學網 > OpenStack系統架構設計實戰 > 10.4 Trove的安裝和配置 >

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節點上,直接執行如下命令進行安裝即可:

[root@controller trove_rpm]# rpm -ivh *.rpm

2.準備OpenStack環境

1)設置環境變量

[root@controller ~]# source admin-operc.sh註:[root@controller ~]# 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密碼。

[root@controller ~]# keystone user-create --name trove --pass TROVE_PASSWORD[root@controller ~]# 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:TROVE_PASSWORD@controller/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用戶。

[root@controller trove]# mysql -uroot -P』ROOT_PASSWD\' ##連接到OpenStack的數據庫服務組件,替換ROOT_PASSWD 為root的真實密碼 MariaDB [(none)]> CREATE DATABASE trove;##創建Trove庫 MariaDB [(none)]> GRANT ALL PRIVILEGES ON trove.* TO trove@\'localhost\' IDENTIFIED BY \'trove\'; MariaDB [(none)]> GRANT ALL PRIVILEGES ON trove.* TO trove@\'%\' IDENTIFIED BY \'trove\';

8)準備數據庫服務。

初始化數據庫:[root@controller trove]# su -s /bin/sh -c \"trove-manage db_sync\" trove 創建數據庫:[root@controller 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數據存儲。

[root@controller 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服務。

[root@controller trove]# keystone service-create --name trove --type database --description \"OpenStack Database Service\"[root@controller 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服務組件,並配置為隨開機自啟動。

[root@controller trove]# systemctl enable openstack-trove-api.service openstack-trove-taskmanager.service openstack-trove-conductor.service[root@controller trove]# systemctl start openstack-trove-api.service openstack- trove-taskmanager.service openstack-trove-conductor.service

13)驗證。

[root@controller ~]# source ~/demo-openrc.sh

檢索Trove實例列表。

[root@controller ~]# trove list

假設你已經創建了一個你想要的數據庫鏡像,並且已經升級數據存儲來使用鏡像,那麼現在就可以創建Trove實例了。使用trove create命令:

trove create name 1---size=1---databases DBNAME --users USER:PASSWORD --datastore_version mysql-5.5 --datastore mysql