華為網課雲端計算筆記

HY_Chan發表於2017-05-23

一、雲端計算的產生背景

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.雲端計算帶來的機會
- 對於雲端計算供應商
- 對於最終的消費者
- 對於中小型客戶
- 對於企業級的客戶
- 對於政府機構

三、虛擬化技術的簡介

  1. 虛擬化技術的起源
    虛擬化技術的發展由來:
    60年代在大型機有所應用
    90年代在小型機上出現邏輯區分的應用
    2000年,X86平臺虛擬技術開始出現
    2001年,X86平臺虛擬化技術在伺服器上開始應用
    虛擬化技術的推動力:
    CPU的處理速度越來越快,超出軟體對硬體效能的要求
    INTER和AMD在CPU里加入了虛擬指令
    企業成本壓力
    環保壓力
    不斷增長的業務壓力

  2. 虛擬化的概念
    虛擬化是指通過虛擬化技術,將一臺計算機虛擬為墮胎邏輯計算機,在一臺計算機上同時執行多個邏輯計算機,每個邏輯計算機可以執行不同的作業系統,並且,應用程式都可以在相互獨立的空間內執行而互不影響,從而顯著的提高了計算機的工作效率。
    物理機:宿主機
    虛擬機器:客戶機

虛擬化後的區別就是:物理機上可以同時執行多個虛擬機器,而且還有虛擬機器監控器,通過虛擬機器監控器的模擬,可以使得虛擬機器在上層軟體看來就是一個真實的機器。

虛擬機器是將物理資源池化了,多個虛擬機器直接從資源池種獲取資源,與硬體解耦和。

  1. 虛擬化的主要內容
  2. 計算虛擬化:CPU虛擬化 記憶體虛擬化 IO虛擬化
  3. 儲存虛擬化:裸裝置+邏輯卷 儲存裝置虛擬化 主機儲存虛擬化+檔案系統
  4. 網路虛擬化: VPN VLAN
  5. 虛擬化的本質
    分割槽
    隔離
    封裝
    獨立
  6. 5.虛擬化技術的應用案例:—熱遷移

四、OpenStack 的架構—瞭解各個元件

  1. 提供身份認證服務的 Keystone元件
    主要負責身份服務,管理使用者、租戶、角色、服務和服務斷點
    可以支援SQL,PAM,LDAP作為後端
  2. 提供計算服務的Nova元件
    主要負責虛擬機器例項的排程分配以及例項的建立、起停、遷移、重啟等操作,從而來管理雲中例項的生命週期。
    是整個雲中的組織控制器
    主要功能:
    計算服務:
    計算節點執行虛擬機器的分散式控制器
    負責處理器排程策略及API呼叫等。
  3. 提供映象服務的 Glance元件
    能夠實現映象的建立、映象快照管理、以及映象模板等等。
    同時也支援各種格式的映象格式
  4. 提供物件儲存服務的Swift
    主要提供了存取資料的應用服務。
    通常用於儲存非結構化的資料,比如通常作為Glance元件的儲存後端或者作為一些雲盤等應用
  5. 提供網路服務的Neutron
    基於軟體定義網路的思想,實現網路資源的軟體化管理。支援各種各樣型別的外掛,實現多租戶網路的隔離。也可以對硬體以及軟體的解決方案進行整合。
  6. 提供塊儲存服務 Cinder
    為虛擬機器例項提供卷的持久化服務,同時支援一些對卷的快照、備份等的一些管理。基於外掛的架構,非常易於擴充套件。
    總結:塊儲存服務 持久化磁碟 基於外掛的架構,易於擴充套件
  7. 提供WEB統一化管理介面服務的 HORIZON元件
    主要提供了自動化儀表板的管理服務,實現對使用者、租戶、卷、網路等幾乎多有資源的圖形化管理。
  8. 提供監控和計量服務的 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等等一些元件通過訊息佇列的方式實現相互的協作。最終完成虛擬機器例項的建立。

  1. 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。

  1. 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實現同一個租戶網路下,不同子網間的通訊

相關文章