《云計算——虛擬化技術ppt課件》由會員分享,可在線閱讀,更多相關《云計算——虛擬化技術ppt課件(67頁珍藏版)》請在人人文庫網上搜索。
,云計算原理與實踐,1,,4.1虛擬化的定義4.2服務器虛擬化4.3商用虛擬機技術4.4新型硬件虛擬化4.5實踐:Xen虛擬化技術4.6實踐:KVM虛擬化技術4.7輕量級虛擬化4.8實踐:容器,,,,,,,2,4.1虛擬化的定義,在計算機科學領域中云計算中的虛擬化技術原理,虛擬化代表著對計算資源的抽象,而不僅僅局限于虛擬機的概念。虛擬化技術分類:1服務器虛擬化2網絡虛擬化3桌面虛擬化4軟件定義的存儲,3,1服務器虛擬化,大多數服務器的容量利用率不足15%,這不僅導致了服務器數量劇增,還增加了部署復雜性。實現服務器虛擬化后,多個操作系統可以作為虛擬機在單臺物理服務器上運行,并且每個操作系統都可以訪問底層服務器的計算資源,從而解決了效率低下問題。將服務器集群聚合為一項整合資源,可以提高整體效率并降低成本。服務器虛擬化還可以加快工作負載部署速度、提高應用性能并改善可用性。
,4,2網絡虛擬化,網絡虛擬化以軟件的形式完整再現了物理網絡,應用在虛擬網絡上的運行與在物理網絡上的運行完全相同。網絡虛擬化向已連接的工作負載提供邏輯網絡連接設備和服務(邏輯端口、交換機、路由器、防火墻、負載均衡器、VPN等)。虛擬網絡不僅可以提供與物理網絡相同的功能特性和保證,而且具備虛擬化所具有的運維優勢和硬件獨立性。,5,3桌面虛擬化,通過以代管服務的形式部署桌面,可以使使用者更加快速地對不斷變化的需求做出響應。外包員工、海外員工以及使用平板電腦的移動工作人員交付虛擬化桌面和應用,從而降低成本并改進服務。,6,4軟件定義的存儲,海量數據和實時應用使存儲需求達到新的高度。存儲虛擬化對服務器內部的磁盤和閃存進行抽象,將它們組合到高性能存儲池,并以軟件形式交付。軟件定義的存儲(ge,SDS)是一種全新的存儲方法,可從根本上提高運維模式的效率。,7,4.2服務器虛擬化,4.2.1x86架構對虛擬化的限制4.2.2全虛擬化4.2.3半虛擬化4.2.4硬件輔助虛擬化,8,圖4.1虛擬化前后的計算機體系結構,4.2服務器虛擬化,9,圖4.2虛擬化軟件層所處的位置,4.2服務器虛擬化,10,4.2.1x86架構對虛擬化的限制,圖4.3x86架構下指令執行方式,通過虛擬機監控器(VMM)可實現客戶操作系統對硬件的訪問,根據其原理不同分為以下3種技術:全虛擬化;半虛擬化;硬件輔助虛擬化,11,4.2.2全虛擬化,圖4.4使用VMM二進制翻譯客戶操作系統的請求,二進制翻譯技術簡稱BT,是一種直接翻譯可執行二進制程序的技術,能夠把一種處理器上的二進制程序翻譯到另一種處理器上執行。
虛擬化軟件層將操作系統的指令翻譯并將結果緩存供之后使用,而用戶級指令無須修改就可以運行,具有和物理機一樣的執行速度。,12,4.2.3半虛擬化,圖4.5將不可虛擬化的操作系統指令替換為超級調用,半虛擬化指的是虛擬機系統和虛擬化軟件層通過交互來改善性能和效率。半虛擬化涉及修改操作系統內核來將不可虛擬化的指令替換為可直接與虛擬化層交互的超級調用()。,13,4.2.3半虛擬化,半虛擬化和全虛擬化不一樣,全虛擬化時未經修改的虛擬機系統不知道自身被虛擬化,系統敏感的調用陷入虛擬化層后再進行二進制翻譯。半虛擬化的價值在于更低的虛擬化代價,但是相對全虛擬化,半虛擬化的性能優勢根據不同的工作負載有很大差別。半虛擬化不支持未經修改的操作系統(如),因此它的兼容性和可移植性較差。由于半虛擬化需要系統內核的深度修改,在生產環境中,技術支持和維護上會有很大的問題。,14,4.2.4硬件輔助虛擬化,圖4.6使用VMM二進制翻譯客戶操作系統的請求,第一代技術包括Intel的VT-x和AMD的AMD-V,兩者都針對特權指令為CPU添加了一個執行模式,即VMM運行在一個新增的根模式下。
隨著對CPU、內存和I/O設備進行硬件輔助開發,半虛擬化相對于硬件輔助虛擬化的性能優勢將逐漸縮小。,15,4.3商用虛擬機技術,1Xen虛擬機技術Xen虛擬機技術是英國劍橋大學計算機實驗室原始開發的。之后,Xen社區負責Xen的后續版本開發并將其作為免費開源的軟件,以GNU通用公眾執照()(GPLv2)進行使用。Xen虛擬機技術目前支持的計算機架構包括Intel公司的IA-32、x86-64和ARM公司的ARM。Xen在目前已經有很多版本,著名的亞馬遜Web服務(AWS)就建立于Xen虛擬機技術之上。Xen虛擬機的最大商用支持者為美國的公司。,16,4.3商用虛擬機技術,2KVM虛擬機技術KVM是基于內核的虛擬機(-)的縮寫。KVM虛擬機監視器既可以在全虛擬化模式下運行,也能夠為部分操作系統提供準虛擬化支持。在準虛擬化模式下,KVM使用一種稱為的框架作為后端驅動。該框架能夠支持準虛擬化的以太網卡、準虛擬化的控制器,調整宿主內存容量的設備,以及使用SPICE或驅動程序的VGA圖形界面。
,17,4.3商用虛擬機技術,-V虛擬化技術Hyper-V是微軟公司使用的虛擬機監視器,其前身是服務器虛擬化()。Hyper-V也是準虛擬化的監視器,其主機操作系統為經過Hyper-V修改的服務器,其提供的虛擬機容器稱為劃分云計算中的虛擬化技術原理,其中根劃分里面容納的是主機操作系統,子劃分里面則運行宿主操作系統。目前,Hyper-V的使用者主要是微軟的。,18,4.3商用虛擬機技術,和ESXi虛擬化技術公司的ESX虛擬機監視器是一個企業級的虛擬化產品,為虛擬化產品家族(被稱為基礎設施)里的一員。ESX和ESXi均為全虛擬化產品,都是運行在裸機上的虛擬機監視器,它們無須主機操作系統的協作,就能夠將硬件的全部功能虛擬化,提供給上面的宿主操作系統使用。ESX和ESXi為上面可以運行任意操作系統,如、Linux、BSD等。ESX和ESXi的商用范圍極為廣泛,是目前市面上最成功的虛擬化產品之一。,19,4.3商用虛擬機技術,是運行在x86-64體系架構上的虛擬機監視器。
該虛擬機監視器與ESX的不同之處在于它是一個準虛擬化系統,能夠橋接現有的主機網絡適配器,并與虛擬機共享物理磁盤和USB設備。的一個比較獨特的功能是可以將多個虛擬機作為一個組來看待,一起啟動、關閉、掛起、復活等,這對于搭建測試環境來說非常有用。,20,4.3商用虛擬機技術,虛擬化技術公司的產品采用的虛擬化技術非常獨特,本質上是一個操作系統級別的虛擬化產品。嚴格來說,并不算是一個虛擬機監視器,因為其運行在主機操作系統之上,而不是與其并列或其之下。此外,它并不直接掌握硬件資源的調度和管理,只不過將主機操作系統呈現的抽象性再度封裝,在其之上呈現多個虛擬機,這些虛擬機里可以運行不同的操作系統。,21,4.4新型硬件虛擬化,4.4.1硬件虛擬化背景4.4.2硬件虛擬化的代表4.4.3硬件虛擬化的未來,22,圖4.7新型硬件的晶體管數目變化趨勢,23,4.4.1硬件虛擬化背景,現有虛擬化技術主要針對通用的硬件平臺(如x86和x86-64)和系統軟件棧(如Linux和),強調對于物理硬件的整合和系統軟件棧的兼容,目前還不能高效地承載新型硬件能力供給。
工業界和學術界還在尋求新型硬件的虛擬化解決方案,已經提出了GPU、RDMA等硬件資源的直通獨占式虛擬化方案。對比CPU、I/O等傳統硬件的虛擬化發展歷程,RDMA/FPGA等新型硬件的虛擬化尚處于早期階段。,24,圖4.8設備虛擬化的三種主要方法,25,基于軟件模擬的全虛擬化方法:能夠支持多個設備共享,并不需要修改客戶操作系統,但上下文切換開銷大,性能低;基于直通獨占的方式:能夠使虛擬機直通訪問物理設備,減少了虛擬機監控器的切換開銷,性能高,但共享困難;基于硬件輔助虛擬化的全虛擬化方法:解決了直通和共享的矛盾,是虛擬化技術走向成熟的標志。目前,基于硬件輔助的虛擬化方法在CPU、內存、網絡等傳統硬件資源上獲得了成功,CPU和內存虛擬化資源已經接近物理性能。,4.4.1硬件虛擬化背景,26,4.4.2硬件虛擬化的代表,1GPU虛擬化GPU是計算機的一個重要組成部分,但GPU這類重要資源虛擬化的性能、擴展性和可用性相對于CPU還處于滯后的階段。由于GPU結構復雜,技術限制多,直到2014年才提出了兩種針對主流GPU平臺的硬件輔助的全虛擬化方案,即基于英偉達GPU的GPUvm和基于英特爾GPU的gVirt。
,2FPGA虛擬化FPGA作為一種可重新配置的計算資源,與現有的虛擬化框架并不兼容。FPGA器件與各自的開發生態(工具鏈、庫等)具有緊密的耦合關系,目前還沒有統一的二進制接口規范。,27,4.4.2硬件虛擬化的代表,3RDMA虛擬化近年來,人們開始探索RDMA硬件虛擬化技術在高性能計算等領域的應用,基于SR-IOV的RDMA在部分場景已能夠媲美原生系統的高吞吐量與低延時指標。,4NVM虛擬化NVM是一種新的存儲技術,它同時擁有內存字節尋址的高性能以及數據存儲持久化的特性,因此備受關注。但NVM存在價格高、容量小、使用方式多變等問題,如何進行虛擬化支持進而投入到云環境中使用,仍處在研究的起步階段。,28,4.4.3硬件虛擬化的未來,1極端虛擬化隨著云計算系統應用范圍的不斷擴大,虛擬機目前正向極大和極小兩個方向演化。由于新型硬件設備的加入,單機的處理能力不斷增強,由此產生了在單機上構建巨規模/巨型虛擬機的迫切需求。同時,針對部署在智能移動終端上、面向極端受限的特征化硬件環境的微型虛擬機,需要能夠便捷共享集約化硬件資源、高效抽象具有多樣性的硬件設備,按需移動和重構組件化的虛擬機,以及提供面向交互式和移動性的個性化系統軟件棧。
,29,4.4.3硬件虛擬化的未來,2異構硬件的融合和歸一化首先,異構硬件的融合將本著“優勢互補”的原則,向應用提供優勢資源以滿足極端化需求。其次,不同的硬件需要采用不同的虛擬化方法,提供各異的接口以獲得最佳的性能。因此,要通過虛擬化實現異構硬件歸一化管理,向應用提供統一的編程接口。可利用來自應用的需求信息動態判斷實際的后臺執行硬件,實現應用需求指導的動態硬件選擇技術。,30,4.4.3硬件虛擬化的未來,3多硬件和特性的聚合和抽象目前,虛擬化側重于“一虛多”技術,即將單個物理資源通過虛擬化技術作為多個虛擬資源提供。同時,可利用新型硬件實現對多硬件或多特性的虛擬化聚合和抽象,提升硬件性能,甚至突破單一硬件的物理極限(“多虛一”)。,31,4.5實踐:Xen虛擬化技術,4.5.1Xen的歷史4.5.2Xen功能概覽4.5.3Xen實際操作,32,20世紀90年代,劍橋大學的伊恩普拉特()和基爾弗雷特()在一個叫作的研究項目中,開發了Xen虛擬機。作為的核心,Xen虛擬機負責管理和分配系統資源,并提供必要的統計功能,其一開始是作為一個準虛擬化的解決方案出現的。
2002年Xen正式被開源,在先后推出了1.0和2.0版本之后,Xen開始被諸如、和Sun等公司的Linux發行版集成,作為其中的虛擬化解決方案。2005年發布的Xen3.0開始正式支持Intel的VT技術和IA64架構,從而Xen虛擬機可以運行完全沒有修改的操作系統。2007年10月,思杰()公司出資5億美元收購了。,4.5.1Xen的歷史,33,Xen是一個直接在系統硬件上運行的虛擬機管理程序。Xen在系統硬件與虛擬機之間插入一個虛擬化層,將系統硬件轉換為一個邏輯計算資源池,Xen可將其中的資源動態地分配給任何操作系統或應用程序。在虛擬機中運行的操作系統能夠與虛擬資源交互,就好像它們是物理資源一樣。,4.5.2Xen功能概覽,34,圖4.9Xen的總體結構,35,4.5.3Xen實際操作,1檢查CPU是否支持Xen虛擬化2安裝Xen3創建一個客戶操作系統,36,圖4.-工具,37,圖4.11選擇虛擬化方法,38,圖4.12為虛擬機分配存儲空間,39,圖4.13配置客戶虛擬機的內存和CPU使用率,40,圖4.14虛擬機配置信息摘要,41,圖4.15客戶操作系統開始安裝,42,4.6實踐:KVM虛擬化技術,4.6.1KVM簡介4.6.2KVM的基本安裝操作,43,KVM的全稱是,即內核虛擬機。
KVM的運行需要主機是x86架構且硬件支持虛擬化技術(如或AMD-V),還需要一個經過修改的QEMU軟件(qemu-kvm)作為虛擬機上層控制和界面。KVM能在不改變Linux或鏡像的情況下同時運行多個虛擬機,并為每一個虛擬機配置個性化硬件環境。支持KVM虛擬化技術的操作系統有很多,包括各種Linux版本、、、、Haiku、、Plan9、、等。,4.6.1KVM簡介,44,4.6.2KVM的基本安裝操作,1安裝kvm及其依賴包2啟動配置橋接接口4.創建虛擬機,45,圖4.操作界面,46,圖4.17新建虛擬機,47,圖4.18指定安裝媒體,48,圖4.19指定內存和CPU配置,49,圖4.20指定存儲空間大小,50,圖4.21選擇網絡模式,51,圖4.22進入安裝界面,52,4.7輕量級虛擬化,4.7.1容器技術簡介4.7.2容器與虛擬機的對比4.7.3容器背后的內核知識,53,4.7.1容器技術簡介,圖4.23容器技術的發展過程,54,4.7.2容器與虛擬機的對比,圖4.24虛擬機(左)與容器(右)的區別,55,4.7.3容器背后的內核知識,容器本質上是宿主機上的一個進程,通過實現了資源隔離,通過實現了資源限制,通過寫時復制技術實現了高效的文件操作。
資源隔離資源控制寫時復制技術,56,資源隔離,Linux內核中提供了6種系統調用,基本實現了容器需要的隔離機制。具體系統調用名稱如表4.1所示。,表4.六項隔離,57,資源控制,的全稱是,它是Linux內核的特性,主要作用是限制、記錄和隔離進程組()使用的物理資源(CPU、、IO等)。它的主要功能包括以下幾點:資源限制:限制進程使用的資源上限,如最大內存、文件系統緩存使用限制。優先級控制:不同的組可以有不同的優先級,如CPU使用和磁盤IO吞吐。審計:計算group的資源使用情況,可以用來計費。控制:掛起一組進程,或者重啟一組進程。,58,3.寫時復制技術,圖4.鏡像的文件結構,當第一次啟動一個容器時,初始的讀寫層是空的,當文件系統發生變化時,這些變化都會應用到這一層之上。例如,如果想修改一個文件,這個文件首先會從該讀寫層下的只讀層復制到該讀寫層。由此,該文件的只讀版本依然存在于只讀層,只是被讀寫層的該文件副本所隱藏,該機制則被稱之為寫時復制()。
,59,4.8實踐:容器,4.8.1安裝.8.2運行第一個容器,60,4.8.1安裝,1安裝可選內核模塊包以使用AUFS2添加使用HTTPS傳輸的軟件包以及CA證書3添加軟件源的GPG密鑰向.list中添加軟件源更新apt軟件包緩存,并安裝-ce測試是否安裝正確,61,4.8.2運行第一個容器,1pull命令從遠端的倉庫中將容器鏡像拉取到本地2執行命令來運行容器,62,初識云計算虛擬化的定義服務器虛擬化商用虛擬機技術新型硬件虛擬化實踐:Xen虛擬化技術實踐:KVM虛擬化技術輕量級虛擬化實踐:容器,小結,63,課內復習,1什么是虛擬化技術?該技術有哪三種類型?2全虛擬化技術和半虛擬化技術的區別是什么?3硬件虛擬化技術有哪些代表?4什么是輕量級虛擬化技術?其代表是什么?,64,課外思考,1虛擬化技術對提高計算資源的利用率究竟帶來了怎樣的好處?2輕量級虛擬化技術相對于傳統虛擬化技術的優勢和不足是什么?3容器的輕量級虛擬化技術還能進一步輕量化嗎?有什么樣的方式?,65,動手實踐1,KVM目前已成為學術界和工業界的主流虛擬機監控器(VMM)之一,在越來越多的應用場景中使用。
任務:通過KVM的官方網站下載并安裝使用KVM,進一步了解KVM的原理。任務:通過的官方網站下載安裝基準測試程序()對一個KVM系統的性能進行評測和比較。,66,動手實踐2,是目前最流行的輕量級虛擬化解決方案之一,開始在越來越多的場合中替代傳統的虛擬機技術。任務:通過的官方網站下載并安裝使用最新的,進一步了解的原理。任務:通過基準測試程序對容器和傳統虛擬機的性能進行評測和比較。,67,