OpenStack是當今用于構建和集成公有云和私有云的技術,本書是一個完整且實用的OpenStack部署指南,讓讀者理解如何部署OpenStack的同時了解它的內部結構。書中先概述云計算和OpenStack的概念和OpenStack單服務器部署工具DevStack,并介紹OpenStack關鍵組件,包括儀表盤(Horizon)、計算(Nova)、身份(Keystone)、網絡(Neutron)、鏡像服務(Glance)、塊存儲(Cinder)、對象存儲(Swift)、遙測(Ceilometer)、裸機(Ironic)、編排(Heat)、容器(Magnum)等;接著通過介紹多種類型的OpenStack部署實例,講解不同云環境(公有云、私有云、塊儲存云和對象存儲云)的部署,以及在功能豐富的云環境中集成多個組件的方法;介紹更為廣泛的OpenStack生態系統及增強功能,這些增強功能使OpenStack平臺變得更加成熟且完備。
本書的目標讀者是致力于學習OpenStack基礎知識,并嘗試各種部署場景的Linux和Unix系統管理員和網絡工程師,本書將成為其工作中應用OpenStack的理想資源和必不可少的學習材料。
OpenStack是構建與集成公有云和私有云的開源技術。這是一本關于部署OpenStack和理解其內部結構的完整實踐指南。兩位作者分享了在虛擬服務器和物理服務器上部署OpenStack以及使用OpenStack解決許多現實挑戰的方法。
本書首先通過指導讀者完成小型虛擬化部署來幫助讀者掌握OpenStack的概念和組件。在讀者加深理解后,進一步指導讀者構建可水平擴展的大型基礎設施。這些基礎設施在功能豐富的云環境中集成了多個組件。在這個過程中,讀者會發現讓OpenStack平臺更加成熟、使生產準備就緒的增強功能等新進展,以及關于調試和增長的專業技巧。
作者以更為廣泛的OpenStack生態系統收尾,為讀者展示了如何通過涵蓋本地和托管解決方案的混合云來驅動價值。他們利用豐富的個人經驗,解決了從成本到數據主權和數據安全等一系列問題。
本書的目標是對真實世界中的OpenStack的規劃和部署進行講解,解決讀者在實際應用OpenStack過程中的疑問,因此對所有想將OpenStack用于概念驗證或在生產中應用的系統、網絡和數據中心專業人員,以及希望運用當前熱門云技術的教師和學生來說,本書都是理想的學習資源。
伊麗莎白 K. 約瑟夫(Elizabeth K. Joseph)作為OpenStack基礎設施項目的系統管理員,一直在為OpenStack工作人員提供支持。她在OpenStack開發郵件列表中非常活躍,并且在OpenStack TripleO項目中負責測試工程。此外,她還經常為舊金山灣區等地的公司提供OpenStack指導,定期參加一年兩次的OpenStack設計峰會,并在全球會議中針對開源主題發表演講。
馬修·費希爾(Matthew Fischer)擁有超過15年的軟件開發經驗,從事過UNIX內核、移動開發、DevOps等方面的工作,目前為一個部署和運行OpenStack的團隊工作。他自2013年起開始使用Puppet部署OpenStack。
目錄
第 1章 OpenStack是什么 1
1.1 云 1
1.2 搭建自己的云 3
1.3 用法 3
1.4 關鍵組件 3
1.4.1 實例 3
1.4.2 隊列 4
1.4.3 儀表盤(Horizon) 4
1.4.4 計算(Nova) 6
1.4.5 身份(Keystone) 8
1.4.6 網絡(Neutron) 8
1.4.7 鏡像服務(Glance) 9
1.4.8 塊存儲(Cinder) 9
1.4.9 對象存儲(Swift) 10
1.4.10 遙測(Ceilometer) 10
1.4.11 裸機(Ironic) 11
1.4.12 編排(Heat) 11
1.4.13 容器(Magnum) 11
1.4.14 其他項目 12
1.5 發布周期 12
1.5.1 Ubuntu長期支持 13
1.5.2 Ubuntu Cloud Archive 13
1.5.3 Puppet模塊 14
1.6 小結 15
第 一部分 初次部署
第 2章 DevStack 19
2.1 DevStack是什么 19
2.1.1 開 發 者用途 20
2.1.2 培訓用途 20
2.1.3 持續集成用途 20
2.2 DevStack需求 21
2.3 部署DevStack 21
2.3.1 儀表盤:作為用戶登錄 23
2.3.2 儀表盤:作為管理員登錄 26
2.3.3 命令行上使用主機 27
2.4 DevStack選項 29
2.4.1 “穩定的”DevStack 29
2.4.2 定制DevStack 30
2.5 小結 31
第3章 網絡 32
3.1 關鍵概念 32
3.1.1 操作的分層 32
3.1.2 提供商網絡 33
3.1.3 租戶網絡 34
3.1.4 最*大傳輸單元(MTU) 35
3.2 部署條件 36
3.3 流量流 39
3.3.1 控制器節點 40
3.3.2 計算節點 44
3.4 其他資源 45
3.5 小結 45
第4章 首*個OpenStack 46
4.1 系統要求 46
4.2 初始設置 47
4.2.1 網絡 47
4.2.2 操作系統 49
4.2.3 系統配置 49
4.3 OpenStack組件 53
4.3.1 控制器節點 53
4.3.2 計算節點 79
4.4 管理實例 81
4.5 小結 83
第 二部分 部署
第5章 部署的基礎 87
5.1 系統要求 87
5.1.1 參考部署 88
5.1.2 網絡 89
5.1.3 選擇部署機制 89
5.2 初始設置 90
5.3 選擇組件 91
5.3.1 身份(Keystone) 91
5.3.2 數據庫(MySQL) 92
5.3.3 消息隊列(RabbitMQ) 92
5.3.4 網絡(Neutron) 92
5.3.5 計算(Nova) 93
5.3.6 鏡像(Glance) 93
5.3.7 儀表盤(Horizon) 93
5.4 基礎場景 94
5.4.1 控制器節點 94
5.4.2 計算節點 106
5.4.3 故障排除 111
5.5 小結 112
第6章 私有計算云 113
6.1 使用 113
6.1.1 政府機構 114
6.1.2 主要公司 114
6.2 系統要求 114
6.3 場景 115
6.3.1 啟動實例:儀表盤 115
6.3.2 啟動實例:OpenStack
客戶端 124
6.3.3 運行服務 131
6.3.4 SDK與OpenStack API 133
6.4 小結 134
第7章 公有計算云 135
7.1 使用 135
7.1.1 傳統技術公司 136
7.1.2 網絡托管公司 136
7.2 系統要求 136
7.3 架構概覽 137
7.4 場景 138
7.4.1 控制器節點設置 138
7.4.2 計算節點設置 139
7.4.3 查看統計數據:儀表盤 140
7.4.4 查看統計數據:命令行
客戶端 141
7.5 處理測量值與警報 144
7.6 小結 144
第8章 塊存儲云 145
8.1 使用 145
8.1.1 云提供商 145
8.1.2 數據處理 146
8.1.3 保持備份 147
8.2 系統要求 147
8.3 架構概覽 148
8.4 場景 149
8.4.1 控制器節點設置 149
8.4.2 創建和附加卷:儀表盤 151
8.4.3 創建和附加卷:OpenStack
客戶端 154
8.4.4 使用卷 157
8.4.5 自動化 159
8.5 小結 159
第9章 對象存儲云 160
9.1 使用 160
9.1.1 網絡托管公司 161
9.1.2 文件同步與共享 161
9.1.3 日志存儲 161
9.2 系統要求 162
9.2.1 選擇組件 162
9.2.2 關鍵概念 162
9.3 場景 165
9.3.1 控制器節點設置 166
9.3.2 創建容器和對象:儀表盤 169
9.3.3 創建容器和對象:OpenStack
客戶端 172
9.3.4 使用對象 173
9.4 除Swift之外 176
9.5 小結 176
第 10章 裸機配置 177
10.1 使用 177
10.1.1 云托管公司 178
10.1.2 內部云 178
10.1.3 數據庫托管 178
10.1.4 高性能計算 178
10.2 架構概覽 179
10.2.1 安裝 180
10.2.2 使用Ironic 180
10.2.3 管理Ironic 183
10.3 社區 184
10.4 小結 184
第 11章 控制容器 185
11.1 什么是容器 185
11.2 使用 186
11.2.1 公有云公司 186
11.2.2 在線游戲公司 186
11.3 針對Nova的容器驅動 187
11.4 Magnum 187
11.4.1 Magnum概念 188
11.4.2 安裝Magnum 189
11.5 小結 189
第三部分 擴展與故障排除
第 12章 一個完整的云 193
12.1 使用 193
12.2 系統要求 193
12.3 場景 194
12.3.1 控制器節點設置 194
12.3.2 計算節點設置 195
12.3.3 探索部署:儀表盤 195
12.3.4 探索部署:命令行客戶端 196
12.4 更大的云 197
12.4.1 高可用性和擴展性 197
12.4.2 額外組件 198
12.5 小結 199
第 13章 故障排除 200
13.1 閱讀顯示的錯誤 200
13.2 日志 203
13.2.1 調試模式 203
13.2.2 理解日志消息 204
13.3 關鍵服務 205
13.4 網絡 205
13.4.1 網絡調試工具 206
13.4.2 ip和網絡名稱空間 206
13.4.3 tcpdump 207
13.4.4 MTU 208
13.4.5 Open vSwitch和Linux
網橋 208
13.4.6 iptables 209
13.5 配置文件 209
13.6 Puppet 210
13.6.1 探索模塊 210
13.6.2 更多的Puppet幫助 211
13.7 緩解中斷 211
13.8 請求幫助 212
13.9 小結 212
第 14章 廠商與混合云 213
14.1 廠商生產系統 213
14.2 公有云與混合云 214
14.2.1 公有云 214
14.2.2 混合云 216
14.3 廠商鎖定 217
14.3.1 遷移* 自己運行的新云上 217
14.3.2 遷移* 由廠商運行的云上 217
14.4 小結 218
附錄A 參考部署 219
附錄B 其他部署機制 222
附錄C 經久耐用的Puppet 224
附錄D 為OpenStack貢獻代碼 229
附錄E OpenStack客戶端(OSC) 235
附錄F 通過OpenStack尋求幫助 239