發表於2024-11-22
OpenStack是一個雲管理操作係統,用來控製數據中心中的計算、存儲、網絡資源池
《每天5分鍾玩轉OpenStack》是一本OpenStack的教程和參考。讀者在學習的過程中,可以跟著教程進行操作,在實踐中掌握 OpenStack 的核心技能。在之後的工作中,則可以將本教程作為參考書,按需查找相關知識點。
《每天5分鍾玩轉OpenStack》共分為兩大部分。第一部分介紹虛擬化和雲計算基礎知識,重點講解 KVM 的理論和實踐。第二部分首先介紹 OpenStack 架構,演示如何搭建 OpenStack 環境,然後逐一詳細講解 OpenStack 各個核心模塊,包括 Keystone、 Glance、Nova、Cinder 和 Neutron。
《每天5分鍾玩轉OpenStack》適閤OpenStack初學者、雲計算技術人員、雲計算研究人員等使用,也適閤高校和培訓學校相關專業的師生教學參考。
CloudMan,雲計算技術專傢,就職於國際知名 IT 企業,負責OpenStack相關項目的規劃和實施。十多年一直專注 IT 前沿技術的鑽研與實踐,目前重點研究OpenStack、容器技術棧、DevOps等技術領域。
第一篇 預備知識
第 1 章 虛擬化 2
1.1 1型虛擬化 2
1.2 2型虛擬化 2
1.3 KVM 3
1.3.1 基本概念 3
1.3.2 KVM實操 4
1.4 KVM 虛擬化原理 11
1.4.1 CPU 虛擬化 11
1.4.2 內存虛擬化 12
1.4.3 存儲虛擬化 13
1.5 網絡虛擬化 19
1.5.1 Linux Bridge 19
1.5.2 VLAN 28
1.5.3 Linux Bridge + VLAN = 虛擬交換機 35
第 2 章 雲 計 算 36
2.1 基本概念 36
2.2 雲計算和 OpenStack 38
第二篇 OpenStack 核心
第 3 章 OpenStack 架構 41
3.1 Conceptual Architecture 41
3.2 Logical Architecture 42
第 4 章 搭建實驗環境 45
4.1 部署拓撲 45
4.2 物理資源需求 46
4.3 網絡規劃 47
4.4 部署 DevStack 47
第 5 章 Identity Service——Keystone 55
5.1 概念 55
5.1.1 User 55
5.1.2 Credentials 57
5.1.3 Authentication 57
5.1.4 Token 57
5.1.5 Project 58
5.1.6 Service 59
5.1.7 Endpoint 60
5.1.8 Role 60
5.2 通過例子學習 62
5.2.1 第1步 登錄 62
5.2.2 第2步 顯示操作界麵 62
5.2.3 第3步 顯示image列錶 63
5.2.4 Troubleshoot 64
第 6 章 Image Service——Glance 65
6.1 理解 Image 65
6.2 理解 Image Service 66
6.3 Glance 架構 66
6.4 Glance 操作 69
6.4.1 創建 image 70
6.4.2 刪除 image 72
6.5 如何使用 OpenStack CLI 74
6.6 如何 Troubleshooting 77
第 7 章 Compute Service——Nova 79
7.1 Nova架構 80
7.1.1 架構概覽 80
7.1.2 物理部署方案 82
7.1.3 從虛機創建流程看 nova-* 子服務如何協同工作 84
7.1.4 OpenStack 通用設計思路 85
7.2 Nova 組件詳解 88
7.2.1 nova-api 88
7.2.2 nova-scheduler 90
7.2.3 nova-compute 97
7.2.4 nova-conductor 104
7.3 通過場景學習 Nova 105
7.3.1 看懂 OpenStack 日誌 105
7.3.2 Launch 108
7.3.3 Shut Off 108
7.3.4 Start 112
7.3.5 Soft/Hard Reboot 114
7.3.6 Lock/Unlock 114
7.3.7 Terminate 115
7.3.8 Pause/Resume 116
7.3.9 Suspend/Resume 118
7.3.10 Rescue/Unrescue 119
7.3.11 Snapshot 122
7.3.12 Rebuild 125
7.3.13 Shelve 128
7.3.14 Unshelve 130
7.3.15 Migrate 133
7.3.16 Resize 139
7.3.17 Live Migrate 144
7.3.18 Evacuate 150
7.3.19 Instance 操作總結 154
7.4 小節 156
第 8 章 Block Storage Service ——Cinder 157
8.1 理解 Block Storage 157
8.2 理解 Block Storage Service 157
8.2.1 Cinder 架構 158
8.2.2 物理部署方案 159
8.2.3 從volume創建流程看cinder-*子服務如何協同工作 160
8.2.4 Cinder 的設計思想 161
8.2.5 Cinder組件詳解 163
8.2.6 通過場景學習 Cinder 170
8.3 小節 220
第 9 章 Networking Service ——Neutron 221
9.1 Neutron 概述 221
9.1.1 Neutron 功能 221
9.1.2 Neutron 網絡基本概念 222
9.2 Neutron 架構 224
9.2.1 物理部署方案 227
9.2.2 Neutron Server 228
9.2.3 Neutron 如何支持各種 network provider 229
9.2.4 ML2 Core Plugin 231
9.2.5 Service Plugin / Agent 234
9.2.6 小結 235
9.3 為Neutron 準備物理基礎設施 237
9.3.1 1控製節點 + 1 計算節點的部署方案 237
9.3.2 配置多個網卡區分不同類型的網絡數據 238
9.3.3 網絡拓撲 239
9.3.4 安裝和配置節點 240
9.4 Linux Bridge 實現 Neutron 網絡 244
9.4.1 配置 linux-bridge mechanism driver 244
9.4.2 初始網絡狀態 245
9.4.3 瞭解Linux Bridge 環境中的各種網絡設備 247
9.4.4 local network 248
9.4.5 flat network 262
9.4.6 DHCP 服務 270
9.4.7 vlan network 274
9.4.8 Routing 285
9.4.9 vxlan network 307
9.4.10 Securet Group 321
9.4.11 Firewall as a Service 328
9.4.12 Load Balancing as a Service 337
9.5 Open vSwitch 實現 Neutron 網絡 358
9.5.1 網絡拓撲 358
9.5.2 配置 openvswitch mechanism driver 359
9.5.3 初始網絡狀態 360
9.5.4 瞭解 Open vSwitch 環境中的各種網絡設備 362
9.5.5 local network 362
9.5.6 flat network 377
9.5.7 vlan network 386
9.5.8 Routing 399
9.5.9 vxlan network 411
9.6 總結 421
寫在最後 422
第 6 章
? Image Service——Glance ?
6.1 理解 Image
要理解 Image Service 先得搞清楚什麼是 Image,以及為什麼要用 Image?
在傳統 IT 環境下,安裝一個係統要麼從安裝 CD 開始安裝,要麼用 Ghost 等剋隆工具恢復。這兩種方式有如下幾個問題:
? 如果要安裝的係統多瞭效率就很低
? 時間長,工作量大
? 安裝完還要進行手工配置,比如安裝其他的軟件,設置 IP 等
? 備份和恢復係統不靈活
雲環境下需要更高效的解決方案,這就是 Image。
Image 是一個模闆,裏麵包含瞭基本的操作係統和其他的軟件。
舉例來說,有傢公司需要為每位員工配置一套辦公用的係統,一般需要一個Windows 7係統再加 MS office 軟件。
OpenStack 是這麼玩的:
(1)先手工安裝好這麼一個虛機。
(2)然後對虛機執行 snapshot,這樣就得到瞭一個 image。
(3)當有新員工入職需要辦公環境時,立馬啓動一個或多個該 image 的 instance(虛機)就可以瞭。
在這個過程中,第 1 步跟傳統方式類似,需要手工操作和一定時間,但第2步、第3 步非常快,全自動化,一般都是秒級彆。
而且第2步、第3步可以循環做。比如,公司新上瞭一套 OA 係統,每個員工的 PC 上都得有客戶端軟件,那麼可以在某個員工的虛機中手工安裝好 OA 客戶端,然後執行 snapshot ,得到新的 image,以後直接使用新 image 創建虛機就可以瞭。
另外,snapshot 還有備份的作用,能夠非常方便地恢復係統。
6.2 理解 Image Service
Image Service 的功能是管理 Image,讓用戶能夠發現、獲取和保存 Image。
在 OpenStack 中,提供 Image Service 的是 Glance,其具體功能如下:
? 提供 REST API,讓用戶能夠查詢和獲取 image 的元數據和 image 本身。
? 支持多種方式存儲 image,包括普通的文件係統、Swift、Amazon S3 等。
? 對 Instance 執行 Snapshot 創建新的 image。
6.3 Glance 架構
Glance的架構如圖6-1所示。
圖6-1
從圖6-1可以看到,Glance主要由三部分組成。
1. glance-api
glance-api 是係統後颱運行的服務進程,對外提供 REST API,響應 image 查詢、獲取和存儲的調用,glance-api 不會真正處理請求。
如果是與 image metadata(元數據)相關的操作,glance-api 會把請求轉發給 glance-registry;如果是與 image 自身存取相關的操作,glance-api 會把請求轉發給該 image 的 store backend。
在控製節點上可以查看 glance-api 進程,如圖6-2所示。
圖6-2
2. glance-registry
glance-registry 是係統後颱運行的服務進程,負責處理和存取 image 的 metadata,例如 image 的大小和類型。
在控製節點上可以查看 glance-registry 進程,如圖6-3所示。
圖6-3
Glance支持多種格式的 image,包括如圖6-4所示的文件格式。
圖6-4
3. Database
Image 的 metadata 會保持到 database 中,默認是 MySQL。
在控製節點上可以查看 glance 的 database 信息,如圖6-5所示。
圖6-5
4. Store backend
Glance 自己並不存儲 image,真正的 image 是存放在 backend 中的。
Glance 支持多種 backend,包括:
? A directory on a local file system(這是默認配置)
? GridFS
? Ceph RBD
? Amazon S3
? Sheepdog
? OpenStack Block Storage (Cinder)
? OpenStack Object Storage (Swift)
? VMware ESX
具體使用哪種 backend,是在 /etc/glance/glance-api.conf 中配置的。
在我們的 devstack 環境中,image 存放在控製節點本地目錄 /opt/stack/data/glance/images/ 中,配置信息如圖6-6所示。
圖6-6
其他 backend 的配置可參考這個網址:
http://docs.openstack.org/liberty/config-reference/content/configuring-image-service-backends.html
查看目前已經存在的 image,命令及其執行結果如圖6-7所示。
圖6-7
查看保存目錄,命令及其執行結果如圖6-8所示。
圖6-8
每個 image 在目錄下都對應有一個文件,文件以 image 的 ID 命名。
6.4 Glance 操作
本節將討論 Glance 的主要操作。
OpenStack 為終端用戶提供瞭 Web UI(Horizon)和命令行 CLI 兩種交換界麵,兩種方式我們都要會用。可能有些同學覺得既然有更友好的 Web UI 瞭,為什麼還要用CLI?
這裏 CloudMan 給齣下麵的理由:
? Web UI 的功能沒有 CLI 全,有些操作隻提供瞭 CLI。 即便是都有的功能,CLI 可以使用的參數更多。
? 一般來說,CLI 返迴結果更快,操作起來更高效。
? CLI 可放在腳本中進行批處理。
? 有些耗時的操作 CLI 更閤適,比如創建鏡像(後麵將涉及)。
6.4.1 創建 image
1. Web UI
admin 登錄後,單擊Project → Compute → Images,界麵如圖6-9所示。
圖6-9
單擊右上角“Create Image”按鈕,為新 image 命名。如圖6-10所示。
圖6-10
這裏我們上傳一個 image。
單擊“瀏覽”,選擇鏡像文件 cirros-0.3.4-x86_64-disk.img。這個cirros 是一個很小的 linux 鏡像,非常適閤測試用。大傢可以到 http://download.cirros-cloud.net/ 下載。
格式選擇 QCOW2,如圖6-11所示。
圖6-11
如果選中“Public”,該image可以被其他 Project 使用,如果選中“Protected”,該image不允許被刪除。
單擊“Create Image”,文件上傳到 OpenStack 並創建新的 image,如圖6-12所示。
單擊image鏈接“cirros”,顯示詳細信息,如圖6-13所示。
圖6-12 圖6-13
2. CLI
cirros 這個Linux鏡像很小,通過 Web UI 上傳很快,操作會很順暢。
但如果我們要上傳的鏡像比較大(比如好幾個GB),那麼,操作會長時間停留在上傳的 Web 界麵,我們也不知道目前到底處於什麼狀態。
對於這樣情形下的操作,CLI 是更好的選擇。
? 將 image 上傳到控製節點的文件係統中,例如 /tmp/cirros-0.3.4-x86_64-disk.img,設置環境變量,如圖6-14所示。
圖6-14
Devstack 的安裝目錄下有個 openrc 文件。source 該文件就可以配置 CLI 的環境變量。這裏我們傳入瞭兩個參數,第一個參數是 OpenStack 用戶名 admin,第二個參數是 Project 名 admin。
? 執行 image 創建命令
glance image-create --name cirros --file /tmp/cirros-0.3.4-x86_64-disk.img --disk-format qcow2 --container-format bare --progress
命令執行結果如圖6-15所示。
圖6-15
在創建 image 的 CLI 參數中,我們用 --progress 讓其顯示文件上傳的百分比 %,這樣是不是比 Web UI更直觀呢?
在 /opt/stack/data/glance/images/下查看新的 Image,如圖6-16所示。
圖6-16
6.4.2 刪除 image
1. Web UI
admin 登錄後,單擊Project → Compute → Images,打開如圖6-17所示的界麵。
圖6-17
在列錶中選擇格式為 ARI 和 AKI 的 image,單擊“Delete lmages”,打開如圖6-18所示的界麵。
圖6-18
單擊“Delete Images”確認刪除操作成功,如圖6-19所示。
圖6-19
2. CLI
設置環境變量,如圖6-20所示。
圖6-20
查詢現有image ,如圖6-21所示。
圖6-21
刪除image,如圖6-22所示。
每天5分鍾玩轉OpenStack 下載 mobi epub pdf txt 電子書 格式
每天5分鍾玩轉OpenStack 下載 mobi pdf epub txt 電子書 格式 2024
每天5分鍾玩轉OpenStack 下載 mobi epub pdf 電子書很棒的書,包裝的很精美,印刷也很好。
評分書籍很厚,不過,有些沒有外包裝,之前買過的書籍,都有薄薄一層薄膜,書本的質量還是杠杠的
評分書很不錯,淺顯易懂適閤新人。
評分電子版看起是彩圖的,沒想到印刷版的不是彩圖,有些圖還不怎麼看得清
評分很好的一本書,解釋瞭好多不明白的。
評分感覺書是舊的有很明顯的摺痕,印刷質量也很差
評分還沒有看,感覺還行的樣子!!!!
評分寫的挺好
評分書很不錯,淺顯易懂適閤新人。
每天5分鍾玩轉OpenStack mobi epub pdf txt 電子書 格式下載 2024