編輯推薦
OpenStack中國社區核心技術交流群管理員之作
企業評估OpenStack雲平颱能力的參考書
雲計算、網絡、存儲以及大數據處理融為一體的實踐部署指導書
內容簡介
《OpenStack部署實踐(第2版)》基於OpenStack Kilo版講述瞭部署相關的內容,是作者多年實踐經驗的總結。書中不僅對上一版進行瞭全麵修訂,還增加瞭桌麵虛擬化、Neutron與SDN、分布式存儲、Swift對象存儲、Hadoop彈性集群、Heat與Ceilometer組件、Docker、VMware與OpenStack鏡像互轉等新內容。
作者簡介
張子凡,OpenStack中國社區核心技術交流群的管理員之一,誌力於推動OpenStack在中國企業的應用,幫助企業降低IT成本,提高經濟收益。
1989年畢業於吉林大學計算機係,從modem、3+、Novell、x.25、DDN、FrameRelay、ATM等開始網絡技術學習,從SCO Unix、dBase、FoxBase、Oracle、Informix等開始學習主機與數據庫技術。
1999年,加入朗訊科技公司。至2011年,一直在外企工作。雖然期間也從事瞭銷售與渠道管理工作,但由於對技術的熱愛以及前期在網絡方麵的知識儲備,從未中斷學習技術。
2012年,開始從事OpenStack雲計算係統的技術、實驗以及7×24運行的生産類係統的部署,完成瞭大量的實驗工作。
精彩書評
“如果你在做雲計算,不知道OpenStack都不好意思跟人打招呼。本書係統而又全麵地介紹瞭與OpenStack部署和應用相關的各個方麵,體現瞭OpenStack的新進展,並且包括一些比較新的項目介紹及應用實踐,例如Magnum和Sahara等,是一本不可多得的全麵介紹OpenStack的好書。無論你是係統架構師,還是雲端開發人員、係統管理員或者運維人員,我相信都能在本書中找到你所需要的關於OpenStack的內容。”
——劉光亞,IBM CSTL雲計算架構師,OpenStack Magnum Core Member
“OpenStack社區從建立至今發展瞭5個年頭,在這5年裏,它發展日星月異,截止目前已經是公認的僅次於Linux社區的第二大社區。然而快速發展的同時,也遺留下瞭一些詬病——眾多分散的項目帶來的係統復雜性,詳細、係統的文檔匱乏,陡峭的學習麯綫等,這些都使得很多IT實施人員以及學者望而卻步,阻礙瞭OpenStack的商用發展。今天有幸閱讀瞭本書,我認為本書詳盡地介紹瞭OpenStack安裝部署,是作者多年緻力於OpenStack領域的經驗匯集而成的結晶,值得每一位讀者細細品讀。”
——李中華,華為OpenStack社區參與者
“OpenStack是雲計算開源的解決方案,作為開源雲計算領域核武器級彆的利器,對開發者來說也意味著較高的入門門檻。相對於IT實施人員來說,開發者更需要一本能夠快速帶領大傢部署復雜開發環境的好書。作為一個在開發領域摸爬滾打多年的老兵,本書的齣現解決瞭OpenStack開發入門階段安裝部署的高門檻難題。本書深入淺齣,從實際齣發,實在是踏入雲計算開發之旅的必備良書。”
——李明(Alexandra),1024創業咖啡CTO
目錄
第1章 OpenStack基本操作係統環境的PXE自動部署
1.1 PXE、Kickstart與Preseed簡介
1.2 PXE服務器的準備
1.3 復製Ubuntu和CentOS操作係統文件
1.4 PXE客戶端操作係統的選擇與引導過程
1.5 CentOS宿主機的Kickstart配置文件
1.6 OpenStack計算節點的主機Preseed配置文件
1.7 使用PXE安裝CentOS 7的腳本
1.8 常見問題與處理
1.9 小結
1.10 參考資源
第2章 OpenStack與網絡
2.1 網卡管理工具ethtool
2.2 網橋及網橋管理工具bridge-utils
2.3 虛擬局域網VLAN
2.4 主機多網卡靜態路由配置
2.5 Open vSwitch簡介與實驗
2.6 構建雲中的網絡
2.7 Linux內核的VXLAN功能實驗記錄
2.8 Linux內核VXLAN與Open vSwitch的結閤
2.9 網絡名字空間及網絡虛擬設備
2.10 小結
2.11 參考資源
第3章 OpenStack基本控製服務多點部署
3.1 部署環境說明
3.2 控製節點主機環境準備
3.3 虛擬機鏡像的準備
3.4 OpenStack基本控製服務組件的安裝與配置
3.5 OpenStack基本服務運行簡要驗證
3.6 小結
3.7 參考資源
第4章 nova-network多機部署及企業應用
4.1 nova-network多主機部署簡介
4.2 部署環境說明
4.3 nova-network FlatDHCP部署模式
4.4 創建並管理虛擬機
4.5 nova-network VLAN部署模式
4.6 nova-network元數據處理
4.7 nova-network企業應用模式調整
4.8 小結
4.9 參考資源
第5章 OpenStack桌麵虛擬化
5.1 虛擬桌麵協議介紹
5.2 免費使用的xVDI System I虛擬桌麵係統
5.3 xVDI System I虛擬桌麵係統部署
5.4 無法連接Windows虛擬機的異常處理
5.5 小結
5.6 參考資源
第6章 OpenStack Neutron網絡服務
6.1 部署環境說明
6.2 Neutron組件的構成及原理
6.3 Neutron組件的安裝
6.4 Linuxbridge VLAN/VXLAN網絡模式配置
6.5 Open vSwitch GRE部署模式及相關配置文件
6.6 Neutron網絡模式下元數據服務路徑
6.7 Neutron模式下創建網絡的相關操作
6.8 Neutron DVR
6.9 參考資源
第7章 Neutron與SDN融閤
7.1 廣義的SDN
7.2 Arista 官方SDN原理圖
7.3 實驗環境說明
7.4 配置Arista交換機
7.5 配置Neutron Server
7.6 Neutron與Arista SDN聯動測試
7.7 測試總結
7.8 參考資源
第8章 分布式存儲係統
8.1 分布式文件係統MooseFS
8.2 GlusterFS係統安裝
8.3 Ceph係統安裝
8.4 用戶管理
8.5 客戶端操作
8.6 小結
8.7 參考資源
第9章 OpenStack中央存儲及虛擬機動態遷移
9.1 NFS中央存儲模式
9.2 虛擬機動態遷移
9.3 NFS係統的不足及pNFS的發展
9.4 參考資源
第10章 Cinder捲服務
10.1 Cinder的安裝與配置及連接Netapp存儲後端
10.2 連接Gluster存儲後端
10.3 連接Ceph存儲後端
10.4 小結
10.5 參考資源
第11章 Swift存儲係統部署
11.1 Swift係統簡介及原理
11.2 Swift環境部署簡介
11.3 公共服務部署與服務注冊
11.4 account-container-server部署
11.5 object-server部署
11.6 proxy-server部署
11.7 Swift存儲中使用ring文件的創建與分發
11.8 proxy-server雙機心跳服務部署
11.9 Swift驗證與實踐
11.10 Windows下Swift客戶端的使用
11.11 Swift故障恢復
11.12 小結
11.13 參考資源
第12章 OpenStack與Docker
12.1 Docker簡介
12.2 安裝與運行Docker
12.3 Machine、Swarm、Compose及Flocker
12.4 Docker與OpenStack的融閤
12.5 nova-docker方案實踐
12.6 參考資源
第13章 Heat與彈性集群伸縮
13.1 Telemetry簡介
13.2 Telemetry安裝環境
13.3 Telemetry服務的安裝與配置
13.4 Telemetry Agent安裝
13.5 創建警告
13.6 Heat簡介
13.7 Heat部署環境信息
13.8 Heat服務的安裝與配置
13.9 創建Heat域及管理員
13.10 創建棧
13.11 參考資源
第14章 Sahara與彈性Hadoop集群
14.1 Sahara簡介
14.2 Sahara部署準備
14.3 Sahara部署環境設置
14.4 sahara-api服務的安裝與配置
14.5 安裝sahara-dashboard
14.6 預封裝虛擬機鏡像的下載與注冊
14.7 創建Hadoop集群
14.8 查看創建完成的集群
14.9 故障處理
14.10 參考資源
第15章 OpenStack與VMware虛擬機遷移
15.1 實驗環境
15.2 將VMware ESXi平颱的虛擬機遷移至OpenStack 平颱
15.3 將OpenStack 平颱的虛擬機遷移至VMware ESXi 平颱
15.4 小結
15.5 參考資源
精彩書摘
《OpenStack部署實踐(第2版)》:
第5章Open Stack桌麵虛擬化
對於許多原來使用商業虛擬化軟件的企業來說,如果能基於“開源、免費”、無知識産權風險的Open Stack來建設企業服務器與桌麵虛擬化係統,將是一件極為值得考慮的事情。
本章以信立訊科技提供的免費使用的xVDI SystemI虛擬桌麵係統部署為例來嚮讀者展示基於Open Stack平颱的虛擬桌麵係統,以便讓讀者較好地理解虛擬桌麵協議、架構以及與Open Stack係統的融閤。
5.1虛擬桌麵協議介紹
雖然使用Horizon Web界麵管理Open Stack虛擬機時,是通過VNC協議來完成的,但在真正的辦公環境中使用虛擬桌麵時,我們更願意使用RDP或SPICE協議。
RDP協議與Windows環境融閤得較好,也經過瞭近7個版本的發展,是最容易使用的一個協議。同時,由於它能夠較容易地完成本地主機與虛擬機間的USB、磁盤、聲音設備重定嚮,因此在一些不對桌麵虛擬化進行限製的部分辦公應用場景中,它是一個簡單易行的方法。
RDP另一項最重要的優勢在於它能夠在低速綫路上同時支持更多的桌麵連接,較適於基於廣域低速綫路上的桌麵虛擬化應用要求。
當然,RDP也有其不足之處,主要是以下幾點。
RDP虛擬機桌麵處理的壓力均在後端服務器,前端的PC或瘦終端設備的CPU處理能力基本上得不到充分利用。
前端需要直接通過RDP協議連接虛擬機本身的IP地址及3389端口,但不論是公網還是私網環境,虛擬機的業務IP地址是無法隱藏的,因此安全性方麵的防護就是一個需要進一步考慮的問題。
……
前言/序言
雲端基石:現代數據中心自動化部署與運維的深度探索 本書並非探討某一特定雲平颱的技術細節,而是著眼於支撐現代企業數字化轉型的核心基石——自動化數據中心部署與運維。在信息爆炸、業務迭代加速的今天,如何快速、穩定、經濟地搭建和管理海量計算、存儲、網絡資源,以應對瞬息萬變的業務需求,已成為每一個技術團隊麵臨的嚴峻挑戰。本書將帶領讀者穿越紛繁復雜的雲技術浪潮,深入理解自動化部署與運維的底層邏輯、關鍵技術和最佳實踐,為構建高效、可靠、可擴展的雲基礎設施提供堅實的理論指導和實操藉鑒。 第一部分:理論基石——理解自動化數據中心的核心驅動 在深入實踐之前,我們首先需要建立對自動化數據中心建設的宏觀認知。本部分將從以下幾個層麵,為您剖析其內在驅動力與核心理念。 第一章:為何自動化?——數字化時代的必然選擇 業務敏捷性與快速響應: 傳統數據中心的手動部署與配置,耗時耗力,難以滿足敏捷開發、快速迭代的業務需求。自動化部署能夠極大地縮短新業務上綫周期,提升企業市場競爭力。 成本效益與資源優化: 人工操作的低效率、易齣錯性,以及資源的碎片化利用,都會導緻高昂的運營成本。自動化能夠實現資源的精細化管理、按需分配,並有效降低人為錯誤帶來的損失,從而實現顯著的成本節約。 穩定性與可靠性保障: 手動配置過程中,細微的失誤都可能引發嚴重的係統故障。通過標準化的自動化流程,可以最大程度地減少人為因素導緻的錯誤,提升係統的穩定性和可靠性,降低宕機風險。 規模化與彈性伸縮: 隨著業務量的增長,手動管理成百上韆甚至上萬颱服務器將變得不可思議。自動化是實現數據中心規模化擴展和按需彈性伸縮的唯一可行途徑,確保業務在高峰期也能穩定運行。 技術演進與生態係統: 現代IT架構日益復雜,微服務、容器化、DevOps等理念的普及,都離不開強大的自動化支撐。本書將引導您理解自動化技術如何與這些前沿技術協同工作,構建現代化的IT生態。 第二章:自動化部署的哲學——從“一次性”到“持續性”的轉變 基礎設施即代碼 (Infrastructure as Code, IaC): 這是自動化部署的核心理念。我們將深入探討IaC的定義、原則和重要性,理解如何將基礎設施的配置、管理和部署過程,轉化為可版本控製、可重復執行的代碼。 聲明式與命令式配置: 區分這兩種主要的IaC配置方式,理解它們各自的優缺點,以及在不同場景下的適用性。例如,Kubernetes等聲明式係統如何簡化復雜應用的部署和管理。 冪等性 (Idempotence): 什麼是冪等性?為什麼它對於自動化部署至關重要?本書將詳細闡述冪等性的概念,以及如何在自動化工具和腳本中實現冪等性,以避免重復執行帶來的意外後果。 可重復性與一緻性: 自動化部署的終極目標是實現“一次編寫,處處運行”,保證不同環境(開發、測試、生産)之間配置的一緻性,消除“在我機器上能跑”的經典難題。 自動化運維的閉環: 部署隻是自動化流程的開始。我們將探討如何將監控、日誌、告警、故障恢復等運維環節也納入自動化範疇,形成一個完整的自動化閉環,實現“無人值守”的高效運維。 第二部分:技術實踐——精選工具與核心流程深度解析 本部分將聚焦於當前業界廣泛采用的自動化部署與運維核心技術,通過深入剖析工具的原理、功能以及實際應用場景,幫助讀者掌握構建自動化數據中心的具體方法。 第三章:配置管理利器——Ansible, Chef, Puppet的比較與應用 Ansible: 強大的agentless(無代理)配置管理工具。我們將詳細介紹Ansible的架構、模塊化設計、Playbook編寫指南,以及如何利用其實現服務器配置、應用部署、服務編排等任務。重點分析其 YAML 語言的簡潔性和易用性。 Chef: 以Ruby DSL(領域特定語言)為基礎的配置管理工具。探討Chef的Recipe、Cookbook、Resource等核心概念,以及其Chef Server、Chef Client的運作模式。分析Chef在大型、復雜環境中的優勢。 Puppet: 另一種經典的聲明式配置管理工具。深入講解Puppet的Manifest、Resource、Module等概念,以及Puppet Master/Agent的架構。分析Puppet在標準化、閤規性要求高的場景下的應用。 工具選型與場景分析: 綜閤比較Ansible、Chef、Puppet的優劣,提供基於不同項目需求、團隊技術棧、部署規模等因素的選型建議。 第四章:容器化時代——Docker與Kubernetes的自動化部署 Docker: 容器化技術的基石。從Docker鏡像、容器、Dockerfile的構建,到Docker Compose的編排,全麵解析Docker在應用打包、隔離、分發方麵的革命性作用。 Kubernetes: 容器編排的黃金標準。我們將深入Kubernetes的核心組件(etcd, API Server, Controller Manager, Scheduler, Kubelet, Kube-proxy),以及核心對象(Pod, Service, Deployment, StatefulSet, DaemonSet, Namespace, ConfigMap, Secret)。 Kubernetes自動化部署: 如何利用Kubernetes Declarations (YAML文件) 實現應用的自動化部署、滾動更新、迴滾、自動擴縮容。探討Kubernetes Operator模式在復雜應用生命周期管理中的應用。 Helm: Kubernetes的包管理器。介紹Helm Chart的概念,以及如何使用Helm簡化Kubernetes應用的部署和管理。 第五章:持續集成與持續交付 (CI/CD) 的自動化流水綫 CI/CD 理念與流程: 講解持續集成、持續交付、持續部署的核心概念,以及它們如何通過自動化流水綫實現代碼提交到生産環境的無縫銜接。 Jenkins: 業界領先的開源自動化服務器。從Jenkins安裝、配置、插件生態,到Pipeline(流水綫)的編寫(Declarative Pipeline, Scripted Pipeline),以及與Git、Maven、Docker、Kubernetes等工具的集成,實現端到端的CI/CD流程。 GitLab CI/CD & GitHub Actions: 介紹基於代碼托管平颱的內置CI/CD解決方案,分析其與Jenkins的異同,以及在現代開發流程中的便捷性。 自動化測試在CI/CD中的作用: 強調自動化單元測試、集成測試、端到端測試在CI/CD流水綫中的重要性,以及如何將其集成到流水綫中,確保代碼質量。 第六章:自動化基礎設施構建——Terraform與其他IaC工具 Terraform: 跨雲平颱的聲明式基礎設施自動化工具。深入講解Terraform的Provider、Resource、Module、State文件等概念,以及如何通過Terraform代碼管理雲服務(如虛擬機、數據庫、網絡)的創建、更新和銷毀。 Terraform 的工作流程: `init`, `plan`, `apply`, `destroy` 等命令的實際應用。 模塊化與可復用性: 如何設計和使用Terraform模塊,實現基礎設施的模塊化構建和高度復用。 其他IaC工具簡介: 簡要介紹CloudFormation (AWS)、Azure Resource Manager (ARM) Templates 等雲廠商的原生IaC工具,以及它們與Terraform的比較。 第三部分:運維實踐——構建彈性、可靠、可觀測的雲係統 自動化不僅關乎部署,更體現在日常運維的方方麵麵。本部分將深入探討自動化運維的關鍵環節,以及如何利用技術手段提升係統的彈性、可靠性和可觀測性。 第七章:自動化監控與告警——洞察係統健康狀態 監控體係設計: 構建完善的監控體係,涵蓋主機、網絡、應用、日誌等多個層麵。 Prometheus & Grafana: 強大的開源監控與可視化係統。詳細介紹Prometheus的數據模型、PromQL查詢語言、Alertmanager告警機製,以及Grafana如何構建美觀、直觀的監控儀錶盤。 日誌管理與分析: ELK Stack (Elasticsearch, Logstash, Kibana) 或 Loki 等日誌聚閤與分析工具的應用,實現海量日誌的集中存儲、查詢與分析,快速定位問題。 自動化告警策略與響應: 如何設置有效的告警規則,避免告警風暴,並自動化告警的通知與初步處理流程。 第八章:自動化故障排除與自愈能力 故障檢測與根源分析: 利用監控和日誌數據,實現故障的快速檢測和自動化根源分析。 自動化腳本與工具: 開發和應用自動化腳本,對常見故障進行自動修復,例如重啓服務、清理緩存、迴滾配置等。 故障演練與混沌工程: 引入故障演練的概念,通過模擬故障場景,主動發現係統的薄弱環節,並利用自動化手段進行改進。 高可用性 (HA) 與災難恢復 (DR) 的自動化: 探討如何在自動化部署的基礎上,實現服務的高可用性部署和災難恢復能力的自動化。 第九章:自動化安全運維與閤規性管理 安全基綫與配置審計: 利用自動化工具對服務器和應用進行安全基綫檢查,自動發現和修復不閤規配置。 自動化漏洞掃描與補丁管理: 集成自動化漏洞掃描工具,定期掃描係統漏洞,並自動化補丁的應用。 訪問控製與權限管理自動化: 通過自動化流程管理用戶和服務的訪問權限,確保最小權限原則。 閤規性審計與報告自動化: 如何利用自動化工具收集係統日誌和配置信息,生成符閤閤規性要求的審計報告。 第十章:走嚮卓越——高級自動化主題與未來展望 服務網格 (Service Mesh) 與自動化: Istio, Linkerd等服務網格如何通過自動化管理微服務間的通信、安全和可觀測性。 Serverless 架構的自動化部署與管理: AWS Lambda, Azure Functions等Serverless服務在自動化部署、擴展和運維方麵的特點。 AIOps: 人工智能在運維領域的應用,如何利用機器學習和大數據提升運維效率和預測能力。 DevSecOps: 將安全左移,實現開發、安全、運維的深度融閤,構建更加安全的自動化流程。 未來趨勢: 展望自動化數據中心的發展方嚮,以及新的技術和理念將如何重塑IT基礎設施的管理。 通過本書的係統性講解,讀者將能夠深刻理解自動化部署與運維的價值,掌握業界主流的工具和技術,並能夠將其應用於實際工作中,從而構建更強大、更靈活、更可靠的雲基礎設施,為企業的數字化轉型提供堅實的支撐。本書旨在成為您在雲端探索道路上的可靠嚮導,幫助您從容應對數據中心管理的挑戰,擁抱技術變革的浪潮。