深入理解OpenStack Trove
內容描述
<內容簡介>
深入理解OpenStack Trove》由Tesora團隊的CTO Amrith Kumar和研發副總裁Douglas Shelley聯合編寫,深入介紹並研究了OpenStack中Trove項目的架構及工作原理。Trove項目作為一個DBaaS(數據庫即服務),可以方便地為用戶提供關係型和非關係型數據庫,並在數據庫生命週期內提供各種便捷的管理操作,例如復制、備份、擴容等。《深入理解OpenStack Trove》首先介紹了Trove的相關概念,以及如何下載並安裝Trove;接著以實際操作為示例,講述了Trove的基礎架構和一些典型的操作方法,以及如何調試Trove並進行一系列故障排查;最後介紹瞭如何構建Trove guest鏡像,以及在生產環境中操作Trove時需要註意的事項。《深入理解OpenStack Trove》適用於對OpenStack生態圈有所瞭解,並對數據庫和開源事業有興趣的開發者。
<章節目錄>
第1章關於DBaaS的介紹1.1什麼是DBaaS 1.1.1數據庫1.1.2服務1.1.3服務類別1.1.4 DBaaS的定義1.2 IT部門面對的數據庫挑戰1.3 DBaaS的特性1.3.1管理平面和數據平面1.3.2租賃1.3.3服務位置1.3.4服務vs平臺1.4 DBaaS的好處1.4.1易於提供1.4.2一致性的配置1.4.3自動化操作1.4.4自動縮放1.4.5提高開發的靈活性1.4 .6更好的資源利用和設計1.4.7對於提供者或操作者簡化角色1.5其他DBaaS的提供者1.5.1亞馬遜RDS 1.5.2亞馬遜Redshift 1.5.3微軟Azure SQL Database 1.5.4 Google Cloud SQL 1.5 .5亞馬遜DynamoDB 1.6 OpenStack Trove 1.7 Trove的一段簡要歷史1.8 OpenStack Trove中的租約1.9 OpenStack生態系統中的Trove 1.10總結
第2章下載和安裝OpenStack Trove 2.1部署一個單節點的開發環境2.1.1配置Ubuntu環境2.1.2安裝一些基礎包2.1.3確認你的配置2.1.4給“ubuntu”用戶賦予免密碼sudo權限2.1.5使用devstack工具安裝OpenStack 2.1.6啟用默認的Trove公鑰2.1.7系統認證2.1 .8創建你的第1個Trove數據庫實例2.1.9在devstack中使用Neutron 2.1.10訪問Dashboard 2.2在多節點的OpenStack環境中部署Trove 2.2.1前提條件2.2.2安裝必需包2.2.3創建Trove用戶2.2.4創建Trove操作的數據庫2.2.5在OpenStack中配置Trove 2.2.6配置Trove服務2.2.7初始化Trove操作的數據庫2.2.8在Keystone中配置Trove Endpoint 2.2.9重啟Trove服務2.2.10下載或構建一個Trove Guest鏡像2.2.11配置數據庫類型及其版本2.3總結
第3章基本的Trove操作3.1使用curl命令和RESTful服務交互3.1.1從Keystone中獲取Token 3.1.2使用Token和RESTful服務交互3.2理解應用程序如何與OpenStack服務交互3.3 Trove CLI腳本編程3.4展示實例列表3.5啟動實例3.6重啟實例3.7刪除實例3.8配置多個數據庫類型3.8.1配置數據庫類型3.8.2指定默認的數據庫類型3.9創建用戶和數據庫 3.9.1啟用數據庫的root用戶3.9.2數據庫操作3.9.3用戶操作3.10總結
第4章概念和架構4.1 Trove基礎架構4.2 Trove的概念4.2.1 Trove服務4.2.2 Trove Guest Agent API 4.2.3 Trove策略4.2.4 Trove拓展4.2.5 Guest Agent的分類模型和策略4.2.6 Trove Guest鏡像4.2.7 Trove消息隊列和Trove內部的API 4.2.8 Trove基礎設施數據庫4.2.9 Trove公共API 4.3 OpenStack Trove的架構4.4總結
第5章Trove的高級操作5.1自定義f lavor 5.2 Trove的備份和恢復 5.3 Trove的複制5.3.1對複制的支持情況 5.3.2創建一個複制5.3.3故障切換5.4 Trove集群 5.5配置組 5.6調整實例的大小 5.7終止實例5.8總結
第6章調試與故障排除 6.1訪問Trove guest實例的命令行6.1.1 OpenStack guest鏡像6.1.2 Tesora guest鏡像6.2閱讀Trove錯誤日誌6.2.1 Trove控制節點的錯誤日誌6.2.2關於guest實例的錯誤日誌6.2.3錯誤日誌的一些實例6.3理解Trove日誌級別6.4在Trove中使用OpenStack分析庫6.4.1在開始和停止位置之間分析代碼6.4.2使用Python結構分析一個代碼塊6.4.3使用修飾器分析一個方法6.4.4使用修飾器分析整個類6.5總結
第7章構建Trove guest鏡像7.1使用預先構建的Trove guest鏡像7.1.1 Trove guest鏡像組件7.1.2註冊Trove guest鏡像7.2使用磁盤鏡像生成器構建guest鏡像7.2.1安裝磁盤鏡像生成器 7.2.2磁盤鏡像生成器元件7.2.3使用Trove相關的元件構建guest鏡像7.2.4使用redstack構建guest鏡像7.3磁盤鏡像生成器的工作原理7.3.1元件內的階段7.3.2執行順序7.4 Trove涉及的元件7.5使用guest agent代碼7.5.1在運行時安裝guest agent代碼7.5.2構建時安裝guest agent代碼7.6不同的操作系統中的guest鏡像7.7總結
第8章生產環境下Trove的運作8.1 Trove的基礎設施配置8.1.1配置Trove使用專用基礎設施8.1.2 AMQP服務器上的安全配置8.1.3為訪問AMQP服務器提供憑證8.2 guest安全8.2.1在guest實例上使用SSH 8.2.2使用安全組和安全網絡8.3 Trove作為其他OpenStack服務的用戶端8.3.1私有OpenStack結構中的消費服務8.3.2使用隱藏租戶和服務租戶8.4總結
附錄A Trove配置選項A.1 Trove配置文件A.2 Trove配置選項A.3特定的數據庫配置選項A.4總結
附錄B Trove命令行接口B.1命令行接口B.1.1 trove命令B.1.2 trove -manage命令B.2總結
附錄C Trove中的API C.1 Trove API服務的end point C.2 API的習慣用法C.3列出API的版本C.4實例API C.4.1列出實例C. 4.2創建實例C.4.3展示實例C.4.4實例操作C.4.5修改實例C.4.6更新實例C.4.7刪除實例C.4.8備份列表C.4.9實例配置列表C.5數據庫類型的API C.5.1數據庫類型列表C.5.2數據庫類型版本列表C.5.3顯示數據庫類型版本(通過數據庫類型和版本) C.5.4顯示數據庫類型版本(通過UUID) C.5.5數據庫類型版本配置項列表 C.5.6顯示數據庫類型版本配置項C.5.7數據庫類型版本配置項列表C.5.8顯示數據庫類型版本配置項C.6實例類型API C.6.1實例類型列表C.6.2顯示實例類型C.7限額API C.8備份API C. 8.1備份列表C.8.2顯示備份C.8.3創建備份C.8.4刪除備份C.9數據庫擴展API C.9.1獲取root用戶的激活狀態 C.9.2啟用root C.9.3數據庫列表C.9.4創建數據庫C. 9.5刪除數據庫C.9.6創建用戶C.9.7用戶列表C.9.8查看用戶的權限C.9.9刪除用戶C.9.10用戶訪問授權C.9.11顯示用戶的訪問權限C.9.12解除用戶的訪問權限C.10集群API C.11集群列表C.11.1集群詳情C.11.2創建集群C.11.3集群操作:添加實例C.11.4刪除集群C.12總結序言關於技術評論員Nikhil Manchanda是惠普雲的核心工程師之一。他從OpenStack Trove的Juno、Kilo和Liberty發布伊始就一直是該項目的技術負責人(PTL)。他設計並編寫了OpenStackTrove項目的重要部分,並在項目開始時就成為Trove的核心貢獻者之一。他的專長在OpenStack、Python和數據庫領域,但也偶爾涉足C++和機器學習領域。他之前從事軟件更新智能、本地地理系統和移動應用相關工作。在工作之餘,他會經常趴在桌子上,刻苦鑽研他的樹莓派或NAS4Free盒子,或者寫詩歌和短篇小說。鳴謝我們要感謝整個OpenStack Trove社區,感謝社區成員對Trove版本的提交和貢獻,以使得OpenStack的數據庫服務成為現實。如果沒有這麼多開發者、審閱者和運營商在數年裡對項目的貢獻,我們不會有如此豐富的話題進行寫作。特別感謝Tesora的整個團隊,他們通過評論、回答技術問題和提供有創意的內容來支持本書。感謝Apress團隊,Mark Powers、Louise Corrigan、Christine Ricketts和Lori Jacobs都很棒。特別感謝Laurel Michaels,他在社區裡做了很多改善Trove文檔的工作,在本書初稿完成後精心審閱了每個章節,並提供了寶貴的改進建議。——Amrith & Doug