第1篇 基 礎 篇
第1章 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 虛擬機管理繫統Nova
1.4.2 磁盤存儲繫統Glance與Swift
1.4.3 虛擬網絡管理Quantum
1.4.4 OpenStack三大組件
1.5 小結
第2章 虛擬化技術
2.1 虛擬化技術簡介
2.1.1 KVM
2.1.2 Xen
2.1.3 Libvirt
2.2 安裝Libvirt虛擬化工具
2.2.1 安裝KVM
2.2.2 安裝Libvirt
2.3 虛擬機配置文件詳解
2.3.1 xml描述hypervisor
2.3.2 虛擬機整體信息
2.3.3 繫統信息
2.3.4 硬件資源特性
2.3.5 突發事件處理
2.3.6 raw格式image
2.3.7 qcow2格式image
2.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命令創建image
2.5 快速啟動虛擬機
2.5.1 手動安裝
2.5.2 直接復制
2.5.3 qcow2快速創建
2.5.4 修改qcow2 image
2.5.5 大批量創建虛擬機
2.6 虛擬機桌面顯示
2.6.1 準備工作
2.6.2 創建Windows 7 Image
2.6.3 創建Windows 7虛擬機
2.6.4 spice桌面顯示
2.7 常見錯誤與分析
2.8 小結
2.8.1 常用的virsh命令
2.8.2 磁盤快照管理
第2篇 安 裝 篇
第3章 安裝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 源碼安裝MySQL
3.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 小結
第4章 安裝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 Node
4.2.3 創建Storage Node
4.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 Node
4.7.2 安裝Storage Node
第5章 安裝Glance鏡像服務
5.1 Glance簡介
5.2 Glance服務的安裝
5.2.1 解決依賴關繫
5.2.2 注冊Glance服務至Keystone
5.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 小結
第6章 安裝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 agent
6.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的安裝
第7章 安裝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
第8章 安裝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 Node
8.7.2 安裝Nova Compute Node
第9章 安裝Dashboard Web界面
9.1 Dashboard簡介
9.2 Dashboard的安裝
9.2.1 解決依賴關繫
9.2.2 源碼安裝Horizon
9.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 實用安裝
第3篇 剖 析 篇
第11章 OpenStack服務分析
11.1 RESTful API簡介
11.2 搭建RESTful API
11.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 虛節點