精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

您好,歡迎來電子發燒友網! ,新用戶?[免費注冊]

您的位置:電子發燒友網>源碼下載>數值算法/人工智能>

關于數據庫服務Trove的解析與實踐

大小:0.4 MB 人氣: 2017-10-11 需要積分:1
 對于公有云計算平臺來說,只有計算、網絡與存儲這三大服務往往是不太夠的,在目前互聯網應用百花齊放的背景下,幾乎所有應用都使用到數據庫,而數據庫承載的往往是應用最核心的數據。此外,在大數據分析越來越盛行的背景下,對數據庫的可靠便捷管理也變得更為重要。因此,DBase as a Service(DBaaS,數據庫服務)也就順理成章地成為了云計算平臺為用戶創造價值的一個重要服務。
  對比Amazon AWS中各種關于數據的服務,其中最著名的是RDS(SQL-base)和DynamoDB(NoSQL),除了實現了基本的數據管理能力,還具備良好的伸縮能力、容災能力和不同規格的性能表現。因此,對于最炙手可熱的開源云計算平臺Openstack來說,也從Icehouse版加入了DBaaS服務,代號Trove。直到去年底發布的Openstack Liberty版本,Trove已經經過了4個版本的迭代發布,目前已經成為Openstack官方可選的核心服務之一。本文將深入介紹Trove的原理、架構與功能,并通過實踐來展示Trove的應用。
  Trove的設計目標
  “Trove is Database as a Service for OpenStack. It’s designed to run entirely on OpenStack, with the goal of allowing users to quickly and easily utilize the features of a relational or non-relational database without the burden of handling complex administrative tasks. ”這是Trove在官方首頁上對這個項目的說明,有兩個關鍵點。一個是從產品設計上說,它定位不僅僅是關系型數據庫,而且還涵蓋非關系數據庫的服務。另一個是從產品實現上說,它是完全基于Openstack的。
  從第一點可以看出Trove解決問題的高度已經超越了同類產品。因為我們從其他云計算平臺對比去看,關系型和非關系型數據庫都是由不同的服務去提供(比如AWS的RDS和DynamoDB),而且實現上也往往互相獨立的系統,不僅UI不同,API也不一樣。而Trove的目標是抽象盡可能多的東西,對外提供統一的UI和API,盡量減少冗余實現,提升平臺內聚。只要具備了實例、數據庫、用戶、配置、備份、集群、主從復制這些概念,不管是關系型還是非關系型數據庫,都能統一管理起來。從最新的Liberty版本發布的情況下,目前開源的主流關系型和非關系型數據庫也得到了支持,比如Mysql(包括Percona和MariaDB分支)、Postgresql、Redis、MongoDB、CouchDB、Cassandra等等。不過根據官方的介紹,目前只有Mysql是得到了充分的生產性測試,其他的還處于實驗性階段。
  而第二點完全基于Openstack的,可以說是一個較大的創新。試想,假設你是一個云計算服務商,如果現在要提供數據庫服務,只需要在原有平臺軟件上升級與配置一下就行,其他什么都不需要,不需要采購數據庫服務器硬件,不需要規劃網絡,不需要規劃IDC,這是一種什么樣的感覺?Trove完全構建于Openstack原有的幾大基礎服務之上。打個比喻類似于Google著名的Bigtable服務是構建于GFS、Borg、Chubby等幾個基礎服務之上。所以,Trove實際上擁有了云平臺的一些基礎特性,比如容災隔離、動態調度、快速響應等能力,而且從研發的角度看,也大大減少了重復造輪子的現象。
  關于數據庫服務Trove的解析與實踐
  Trove的架構介紹
  實際上Trove的架構(最新版本)與Openstack Nova項目的架構是如出一轍,可以說是Nova的一個簡化版。也是典型的Openstack項目架構風格。Trove所管理的各個數據庫引擎的差異性主要體現在trove-guestagent的具體manager和strategies代碼實現上。架構如圖所示:
  關于數據庫服務Trove的解析與實踐
  trove-api是接入層,輕量級請求通過在接入層直接處理或者通過直接訪問guestagent處理,比如獲取實例列表、獲取實例規格列表等;而比較重的請求則通過message bus(Openstack默認實現是Rabbitmq)中轉給trove-taskmanager進行調度處理。trove-taskmanager是調度處理層,主要是處理較重的請求,比如創建實例、實例resize等。
  taskmanager會通過Nova、Swift的API訪問Openstack基礎的服務,而且是有狀態的,是整個系統的核心。trove-conductor是guestagent訪問數據庫的代理層,主要是為了屏蔽掉guestagent直接對數據庫的訪問。
  在Trove目前的實現中,一個數據庫實例一一對映到一個vm,而guestagent也是運行在vm里面。vm鏡像包含了經過裁剪的操作系統、數據庫引擎和guestagent(鏡像具體實現沒有標準,數據庫引擎和guestagent也都可以在vm啟動時通過網絡動態裝載)。而實例所在分區的硬盤是通過Cinder提供的云硬盤。每個vm都會關聯一個安全組防火墻,只允許數據庫服務的端口通過(比如Mysql,默認是TCP 3306端口)。從這里可以看出,Trove創建數據庫實例是非常靈活的,后期的調度也非常方便,這些都得益于Nova和Cinder。

非常好我支持^.^

(0) 0%

不好我反對

(0) 0%

關于數據庫服務Trove的解析與實踐下載

相關電子資料下載

      發表評論

      用戶評論
      評價:好評中評差評

      發表評論,獲取積分! 請遵守相關規定!

      ?