溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Openstack Trove是什么意思

發(fā)布時間:2021-12-29 14:59:29 來源:億速云 閱讀:215 作者:小新 欄目:云計算

小編給大家分享一下Openstack Trove是什么意思,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

Trove簡介

Openstack Trove是openstack為用戶提供的數(shù)據(jù)庫即服務(wù)(DBaaS)。所謂DBaaS,即trove既具有數(shù)據(jù)庫管理的功能,又具有云計算的優(yōu)勢。使用trove,用戶可以:

  • "按需"獲得數(shù)據(jù)庫服務(wù)器

  • 配置所獲得的數(shù)據(jù)庫服務(wù)器或者數(shù)據(jù)庫服務(wù)器集群

  • 對數(shù)據(jù)庫服務(wù)器或者數(shù)據(jù)庫服務(wù)器集群進行自動化管理

  • 根據(jù)數(shù)據(jù)庫的負載讓數(shù)據(jù)庫服務(wù)器集群動態(tài)伸縮

與openstack的其他組件一樣,trove也提供RESTful API,并通過RESTful API和其他組件進行交互。

Trove架構(gòu)

Openstack Trove是什么意思

上圖為trove的架構(gòu)圖。Trove API和用戶進行交互,當(dāng)Trove API接收到用戶請求時,trove API首先會調(diào)用Keystone的API來對用戶進行認證,認證通過后才會去執(zhí)行相應(yīng)的操作。Trove API會同步處理操作簡單的一些請求,復(fù)雜的請求則會通過Message Queue (RabbitMQ)交給Task Manager來處理。Task Manager會監(jiān)聽RabbitMQ的一個topic,收到請求后就會進行處理。這些請求通常是分配數(shù)據(jù)庫實例、管理數(shù)據(jù)庫實例的生命周期、操作數(shù)據(jù)庫等。和openstack的其他組件一樣,Trove也有一個Infrastructure Database來存儲自己本身的數(shù)據(jù),如數(shù)據(jù)庫實例的信息等。Trove conductor的主要功能是接收來自guest agent的狀態(tài)更新信息,這些信息會被存儲在Infrastructure database里面或者作為調(diào)用結(jié)果返回給其他服務(wù)。通常這些狀態(tài)更新信息包括:guest agent心跳包,數(shù)據(jù)庫備份狀態(tài)等。Guest Agent運營于數(shù)據(jù)庫服務(wù)器中(虛擬機),給trove其他組件提供了一套內(nèi)部使用的API,trove的其他組件通過Message Queue來調(diào)用這些API,guest agent收到API調(diào)用請求后,執(zhí)行相應(yīng)的數(shù)據(jù)庫操作。

Trove的安裝部署請參考Openstack官方文檔(多坑慎入):

https://docs.openstack.org/project-install-guide/database/ocata/

Trove的基本概念

  • 數(shù)據(jù)庫實例(Instance):包含數(shù)據(jù)庫程序的openstack虛擬機,如果用戶創(chuàng)建了一個數(shù)據(jù)庫實例,那么他其實就創(chuàng)建了一臺openstack虛擬機,并在該虛擬機上啟動了數(shù)據(jù)庫服務(wù)。

  • Datastore:用來表示和存儲數(shù)據(jù)庫的類型、版本、虛擬機鏡像等信息。當(dāng)用戶創(chuàng)建一個數(shù)據(jù)庫實例時需要指定Datastore.

  • 配置組(Configuration Group):數(shù)據(jù)庫參數(shù)組成的集合。用戶可以將配置組應(yīng)用到一個或多個數(shù)據(jù)庫實例上,因而避免了大量的重復(fù)操作。

Openstack Trove是什么意思

Trove的用法

0.添加Datastore

在創(chuàng)建數(shù)據(jù)庫實例時,需要指定Datastore來告訴trove需要用到的鏡像、數(shù)據(jù)庫類型及版本信息。所以在創(chuàng)建數(shù)據(jù)庫實例之前需要在系統(tǒng)中創(chuàng)建Datastore.

由于版權(quán)問題,openstack官方并沒有提供可供下載的鏡像,需要用戶自己去build??蓞⒖嘉臋n:

