一、雲計算的産生背景
1.雲計算的産生背景
雲計算的驅動力:
1.技術驅動
2.需求驅動
3.商業模式驅動
海量的資料和終端
IT的複雜性、商業延遲也是促進雲計算産生的一個因素
2.雲計算的概念
—商業視角 雲計算=資訊電廠
–技術視角 雲計算=計算/存儲的網絡
雲計算分為狹義和廣義兩個
狹義的是指:IT技術設施的傳遞和使用模式,通過按需易擴充的方式獲得所需的資源,包括基礎架構,平台,軟體等
廣義的是指:通過網絡按需、易擴充的方式獲得所需的服務,這種服務可以是IT和軟體,網際網路相關的,也可以是任意其他的服務。比如,醫療雲,教育雲等
3.雲計算的部署模式:
1.private cloud(私有雲)
2.public cloud(公有雲)
【私有雲和公有雲通過企業防火牆隔離】
3.混合雲
4.雲計算的商業應用模式:
IaaS(Infrastructure as a service):将基礎設施當作服務(虛拟機的租用,雲盤等)
PaaS(Platform as a service):主要面型技術開發者
SaaS(Software as a service):面向中斷使用者
二、雲計算的價值
1.行業客戶對雲的認知
- 大多數客戶人為雲計算必須演進至開放平台
- 認為傳遞将基于雲來進行
- 認為找到合适的戰略合作夥伴以啟動雲戰略至關重要
- 且和多人關心雲平台的安全性
2.行業客戶反應的困難與挑戰
- 複雜性與平滑過度
- 可靠性
- 工作負載及可遷移性
- 資料的安全性
- 廠商鎖定
- 看不到投資回報
3.雲計算的價值:
- 隻能資源的排程,即實作負載均衡和通過熱遷移來實作節能減排
- 提高資源的使用率通過的方式:通過資源共享通過分時共享
- 分布式的計算和存儲
- 統一管理
- 業務快速部署
4.雲計算帶來的機會
- 對于雲計算供應商
- 對于最終的消費者
- 對于中小型客戶
- 對于企業級的客戶
- 對于政府機構
三、虛拟化技術的簡介
-
虛拟化技術的起源
虛拟化技術的發展由來:
60年代在大型機有所應用
90年代在小型機上出現邏輯區分的應用
2000年,X86平台虛拟技術開始出現
2001年,X86平台虛拟化技術在伺服器上開始應用
虛拟化技術的推動力:
CPU的處理速度越來越快,超出軟體對硬體性能的要求
INTER和AMD在CPU裡加入了虛拟指令
企業成本壓力
環保壓力
不斷增長的業務壓力
-
虛拟化的概念
虛拟化是指通過虛拟化技術,将一台計算機虛拟為堕胎邏輯計算機,在一台計算機上同時運作多個邏輯計算機,每個邏輯計算機可以運作不同的作業系統,并且,應用程式都可以在互相獨立的空間内運作而互不影響,進而顯著的提高了計算機的工作效率。
實體機:主控端
虛拟機:客戶機
虛拟化後的差別就是:實體機上可以同時運作多個虛拟機,而且還有虛拟機監控器,通過虛拟機監控器的模拟,可以使得虛拟機在上層軟體看來就是一個真實的機器。
虛拟機是将實體資源池化了,多個虛拟機直接從資源池種擷取資源,與硬體解耦和。
- 虛拟化的主要内容
- 計算虛拟化:CPU虛拟化 記憶體虛拟化 IO虛拟化
- 存儲虛拟化:裸裝置+邏輯卷 儲存設備虛拟化 主機存儲虛拟化+檔案系統
- 網絡虛拟化: VPN VLAN
-
虛拟化的本質
分區
隔離
封裝
獨立
- 5.虛拟化技術的應用案例:—熱遷移
四、OpenStack 的架構—了解各個元件
-
提供身份認證服務的 Keystone元件
主要負責身份服務,管理使用者、租戶、角色、服務和服務斷點
可以支援SQL,PAM,LDAP作為後端
-
提供計算服務的Nova元件
主要負責虛拟機執行個體的排程配置設定以及執行個體的建立、起停、遷移、重新開機等操作,進而來管理雲中執行個體的生命周期。
是整個雲中的組織控制器
主要功能:
計算服務:
計算節點運作虛拟機的分布式控制器
負責處理器排程政策及API調用等。
-
提供鏡像服務的 Glance元件
能夠實作鏡像的建立、鏡像快照管理、以及鏡像模闆等等。
同時也支援各種格式的鏡像格式
-
提供對象存儲服務的Swift
主要提供了存取資料的應用服務。
通常用于儲存非結構化的資料,比如通常作為Glance元件的存儲後端或者作為一些雲盤等應用
-
提供網絡服務的Neutron
基于軟體定義網絡的思想,實作網路資源的軟體化管理。支援各種各樣類型的插件,實作多租戶網絡的隔離。也可以對硬體以及軟體的解決方案進行內建。
-
提供塊存儲服務 Cinder
為虛拟機執行個體提供卷的持久化服務,同時支援一些對卷的快照、備份等的一些管理。基于插件的架構,非常易于擴充。
總結:塊存儲服務 持久化磁盤 基于插件的架構,易于擴充
-
提供WEB統一化管理界面服務的 HORIZON元件
主要提供了自動化儀表闆的管理服務,實作對使用者、租戶、卷、網絡等幾乎多有資源的圖形化管理。
-
提供監控和計量服務的 Ceilometer
提供對Opens tack中平台元件的監控
提供紀良服務
五、NOVA
1、什麼是Nova?
Nova是Open stack雲中的計算組織控制器,管理opens tack雲中執行個體的生命周期的左右活動,使得nova稱為一個負責管理計算資源、網絡、認證所需的可擴充性平台。
2.常用術語
KVM:核心虛拟化,Open Stack 預設的Hypervisor
Qemu: KVM 的替補角色,沒有KVM的執行效率高,不支援全虛拟化
Flavor:建立虛拟機的配置清單,虛拟機模闆
Keypair:ssh連接配接通路執行個體的密鑰對
安全組:是一個控制通路政策的容器,裡面包含了各種各樣的安全組規則
安全組規則:用來控制執行個體通路的具體政策
3.Nova架構
Nova元件
Nova API:提供了統一風格的 RestAPI接口,作為Nova元件的入口,接受使用者的請求
Nova scheduler :負責排程,将執行個體配置設定到具體的計算節點
Nova conductor:主要負責與Nova資料庫進行互動
Nova compute:用于虛拟機執行個體的建立和管理
以及提供消息傳遞的消息隊列:Nova各個元件之間的消息傳遞
和資料庫子產品:
【重要!!!!】Nova各個元件如何協作運作?
首先,使用者通過CLI指令行或者horizon向Nova元件提出建立執行個體的請求時,Nova API 作為Nova的入口,将會接受使用者的請求,将會以消息隊列的方式,将請求發送給Nova scheduler,Nova scheduler從消息隊列中,偵聽到Nova API的消息隊列後,去資料庫中查詢,目前計算節點的負載和使用情況,由于Nova scheduler不能直接跟資料庫進行互動,是以,将會借助于消息隊列的方式通過Nova conductor元件,進而與資料庫進行互動,然後将查詢到的結果,将虛拟機執行個體配置設定到目前負載最小,并且滿足啟動虛拟機執行個體的那個計算節點上,但最終的虛拟機執行個體的元件,還是要靠Nova compute來完成。但是執行個體的建立,離不開鏡像、網絡等一些資源的配合,是以,Nova compute将會與Nova volume、Nova network等等一些元件通過消息隊列的方式實作互相的協作。最終完成虛拟機執行個體的建立。
-
Nova的功能特性:
• 實作執行個體的生命周期的管理
• 調動管理平台的網絡、存儲等資源
• 提供了統一風格的 RestAPI接口
• 支援KVM、VMware等透明的hypervisor
• 各個子產品之間通過消息隊列來進行消息傳遞
六、提供對象存儲服務的Swift介紹
1.什麼是Swift?
Swift 是 提供高可用分布式對象存儲的服務,為nova元件提供虛拟機鏡像存儲服務,在資料備援方面,無需采用read【?】通過在軟體層面,引入一緻性散列技術和資料備援,犧牲一定得資料一緻性,來達到高可用和可伸縮性。支援多租戶模式下,容器和對象讀寫操作,适用于網際網路應用場景下非結構化的資料存儲,比如,華為雲盤等。
2. Swift中的常用術語【1】
Account:使用者定義的管理存儲區域
Container:存儲隔間,類似于檔案夾或者目錄
Object:包含了基本的存儲實體和它自身的中繼資料
Ring:環,記錄了磁盤上存儲的實體名稱和實體位置的映射關系。
以上術語之間的關系:
首先,可以建立多個account,每個account裡可以建立多個容器container,每個container下可以建立多個object,【container 之間不能互相嵌套】
Swift的介紹
Swift在實體結構上往往會存儲對象的多個副本,通常按照實體位置的特點,将對象拷貝到不同的實體位置的特點,将對象拷貝到不同的實體位置上,來保證資料的可靠性。
常用術語2
Region:地域,從地理位置上劃分的一個概念
Zone:可用區,按照獨立的供網、供電既基礎裝置劃分
Node:節點,代表了一台存儲伺服器
Disk:磁盤,代表着實體伺服器上的儲存設備
Cluster:群集,為備援考慮而設計的架構
以上術語之間的關系:
可以根據不同的實體位置,有不同的Region,不同的region代表兩個不同的城市,然後在同一個region下,為備援的考慮,設定了多個可用區,zone。每一個可用去可以有不同的存儲節點,node;在更大的架構上,兩個region可以構成一個cluster。
-
Swift的架構
首先,使用者提出一個對象存儲服務的申請,由Swift的API接受和處理,收到之後,先去找???認證節點,對使用者的身份進行認證。認證通過後,将請求送出給,名稱為Swift Proxy的元件,Swift Proxy是Swift 的代理,由Swift Proxy來确定究竟應該将存儲對象放在哪一個滿足存儲要求的存儲節點上。最終将對象存儲到指定的存儲節點上即可。最終将傳回結果傳回給使用者。
05Keystone 簡介
提供身份驗證、服務規則和服務令牌功能
任何服務之間互相調用,都需要經過keystone的身份驗證
常用術語:
User:Openstack最基本的使用者
Project:指配置設定給使用者的資源的集合
Role:代表一組使用者可以通路組員的權限
Domain:定義管理邊界,可以包含多個project/tenant、user、role等
Endpoint:服務的URL路徑,暴露出來的通路點
七、Keystone認證模型
首先建立兩個域domain1和2,給兩個公司使用,每個公司在domain下建立三個子公司project1 2 3,project下可以建立多個使用者User,使用者User可以跨多個project存在。
Keystone認證原理
當使用者再建立時,将通過Keystone将會建立一個通路令牌accesstoken,假設當使用者提出建立虛拟機執行個體的請求時,首先将自己的通路令牌和通路請求送出給NOVE服務,NOVE服務為確定使用者的通路令牌并沒有篡改過,是以首先會将通路令牌交給keystone進行驗證,驗證通過後nova為了啟動虛拟機的執行個體,還需要向Glance元件申請相關的鏡像資源,Glance為保證通路令牌在傳遞的過程中沒有被篡改過,也需要将通路令牌發送給keystone做确認,驗證通過後将會發放鏡像資源給nova元件,虛拟機執行個體的建立還需要存儲、網絡等資源,是以nova元件還需要給負責各種資源的子產品傳遞申請資源的請求,資源申請的過程中都會伴随這通路令牌的驗證,nova拿到啟動虛拟機執行個體的所有資源後進行執行個體的啟動,然後配置設定給相關的使用者。整個過程來看元件之間資源的調用都離不開keystone的驗證….
八、Neutron介紹
1.Neutron的簡介:
Neutron時open stack中負責提供網絡服務的元件,基于軟體定義網絡的思想,實作軟體化的網絡資源管理,在實作上,充分利用了linux系統中各種與網絡相關的技術,支援第三方插件
2. Neutron中常用的術語
Bridge-int:綜合網橋,常用于實作内部網路通訊功能的網橋
Br-ex:外部網橋,通常用于跟外部網絡通訊的網橋。
Neutron-server:提供了API接口,将配置好的API接口,提供給相關的插件,進行後續處理
Neutron-L2-agent:二層代理,用于實作二層網絡通訊的代理,用于管理VLAN的插件,接受Neutron-server的指令來建立VLAN。
Neutron-DHCP-agent:為子網自動分發IP位址
Neutron-L3-agent:負責租戶網絡和floating IP之間的位址轉換,通過linux iptables 中的NAT功能來實作IP轉換
Neutron-metadata-agent:運作在網絡節點上,用來響應nova中的metadata請求
LBaaS agent:為堕胎執行個體和open vswitch agent提供負載均衡服務
3. Neutron的架構
當Neutron通過API接口,接受來自使用者或者其他元件的網絡請求時,以消息隊列的方式送出給2、3層代理,其中Neutron-DHCP-agent實作子網的建立和IP位址的自動分發。而Neutron-L2-agent實作相同VLAN下,網絡的通信,Neutron-L3-agent實作同一個租戶網絡下,不同子網間的通信