內容簡介
全書共12章,內容包括OpenStack雲計算基礎、單節點雲平台一體化部署、基礎環境、API與客戶端、Keystone身份服務、Glance鏡像服務、Nova計算服務、Neutron網路服務、Cinder塊存儲服務、Swift對象存儲服務、Temetry計量與監控服務和Heat編排服務,以及多節點OpenStack雲平台。
圖書目錄
第1章 OpenStack雲計算基礎....................1
1.1 雲計算概述 ..................1
1.1.1 雲計算的概念 ................1
1.1.2
雲計算架構 ................2
1.1.3 雲計算部署模式 .............3
1.1.4 雲計算解決方案 ............4
1.1.5 裸金屬雲 ...................5
1.2 Linux虛擬化技術 ...............6
1.2.1 計算機虛擬化基礎 ............6
1.2.2 OpenStack所支持的虛擬化技術 ......................7
1.2.3 KVM——基於 Linux核心的虛擬化解決方案 ...............8
1.2.4 Libvirt套件 ................10
1.3 了解 OpenStack .............11
1.3.1 什麼是 OpenStack ..........11
1.3.2 OpenStack項目的組成 .......12
1.3.3 OpenStack基金會與社區 ......14
1.3.4 OpenStack版本演變 ..........14
1.4 OpenStack的架構 .............15
1.4.1 OpenStack的概念架構 .......15
1.4.2 OpenStack的邏輯架構 .......16
1.4.3 OpenStack組件之間的通信關係 ....................17
1.4.4 OpenStack的物理架構 ......18
1.4.5 OpenStack的
物理網路類型 ...21
1.5 部署 OpenStack .............22
1.5.1 選擇作業系統平台 ..........22
1.5.2 部署拓撲 .................22
1.5.3 OpenStack部署工具 ..........22
1.5.4 部署 OpenStack的技術需求 .....26
1.6 習題 .......................27
第2章 單節點的 OpenStack一體化部署 ..............28
2.1 使用Packstack安裝單節點OpenStack雲平台 .............28
2.1.1 準備安裝環境 ..............28
2.1.2 準備所需的軟體庫 ..........32
2.1.3 安裝Packstack安裝器 .......33
2.1.4 運行 Packstack安裝 OpenStack .................33
2.2 OpenStack Dashboard操作界面....................36
2.2.1 OpenStack Dashboard 主界面 ..................36
2.2.2 項目管理界面 ..............38
2.2.3 管理員管理界面 ..............38
2.2.4 身份管理界面 ..............39
2.3 創建虛擬機實例 ............... 40
2.3.1 添加安全組訪問規則 ......... 40
2.3.2 創建或導入密鑰對 ......... 41
2.3.3 添加鏡像 .................42
2.3.4 創建並運行虛擬機實例 .......43
2.4 定製虛擬網路實現虛擬機與外網通信................... 48
2.4.1 將網路接口與外部橋接口 br-ex進行關聯 ................. 48
2.4.2 配置虛擬網路 ............. 49
2.4.3 為虛擬機實例分配浮動 IP 地址 ....................54
2.4.4 使用 SSH訪問虛擬機實例 .....55
2.4.5 基於提供者網路的虛擬機實例 ...57
2.5 習題 .......................58
3.1 OpenStack雲部署架構設計 ......59
3.1.1 示例架構的物理部署 ..........60
3.1.2 示例架構的虛擬網路方案 .......61
3.1.3 主機節點的網路拓撲 ..........62
3.2 主機節點網路設定 ............63
3.2.1 NetworkManager服務 ......63
3.2.2 網路連線配置 ..............63
3.2.3 禁用防火牆與 SELinux .......63
3.2.4 配置主機節點時鐘同步 .......63
3.3.1 SQL資料庫 ................65
3.3.2 NoSQL資料庫 ............68
3.4 訊息佇列服務及其配置 .........70
3.4.1 訊息佇列與訊息匯流排 ..........70
3.4.2 AMQP模型與原理 .........70
3.4.3 AMQP與 OpenStack .........72
3.4.4 RabbitMQ及其部署 ...........73
3.5 習題 .......................74
第4章 OpenStack API與 客戶端 ................75
4.1 RESTful API和 WSGI ..........75
4.1.1 RESTful API簡介 ..........75
4.1.2 OpenStack的 RESTful API ...76
4.1.4 OpenStack API的傳統框架 ...77
4.1.5 OpenStack API的新型框架 ...80
4.2 OpenStack API的基本使用 ......81
4.2.1 調用 OpenStack API的方式 .....81
4.2.2 OpenStack的認證與 API請求 流程 ................83
4.2.3 獲取 OpenStack認證令牌 ......83
4.2.4 傳送 API請求 .............85
4.3 OpenStack命令行客戶端 .......87
4.3.1 使用命令行的必要性 ..........87
4.3.2 安裝命令行客戶端 ..........87
4.3.3 OpenStack客戶端語法 .......87
4.3.4 OpenStack客戶端認證 ...... 88
4.3.5 通過 OpenStack客戶端創建一個 實例 ................ 88
4.4 基於 Horizon的 Dashboard 界面.................. 89
4.4.1 Horizon主要功能 .......... 89
4.4.2 Horizon設計理念 .......... 89
4.4.3 Horizon與 Django框架 ........ 90
4.4.4 Horizon功能框架 .......... 91
4.4.5 自定義 OpenStack Horizon ....92
4.4.6 手動安裝 Horizon .......... 94
4.5 通過日誌排查故障 ............95
4.6 通用庫 Oslo ................ 96
4.7 習題 .......................97
第5章 OpenStack身份服務.................... 98
5.1 身份服務基礎 ............... 98
5.1.1 Keystone主要功能 ........... 98
5.1.2 Keystone基本概念 ........... 99
5.1.3 Keystone的管理層次結構 ...100
5.1.4 Keystone體系結構 ..........101
5.1.5 Keystone認證流程 ..........104
5.2 基於 Dashboard界面進行身份管理 操作..............105
5.2.1 項目管理 ...............105
5.2.2 用戶管理 ...............108
5.2.3 組管理 ..................109
5.2.4 角色管理 ...............110
5.3 基於
命令行界面進行身份管理 操作................111
5.3.1 管理項目、用戶和角色 ........111
5.3.2 創建並管理服務和服務用戶 .....113
5.4 通過 oslo.policy實現許可權管理 ....114
5.5 手動安裝和部署 Keystone .......116
5.5.1 創建 Keystone資料庫 ......116
5.5.2 安裝和配置 Keystone及相關 組件 .................117
5.5.4 完成安裝 ...............118
5.5.5 為後續的服務創建統一的服務項目 ..................119
5.6 習題 .....................119
第6章 OpenStack鏡像服務...................120
6.1 鏡像服務基礎 .................120
6.1.1 鏡像與鏡像服務 ............120
6.1.2 Glance架構 ..............124
6.1.3 Glance工作流程 ...........125
6.1.4 理解鏡像和實例的關係 ........126
6.1.5 鏡像元數據定義 ...........129
6.1.6 Glance的配置檔案 ..........130
6.2 管理 Glance鏡像 ..............131
6.2.1 基於 Web界面管理鏡像 ......131
6.2.2 基於命令行管理鏡像 ........133
6.2.3 鏡像的問題排查 ............135
6.3 製作 OpenStack鏡像 ..........135
6.3.1 製作 OpenStack Linux鏡像 ....135
6.3.2 cloud-init工作機制及其 套用 ..................139
6.3.3 製作 OpenStack Windows 鏡像 ..................145
6.4 手動安裝和部署 Glance ........155
6.4.1 基礎工作 ...............155
6.4.2 安裝和配置組件 ...........155
6.4.3 完成安裝 ...............157
6.5 習題 .....................157
第7章 OpenStack計算服務...................158
7.1 OpenStack計算服務基礎 ........158
7.1.1 什麼是 Nova .............158
7.1.2 Nova系統架構 .............159
7.1.3 API組件 ...............159
7.1.4 Scheduler組件 ............160
7.1.5 Compute組件 ..............163
7.1.6 Conductor組件 ............164
7.1.7 Placement API組件 ........164
7.1.8 控制台接口 ...............165
7.1.9 虛擬機實例化流程 ...........165
7.2 Nova部署架構 ..............166
7.2.1 Nova物理部署 .............166
7.2.2 Nova的 Cell架構 .........166
7.3 Nova的元數據工作機制 .......169
7.3.1 元數據及其注入 ............169
7.3.2 配置驅動器 ...............169
7.3.3 元數據服務 ...............171
7.3.4 虛擬機實例訪問元數據服務 .....172
7.4 使用和管理計算服務 ..........173
7.4.1 部署虛擬機實例的前提 ........173
7.4.2 創建虛擬機實例 ............174
7.4.3 訪問虛擬機實例 ............177
7.4.4 管理虛擬機實例 ............178
7.4.5 管理實例類型 ............179
7.4.6 為虛擬機實例注入管理員密碼 ..................182
7.5 手動安裝和部署 Nova ...........183
7.5.1 在控制節點上安裝和配置 Nova 組件 .................184
7.5.2 在計算節點上安裝和配置 Nova 組件 ...............186
7.6 習題 .....................187
8.1 Linux虛擬網路 ..............189
8.1.1 Linux網路虛擬化 .........189
8.1.2 Linux虛擬網橋 ............190
8.1.3
虛擬區域網路 ...............190
8.1.4 開放
虛擬交換機 ...........191
8.2 OpenStack網路服務基礎 ........192
8.2.1 Neutron網路結構 ...........192
8.2.2 網路、子網與連線埠 ...........193
8.2.3 網路拓撲類型 ............193
8.2.4 Neutron基本架構 ...........194
8.2.5 neutron-server ...........195
8.2.6 外掛程式、代理與網路提供者 .....196
8.2.7 Neutron的物理部署 ........196
8.3 Neutron主要外掛程式、代理與服務 ...197
8.3.1 ML2外掛程式 .................197
8.3.2 Linux Bridge代理 ...........198
8.3.3 Open vSwitch代理 ..........199
8.3.4 DHCP代理 ...............200
8.3.5 Linux網路名稱空間 .........202
8.3.6 Neutron路由器 ............203
8.3.7 L3代理 .................204
8.3.8 FWaaS..................205
8.4 Neutron網路配置和管理 ......205
8.4.1 虛擬網路類型 ............206
8.4.2 OpenStack網路命令行 ........209
8.4.3 創建提供者網路 ...........210
8.4.4 創建自服務網路 ...........211
8.4.5 配置
虛擬路由器 ...........214
8.5 手動安裝和部署 Neutron ......217
8.5.1 主機網路配置 ............217
8.5.2 安裝和配置控制節點 ........218
8.5.3 安裝和配置計算節點 ........220
8.6 習題 .....................221
第9章 OpenStack存儲服務...................222
9.1 Cinder塊存儲服務基礎 ........222
9.1.1 Cinder的主要功能 ...........222
9.1.2 Cinder與 Nova的互動 ........223
9.1.3 Cinder架構 ..............223
9.1.4 cinder-api服務 ...........225
9.1.5 cinder-scheduler服務 ........225
9.1.6 cinder-volume服務 ........226
9.1.7 cinder-backup服務 ........229
9.1.8 Cinder的物理部署 ...........230
9.2 Cinder的配置與管理 .........230
9.2.1 圖形界面的卷操作 ...........230
9.2.2 命令行的卷操作 ............235
9.2.3 配置存儲後端 ............237
9.2.4 管理塊存儲服務配額 ........239
9.3 手動安裝和部署 Cinder .........240
9.3.1 安裝和配置存儲節點 ........240
9.3.2 安裝和配置控制節點 ........242
9.3.3安裝和配置備份服務 ........243
9.4 Swift
對象存儲系統 ............243
9.4.1 Swift概述 ................243
9.4.2 對象的層次數據模型 ........244
9.4.3對象存儲的組件 ............245
9.4.4 對象存儲集群的層次結構 .....248
9.4.5Swift架構 ................249
9.5 Swift的配置與管理 ............250
9.5.1 代理服務及其配置 ...........250
9.5.2 存儲服務及其配置 ...........252
9.5.3 一致性服務及其配置 ........253
9.5.4 環的創建和管理 ............255
9.5.5 存儲策略管理 ............258
9.6 手動安裝和部署 Swift ...........260
9.6.1 配置網路 ...............260
9.6.2 安裝和配置控制節點 ........260
9.6.3 安裝和配置存儲節點 ........261
9.6.4 創建和分發初始環 ...........263
9.6.5 完成安裝 ...............265
9.7 習題 .....................265
第10章 OpenStack計量與監控................267
10.1 Telemetry服務概述 ...........267
10.1.1 Telemetry服務的子項目 ...267
10.1.2 Telemetry服務的架構 ......268
10.2 Ceilometer數據收集服務 ......269
10.2.1 Ceilometer的主要功能 .....269
10.2.2 數據類型計量項和事件 ......269
10.2.3 Ceilometer的架構 .........270
10.2.4 數據處理和管道 ..........272
10.2.5 存儲和訪問數據 ..........273
10.3 Gnocchi資源索引和計量存儲服務 .................273
10.3.1 Gnocchi簡介 .............274
10.3.2 Gnocchi的基本架構 .......274
10.3.3 Gnocchi的後端存儲 .......275
10.3.4 Gnocchi的歸檔策略 .......275
10.3.5 規劃 Gnocchi的存儲 ......276
10.3.6Statsd .................277
10.3.7 API..................277
10.3.8 Metricd...............277
10.4 配置和管理計量和監控服務 .....277
10.4.1 數據收集配置 .............277
10.4.2 管道配置 ................280
10.4.3 發布器配置 .............281
10.4.4 配置和管理 Gnocchi .......281
10.4.5 通過 Gnocchi API管理和使用計量服務 ................283
10.5 手動安裝計量和監控服務 ........284
10.5.1 安裝和配置 Telemetry服務....................284
10.5.2 啟用計算服務計量 .........286
10.5.3 啟用塊存儲計量 ..........287
10.5.4 啟用對象存儲計量 .........288
10.5.5 啟用其他 OpenStack服務計量....................288
10.6 Aodh警告服務 ............289
10.6.1 Aodh的組件 ..............289
10.6.2 Aodh的系統架構 ...........289
10.6.3管理和使用 Aodh警告 ......291
10.6.4使用警告 ................291
10.6.5 手動安裝 Aodh警告服務 ...293
10.7 習題 ......................295
第11章 OpenStack編排服務................296
11.1 Heat編排服務基礎 ..........296
11.1.1 什麼是編排服務 ..........296
11.1.2 Heat的目的和任務 ........297
11.1.3 Heat架構 ...............297
11.2 Heat編排模板 .............298
11.2.1 模板結構 .................299
11.2.2 模板版本與描述信息 .......300
11.2.3 參數組 .................300
11.2.4 輸入參數 ................300
11.2.5資源 ....................302
11.2.6輸出參數 .................303
11.2.7條件 ....................303
11.2.8 內置函式 .................303
11.3 管理和使用 Heat編排 .........305
11.3.1 使用 packstack命令安裝 Heat 服務...............305
11.3.2 創建棧完成編排任務 .......306
11.3.3 創建模板定製編排任務 ......308
11.4 安裝和配置 Heat .............312
11.4.1準備 ....................312
11.4.2安裝和配置組件 ..........313
11.4.3 完成安裝 ................314
11.5 習題 ......................314
第12章 多節點 OpenStack 雲平台...............315
12.1 增加一個計算節點 ............315
12.1.1 準備安裝 .................315
12.1.2 編輯應答檔案 .............316
12.1.3運行 Packstack安裝 ......317
12.1.4 驗證雙節點部署 ..........318
12.1.5 管理主機聚合 .......320
12.2虛擬機實例的遷移 ........322
12.2.1 在計算節點之間配置 SSH無密碼訪問 .......322
12.2.2 虛擬機實例的冷遷移 ...323
12.2.3 虛擬機實例的實時遷移 ...325
12.3 多節點 OpenStack的部署 .....333
12.3.1 使用工具部署多節點 OpenStack........333
12.3.2 手動部署多節點 OpenStack ...333
12.4 習題 .............334