全面涵蓋雲端運算與虛擬化的入門知識,以及OpenStack的部署、解析與擴展;深入講解實用的雲端運算實現方案、虛擬化技巧及OpenStack的部署方案。
內容涵蓋MySQL、RabbitMQ、Keystone、Swift、Glance、Cinder、Quantum、Nova和Dashboard等大部分重要組件的安裝
◎ 2種自訂擴展元件,讓讀者對OpenStack的使用舉一反三
◎ 3種經典部署方式,可顯著提高部署實戰的能力
◎ 14個典型案例,深入剖析OpenStack的內在關鍵技術
◎ 35個常見錯誤與分析,可以避免讀者在進行實際操作時走彎路
◎ 231個Linux Shell指令搞,完美展現OpenStack的安裝、部署流程
◎ 420個Python程式,有助於讀者深入理解OpenStack的架構實現及通信機制
◎ 所有實例遵循先提出問題,再分析問題,最後用程式碼實現的寫作風格
◎ 對OpenStack用到的關鍵技術和重要元件,提供具體的原始程式碼剖析
適用:從事開放原始碼雲端系統OpenStack開發的技術人員、IT首席技術官、雲端運算研發和運行維護等相關人員。
作者簡介:
戢友
電腦應用技術碩士,研究方向為機器學習與模式識別。
任職於英特爾亞太研發有限公司,從事OpenStack與雲端運算的研發工作。對雲端運算、雲端存儲、大數據、分散式系統等有強烈的興趣和長時間的研究。
作者序
前言
為什麼要寫這本書
雲端運算已經從概念走向現實,從理論走向實作。各種各樣的雲端運算平台也層出不窮,以雲端運算為基礎的應用也不斷推出。相對於天價的商業雲端運算軟體,許多的雲端運算同好和公司開始考慮一種好用的開放原始碼雲端運算軟體。OpenStack正是在這樣的環境下誕生的。在OpenStack 誕生之前也有很多的開放原始碼雲端軟體,但是OpenStack 卻成為了當下最熱門的開放原始碼雲端平台。這主要得益於OpenStack 的優秀特性:靈活的結構、巧妙的模組化設計及極強的擴充效能。但是,OpenStack 的入門卻具有不低的門檻。除了技術本身的障礙之外,眼花繚亂的安裝部署方式、尚待完整的官方文件、良莠不齊的技術部落格、炒作概念的各種討論會等,讓希望了解開放原始碼雲端系統OpenStack 的人望而卻步。此外,OpenStack 版本升級較快,模組變化較大,也讓很多研究人員產生極重的學習負擔。本書以實作為宗旨,由淺入深,從入門到精通,一點一滴地介紹了OpenStack 的核心技術。
本書以OpenStack Grizzly 版本為基礎,詳細介紹OpenStack 幾個方面:雲端運算技術的基礎、叢集架設、元件剖析及擴充開發。閱讀完本書後,讀者能夠掌握OpenStack 實現的技術細節與設計思想,並且將這些技術靈活地運用在雲端運算的開發中。了解OpenStack 的精髓,無論OpenStack 更新到何種版本,學習起來都會遊刃有餘。
本書特色
❶ 說明雲端運算入門所需的虛擬化技術
為了將讀者帶入雲端運算的領域,虛擬化技術絕對是必要課題。作者專門介紹了OpenStack 用到的虛擬化技術,並撰寫了大量的實例、程式及指令稿供讀者參考。
❷ 涵蓋OpenStack 大部分元件
本書涵蓋MySQL、RabbitMQ、Keystone、Swift、Glance、Cinder、Quantum、Nova 和Dashboard 重要元件的安裝。每一種元件的安裝都單獨成一個模組,並且介紹這些元件之間安裝部署的相互依賴關係。此外,還提供了多種多樣的參考部署方式。透過安裝篇提供安裝指令稿,讀者只需要簡單地設定,便可以快速地部署對應的服務。此外,本書對OpenStack 用到的關鍵技術和重要元件都有原始程式碼剖析。
❸ 案例經典,注重實作
為了說明OpenStack 的各種技術細節,書中撰寫了大量的程式和指令稿。為了說明雲端運算設計思想與實現細節,本書的每一章都設計了經典案例、指令稿及程式實現。
❹ 循序漸進,由淺入深
本書從雲端運算最基本的虛擬化技術入手,由虛擬機器、虛擬資源的管理引出開放原始碼雲端系統OpenStack 的實現,由淺入深,層層解開了開放原始碼雲端系統OpenStack 的關鍵技術與重要元件。
❺ 提供完整的技術支援
本書所有的程式、指令稿和檔案資源均可以在https://github.com/JiYou/openstack
下載,並會提供後續的更新與支援,讓作者與讀者可以面對面直接交流。
前言
為什麼要寫這本書
雲端運算已經從概念走向現實,從理論走向實作。各種各樣的雲端運算平台也層出不窮,以雲端運算為基礎的應用也不斷推出。相對於天價的商業雲端運算軟體,許多的雲端運算同好和公司開始考慮一種好用的開放原始碼雲端運算軟體。OpenStack正是在這樣的環境下誕生的。在OpenStack 誕生之前也有很多的開放原始碼雲端軟體,但是OpenStack 卻成為了當下最熱門的開放原始碼雲端平台。這主要得益於OpenStack 的優秀特性:靈活的結構、巧妙的模組化設計及極強的擴充效能。但是,OpenStack 的入門卻具有不低的門檻。除了技術...
目錄
前言
第1 篇 基礎篇
01 OpenStack 概述
1.1 雲端運算簡介
1.2 為什麼使用雲端運算
1.3 OpenStack 架構
1.4 OpenStack 各個元件及功能
1.5 小結
02 虛擬化技術
2.1 虛擬化技術簡介
2.2 安裝Libvirt 虛擬化工具
2.3 虛擬機器設定檔詳解
2.4 製作image
2.5 快速啟動虛擬機器
2.6 虛擬機器桌面顯示
2.7 常見錯誤與分析
2.8 小結
第2 篇 安裝篇
03 安裝Keystone 安全認證服務
3.1 Keystone 簡介
3.2 架設區域網路來源
3.3 架設MySQL 資料庫
3.4 安裝RabbitMQ 訊息通訊服務
3.5 安裝Keystone
3.6 常見錯誤與分析
3.7 小結
04 安裝Swift 儲存服務
4.1 Swift 基本概念
4.2 搭建環境
4.3 安裝Proxy 服務
4.4 安裝儲存服務
4.5 管理儲存服務
4.6 常見錯誤及分析
4.7 小結
05 安裝Glance 鏡像服務
5.1 Glance 簡介
5.2 Glance 服務的安裝
5.3 Glance 服務的設定
5.4 Glance 自動化安裝
5.5 常見錯誤分析
5.6 小結
06 安裝Quantum 虛擬網路服務
6.1 Open vSwitch 虛擬交換機
6.2 解決相依關係
6.3 註冊Quantum 服務至Keystone
6.4 安裝Quantum 服務
6.5 Quantum 自動化安裝
6.6 Quantum 服務使用及測試
6.7 常見錯誤與分析
6.8 小結
07 安裝Cinder 區塊儲存服務
7.1 Cinder 基本概念
7.2 搭建環境
7.3 安裝Cinder API 服務
7.4 安裝Cinder Volume 服務
7.5 參考部署
7.6 常見錯誤及分析
7.7 小結
08 安裝Nova 虛擬機器管理系統
8.1 Nova 基本概念
8.2 搭建環境
8.3 安裝Nova API 服務
8.4 安裝Nova Compute 服務
8.5 參考部署
8.6 用戶端使用
8.7 小結
09 安裝Dashboard Web 介面
9.1 Dashboard 簡介
9.2 Dashboard 的安裝
9.3 Dashboard 的設定
9.4 Dashboard 自動化安裝
9.5 Web 介面使用及測試
9.6 常見錯誤分析
9.7 小結
10 OpenStack 部署範例
10.1 OpenStack 單節點部署
10.2 OpenStack 多節點部署
10.3 OpenStack 實用部署
10.4 常見錯誤及分析
10.5 小結
11 OpenStack 服務分析
11.1 RESTful API 簡介
11.2 架設RESTful API
11.3 以訊息通訊為基礎的RPC 呼叫
11.4 小結
12 Keystone 的安全認證
12.1 Keystone 框架結構
12.2 使用者管理
12.3 多租戶機制
12.4 Token 管理
12.5 服務的安全認證
12.6 OpenStack 各個模組與Keystone 的互動
12.7 小結
13 Swift 儲存服務
13.1 Swift 框架概述
13.2 問題描述
13.3 炮灰方法
13.4 快拳方法
13.5 太極拳
13.6 虛實相生
13.7 擴展
13.8 小結
14 Quantum 虛擬網路
14.1 Quantum 框架概述
14.2 Quantum Server 服務
14.3 Quantum OpenVSwitch Agent服務
14.4 Nova 與Quantum 的互動
14.5 Quantum DHCP Agent 服務
14.6 小結
15 Nova 框架
15.1 Nova 框架介紹
15.2 Nova API 服務
15.3 Nova RPC 服務
15.4 Nova Scheduler 服務分析
15.5 Nova Conductor 服務
15.6 小結
16 Nova Compute 服務
16.1 定時任務
16.2 建立虛擬機器
16.3 虛擬機器的線上移轉
16.4 虛擬機器快照管理
16.5 小結
第4 篇 擴展篇
17 從OpenStack 到雲端應用
17.1 Hadoop 簡介
17.2 Hadoop 的安裝
17.3 Hadoop 的效能分析
17.4 Hadoop 和Chukwa 的自動化安裝
17.5 OpenStack 上的Android 測試環境
17.6 常見錯誤與分析
17.7 小結
18 以Nova 為基礎的擴充
18.1 訂製排程演算法
18.2 自訂Extension API
18.3 自訂Extention API 用戶端
18.4 Nova 中增加自訂模組
18.5 小結
19 增加自定義元件
19.1 自定義元件概述
19.2 準備工作
19.3 設計原理
19.4 資料庫設計與實現
19.5 Conductor 資料庫服務
19.6 增加RESTful API
19.7 小結14.3.8 Snort 規則進階應用舉例
前言
第1 篇 基礎篇
01 OpenStack 概述
1.1 雲端運算簡介
1.2 為什麼使用雲端運算
1.3 OpenStack 架構
1.4 OpenStack 各個元件及功能
1.5 小結
02 虛擬化技術
2.1 虛擬化技術簡介
2.2 安裝Libvirt 虛擬化工具
2.3 虛擬機器設定檔詳解
2.4 製作image
2.5 快速啟動虛擬機器
2.6 虛擬機器桌面顯示
2.7 常見錯誤與分析
2.8 小結
第2 篇 安裝篇
03 安裝Keystone 安全認證服務
3.1 Keystone 簡介
3.2 架設區域網路來源
3.3 架設MySQL 資料庫
3.4 安裝RabbitMQ 訊息通訊服務
3.5 安...