精通 OpenStack, 2/e (Mastering OpenStack, 2/e)

Omar Khedher, Chandan Dutta Chowdhury

買這商品的人也買了...

商品描述

本書首先介紹OpenStack的架構,然後介紹當在OpenStack環境中部署和運營時如何使用DevOps自動化模式。接著手把手地指導用戶搭建自己的OpenStack私有云環境。你將了解到OpenStack所支持的多種虛擬機監控程序和容器技術,並掌握如何依據可靠性和可用性的理念對計算節點進行劃分。同時,書中還將介紹OpenStack所支持的各種存儲類型以及諸如SDN和NFV的高級網絡功能。最後,你還將學到如何運行日誌服務器和監控OpenStack服務。

本書還將介紹如何基於OpenStack服務日誌進行性能調優。通過閱讀這些內容,你將會掌握OpenStack的性能測試和調優,掌握如何通過新的開源技術部署、管理OpenStack雲。

 

通過閱讀本書,你將能夠:

了解OpenStack組件和核心服務的架構設計,以及它們是如何相互配合的。

設計針對不同場景的高可用方案,避免單點故障。

通過編排工具部署生產級多節點環境。

通過高級配置提升OpenStack的性能。

了解OpenStack所能支持的多種虛擬機監控程序和容器技術。

熟悉實際生產環境中的環境部署方式以及實際用例。

通過DevOps模式自動化地部署和管理OpenStack環境。

監控雲基礎設施,以便在必要的時候對環境進行維護並提升性能。

目錄大綱

譯者序

前言

關於作者和審校者

第1章OpenStack參考架構設計1 

1.1 OpenStack引領新一代數據中心2 

1.2 OpenStack邏輯架構介紹2 

1.2.1認證管理服務Keystone 3 

1.2.2對象存儲服務Swift 3 

1.2. 3塊存儲服務Cinder 4 

1.2.4文件共享存儲服務Manila 5 

1.2.5鏡像註冊服務Glance 5 

1.2.6計算服務Nova 6 

1.2.7網絡服務Neutron 7 

1.2.8計量服務Telemetry 9 

1.2.9編排服務Heat 9 

1.2.10儀錶盤服務Horizo n 10 

1.2.11消息隊列10 

1.2.12數據庫10 

1.3資源準備與虛擬機創建10 

1.3.1準備虛擬機資源10 

1.3.2虛擬機創建流程11 

1.4 OpenStack邏輯概念設計13 

1.4.1概念模型設計13 

1.4.2邏輯模型設計15 

1.4.3存儲選型考慮16 

1.4.4邏輯網絡設計17 

1.5 OpenStack物理模型設計19

1.5.1估算硬件容量19 

1.5.2 CPU評估20 

1.5.3內存評估21 

1.5.4網絡評估21 

1.5.5存儲評估22 

1.6 OpenStack設計最佳實踐23 

1.7總結24 

第2章基於DevOps的OpenStack部署25 

2.1 DevOps與CI/CD 25 

2.1.1一切皆代碼26 

2.1.2 DevOps與OpenStack 27 

2.1.3基礎架構部署代碼28 

2.1.4 OpenStack中的CI/CD 29 

2.2 DevOps工具與OpenStack自動化部署30 

2.2.1 Ansible介紹31 

2.2.2 Ansible與OpenStack自動化33 

2.2.3開發和生產環境架構34 

2.2.4硬件與軟件需求規劃35 

2.2.5網絡需求規劃36 

2.2.6開發環境構建37 

2.2.7基礎架構代碼環境準備39 

2.2.8代碼變更追踪43 

2.3總結43 

第3章OpenStack集群——雲控制器和公共服務44 

3.1集群核心概念45 

3.1.1非對稱集群45

3.1.2對稱集群45 

3.1.3集群分而治之45 

3.2雲控制器及其服務46 

3.2.1 Keystone服務47 

3.2.2 nova-conductor服務50 

3.2.3 nova-scheduler服務50 

3.2.4 API服務51 

3.2. 5鏡像管理51 

3.2.6網絡服務52 

3.2.7 Horizo n儀表板服務52 

3.2.8計量服務52 

3.2.9基礎架構服務53 

3.3雲控制器集群部署準備54 

3.3.1 OpenStack Ansible安裝部署55 

3.3.2控制節點環境準備57 

