內容簡介
本書分兩部分,全麵介紹如何構建基於參考架構的OpenStack雲係統和執行日常管理任務。一部分全麵介紹如何充分發揮OpenStack強大的靈活性,通過各種正確決策打造很好配置,主要內容涉及架構示例、自動部署與配置、雲控製器設計與雲係統管理、計算節點、擴展與隔離、存儲決策和網絡設計。第二部分講解OpenStack雲係統的日常操作,主要內容包括OpenStack控製麵闆、項目和用戶管理、麵嚮用戶的運維、故障與調試、網絡排障、日誌功能與監控、備份與恢復、定製化、通過OpenStack社區獲得支持、高級配置以及如何升級。
作者簡介
Tom Fifield
OpenStack社區經理、墨爾本大學物理學院榮譽院士,曾任澳洲研究計劃的雲端架構顧問與雲端團隊領導人。他是OpenStack程序代碼貢獻度排名中名列前茅的開發者,在OpenStack的整體發展中具有舉足輕重的作用。
Diane Fleming
思科高級技術作傢(項目經理),具有20餘年技術寫作經驗,曾從事一綫編程工作多年。
Anne Gentle
首席工程師、OpenStack技術委員會成員、OpenStack文檔編製技術主管、服務型領導。她負責文檔開發,並與開發人員緊密閤作來確保文檔能夠滿足他們的具體需求。
Lorin Hochstein
Netflix高級軟件工程師、OpenStack文檔團隊成員,曾任Nimbis Services公司雲服務首席架構師。他不僅負責雲服務部署、運維,而且編寫雲上運行的軟件。
Jonathan Proulx
麻省理工學院高級技術架構師、OpenStack雲的踐行者、OpenStack文檔貢獻者和審校者,同時學習和分享OpenStack技術。
Everett Toews
全球領先的托管服務器及雲計算提供商Rackspace公司開發大使、Apache軟件基金會、開源Java類庫jclouds的提交者和項目管理委員會成員。他亦是專業的軟件開發人員、軟件架構師,具有團隊領導經驗。
Joe Topjian
Cybera公司係統管理員、係統架構師,負責設計、部署、運維公有雲和私有雲。他曾創辦Terrarum IT Services公司,為客戶提供各種遠程係統管理服務。
內頁插圖
目錄
前言 XIII
第一部分 架構
第1 章 架構示例 3
11 架構示例:傳統網絡模型(nova) 3
111 概述 4
112 詳細描述 6
113 可選的擴展 8
12 示例架構——OpenStack 網絡服務 8
121 概述 8
122 詳細描述 10
123 組件配置示例 16
13 關於架構的最後幾句話 19
第2 章 準備及部署 20
21 自動化部署 20
211 磁盤分區及RAID 21
212 網絡配置 23
22 自動化配置 23
23 遠程管理 23
24 關於準備和部署OpenStack 的最後幾句話 24
25 總結 24
第3 章 雲控製器設計和雲係統管理 25
31 硬件注意事項 26
32 服務的分隔 27
33 數據庫 28
34 消息隊列 28
35 嚮導服務 28
36 應用程序接口(API) 29
37 擴展 29
38 調度 29
39 鏡像 30
310 控製麵闆 30
311 認證及授權 31
312 網絡相關注意事項 31
第4 章 計算節點 32
41 選擇CPU 32
42 選擇超級管理程序 33
43 實例存儲解決方案 33
431 非計算節點存儲——共享文件係統 34
432 計算節點存儲——共享文件係統 35
433 計算節點存儲——非共享文件係統 35
434 動態遷移的問題 35
435 文件係統的選擇 36
44 過量分配 36
45 日誌記錄 37
46 網絡連接 37
47 總結 37
第5 章 擴展 38
51 起點 38
52 添加雲控製器節點 40
53 隔離雲係統 40
531 nova 單元和區域 41
532 可用域和主機集閤 41
54 可擴展的硬件 43
541 硬件采購 43
542 容量規劃 44
543 老化測試 44
第6 章 存儲決策 45
61 臨時性存儲 45
62 持久性存儲 45
621 對象存儲 45
622 塊存儲 47
63 OpenStack 存儲概念 47
64 選擇存儲後端 48
65 結論 51
第7 章 網絡設計 52
71 管理網絡 52
72 公共地址選項 53
73 IP 地址規劃 53
74 網絡拓撲 54
741 OpenStack 虛擬機內部的VLAN 配置 55
742 多網卡分配 56
743 多主機和單主機網絡 56
75 網絡服務 56
751 NTP 56
752 DNS 56
76 總結 57
第二部分 運維
第8 章 瞭解全局 61
81 使用OpenStack 控製麵闆進行管理 61
82 命令行工具 61
821 安裝工具軟件 62
822 管理的命令行工具 62
823 獲得憑據 63
824 檢查API 調用 64
825 服務器和服務 66
826 計算節點診斷 67
83 網絡檢查 68
84 用戶和項目 69
85 正在運行的實例 70
86 總結 71
第9 章 管理項目和用戶 72
91 項目還是租戶 72
92 管理項目 73
93 配額 74
931 設置鏡像配額 74
932 設置計算服務配額 75
933 設置對象存儲配額 77
934 設置塊存儲配額 79
94 用戶管理 80
95 創建新用戶 80
96 將用戶與項目關聯 81
961 授權定製化 83
962 用戶間的乾擾 84
97 總結 85
第10 章 麵嚮用戶的運維 86
101 鏡像 86
1011 添加鏡像 86
1012 在項目間共享鏡像 87
1013 刪除鏡像 87
1014 其他命令行界麵選項 88
1015 鏡像服務和數據庫 88
1016 鏡像服務數據庫查詢示例 88
102 flavor 88
1021 私有flavor 89
1022 如何修改現存的flavor 90
103 安全組 90
1031 通用的安全組配置 90
1032 終端用戶的安全組配置 91
104 塊存儲 93
105 實例 94
1051 啓動實例 94
1052 實例啓動失敗 95
1053 使用實例特有的數據 96
106 關聯安全組 98
107 浮動IP 98
108 添加塊存儲 99
109 製作快照 100
1010 數據庫中的實例 102
1011 祝你好運! 103
第11 章 維護、故障和調試 104
111 雲控製器和存儲代理的故障及維護 104
1111 計劃中的維護 104
1112 重啓雲控製器或存儲代理 104
1113 重啓雲控製器或存儲代理之後 105
1114 雲控製器徹底故障 105
112 計算節點的故障和維護 106
1121 計劃中的維護 106
1122 計算節點重啓之後 106
1123 虛擬機實例 107
1124 檢測並從故障實例中恢復數據 107
1125 捲 110
1126 計算節點徹底故障 110
1127 /var/lib/nova/instances 111
113 存儲節點故障和維護 112
1131 重啓存儲節點112
1132 關閉存儲節點 112
1133 更換一塊Swift 磁盤 112
114 處理徹底故障 113
115 配置管理 114
116 使用硬件 114
1161 添加計算節點 114
1162 添加對象存儲節點 115
1163 替換組件 115
117 數據庫 115
1171 數據庫連接 115
1172 性能與優化 116
118 HDWMY 116
1181 每小時 116
1182 每天 116
1183 每星期 116
1184 每個月 117
1185 每季度 117
1186 每半年 117
119 確定哪個組件已被破壞 117
1191 跟蹤日誌 117
1192 CLI 上運行的守護進程 118
1110 卸載 119
第12 章 網絡排障 120
121 使用“ip a”檢查網絡接口狀態 120
122 雲中的nova-network 流量虛擬化 121
123 雲中的OpenStack 網絡服務流量虛擬化 122
124 找齣網絡路徑中的故障 128
1241 tcpdump 128
1242 iptables 129
125 nova-network 在數據庫中的網絡配置 130
126 用nova-network 排查DHCP 故障 131
127 DNS 故障排查 134
128 Open vSwitch 故障排查 135
129 處理網絡命名空間 136
1210 總結 137
第13 章 日誌和監控 138
131 日誌在哪裏 138
132 閱讀日誌 139
133 跟蹤實例的請求 140
134 添加自定義日誌語句 141
135 RabbitMQ Web 管理界麵或rabbitmqctl 141
1
前言/序言
現代雲計算基礎設施的基石:精通核心概念與實踐 在當今快速發展的數字時代,企業對可擴展、可靠且高效的計算資源的需求日益增長。雲計算技術正是滿足這一需求的強大引擎,而開源雲計算平颱則因其靈活性、成本效益和強大的社區支持而備受青睞。本書旨在為讀者提供一個深入理解現代雲計算基礎設施核心概念和關鍵實踐的全麵指南,幫助您構建、部署和管理高性能的雲環境。 第一部分:雲計算的宏觀圖景與演進 在深入具體技術細節之前,理解雲計算的起源、發展和核心理念至關重要。本部分將為您勾勒齣雲計算的宏觀圖景,探討其如何從傳統的本地數據中心演進而來,以及它為何能成為當前 IT 架構的基石。 從虛擬化到雲計算的飛躍: 我們將追溯虛擬化技術的發展曆程,解析它是如何為雲計算奠定基礎的。理解虛擬機、容器等虛擬化技術的工作原理,以及它們在資源抽象和隔離方麵的作用。 雲計算的五大特徵與三大服務模式: NIST(美國國傢標準與技術研究院)對雲計算的定義是理解其本質的關鍵。我們將詳細闡述雲計算的五大核心特徵:按需自助服務、廣泛的網絡訪問、資源池化、快速彈性伸縮和可計量的服務。同時,我們將深入解析三種主要的雲計算服務模式:IaaS(基礎設施即服務)、PaaS(平颱即服務)和 SaaS(軟件即服務),並分析它們各自的優勢、適用場景以及與傳統 IT 模式的差異。 公有雲、私有雲與混閤雲的權衡: 部署策略是企業雲計算轉型中繞不開的話題。本部分將詳細對比公有雲、私有雲和混閤雲的特點、優劣勢,並探討如何根據企業的業務需求、安全閤規要求以及成本預算,做齣最適閤的部署選擇。我們將分析不同模式下的管理復雜性、數據安全和遷移策略。 雲計算的驅動因素與行業趨勢: 瞭解雲計算的普及背後所驅動的商業和技術因素,例如敏捷開發、DevOps 實踐、大數據分析、人工智能等。我們將探討當前雲計算領域的重要趨勢,如邊緣計算、 serverless 計算、容器編排的演進以及多雲策略的興起,幫助您洞察未來發展方嚮。 第二部分:深入剖析核心雲計算技術棧 一旦建立瞭對雲計算宏觀概念的理解,我們便進入其核心技術棧的深度探索。本部分將聚焦於構成現代雲計算平颱運轉的幾個關鍵組成部分,並解析它們的功能和相互作用。 計算服務:虛擬化與容器化技術的實踐: 計算是雲計算的核心。我們將深入探討主流的虛擬化技術(如 KVM、Xen)的工作原理、資源分配機製和性能優化技巧。在此基礎上,我們將詳細介紹容器化技術(以 Docker 為例)的優勢,包括輕量級、快速啓動、環境一緻性等,並講解如何構建和管理容器鏡像。 存儲服務:從塊存儲到對象存儲的演進: 數據是雲端的寶藏,高效可靠的存儲是保障數據安全和訪問效率的關鍵。本部分將詳細介紹雲環境中的各種存儲類型,包括: 塊存儲 (Block Storage): 模擬傳統硬盤的存儲方式,適用於虛擬機和數據庫等需要高性能 I/O 的場景。我們將探討其實現原理、性能指標和常見的配置選項。 文件存儲 (File Storage): 提供共享文件係統訪問,方便多颱設備協同工作。我們將講解其協議(如 NFS、SMB)和在雲環境中的應用。 對象存儲 (Object Storage): 適用於存儲非結構化數據,如圖片、視頻、備份文件等,具有高可擴展性和持久性。我們將深入解析其存儲模型、API 接口和數據冗餘機製。 網絡服務:構建彈性、可控的雲網絡: 雲網絡是連接雲中各種資源的橋梁,其設計和管理直接影響著服務的可用性和性能。本部分將重點關注: 虛擬私有雲 (VPC/VNet): 理解如何在一個大型公有雲環境中創建隔離的、私有的網絡空間,並對其進行細粒度的控製,包括 IP 地址分配、子網劃分、路由錶配置等。 負載均衡 (Load Balancing): 講解如何通過負載均衡器將流量分發到多個後端實例,提高應用的可訪問性和容錯能力。我們將對比不同類型的負載均衡器(如 L4、L7)及其適用場景。 安全組與網絡訪問控製列錶 (Security Groups & NACLs): 深入理解如何利用這些安全機製來控製進齣實例的流量,實現精細化的網絡安全防護。 DNS 解析: 探討雲環境中 DNS 服務的作用,以及如何配置和管理域名解析。 身份與訪問管理 (IAM): 安全是雲計算的重中之重。IAM 是保障雲資源安全的核心。本部分將詳述如何通過 IAM 來定義用戶、組、角色和策略,實現對雲資源的精細化訪問控製,確保隻有授權用戶纔能訪問和操作特定的資源。我們將講解最小權限原則以及最佳實踐。 數據庫服務:關係型與 NoSQL 的選擇: 數據庫是應用程序的核心組成部分。本部分將介紹雲環境中常見的數據庫服務,包括: 關係型數據庫: 如 MySQL、PostgreSQL、SQL Server 的雲托管版本,以及它們在可擴展性、可用性和性能方麵的優勢。 NoSQL 數據庫: 如鍵值對存儲、文檔存儲、列族存儲和圖數據庫,以及它們在應對大數據、高吞吐量和靈活數據模型方麵的獨特價值。 第三部分:構建高可用、可擴展的雲應用架構 掌握瞭核心技術棧之後,本部分將引導您將這些技術融會貫通,構建齣真正符閤雲原生理念的高可用、可擴展的應用程序架構。 微服務架構的理念與實踐: 探討微服務架構如何將大型單體應用拆解成獨立、可獨立部署的服務單元,從而提高開發效率、技術靈活性和係統彈性。我們將討論服務拆分策略、服務間通信機製(如 RESTful API、消息隊列)和 API 網關的作用。 容器編排:Kubernetes 的核心概念與應用: Kubernetes 已成為容器編排的事實標準。本部分將深入剖析 Kubernetes 的核心概念,包括 Pods、Deployments、Services、StatefulSets、Namespaces 等,並講解如何使用 Kubernetes 來自動化部署、擴展和管理容器化應用程序。我們將覆蓋部署策略、滾動更新、迴滾操作以及服務發現。 DevOps 與 CI/CD 的融閤: DevOps 文化和 CI/CD(持續集成/持續交付)流水綫是實現敏捷開發和快速迭代的關鍵。本部分將探討如何將開發和運維緊密結閤,通過自動化工具鏈實現代碼的持續集成、自動化測試、自動化部署和監控,從而顯著縮短産品上市時間並提高交付質量。 監控、日誌與告警:保障係統穩定運行: 任何生産環境都需要完善的監控體係。本部分將介紹如何利用各種工具(如 Prometheus, Grafana, ELK Stack)來收集、分析和可視化係統的運行指標和日誌,並配置有效的告警機製,以便及時發現和處理潛在問題,確保服務的穩定性和可用性。 災難恢復與業務連續性: 雲環境下的災難恢復與業務連續性設計至關重要。我們將探討不同的容災策略,如多區域部署、數據備份與恢復、故障轉移機製等,幫助您構建能夠抵禦各種意外情況的彈性係統。 第四部分:雲安全與閤規性考量 安全性與閤規性是任何雲計算部署的基石。本部分將著重討論在雲環境中保障數據安全、訪問控製以及滿足閤規性要求的重要性。 雲安全模型與責任共擔: 理解雲計算服務商和用戶之間的安全責任劃分,明確各自的職責範圍。 數據加密與保護: 探討在數據傳輸和存儲過程中采用加密技術的重要性,以及如何選擇閤適的加密算法和密鑰管理方案。 訪問控製與身份認證: 再次強調 IAM 的重要性,並深入討論多因素認證(MFA)、單點登錄(SSO)等高級身份認證機製。 閤規性要求與行業標準: 介紹適用於不同行業和地區的常見閤規性標準(如 GDPR、HIPAA、PCI DSS),以及如何在雲環境中滿足這些要求。 安全審計與漏洞管理: 講解如何進行安全審計,識彆和修復潛在的安全漏洞,構建縱深防禦體係。 第五部分:雲成本管理與優化 雖然雲計算提供瞭巨大的靈活性和可擴展性,但有效的成本管理仍然是實現經濟效益的關鍵。本部分將為您提供實用的雲成本管理和優化策略。 理解雲服務計費模式: 深入瞭解不同雲服務(計算、存儲、網絡、數據庫等)的計費方式,包括按需付費、預留實例、競價實例等,並分析其優劣勢。 成本監控與分析工具: 介紹雲平颱提供的成本管理工具,如何利用它們來追蹤、分析和理解雲資源的消費情況。 資源優化技巧: 提供實用的資源優化建議,例如調整實例規格、利用彈性伸縮、清理無用資源、優化存儲策略等,從而有效降低雲支齣。 自動化成本管理: 探討如何通過自動化工具和腳本來實現成本的持續監控和優化。 本書的編寫旨在提供一個全麵、深入且實用的雲計算基礎設施構建與管理指南。通過循序漸進地解析核心概念、關鍵技術和最佳實踐,我們希望幫助讀者構建堅實的雲技術基礎,自信地駕馭現代雲計算的挑戰與機遇,為您的業務創新和數字化轉型注入強大的動力。