內容簡介
這是一部從原理、架構、部署、運維4個方面系統、深入講解如何構建高可用OpenStack集群的著作,在理論和實踐兩個維度為構建構建高可用OpenStack集群提供了完整的解決方案。
本書從OpenStack終端用戶的角色出發,以面向生產系統的OpenStack高可用集群建設為主線,對OpenStack高可用集群的原理和架構進行了深入的剖析,對部署和運維OpenStack高可用集群所依賴的各個技術棧和核心組件進行了詳細的講解。此外,書中還對Ceph和Docker等技術與OpenStack的結合套用進行了詳細講解,尤其是Kolla項目的介紹,是本書的一大技術特色。
本書為上下兩冊:
上冊(第1~10章)從理論的角度剖析了OpenStack高可用集群的原理與架構。
架構篇(第1~2章):介紹了通用雲計算參考架構的設計、傳統IT架構的高可用設計、雲環境下的高可用設計,以及OpenStack高可用集群的架構設計。
原理篇(第3~10章):首先詳細講解了實現OpenStack高可用集群所必須的集群
資源管理器、
負載均衡器、訊息佇列、快取系統和資料庫等OpenStack生態圈的基礎技術和高可用軟體;其次還講解了 OpenStack的計算、網路和存儲三大核心組件,以及Ceph的架構設計和使用配置。
下冊(第11~15章)從實戰的角度講解了OpenStack高可用集群的部署與運維。
部署篇(第11-12章): 講解了
OpenStack基礎架構軟體和核心組件的高可用部署與實現。全面講解OpenStack高可用集群的落地實施過程,並將OpenStack高可用集群的部署進行了代碼自動化實現,代碼具有穩定的可重現性。
運維篇(第13-14章): 總結了OpenStack高可用集群運維的*佳實踐。詳細講解了基於Pacemaker高可用集群的運維,深入分析了Nova實例的高可用和Neutron網路,以及Ceph集群的運維。
拓展篇(第15章):介紹了基於Docker的OpenStack容器化部署項目Kolla,通過Kolla實現OpenStack容器化部署。
圖書目錄
序1
序2
序3
序4
前言
架構篇
1.1 企業為何要進行雲計算建設2
1.1.1 政策導向與IT發展的必然2
1.1.2 業務導向與IT彈性需求4
1.1.3 技術導向與IT自動化4
1.1.4 成本導向與TCO6
1.2 企業如何決策公有雲與私有雲8
1.2.1 雲計算部署模式對比8
1.2.2 如何決策私有雲與公有雲10
1.3 雲計算架構設計與進階路線13
1.3.1 雲計算生態模型13
1.3.2 雲計算架構基本模型15
1.3.3 通用雲計算參考架構16
1.3.4 雲計算實施進階路線20
1.4 業務系統高可用性概述22
1.4.1 業務系統高可用性23
1.4.2 業務系統容災恢復24
1.5 傳統IT架構高可用設計26
1.5.1 傳統數據中心HADR設計原則26
1.5.2 故障劃分與HADR高可用實現27
1.6 雲環境下的高可用設計29
1.6.1 雲計算HADR架構設計原則30
1.6.2 雲計算HADR架構設計實現33
1.7 本章小結36
第2章 OpenStack高可用集群架構概述37
2.1 OpenStack高可用集群功能組件37
2.1.1 集群控制節點38
2.1.2 集群計算節點39
2.1.3 集群存儲節點40
2.1.4 集群網路節點41
2.1.5 集群負載均衡器43
2.1.6 集群網路拓撲44
2.2 OpenStack高可用集群服務組件47
2.2.1 認證服務Keystone47
2.2.2 鏡像服務Glance50
2.2.3 計算服務Nova52
2.2.4 塊存儲服務Cinder54
2.2.5 網路服務Neutron57
2.2.6 控制臺Horizon59
2.2.7 其他OpenStack服務60
2.3 Redhat OpenStack高可用部署架構63
2.3.1 Redhat OpenStack高可用集群部署架構63
2.3.2 Redhat OpenStack高可用集群服務規劃67
2.4 Mirantis OpenStack高可用部署架構71
2.4.1 Mirantis OpenStack高可用集群部署架構72
2.4.2 Mirantis OpenStack自定義高可用集群架構76
2.5 其他廠商OpenStack高可用部署架構介紹及對比分析79
2.5.1 Juniper Networks OpenStack高可用部署方案80
2.5.2 HPE OpenStack高可用部署方案81
2.5.3 TCP Cloud OpenStack高可用部署方案83
2.5.4 Paypal OpenStack高可用部署方案84
2.5.5 Oracle OpenStack高可用部署方案87
2.5.6 OpenStack高可用部署方案對比分析87
2.6 本章小結89
原理篇
第3章 集群資源管理系統92
3.1 Pacemaker概述93
3.2 Pacemaker集群分類95
3.3 Pacemaker集群架構97
3.4 Pacemaker內部組件98
3.5 Pacemaker集群配置信息管理99
3.5.1 Pacemaker集群狀態信息100
3.5.2 Pacemaker集群配置信息101
3.6 Pacemaker集群管理工具PCS108
3.6.1 PCS命令行工具108
3.6.2 PCS用戶接口界面110
3.7 Pacemaker集群資源管理113
3.7.1 集群資源代理113
3.7.2 集群資源約束118
3.7.3 集群資源類型120
3.7.4 集群資源規則124
3.8 本章小結126
第4章 集群負載均衡系統127
4.1 Keepalived概述與配置128
4.1.1 Keepalived及LVS概述128
4.1.2 Keepalived工作原理133
4.1.3 Keepalived調度算法136
4.1.4 Keepalived路由方式137
4.1.5 Keepalived配置與使用138
4.2 HAProxy概述與配置144
4.2.1 HAProxy概述144
4.2.2 HAProxy配置146
4.2.3 HAProxy監控頁面151
4.2.4 HAProxy配置參考154
4.3 本章小結158
第5章 集群訊息佇列系統159
5.1 AMQP概述160
5.2 RabbitMQ概述161
5.3 RabbitMQ工作原理167
5.4 RabbitMQ基本配置169
5.5 RabbitMQ集群基礎170
5.5.1 RabbitMQ集群概述170
5.5.2 RabbitMQ的集群配置171
5.6 RabbitMQ集群管理174
5.6.1 RabbitMQ集群節點啟停174
5.6.2 RabbitMQ的集群節點移除175
5.7 RabbitMQ的集群佇列鏡像177
5.8 基於Pacemaker的高可用Rabbit-MQ集群181
5.8.1 Active/Passive模式的Rabbit-MQ集群181
5.8.2 Active/Active模式的Rabbit-MQ集群182
5.9 RabbitMQ在OpenStack中的套用分析187
5.10 本章小結192
第6章 集群快取系統193
6.1 Memcache快取系統193
6.1.1 Memcache快取概述193
6.1.2 Memcache的工作原理194
6.1.3 Memcache的功能特點196
6.1.4 Memcache集群概述197
6.1.5 Memcache集群高可用201
6.2.1 Redis快取概述204
6.2.2 Redis數據交換205
6.2.4 Redis數據高可用207
6.2.5 Redis高可用配置209
6.2.6 Redis集群概述216
6.2.7 Redis在OpenStack中的套用218
6.3 本章小結219
第7章 集群資料庫系統221
7.1.1 MySQL概述221
7.1.2 MariaDB概述224
7.1.3 MariaDB安裝配置225
7.1.4 MariaDB高可用方案233
7.1.5 MariaDB Galera Cluster概述236
7.1.6 MariaDB Galera Cluster配置239
7.2.1 NoSQL概述249
7.2.2 MongoDB概述251
7.2.3 MongoDB安裝配置254
7.2.4 MongoDB Replica Set概述258
7.2.5 MongoDB Replica Set部署260
7.3 本章小結265
第8章 OpenStack計算服務267
8.1 OpenStack項目概述267
8.1.1 OpenStack項目概要267
8.1.2 OpenStack版本發行268
8.1.3 OpenStack組織機構272
8.1.4 OpenStack使用情況274
8.1.5 OpenStack服務項目276
8.2 Nova項目概述277
8.2.1 Nova架構設計277
8.2.2 Nova功能模組282
8.3 Nova分區與區域285
8.3.1 Nova中的Region285
8.3.2 Nova中的Cell288
8.3.3 Nova中的Availability Zone292
8.3.4 Nova中的Host Aggregate294
8.4 Nova Hypervisor配置概述297
8.4.1 虛擬化與Hypervisor概述297
8.4.2 Nova Hypervisor歸類支持303
8.4.3 Nova Hypervisor選取配置308
8.5 Nova主機策略317
8.5.1 Nova scheduler主機過濾317
8.5.2 Nova scheduler主機加權324
8.5.3 Nova scheduler配置選項329
8.6 Nova實例創建333
8.6.1 Nova實例創建流程333
8.6.2 Nova實例狀態變更341
8.6.3 Nova實例創建方法347
8.7 Nova實例遷移354
8.7.1 Nova實例resize/migrate遷移354
8.7.2 Nova實例live-migration遷移365
8.8 Nova實例高可用376
8.8.1 Nova實例高可用概述376
8.8.2 Nova實例高可用之Evacuate/Rebuild378
8.8.3 Nova實例高可用之Pace-maker_remote382
8.9 本章小結387
9.1Neutron網路概述388
9.2Neutron網路架構394
9.2.1 Neutron網路架構概述394
9.2.2 Neutron Plugin與Agent396
9.2.3 Neutron L3 Service分析402
9.3 Neutron網路類型408
9.3.1 Provider網路408
9.3.2 Self-Service網路411
9.4 Provider網路部署與分析415
9.4.1 Provider網路基於OpenvSwitch實現415
9.4.2 Provider網路基於LinuxBridge實現424
9.4.3 Provider網路創建與驗證429
9.5 Self-Service網路部署與高可用433
9.5.1 Self-Service網路實現433
9.5.2 Self-Service網路高可用450
9.6 L3 HA高可用方案452
9.6.1 L3 HA高可用部署實現452
9.6.2 L3 HA高可用驗證與分析459
9.7 DVR高可用方案470
9.7.1 DVR高可用部署實現470
9.7.2 DVR高可用驗證與分析477
9.7.3 DVR與L3 HA對比492
9.8 DVR/L3 HA高可用方案493
9.8.1 DVR/L3 HA高可用部署實現493
9.8.2 DVR/L3HA高可用驗證與分析499
9.9 本章小結511
第10章 OpenStack存儲服務512
10.1OpenStack存儲概述513
10.1.1 OpenStack存儲分類對比513
10.1.2 OpenStack存儲後端選擇515
10.2Cinder塊存儲519
10.2.1 Cinder塊存儲架構519
10.2.2 Cinder塊存儲使用520
10.2.3 Cinder塊存儲外掛程式524
10.2.4 Cinder LVM外掛程式實現529
10.2.5 Cinder NFS外掛程式實現534
10.2.6 Cinder Multi-Backends實現540
10.3 Ceph存儲系統545
10.3.1 Ceph背景概述545
10.3.2 Ceph架構設計547
10.3.3 Ceph工作原理553
10.3.4 Ceph部署實現559
10.4Ceph集成OpenStack564
10.4.1 Ceph集成OpenStack概述564
10.4.2 Ceph集成OpenStack準備566
10.4.3 Ceph集成Glance569
10.4.4 Ceph集成Cinder571
10.4.5 Ceph集成Nova574
10.4.6 Ceph集成OpenStack驗證578
10.5本章小結581
部署篇
第11章 OpenStack高可用集群基礎服務部署584
11.1OpenStack集群高可用離線部署584
11.1.1 製作OpenStack離線安裝pip源585
11.1.2 製作OpenStack離線安裝yum源592
11.2OpenStack集群高可用部署架構設計599
11.2.1 OpenStack高可用部署實驗環境架構599
11.2.2 OpenStack高可用部署生產環境架構603
11.2.3 OpenStack高可用部署軟體拓撲架構608
11.3OpenStack集群高可用部署實驗環境準備610
11.3.1 控制節點VMware宿主機準備611
11.3.2 控制節點KVM虛擬機準備617
11.3.3 計算節點VMware虛擬機準備624
11.4OpenStack高可用集群基礎服務部署625
11.4.1 Pacemaker集群管理軟體部署625
11.4.2 HAProxy負載均衡器高可用部署628
11.4.3 MariaDB關係資料庫高可用部署633
11.4.4 Memcache快取系統高可用部署639
11.4.5 RabbitMQ訊息佇列高可用部署640
11.4.6 MongoDB非關係資料庫高可用部署643
11.5本章小結646
第12章 OpenStack高可用集群核心服務部署647
12.1 OpenStack控制節點服務高可用部署647
12.1.1 Keystone認證服務高可用部署648
12.1.2 Glance鏡像服務高可用部署655
12.1.3 Cinder塊存儲服務高可用部署660
12.1.4 Neutron網路服務高可用部署665
12.1.5 Nova API服務高可用部署676
12.1.6 Ceilometer數據採集服務高可用部署682
12.1.7 Heat編排服務高可用部署687
12.1.8 Horizon控制臺服務高可用部署691
12.2 OpenStack計算節點服務高可用部署694
12.2.1 OpenStack計算節點高可用實現概述694
12.2.2 OpenStack計算節點高可用方案分析695
12.2.3 OpenStack計算節點Pace-maker高可用集群分析696
12.2.4 OpenStack計算節點Pace-maker高可用集群實現697
12.3 OpenStack集群服務高可用驗證707
12.3.1 OpenStack高可用集群功能性驗證707
12.3.2 OpenStack高可用集群高可用驗證722
12.4 本章小結731
運維篇
第13章 OpenStack高可用集群運維最佳實踐734
13.1 Pacemaker OCF資源代理故障診斷分析735
13.1.1 Pacemaker集群OCF資源代理使用介紹735
13.1.2 Pacemaker集群OCF資源代理定義語法737
13.1.3 Pacemaker集群OCF資源代理調試診斷744
13.2 Pacemaker集群調試與管理維護749
13.2.1 Pacemaker集群日誌系統設定749
13.2.2 Pacemaker集群日誌構成分析751
13.2.3 Pacemaker集群日誌調試分析755
13.2.4 Pacemaker集群GUI管理界面758
13.3 OpenStack實例高可用原理分析與問題診斷765
13.3.1 OpenStack高可用集群計算節點資源配置765
13.3.2 OpenStack高可用集群Fence_compute分析766
13.3.3 OpenStack高可用集群NovaEvacuate分析771
13.3.4 計算節點高可用實現原理與問題診斷分析774
13.4 OpenStack Neutron網路理解與故障問題診斷781
13.4.1 OpenStack Neutron網路概念基礎781
13.4.2 OpenStack Neutron網路深入理解784
13.4.3 OpenStack Neutron網路故障分析803
13.5 OpenStack日常管理與運維811
13.5.1 OpenStack日誌設定管理與使用811
13.5.2 OpenStack故障實例數據檢查恢復813
13.5.3 OpenStack故障計算節點實例恢復816
13.5.4 OpenStack實例間浮動
IP位址管理818
13.5.5 OpenStack服務運行緩慢解決方案819
13.5.6 OpenStack配置檔案及資料庫備份821
13.6 本章小結824
第14章 Ceph存儲集群運維最佳實踐825
14.1 Ceph規劃配置與性能調優825
14.1.1 Ceph硬體配置推薦825
14.1.2 Ceph配置檔案設定829
14.1.3 Ceph CRUSH自定義843
14.1.4 Ceph SSD套用場景854
14.1.5 Ceph性能調優關鍵862
14.2 Ceph運維與常見故障處理867
14.2.1 Ceph OSD與PG狀態867
14.2.2 Ceph OSD節點增刪871
14.2.3 Ceph MON節點增刪875
14.2.4 Ceph Journal故障維護877
14.2.5 Ceph OSD故障硬碟更換880
14.2.6 Ceph存儲節點停機維護881
14.2.7 Ceph容量耗盡解決方案883
14.2.8 Ceph常用命令使用參考886
14.3 本章小結891
擴展篇
15.1 OpenStack與Docker894
15.1.1 容器與虛擬機的現狀894
15.1.2 OpenStack融合Docker897
15.2 Kolla項目介紹900
15.2.1 Kolla項目使命900
15.2.2 Kolla及其現狀905
15.2.3 Kolla內部組件907
15.3 Kolla容器化部署OpenStack915
15.3.1 系統部署環境準備915
15.3.2 製作Docker鏡像917
15.3.3 部署Docker容器919
15.3.4 OpenStack功能驗證920
15.4 本章小結924
作者簡介
山金孝(Warrior)
國內較早接觸OpenStack的一線技術專家,長期致力於OpenStack的研究、實踐和生產環境部署,是OpenStack社區的積極參與者和實踐者。作為由傳統IT架構轉型為雲計算領域的技術專家,參與並設計實施了移動、電信、聯通、招行、國家電網和長安汽車等多家大中型國有企業的高可用業務系統,在系統容災和高可用集群建設上具有多年的項目實施經驗。
曾就職於IBM ,現就職於招商銀行,主持設計並實施了招行重慶分行的OpenStack高可用生產系統集群,目前是
招商銀行重慶分行核心業務系統和雲計算基礎架構平台的主要負責人。
此外,他還是IBM認證的高級技術專家和DB2方向的高級DBA,同時也是
RedHat認證的Linux系統工程師。