3.4使用OpenStack playbook部署集群58 

3.4.1配置OpenStack Ansible 58 

3.4.2網絡配置59 

3.4.3配置主機組59 

3.4.4用於集群部署的playbook 61 

3.5總結63 

第4章OpenStack計算——Hypervisor選擇與節點隔離64 

4.1計算服務組件65 

4.2 Hypervisor決策65 

4.3 Docker容器與Hypervisor 66

4.4 OpenStack容器服務項目Magnum 67 

4.5計算雲中的分區與隔離69 

4.5.1可用區69 

4.5.2主機聚合69 

4.5.3 Nova單元70 

4.5.4區域71 

4.5.5工作負載隔離71 

4.5.6使用多種Hypervisor 72 

4.6資源超分75 

4.6.1 CPU分配比率75 

4.6.2內存分配比率76 

4.7實例臨時存儲規劃77 

4.7.1外部共享文件存儲77 

4.7.2內部非共享文件存儲77 

4.8理解實例啟動過程77 

4.8.1理解Nova調度流程78 

4.8.2從鏡像啟動實例78 

4.8.3獲取實例元數據78 

4.8.4添加計算節點80 

4.9備份恢復規劃81 

4.9.1使用backup-manager進行備份82 

4.9. 2簡要恢復步驟83 

4.9.3數據保護即服務84 

4.9.4 OpenStack社區數據備份項目84 

4.10總結84 

第5章OpenStack塊、對象存儲與文件共享85

5.1 OpenStack存儲類型86 

5.1.1臨時存儲86 

5.1.2持久存儲86 

5.2 Swift對象存儲87 

5.2.1 Swift架構87 

5.2.2 Swift在物理設計上的規劃88 

5.2.3 Swift環89 

5.2.4 Swift存儲策略和糾刪碼91 

5.2.5 Swift硬件考慮92 

5.2.6 Swift節點資源配置考慮93 

5.2.7 Swift網絡配置考慮94 

5.2.8 Swift服務部署94 

5.3塊存儲服務Cinder 97 

5.3.1 Cinder後端驅動和調度99 

5.3.2 Cinder服務部署101 

5.4共享存儲服務Manila 101 

5.4.1 Manila共享存儲項目介紹101 

5.4.2 Manila共享存儲配置與使用103 

5.5存儲類型選擇104 

5.6 Ceph分佈式存儲集群105 

5.6.1 Ceph在OpenStack中的應用108 

5.6.2使用Ansible部署Ceph集群108 

5.6.3將Glance鏡像存儲至Ceph 111 

5.7總結112

第6章OpenStack網絡類型與安全113 

6.1 Neutron架構114 

6.1.1 Neutron插件115 

6.1.2 Neutron服務插件115 

6.1.3 Neutron代理115 

6.1.4 Neutron API擴展115 

6.2虛擬網絡實現116 

6.2.1 VLAN網絡116 

6.2.2隧道網絡116 

6.2.3虛擬交換機118 

6.2.4 ML2插件118 

6.2.5網絡類型119 

6.2.6 Neutron子網119 

6.2.7創建虛擬網絡和子網119 

6.3 Neutron網絡端口連接119 

6.3.1基於Linux Bridge的網絡連接119 

6.3.2基於OpenVSwitch的網絡連接121 

6.4 Neutron虛擬網絡與路由123 

6.4.1 Neutron虛擬配置路由服務123 

6.4.2基於路由的網絡連接實現124 

6.4.3實例訪問外網125 

6.4 .4外網訪問實例125 

6.4.5關聯虛擬機浮動IP 126 

6.5 Neutron安全組126 

6.5.1安全組127

6.5.2創建安全組策略127 

6.6 Firewall as a Service 128 

6.6.1防火牆配置128 

6.6.2創建防火牆策略和規則129 

6.7 VPN as a Service 130 

6.7.1 VPN插件配置131 

6.7.2創建VPN服務132 

6.8總結137 

第7章OpenStack SDN網絡與NFV 138 

7.1基於SDN的網絡138 

7.1.1 SDN介紹138 

7.1.2 OVS架構139 

7.2 OVN架構140 

7.2.1 OVN組件141 

7.2.2 OVN與OpenStack集成141 

7.2.3基於OVN的虛擬網絡實現142 

7.3網絡功能虛擬化144 

7.3.1管理與編排規範144 

7.3.2雲應用拓撲編排規範模版144 

7.3.3 OpenStack Tacker項目介紹145 

7.4基於Octavia的LBaaS實現147 

7.4.1配置Octavia 148 

7.4.2創建負載均衡器148 

7.5總結150 

第8章OpenStack集群操作與管理151

8.1 OpenStack租戶操作152 

8.1.1項目與用戶管理152 

8.1.2用戶權限管理153 

8.1.3資源配額管理155 

8.2 OpenStack編排服務160 

8.2.1 OpenStack Heat項目介紹160 

8.2.2 OpenStack模板棧及其介紹161 

8.2.3 OpenStack模板棧組織架構162 

8.2.4棧模塊化編排應用162 

8.2.5資源編排利器Terraform 170 

8.3本章小結178 

第9章OpenStack高可用與容錯機制179 

9.1集群高可用179 

9.1.1不能混淆的HA概念181 

9.1.2 Open Stack中的HA級別181 

9.1.3嚴格製定SLA 182 

9.1.4量化與度量SLA 183 

9.1.5 HA字典183 

9.2負載均衡器HAProxy 184 

9.2.1 OpenStack服務高可用186 

9.2 .2負載均衡高可用186 

9.3 OpenStack HA實現方法187 

9.3.1數據庫高可用188 

9.3.2消息隊列高可用191

9.4 HA規劃與實現192 

9.4.1 MySQL高可用實現192 

9.4.2 RabbitMQ高可用實現197 

9.4.3 OpenStack控制節點高可用實現200 

9.4.4網絡節點高可用實現204 

9.5 Ansible實現HA 210 

9.6總結212 

第10章OpenStack集群監控與故障排查213 

10.1 OpenStack中的Telemetry服務214 

10.1.1 Ceilometer介紹及架構214 

10.1.2時序數據庫Gnocchi 218 

10.1.3監控告警項目Aodh 219 

10.2在OpenStack中安裝Telemetry 220 

10.2.1 Ceilometer安裝部署221 

10.2.2 Aodh告警服務配置部署224 

10.3 OpenStack監控增強226 

10.3.1運行Nagios 227 

10.3.2 Nagios監控配置228 

10.3.3 Nagios監控OpenStack 228 

10.4基於監控的OpenStack故障排除231 

10.4.1服務的啟動與運行231 

10.4.2服務監聽233 

10.4.3拯救故障實例234

10.4.4網絡故障排除236 

10.5總結239 

第11章OpenStack ELK日誌處理系統240 

11.1 OpenStack日誌處理241 

11.1.1 OpenStack日誌解密241 

11.1.2 OpenStack外部監控系統244 

11.1.3 ELK核心概念與組件244 

11.2 ELK安裝部署246 

11.2.1 ELK服務器準備247 

11.2.2 ElasticSearch安裝247 

11.2.3 ElasticSearch配置248 

11.2.4 ElasticSearch功能擴展249 

11.2.5 Kibana安裝251 

11.2.6 Kibana配置251 

11.2.7 LogStash安裝253 

11.2.8 LogStash配置254 

11.2.9 LogStash操作254 

11.2.10 LogStash客戶端準備257 

11.2.11 OpenStack日誌過濾258 

11.3 OpenStack ELK功能擴展262 

11.3.1 OpenStack日誌可視化264 

11.3.2基於Kibana的故障分析267 

11.4總結270

第12章OpenStack基準測試與性能調優271 

12.1 OpenStack數據庫瓶頸調優272 

12.1.1數據庫瓶頸根因273 

12.1.2 OpenStack中的緩存系統273 

12.1.3 Memcached在OpenStack中的應用274 

12.1.4 Memcached安裝與部署275 

12.2 OpenStack基準測試279 

12.2.1基於Rally的OpenStack API測試280 

12.2.2實現OpenStack SLA 280 

12.2.3 Rally安裝與部署281 

12.2.4 Rally配置應用282 

12.2.5測試示例—Keystone性能調優284 

12.3基於Shaker的OpenStack網絡測試291 

12.3.1 Shaker架構292 

12.3.2 Shaker安裝部署293 

12.3.3 Shaker配置應用294 

12.3.4測試示例—OpenStack L2網絡調優296 

12.4總結302