王者歸來: OpenStack雲端系統Nova+Swift+Quantum+Hadoop
作者 | 戢友 |
---|---|
出版社 | 佳魁資訊股份有限公司 |
商品描述 | 王者歸來: OpenStack雲端系統Nova+Swift+Quantum+Hadoop:本書全面涵蓋雲端運算與虛擬化的入門知識,以及OpenStack的部署、解析與擴展;深入講解實用的雲端運算實現方案、 |
作者 | 戢友 |
---|---|
出版社 | 佳魁資訊股份有限公司 |
商品描述 | 王者歸來: OpenStack雲端系統Nova+Swift+Quantum+Hadoop:本書全面涵蓋雲端運算與虛擬化的入門知識,以及OpenStack的部署、解析與擴展;深入講解實用的雲端運算實現方案、 |
內容簡介 本書全面涵蓋雲端運算與虛擬化的入門知識,以及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首席技術官、雲端運算研發和運行維護等相關人員。
作者介紹 ■作者簡介戢友
產品目錄 第1 篇 基礎篇01 OpenStack 概述1.1 雲端運算簡介 1.1.1 什麼是雲端運算 1.1.2 什麼是雲端儲存 1.1.3 私有雲與公有雲 1.2 為什麼使用雲端運算 1.2.1 方案1:簡單的服務部署 1.2.2 方案2:分散式服務部署1.2.3 方案3:以虛擬化為基礎的服務部署 1.2.4 方案4:雲端運算的解決方案 1.3 OpenStack 架構 1.3.1 OpenStack 與雲端運算1.3.2 OpenStack 發展與現狀1.3.3 OpenStack 優勢 1.3.4 OpenStack 學習建議1.4 OpenStack 各個元件及功能1.4.1 虛擬機器管理系統Nova1.4.2 磁碟儲存系統Glance 與Swift1.4.3 虛擬網路管理Quantum1.4.4 OpenStack 三大元件 1.5 小結 02 虛擬化技術2.1 虛擬化技術簡介 2.1.1 KVM 2.1.2 Xen2.1.3 Libvirt2.2 安裝Libvirt 虛擬化工具2.2.1 安裝KVM2.2.2 安裝Libvirt2.3 虛擬機器設定檔詳解2.3.1 xml 描述hypervisor2.3.2 虛擬機器整體資訊2.3.3 系統資訊2.3.4 硬體資源特性 2.3.5 突發事件處理2.3.6 raw 格式image 2.3.7 qcow2 格式image2.3.8 格式的選擇2.3.9 多個image 2.3.10 虛擬光碟2.3.11 虛擬網路 2.3.12 vnc 設定 2.4 製作image 2.4.1 virt-manager 建立image 2.4.2 virsh 指令建立image2.5 快速啟動虛擬機器2.5.1 手動安裝 2.5.3 qcow2 快速建立 2.5.4 修改qcow2 image2.5.5 大量建立虛擬機器 2.6 虛擬機器桌面顯示 2.6.1 準備工作2.6.2 建立Windows 7 Image2.6.3 建立Windows 7 虛擬機器2.6.4 spice 桌面顯示 2.7 常見錯誤與分析 2.8 小結2.8.1 常用的virsh 指令2.8.2 磁碟快照管理第2 篇 安裝篇03 安裝Keystone 安全認證服務3.1 Keystone 簡介3.2 架設區域網路來源 3.2.1 區域網apt-get 源架設方法 3.2.2 區域網python 源架設方法3.2.3 Ubuntu-12.10 區域網路來源 3.3 架設MySQL 資料庫3.3.1 apt-get 安裝MySQL 3.3.2 原始程式安裝MySQL3.4 安裝RabbitMQ 訊息通訊服務3.5 安裝Keystone 3.5.1 python 原始程式套件的安裝 3.5.2 Keystone 自動化安裝3.5.3 Keystone 用戶端使用及測試3.5.4 Keystone 的管理 3.6 常見錯誤與分析 3.6.1 無法下載python 相依套件 3.6.2 Keystone 指令執行失敗 3.7 小結 04 安裝Swift 儲存服務4.1 Swift 基本概念4.1.1 Swift 的特性 4.1.2 Swift 的架構 4.1.3 Swift 的故障處理4.1.4 Swift 的叢集部署 4.2 搭建環境 4.2.1 準備工作4.2.2 建立Proxy Node4.2.3 建立Storage Node4.3 安裝Proxy 服務4.3.1 解決相依關係 4.3.2 註冊Swift 服務4.3.3 設定Proxy 服務 4.3.4 啟動Proxy 服務4.4 安裝儲存服務 4.4.1 磁碟格式化4.4.2 同步服務 4.4.3 子服務4.4.4 啟動儲存服務4.5 管理儲存服務 4.5.1 使用儲存服務4.5.2 刪除儲存節點 4.5.3 增加儲存節點4.5.4 增加Proxy 節點4.6 常見錯誤及分析4.6.1 Keystone 註冊使用者失敗4.6.2 Proxy 服務無法正常啟動4.6.3 儲存服務無法使用4.7 小結4.7.1 安裝Proxy Node4.7.2 安裝Storage Node05 安裝Glance 鏡像服務5.1 Glance 簡介5.2 Glance 服務的安裝 5.2.1 解決相依關係 5.2.2 註冊Glance 服務至Keystone5.2.3 Glance 原始程式套件的安裝 5.3 Glance 服務的設定5.3.1 Glance 服務的基本設定 5.3.2 使用檔案系統儲存鏡像 5.3.3 使用Swift 物件儲存服務儲存鏡像5.3.4 上傳複雜的磁碟鏡像5.3.5 上傳磁碟鏡像參考指令稿 5.4 Glance 自動化安裝5.5 常見錯誤分析5.5.1 上傳磁碟鏡像中斷的解決方案5.5.2 openssl 出錯5.5.3 上傳大磁碟鏡像的方法 5.6 小結06 安裝Quantum 虛擬網路服務6.1 Open vSwitch 虛擬交換機 6.1.1 Open vSwitch 簡介6.1.2 GRE 隧道模式 6.1.3 VLAN 模式 6.2 解決相依關係 6.3 註冊Quantum 服務至Keystone 6.4 安裝Quantum 服務 6.4.1 原始程式安裝Quantum 6.4.2 Quantum Server 的設定6.4.3 設定OVS agent6.4.4 設定dhcp agent 6.4.5 設定l3 agent 6.5 Quantum 自動化安裝 6.6 Quantum 服務使用及測試6.6.1 建立內部網路6.6.2 建立外部網路6.7 常見錯誤與分析 6.7.1 虛擬機器之間無法通訊6.7.2 dhcp 和agent 服務啟動警告 6.8 小結 6.8.1 Open vSwitch 的使用6.8.2 Quantum 的安裝07 安裝Cinder 區塊儲存服務7.1 Cinder 基本概念 7.1.1 Cinder 的特性 7.1.2 Cinder 的架構7.1.3 Cinder 架構的優缺點 7.2 搭建環境7.2.1 準備工作7.2.2 建立API Node 7.2.3 建立Volume 儲存節點7.3 安裝Cinder API 服務7.3.1 解決相依關係 7.3.2 註冊Cinder 服務至Keystone 7.3.3 設定MySQL 服務 7.3.4 修改設定檔7.3.5 執行Cinder API 服務7.4 安裝Cinder Volume 服務 7.4.1 準備工作 7.4.2 啟動Volume 服務 7.5 參考部署 7.5.1 單節點部署7.5.2 多節點部署 7.6 常見錯誤及分析7.6.1 虛擬機器之間無法通訊7.6.2 cinder 用戶端指令執行失敗 7.6.3 沒有額外分區7.7 小結7.7.1 安裝Cinder API Node 7.7.2 安裝Cinder Volume Node 08 安裝Nova 虛擬機器管理系統8.1 Nova 基本概念 8.1.1 Nova 的特性8.1.2 Nova 的架構8.1.3 Nova 架構的優缺點8.2 搭建環境8.2.1 準備工作8.2.2 建立節點8.3 安裝Nova API 服務8.3.1 準備工作8.3.2 解決相依關係8.3.3 註冊Nova 服務8.3.4 設定MySQL 服務8.3.5 修改Nova 設定檔8.4 安裝Nova Compute 服務 8.4.1 準備工作8.4.2 解決相依關係 8.4.3 設定檔8.4.4 啟動服務8.4.5 檢查服務 8.5 參考部署8.5.1 單節點部署 8.5.2 多節點部署 8.6 用戶端使用8.6.1 環境變數8.6.2 建立虛擬機器 8.7 小結 8.7.1 安裝Nova API Node8.7.2 安裝Nova Compute Node 09 安裝Dashboard Web 介面9.1 Dashboard 簡介 9.2 Dashboard 的安裝9.2.1 解決相依關係9.2.2 原始程式安裝Horizon9.3 Dashboard 的設定9.3.1 local_settings.py 檔案的設定 9.3.2 secret_key.py 檔案的修改9.3.3 Apache2 的設定9.3.4 vncproxy 的設定9.4 Dashboard 自動化安裝9.5 Web 介面使用及測試9.5.1 登入Dashboard 9.5.2 使用Dashboard 上傳鏡像9.5.3 使用Dashboard 建立網路9.5.4 使用Dashboard 建立虛擬機器9.6 常見錯誤分析9.7 小結 10 OpenStack 部署範例10.1 OpenStack 單節點部署 10.1.1 單節點部署的特點 10.1.2 準備工作10.1.3 系統初始化設定10.1.4 安裝OpenStack 各元件 10.2 OpenStack 多節點部署10.2.1 多點部署特點10.2.2 部署流程 10.3 OpenStack 實用部署10.3.1 實用部署特點10.3.2 部署流程10.4 常見錯誤及分析10.4.1 eth1 網路卡無法使用10.4.2 自建來源無法使用10.4.3 用戶端指令執行失敗10.5 小結 10.5.1 單節點安裝 10.5.2 多節點安裝10.5.3 實用安裝11 OpenStack 服務分析11.1 RESTful API 簡介11.2 架設RESTful API11.2.1 一個簡單的WSGI 服務 11.2.2 使用PasteDeploy 訂製WSGI 服務 11.2.3 帶篩檢程式的WSGI 服務 11.2.4 利用類別來實現篩檢程式和應用11.2.5 實現WSGI 服務的URL對映11.3 以訊息通訊為基礎的RPC 呼叫11.3.1 AMQP 簡介 11.3.2 RabbitMQ 分析 11.3.3 RPC 呼叫的實現11.4 小結11.4.1 RESTful API 11.4.2 RPC 呼叫12 Keystone 的安全認證12.1 Keystone 框架結構12.1.1 Keystone 服務端架構12.1.2 Keystone 用戶端架構12.2 使用者管理 12.2.1 使用者認證12.2.2 本機認證12.2.3 使用者資訊的維護 12.3 多租戶機制12.3.1 租戶管理12.3.2 角色管理12.3.3 許可權管理12.4 Token 管理12.4.1 Token 認證方式 12.4.2 Token 的儲存12.5 服務的安全認證 12.6 OpenStack 各個模組與Keystone 的互動12.7 小結12.7.1 Keystone 伺服器端架構12.7.2 用戶端發送HTTP 請求流程 12.7.3 使用者認證12.7.4 存取OpenStack 服務的流程13 Swift 儲存服務13.1 Swift 框架概述 13.2 問題描述13.3 炮灰方法13.4 快拳方法13.4.1 演算法原理13.4.2 演算法實現13.4.3 演算法分析13.4.4 演算法破綻13.5 太極拳13.5.1 演算法原理13.5.2 演算法實現13.5.3 演算法分析13.5.4 演算法升級13.5.5 演算法破綻13.6 虛實相生13.6.1 演算法原理13.6.2 演算法實現 13.6.3 演算法分析13.6.4 演算法升級13.6.5 演算法分析13.7 擴展13.7.1 對映中的動與不動13.7.2 虛節點數目13.7.3 剩餘話題 13.8 小結14 Quantum 虛擬網路14.1 Quantum 框架概述14.2 Quantum Server 服務14.2.1 Quantum Server 啟動流程 14.2.2 啟動ovs plugin RPC 服務 14.2.3 建立網路14.2.4 建立子網14.2.5 建立端點14.3 Quantum OpenVSwitch Agent服務14.3.1 Quantum OVS Agent 啟動流程 14.3.2 Quantum OVS Agent 定時工作14.3.3 虛擬網路的實現14.4 Nova 與Quantum 的互動14.4.1 分配邏輯網路資源14.4.2 建立OpenVSwitch 端點14.5 Quantum DHCP Agent 服務14.5.1 服務的啟動14.5.2 Manager 類別14.5.3 Dnsmasq DHCP 的維護 14.6 小結 14.6.1 Quantum 主要資料庫表單14.6.2 Quantum OpenVSwitch Agent 的啟動14.6.3 虛擬機器通訊流程 14.6.4 建立端點的流程14.6.5 建立Dnsmasq DHCP 服務15 Nova 框架15.1 Nova 框架介紹15.2 Nova API 服務15.2.1 Nova API 服務的啟動15.2.2 處理HTTP 請求的流程15.2.3 建立虛擬機器流程15.3 Nova RPC 服務 15.3.1 Nova Scheduler 的啟動流程15.3.2 Nova RPC 服務的建立15.4 Nova Scheduler 服務分析15.4.1 建立虛擬機器請求的處理流程 15.4.2 排程演算法 15.4.3 資源資訊的更新15.4.4 過濾和權重計算15.5 Nova Conductor 服務 15.6 小結 15.6.1 建立虛擬機器請求的處理流程 15.6.2 排程演算法16 Nova Compute 服務16.1 定時任務 16.1.1 定時工作的啟動16.1.2 update_available_resource 16.1.3 report_driver_status16.1.4 publish_service_capabilities 16.2 建立虛擬機器 16.2.1 建立虛擬機器的流程16.2.2 建立虛擬機器鏡像檔案16.2.3 建立虛擬機器XML 定義檔案16.2.4 建立虛擬機器和虛擬網路 16.3 虛擬機器的線上移轉16.3.1 virsh 指令實現線上移轉 16.3.2 虛擬機器移轉的整體流程 16.3.3 虛擬機器移轉的前期檢查16.3.4 Nova Compute 服務中的移轉流程 16.4 虛擬機器快照管理16.4.1 Nova API 建立快照流程 16.4.2 Nova Compute 建立快照流程16.5 小結16.5.1 Nova RPC 定時工作的建立16.5.2 Nova Compute 建立虛擬機器16.5.3 virsh 指令移轉虛擬機器16.5.4 Nova Compute 線上移轉 16.5.5 Nova Compute 服務建立快照流程 第4 篇 擴展篇17 從OpenStack 到雲端應用17.1 Hadoop 簡介 17.1.1 HDFS 檔案系統17.1.2 Map Reduce 機制17.2 Hadoop 的安裝17.2.1 準備工作17.2.2 Hadoop 的單節點模式17.2.3 Hadoop 的虛擬分散式模式17.2.4 Hadoop 的全分散式模式17.3 Hadoop 的效能分析17.3.1 Chukwa 與Hitune 簡介17.3.2 Chukwa 的安裝與設定17.3.3 使用Hitune 分析Hadoop的效能17.4 Hadoop 和Chukwa 的自動化安裝 17.5 OpenStack 上的Android 測試環境 17.5.1 Android 測試環境簡介17.5.2 架設Android 測試環境 17.6 常見錯誤與分析 17.6.1 Hadoop 常見錯誤 17.6.2 Chukwa 常見錯誤 17.6.3 架設Android 測試環境17.7 小結 17.7.1 安裝Hadoop17.7.2 安裝Chukwa17.7.3 Hadoop Job 報表17.7.4 建立Android 虛擬機器18 以Nova 為基礎的擴充18.1 訂製排程演算法 18.1.1 設定filter18.1.2 增加自訂filter18.1.3 filter_properties18.2 自訂Extension API18.2.1 Extension API 的啟動流程 18.2.2 實現自訂Extension API18.3 自訂Extention API 用戶端18.3.1 Extention API 用戶端載入流程18.3.2 增加Extention API 用戶端 18.4 Nova 中增加自訂模組 18.4.1 增加新模組 18.4.2 增加新模組的API18.4.3 增加定時工作18.4.4 增加資料庫介面 18.5 小結18.5.1 訂製filter 的步驟18.5.2 增加Extension API 的步驟18.5.3 擴充Nova Clien 模組的方法18.5.4 增加Nova 模組的步驟18.5.5 建立自訂Nova 資料庫19 增加自定義元件19.1 自定義元件概述19.1.1 自定義元件及優缺點19.1.2 自定義元件的使用19.1.3 需求 19.2 準備工作 19.2.1 開發環境19.2.2 準備安裝套件19.2.3 安裝相依服務19.2.4 安裝Monitor 服務19.3 設計原理 19.3.1 框架19.3.2 Dashboard19.3.3 python-monitorclient19.3.4 monitor-api19.4 資料庫設計與實現 19.4.1 連接資料庫19.4.2 建立資料庫表單19.4.3 模型類別19.4.4 存取資料庫19.4.5 發佈資料庫API19.5 Conductor 資料庫服務19.5.1 設定專案19.5.2 增加設定項19.5.3 Conductor 實現19.5.4 啟動Conductor 服務19.6 增加RESTful API19.6.1 RESTful API 處理流程19.6.2 訊息路由器Router19.6.3 訊息處理函數19.6.4 用戶端發送請求19.6.5 用戶端的使用19.7 小結14.3.8 Snort 規則進階應用舉例
書名 / | 王者歸來: OpenStack雲端系統Nova+Swift+Quantum+Hadoop |
---|---|
作者 / | 戢友 |
簡介 / | 王者歸來: OpenStack雲端系統Nova+Swift+Quantum+Hadoop:本書全面涵蓋雲端運算與虛擬化的入門知識,以及OpenStack的部署、解析與擴展;深入講解實用的雲端運算實現方案、 |
出版社 / | 佳魁資訊股份有限公司 |
ISBN13 / | 9789863790532 |
ISBN10 / | 9863790532 |
EAN / | 9789863790532 |
誠品26碼 / | 2680930091002 |
頁數 / | 832 |
開數 / | 18K |
注音版 / | 否 |
裝訂 / | P:平裝 |
語言 / | 1:中文 繁體 |
級別 / | N:無 |
內文 : 前言
為什麼要寫這本書
雲端運算已經從概念走向現實,從理論走向實作。各種各樣的雲端運算平台也層出不窮,以雲端運算為基礎的應用也不斷推出。相對於天價的商業雲端運算軟體,許多的雲端運算同好和公司開始考慮一種好用的開放原始碼雲端運算軟體。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
上下載,並且會提供後續的更新與支援,讓作者與讀者可以面對面直接交流。