https://docs.openstack.org/developer/trove/dev/building_guest_images.html

Build好鏡像好需要將其上傳到glance服務(wù):

ad@ltczhp11:~$ glance image-create --name mysql-5.6 --disk-format=qcow2 --container-format=bare --file=./mysql-5.6.qcow2 --visibility public 
ad@ltczhp11:~$ glance image-list
+--------------------------------------+--------------------------+
| ID                                   | Name                     |
+--------------------------------------+--------------------------+
| 31d60001-c2bf-496e-9f21-069bb411bd3b | CouchDB                  |
| eaf27f1b-3a8a-4efb-827c-697fa065933b | DB2                      |
| 60ca8bfc-28a7-418a-9422-ec6548f23d54 | DIB-Mongodb              |
| 51103b44-2618-4c15-8ded-4371bea8973a | DIB-Postgres             |
| 8bc1a6a2-6ec3-4f37-bb54-91134b903996 | mongodb-lsl              |
| c4c9a58f-bbe6-4640-8488-0c05b52028df | mysql-5.6                |
| 5d800163-3660-467a-a433-e1827924a741 | PostgreSQL               |
| 38291f8f-5af6-4338-82b7-3f18dc355cae | ubuntu16.04-server-s390x |
+--------------------------------------+--------------------------+

使用trove-manage添加Datastore:

root@ltczhp11:~# trove-manage datastore_update mysql "" #創(chuàng)建一個datastore

root@ltczhp11:~# trove-manage datastore_version_update mysql 5.6 mysql c4c9a58f-bbe6-4640-8488-0c05b52028df "" 1 #創(chuàng)建一個dadastore的版本,一個dadastore可以有多個版本

root@ltczhp11:~# trove-manage datastore_update mysql 5.6?。V付J的datastore版本

1.基本的數(shù)據(jù)庫實例操作

  • 列出所有的數(shù)據(jù)庫實例

    • $ trove list

  • 創(chuàng)建一個數(shù)據(jù)庫實例

    • $ trove create vm1 2 --size 3 --datastore mysql

  • 重啟一個數(shù)據(jù)庫實例

    • $ trove restart vm1

  • 刪除一個數(shù)據(jù)庫實例

    • $ trove delete vm1

  • 強制刪除一個數(shù)據(jù)庫實例

    • $ trove force-delete vm1

  • 調(diào)整一個數(shù)據(jù)庫實例的規(guī)格

    • $ trove resize-volume vm1 4

    • $ trove resize-instance vm1 3

2.管理數(shù)據(jù)庫用戶

  • 列出所有的數(shù)據(jù)庫用戶

    • $ trove user-list

  • 創(chuàng)建一個用戶

    • $ trove user-create

  • 刪除一個用戶

    • $ trove user-delete

  • 給一個用戶授權(quán)訪問某個數(shù)據(jù)庫

    • $ trove user-grant-access

  • 吊銷用戶對于某一個數(shù)據(jù)庫的訪問權(quán)限

    • $ trove user-revoke-access

  • 顯示用戶信息

    • $ trove user-show

  • 顯示用戶的權(quán)限

    • $ trove user-show-access

3. 數(shù)據(jù)庫管理

  • 在一個數(shù)據(jù)庫實例中創(chuàng)建一個數(shù)據(jù)庫

    • $ trove database-create

  • 列出一個數(shù)據(jù)庫實例中的所有數(shù)據(jù)庫

    • $ trove database-list

  • 刪除一個數(shù)據(jù)庫實例中的某個數(shù)據(jù)庫

    • $ trove database-delete

4. 副本管理

  • 創(chuàng)建一個副本

    • $ trove create  --replica_of

  • 將一個副本從源數(shù)據(jù)庫分離

    • $ trove detach-replica

  • 讓一個副本在副本集合中成為源數(shù)據(jù)庫

    • $ trove promote-to-replica-source

  • 刪除掛掉的源數(shù)據(jù)庫

    • $ trove eject-replica-source

  • 設(shè)置副本親和性

    • $ trove create  --replica_of  --locality affinity

    • $ trove create  --replica_of  --locality anti-affinity

看完了這篇文章,相信你對“Openstack Trove是什么意思”有了一定的了解,如果想了解更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI