OpenStack架構分析與實踐pdf

满堂彩
满堂彩
满堂彩
10930
文章
1669
評論
2020年10月3日17:03:27 評論 32

OpenStack架構分析與實踐 作者:管增輝,曾凡浪

OpenStack架構分析與實踐 出版社:中國鐵道出版社

OpenStack架構分析與實踐 內容簡介

本書以實戰開發為原則,以關鍵模塊架構分析及項目開發為主線,通過OpenStack開發中常用的8個典型組件和若幹典型項目案例,詳細介紹了雲平台中的計算、網絡、存儲、服務編排、智能運維等模塊,並針對OpenStack中通用的關鍵技術進行了詳細介紹。對於每一部分內容的講解,章節的後都會配備相應的實戰案例供大家參考。

OpenStack架構分析與實踐 目錄

第1章 走進OpenStack

1.1 OpenStack是什麽 1

1.1.1 OpenStack的作用 1

1.1.2 OpenStack的應用場景 2

1.1.3 什麽類型的工作要學OpenStack 3

1.2 為什麽要學習OpenStack 3

1.2.1 OpenStack在雲計算中的地位 3

1.2.2 雲計算新時代:容器vs虛擬化 4

1.3 如何學習OpenStack 4

1.3.1 對學習者的技術要求 4

1.3.2 OpenStack的學習路線 4

1.4 OpenStack的基本架構 5

1.5 OpenStack的核心組件 7

1.5.1 計算資源管理:Nova組件 7

1.5.2 存儲資源管理:Cinder/Swift組件 8

1.5.3 網絡資源管理:Neutron組件 9

第2章 OpenStack部署與社區貢獻流程

2.1 OpenStack部署方式 12

2.1.1 DevStack方式部署 13

2.1.2 手動部署分布式OpenStack環境 18

2.1.3 RDO方式部署OpenStack 22

2.2 為OpenStack社區作貢獻 25

2.2.1 提交前的環境準備 26

2.2.2 代碼貢獻流程 28

【示例2-1】代碼貢獻流程之bug Fix 28

2.2.3 文檔貢獻流程 30

【示例2-2】以heat為例來演示HTML的生成過程 31

2.2.4 其他內容的貢獻流程 32

2.3 開發工具之Pycharm 33

2.3.1 Pycharm的安裝與配置 33

2.3.2 使用Pycharm對代碼進行遠程調試 34

【示例2-3】通過Pycharm調試OpenStack中nova list的代碼 34

2.3.3 Pycharm與PDB的選用比較 35

【示例2-4】開發工具之PDB斷點調試 35

第3章 虛擬化

3.1 虛擬化技術的現狀 37

3.2 KVM的管理工具Libvirt 38

3.2.1 Libvirt簡介 38

【示例3-1】通過Libvirt提供的API virsh對虛擬機生命周期實現管理 39

3.2.2 Libvirt的體係結構 40

3.3 OpenStack與虛擬化的結合 42

3.4 虛擬機配置libvirt.xml詳解 45

第4章 OpenStack通用技術

4.1 RPC服務實現分析 49

【示例4-1】在OpenStack RPC中創建Server並實現Client向Server發送請求

(以rpc、calll為例) 53

4.2 消息隊列服務分析 54

4.2.1 透徹理解中間件RabbitMQ 54

【示例4-2】通過“Hello World”演示如何RabbitMQ的消息收發過程 55

4.2.2 RabbitMQ實現RPC通信 58

【示例4-3】RabbitMQ之RPC通信案例 58

4.3 RESTful API開發框架 64

4.3.1 靈活但不易用:基於Pastedeploy和Routes的API框架 65

【示例4-4】通過nova list獲取虛擬機的命令,根據Nova的api-paste.ini來說明是如何路由的 68

4.3.2 基於Pecan的API框架 69

4.4 TaskFlow的實現 72

4.4.1 TaskFlow常見使用場景 72

4.4.2 TaskFlow中必須理解的重要概念 73

4.4.3 TaskFlow具體實現 74

【示例4-5】TaskFlow仔細看,重實踐得體感 74

【示例4-6】TaskFlow功能多,長流程特別火 76

4.5 基於Eventlet的多線程技術 78

4.5.1 進程、線程與協程 78

4.5.2 Eventlet依賴的兩個庫:greenlet和select.epoll 79

【示例4-7】greenlet庫應用之協程切換 79

4.5.3 創建協程的常用API 80

4.5.4 定時和監聽:Hub 81

4.5.5 Eventlet中的並發機製 83

第5章 Nova—計算組件

5.1 Nova架構 84

5.1.1 Nova基本架構及服務組成 85

5.1.2 Nova內部服務間的通信機製 86

5.1.3 Nova內部服務間協同工作 88

5.2 nova-api服務 89

5.2.1 nova-api服務的作用 89

5.2.2 nova-api服務的啟動流程 91

5.3 nova-scheduler服務 95

5.3.1 基本原理及代碼結構 96

5.3.2 調度過程 97

5.3.3 配置分析 100

5.4 nova-compute服務 101

5.4.1 nova-compute服務的作用 101

5.4.2 nova-compute服務的啟動流程 103

5.4.3 nova-compute服務的日誌分析 105

5.5 周期性任務的實現 106

5.5.1 什麽是周期性任務 107

5.5.2 周期性任務的代碼 108

5.6 資源及服務刷新機製 111

5.6.1 服務上報機製 111

5.6.2 主機資源刷新機製 112

5.7 典型流程分析 117

5.7.1 nova-scheduler服務的啟動流程 117

5.7.2 虛擬機創建的流程 120

5.8 案例實戰—Nova以Ceph作為後端存儲 122

第6章 Neutron—網絡組件

6.1 Neutron的發展曆程 126

6.2 網絡基礎 127

6.2.1 網絡的基本概念 127

6.2.2 常用的網絡設備 131

6.2.3 虛擬網絡技術 131

6.2.4 Neutron網絡的基本概念 133

6.3 Neutron核心架構 135

6.3.1 Neutron部署結構 135

6.3.2 Neutron組成部件 136

6.3.3 ML2 Core Plugin 138

6.3.4 DHCP服務 141

6.3.5 路由服務 142

6.3.6 元數據服務 144

6.3.8 Neutron使用示例 147

6.4 高級服務(Advanced Services) 149

6.4.1 Load Balancer as a Service(LBaaS) 149

6.4.2 Firewall as a Service(FWaaS) 153

6.4.3 VPN as a Service(VPNaaS) 155

6.5 典型網絡模型分析 156

6.5.1 Linux Bridge + Flat/VLAN網絡模型 156

6.5.2 Open vSwitch + VxLAN網絡模型 161

6.5.3 小結 171

第7章 Heat—服務編排組件

7.1 Heat架構分析 172

7.1.1 Heat組件的基本架構 173

7.1.2 Heat對資源的管理 175

7.1.3 認識HOT模板 177

7.1.4 小實例:通過HOT模板創建虛擬機 180

7.2 Heat中的鎖機製 182

7.3 Heat中的Hook機製 184

【示例7-1】在通過Heat進行資源定義時,應該如何使用Hook(鉤子) 185

【示例7-2】通過Heat創建一個Stack,在創建Stack時,需要通過Environment來定義Hook(鉤子) 186

7.4 案例實戰—Heat典型案例 189

7.4.1 通過Heat模板創建Stack 189

7.4.2 Heat Stack創建流程 195

第8章 Keystone—認證組件

8.1 Keystone的架構 198

8.1.1 Keystone的作用 199

8.1.2 Keystone與其他組件間的關係 201

8.1.3 基本架構解析 203

8.1.4 自定義Keystone Plugin 205

8.1.5 支持使用External Plugin 206

8.2 Keystone中的基本概念 207

8.2.1 API V2和API V3 207

8.2.2 其他常見概念 208

8.2.3 多區域multi-region 209

8.3 Keystone的安裝部署與基本操作 211

8.3.1 Keystone的安裝部署 211

8.3.2 Keystone基本操作 212

【示例8-1】使用OpenStack user create創建一個名為test的用戶 212

8.4 Keystone的認證流程 215

8.4.1 認證方式 215

【示例8-2】以查看虛擬機列表為例,使用X-Auth-Token構造一個合法的HTTP請求 215

8.4.2 令牌生成方式 216

8.4.3 Keystone工作流程 220

第9章 Cinder—塊存儲組件

9.1 Cinder架構分析 222

9.2 Cinder的安裝 225

9.2.1 安裝與配置存儲節點 225

9.2.2 安裝與配置控製節點 227

9.2.3 安裝與配置Backup服務 231

9.2.4 安裝正確性驗證及Cinder基本操作 232

9.2.5 Cinder配置存儲後端 234

【示例9-1】LVM作為Cinder的後端存儲 234

9.3 案例實戰—通過Heat模板創建Cinder Volume 235

9.4 Cinder API服務啟動過程分析 238

9.4.1 cinder-api代碼目錄結構 239

9.4.2 cinder-api服務啟動流程 240

9.4.3 REST請求的路由 242

9.5 案例實戰—關鍵代碼分析 245

9.5.1 Volume創建示例 245

9.5.2 代碼分析之cinder-api接收請求 247

9.5.3 代碼分析之cinder-scheduler進行資源調度 249

9.5.4 代碼分析之cinder-volume調用Driver創建Volume 251

第10章 Ceilometer—數據采集組件

10.1 Ceilometer架構分析 254

10.1.1 Ceilometer中的基本概念 255

10.1.2 舊版Ceilometer架構 256

10.1.3 新版Ceilometer架構 258

10.2 數據處理 260

10.2.1 Notification Agents數據收集 261

10.2.2 Polling Agents數據收集 262

10.2.3 數據轉換與發布 263

10.3 Pipelines 265

10.4 計量項 267

10.5 Agent和Plugin 269

10.5.1 Polling Agents 270

10.5.2 Plugins 272

10.6 案例實戰—Heat與Ceilometer結合,搭建一個彈性伸縮係統 274

10.6.1 係統介紹 274

10.6.2 準備模板 275

10.6.3 創建係統 277

第11章 Glance—鏡像組件

11.1 Glance架構分析 279

11.2 狀態分析 280

11.3 代碼結構與概念分析 281

11.3.1 Metadata定義 283

11.3.2 Domain模型 285

【示例11-1】自定義Gateway方法 285

11.3.3 Task定義 287

11.4 Glance的安裝與配置 287

11.4.1 Glance安裝部署 288

11.4.2 Glance基本配置 292

【示例11-2】修改Glance後端存儲為RBD 292

11.5 鏡像緩存 293

11.6 案例實戰—Glance常見場景之鏡像創建 294

第12章 智能運維Vitrage—RCA組件

12.1 Vitrage架構 297

12.1.1 High Level架構設計 298

12.1.2 Low Level架構設計 300

12.2 Vitrage安裝部署 301

12.2.1 手動方式安裝部署Vitrage 301

12.2.2 通過DevStack安裝Vitrage 303

12.3 Vitrage 模板 304

12.3.1 Templates(模板)的結構 304

【示例12-1】Host處於ERROR狀態時,觸發告警的模板 305

12.3.2 模板的加載過程 306

12.3.3 添加自定義模板 307

12.4 Vitrage Evaluator 310

12.5 自定義Datasources 312

12.6 案例實戰—Vitrage中的告警解決方案 314

第13章 OpenStack其他組件及智能運維方案

13.1 Mistral—工作流組件 317

13.1.1 Mistral應用場景 318

13.1.2 Mistral中的重要概念 318

13.1.3 Mistral功能介紹 320

13.1.4 Mistral架構分析 322

13.1.5 Mistral實戰應用 322

【示例13-1】為Mistral添加用戶自定義Action 322

【示例13-2】通過Mistral獲取虛擬機數據 323

13.2 OpenStack智能運維解決方案 326

13.2.1 可視化的Dynatrace 327

13.2.2 VirtTool Networks 327

13.2.3 智能運維Vitrage 329

第14章 OpenStack應用實戰:自動編排和配置高可用Redis係統

14.1 利用cloud-init配置虛擬機 332

14.1.1 cloud-init的安裝與配置 333

14.1.2 cloud-init對VM進行配置 338

【示例14-1】通過cloud-init配置虛擬機 341

14.1.3 cloud-init調試過程與問題分析 343

14.2 Redis數據庫的HA實現及Redis集群的創建 347

14.2.1 Redis HA方案實現 347

14.2.2 Redis Cluster集群實現 358

第15章 OpenStack架構與代碼實踐

15.1 OpenStack架構設計思路 366

15.1.1 業務架構設計思路 366

15.1.2 部署架構設計思路 368

15.1.3 平台用戶角色設計 369

15.2 案例實戰—向Heat中添加自定義資源 370

15.2.1 實現原理及思路分析 370

15.2.2 向Heat中添加Zabbix資源 371

15.2.3 定義Zabbix Action 373

15.2.4 實現AutoScaling模板 375

15.2.5 資源查看 377

满堂彩:OpenStack架構分析與實踐pdf

繼續閱讀
資源地址:用心發表評論,談談你的看法,說不定有意向不到的收獲。
  • 我的微信
  • 掃一掃加好友
  • weinxin
  • 微信公眾號
  • 掃一掃關注
  • weinxin
一學就會魔法書 中老年人的網上幸福生活(第3版)pdf 計算機教材

一學就會魔法書 中老年人的網上幸福生活(第3版)pdf

一學就會魔法書 中老年人的網上幸福生活(第3版) 作者:九州書源,向萍,趙雲 一學就會魔法書 中老年人的網上幸福生活(第3版) 出版社:清華大學出版社 一學就會魔法書 中老年人的網上幸福生活(第3版)...
網上衝浪(第2版)pdf 計算機教材

網上衝浪(第2版)pdf

網上衝浪(第2版) 作者:本書編委會 網上衝浪(第2版) 出版社:電子工業出版社 網上衝浪(第2版) 內容簡介 《網上衝浪(第2版)》詳細地介紹了上網的相關知識,幫助用戶掌握上網技巧,解決上網遇到的問...
我要學 五筆打字5小時速成pdf 計算機教材

我要學 五筆打字5小時速成pdf

我要學 五筆打字5小時速成 作者:傑誠文化 我要學 五筆打字5小時速成 出版社:中國青年出版社 我要學 五筆打字5小時速成 內容簡介 《我要學:五筆打字5小時速成》導讀:1.五筆打字的基礎知識講解,包...
匿名

發表評論

匿名網友 填寫信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: