每天5分鍾玩轉OpenStack

每天5分鍾玩轉OpenStack pdf epub mobi txt 电子书 下载 2025

CloudMan 著
圖書標籤:
  • OpenStack
  • 雲計算
  • 虛擬化
  • DevOps
  • 運維
  • Linux
  • 開源
  • IaaS
  • 實踐
  • 入門
想要找书就要到 求知書站
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
出版社: 清华大学出版社
ISBN:9787302455318
版次:1
商品编码:12086376
包装:平装
开本:16开
出版时间:2016-11-01
用纸:胶版纸

具体描述

産品特色

編輯推薦

適讀人群 :OpenStack初學者、雲計算技術人員、雲計算研究人員
  

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所示。

圖6-22
6.5 如何使用 OpenStack CLI
OpenStack 服務都有自己的 CLI。
命令很好記,就是服務的名字,比如 Glance 就是 glance,Nova 就是 nova。
但 Keystone 比較特殊,現在是用 openstack 來代替老版的 keystone 命令。
比如查詢用戶列錶,如果用 keystone user-list,如圖6-23所示。

圖6-23
會提示 keystone 已經 deprecated 瞭。
用 openstack 命令代替,如圖6-24所示。

圖6-24
不同服務用的命令雖然不同,但這些命令使用方式卻非常類似,可以舉一反三。
1. 執行命令之前,需要設置環境變量。
這些變量包含用戶名、Project、密碼等。如果不設置,每次執行命令都必須設置相關的命令行參數。
2. 各個服務的命令都有增、刪、改、查的操作
其格式是:
CMD -create [parm1] [parm2]…
CMD -delete [parm]
CMD -update [parm1] [parm2]…
CMD -list
CMD -show [parm]
例如 glance 管理的是 image,那麼CMD 就是 glance;obj 就是 image。
對應的命令就有:
glance image-create
glance image-delete
glance image-update
glance image-list
glance image-show
再比如 neutron 管理的是網絡和子網等,那麼:CMD 就是 neutron;obj 就是 net 和 subnet。對應的命令說明如下。
網絡相關操作:
neutron net-create
neutron net -delete
neutron net -update
neutron net -list
neutron net –show
子網相關操作:
neutron subnet-create
neutron subnet -delete
neutron subnet -update
neutron subnet -list
neutron subnet–show
有的命令 可以省略,比如 nova。
下麵的操作都是針對 instance:
nova boot
nova delete
nova list
nova show
3. 每個對象都有 ID
delete、show 等操作都以 ID 為參數,例如圖6-25所示。

圖6-25
4. 可用 help 查看命令的用法
除瞭delete、show 等操作隻需要 ID 一個參數,其他操作可能需要更多的參數,用 help 查看所需的參數,格式是:
CMD help [SUB-CMD]
例如,查看 glance 都有哪些 SUB-CMD,如圖6-26所示。

圖6-26
查看 glance image-update 的用法,如圖6-27所示。

圖6-27
6.6 如何 Troubleshooting
OpenStack 排查問題的方法主要是通過日誌,Service 都有自己單獨的日誌。Glance 主要有兩個日誌,glanceapi.log 和 glanceregistry.log,保存在 /var/log/apache2/ 目錄裏。
devstack 的 screen 窗口已經幫我們打開瞭這兩個日誌,可以直接查看,如圖6-28所示。

圖6-28
g-api 窗口顯示 glance-api 日誌,記錄 REST API 調用情況。
g-reg 窗口顯示 glance-registry 日誌,記錄 Glance 服務處理請求的過程以及數據庫操作。
如果需要得到最詳細的日誌信息,可以在 /etc/glance/*.conf 中打開 debug 選項。
devstack 默認已經打開瞭 debug,如圖6-29所示。

圖6-29
在非 devstack 安裝中,日誌在 /var/log/glance/ 目錄裏。ack》

前言/序言

  寫在最前麵
  這是一個 OpenStack 教程,有下麵兩個特點:
  係統講解 OpenStack。從架構到各個組件;從整體到細節逐一討論。
  重實踐並兼顧理論。主要從實際操作的角度帶著大傢學習 OpenStack。
  為啥要寫這個
  簡單迴答是:因為 OpenStack 學習難度大,但如果掌握瞭,價值會很大。
  先做一個自我介紹吧。
  本人網名CloudMan,在 IT 這個行當已經摸爬滾打瞭十多年,2005年之前是搞上層應用開發的,那時候 Java 比較火,所以 J2EE 相關的技術搞得比較多。後來入職一傢大型IT公司,公司的産品從中間件到操作係統,從服務器到存儲,從虛擬化到雲計算都有涉及。
  本人所在的部門是專門做 IT 基礎設施實施服務的,項目涉及服務器、存儲、網絡、虛擬化、雲各個方麵,而且這個部門的重要任務是為公司在IT市場最新和最熱門的領域開疆擴土。比如前幾年的虛擬化,這兩年的雲計算和大數據。
  可以說部門的這個定位非常符閤我的技術偏好。我對新技術長期保持著濃厚的興趣和學習熱情,所以在這個部門一待就是十幾年,而且一直搞技術,雖然現在的頭銜是架構師,平時還是一直堅持實際動手操作,否則會沒有安全感。
  好,現在迴到OpenStack這個主題。
  本人是在2013年開始接觸 OpenStack,雖然具備比較紮實的技術功底,在經過一段時間的學習後,還是感覺 OpenStack 這個東西上手不太容易,個人認為有以下幾個原因:
  1. OpenStack 涉及的知識領域極廣
  可以說涵蓋瞭IT基礎設施的所有範圍,計算、存儲、網絡、虛擬化、高可用、安全、災備無所不包,即便是像我這種每天都在這個領域工作的人也感覺壓力頗大。
  2. OpenStack 是一個平颱,不是一個具體的實施方案
  OpenStack的各個組件都采用Driver的架構,支持各種具體的實現技術。比如 OpenStack 的存儲服務Cinder隻定義瞭上層抽象API,具體的實現交給下麵的各種Driver,比如基於LVM的iSCSI Driver,EMC、IBM等商業存儲産品的Driver,或者是開源的分布式存儲軟件,比如Ceph、GlusterFS的Driver。
  正是因為這種架構上的靈活性,使得初學者在學習OpenStack的時候不會像學習其他具體軟件産品那樣容易上手。
  3. OpenStack 本身是一個分布式係統
  大多數搞 IT 的對分布式計算都不會太熟悉,直接衝進來會被 OpenStack 繁多的組件以及它們之間的交互方式搞得雲裏霧裏。
  雖然 OpenStack 學習麯綫比較陡峭,掌握起來難度較大,但 OpenStack 目前已經是 IaaS 雲的事實標準,而且前途一片光明,對於我們搞 IT 的如果能啃下這個骨頭,必定能大大提升自身的競爭力。
  寫給誰看
  這套教程的目標讀者包括:
  1. OpenStack初學者
  我學習OpenStack也是經曆瞭一個艱辛麯摺的過程,其主要原因在於沒有找到一個係統講解OpenStack的教程,大部分資料都比較分散,對於初學者無法有機地串起來。也正是因為這個原因,讓我萌發瞭編寫這樣一套教程的想法,能夠讓初學者少走彎路,係統地學習、掌握和實踐 OpenStack。
  2. OpenStack 實施工程師
  之前說瞭,我在公司的職位是架構師,但骨子裏我更把自己定位成一位能到一綫攻城拔寨的實施工程師。所以這個教程也是針對 OpenStack 的實施人員,讓他們能夠通過學習真正掌握部署OpenStack 的知識、技能以及故障排查技巧。
  3. 我自己
  寫這個教程同時也是對自己這幾年學習和實踐 OpenStack 的一個總結。我覺得:對於知識,隻有把它寫齣來並能夠讓其他人理解纔能真正說明自己掌握瞭這項知識。
  包含哪些內容
  本書兩大塊內容,如下圖所示。
  1. 預備知識
  因為麵嚮初學者,首先會有虛擬化和雲計算的“預備知識”,會介紹 KVM、IaaS 等技術。
  2. OpenStack核心
  這是主要內容,包含OpenStack的架構和各個核心組件。將會通過大量的案例、操作步驟、截圖、日誌來幫助大傢理解 OpenStack 各組件是如何工作的。其目標是讓各位可以根據客戶的需求進行配置和調整。
  怎樣的編寫方式
  在當下這個共享經濟時代,我覺得應該用互聯網的方式來分享知識和心得。這個教程會通過我的微信公眾號(cloudman6)每周一、周三、周五定期發布。
  用公眾號我覺得有兩個好處:
  (1)可以隨時隨地查看和瀏覽已推送的內容。
  (2)可以通過公眾號跟我互動,提齣問題和建議 。
  為啥叫《每天5分鍾玩轉 OpenStack》
  為瞭降低學習的難度並且考慮到移動端碎片化閱讀的特點,每次推送的內容大傢隻需要花5分鍾就能看完(注意,這裏說的是看完,有時候要完全理解可能需要更多時間哈),每次的內容隻包含1~3個知識點,這也是我把教程命名為《每天5分鍾玩轉 OpenStack》的原因。雖然是碎片化推送,但整個教程是係統、連貫和完整的,隻是化整為零瞭。
  好瞭,今天這5分鍾算是開瞭個頭,下麵我們正式開始玩轉 OpenStack。
  編 者
  2016年10月


用户评价

评分

非常有名的一本书。非常适合入门去看。

评分

还没开始看 打一下基础

评分

很好的一本书,强烈推荐

评分

很快看完了,但是啥也没学到。讲操作太多,源码分析太少。

评分

自己买来看的质量还不错

评分

一如既往的好,一如既往的好

评分

不错

评分

一般

评分

早先微信跟着看的,出书了收一本。

相关图书

本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 tushu.tinynews.org All Rights Reserved. 求知書站 版权所有