第一篇 基礎篇html
第一章 緒論前端
雲計算的基本概念:後端
狹義的雲計算:安全
廣義的雲計算:服務器
雲計算的基本特徵:網絡
IAAS:infrastructure as a service架構
PAAS:platform as a service性能
SAAS:software as a service優化
雲計算的優點:雲計算
優勢和缺點:
第二章 雲計算架構以及標準化狀況
第二篇 技術篇
第三章 雲存儲
雲儲存的結構模型
兩種架構:
塊存儲,文件存儲
第四章 雲服務
第五章 虛擬化
第六章 雲桌面
第七章 雲安全
----------------------------------------------------------------------------
雲計算原理與實踐(http://book.2cto.com/201308/30081.html)
虛擬化的分類方式有不少。從虛擬化的目的來看,虛擬化主要分爲三類:平臺虛擬化、資源虛擬化和應用程序虛擬化。
平臺虛擬化(Platform Virtualization),它是整個計算環境和運行平臺的虛擬化,是計算機和操做系統級別的虛擬化,包括了服務器虛擬化和桌面虛擬化。服務器虛擬化能夠將一臺物理服務器虛擬成若干服務器使用。桌面虛擬化將桌面環境與其使用的終端設備解耦合,服務器上存放的是每一個用戶的完整桌面環境。用戶能夠在任何地方登陸到相同的桌面,而對於公司內部,便於統一管理用戶的桌面。服務器虛擬化主要經過實現服務器的主要資源虛擬化,如CPU虛擬化、內存虛擬化和I/O接口虛擬化來實現的。
資源虛擬化(Resource Virtualization),它是對服務器的資源進行的虛擬化,主要包括:內存虛擬化、存儲虛擬化、網絡虛擬化等。內存虛擬化是將服務器的內存進行虛擬化,造成多個獨立的內存塊分配給虛擬機使用。存儲虛擬化是將整個雲系統的存儲資源進行整合管理,爲用戶提供一個統一的存儲空間。網絡虛擬化是在底層物理網絡和網絡用戶之間增長一個抽象層,該抽象層向下對物理網絡資源進行分割,向上提供虛擬網絡。網絡虛擬化根據虛擬化的網絡類型不一樣通常包括虛擬局域網和虛擬專用網,從而實現整個網絡環境的虛擬化。
應用程序虛擬化(Application Virtualization),它是將應用程序從對底層的操做系統和硬件的依賴中抽象出來,從而解除應用程序與操做系統和硬件之間的耦合關係。應用程序虛擬化包括模擬、仿真、解釋技術等。表明產品有Microsoft Application Virtualization(App-V)、VMware ThinApp、Symantec Software Virtualization Solution(SVS)等。
平臺虛擬化技術又能夠細分爲如下幾大類:
(1)徹底虛擬化
徹底虛擬化(Full Virtualization)是指虛擬機經過虛擬化模擬了完整的底層硬件運行環境,包括CPU、內存、磁盤、網卡等。在客戶機操做系統和原始硬件間一些受保護的特權指令由Hypervisor(虛擬機管理程序)來捕獲和處理,使客戶操做系統無需修改就能運行,其結構如圖2-1所示。
徹底虛擬化的運行速度要快於硬件模擬,可是性能方面不如裸機,由於Hypervisor須要佔用一些資源。徹底虛擬化的最大優勢是操做系統沒有通過任何修改。它的惟一限制是操做系統必須可以支持底層硬件。表明產品有VirtualBox、KVM(Kernel-based Virtual Machine)、VMware Workstation 、VMware ESX Server和Virtual PC等。
(2)半虛擬化
半虛擬化(Paravirtualization)技術也叫超虛擬化,與徹底虛擬化比較相似,都是經過虛擬機管理程序來訪問底層硬件。不一樣的是半虛擬化雖然徹底模擬整個底層硬件,但須要修改客戶機操做系統部分訪問特權狀態的代碼,以便可以直接與虛擬機監視器(Virtual Machine Monitor,VMM)交互。
半虛擬化與徹底虛擬化相比,不須要虛擬機管理程序編譯和捕獲特權指令,所以運行速度更快。缺點是須要修改客戶機操做系統,用戶使用比較困難。表明產品有Xen、Hyper-V等。
(3)部分虛擬化
部分虛擬化(Partial Virtualization)是指Hypervisor只模擬了部分底層硬件,所以客戶機操做系統不作修改是沒法在虛擬機中運行的,其餘程序可能也須要進行修改。
(4)硬件輔助虛擬化
硬件輔助虛擬化(Hardware Assisted Virtualization)是指藉助硬件(主要是主機處理器)的幫助來實現高效的徹底虛擬化,目標還是徹底虛擬化。藉助硬件幫助建立虛擬機,監視並容許客戶機操做系統獨立運行。
在徹底虛擬化和半虛擬化中,特權指令須要經過軟件進行處理,而硬件的處理速度比軟件快不少,所以能夠用硬件來將大量的虛擬化邏輯從軟件中抽離,極大簡化了虛擬化產品架構。硬件輔助虛擬化技術每每不是單獨使用,而是配合徹底虛擬化和半虛擬化進行虛擬優化,起到輔助做用。如今市面的不少徹底虛擬化和半虛擬化產品大多支持硬件輔助虛擬化,如VirtualBox、基於內核的虛擬機(KVM)、VMware Workstation、VMware ESX Server、Xen、VT-x、AMD-V等。
(5)操做系統級虛擬化
操做系統級虛擬化(Operating System Level Virtualization)是一種在服務器操做系統中使用的輕量級虛擬化技術,內核經過建立多個虛擬的操做系統實例(內核和庫)來隔離不一樣的進程,不一樣實例中的進程徹底不瞭解對方的存在。
使用操做系統級虛擬化,全部虛擬服務器必須運行同一操做系統(不過每一個實例有各自的應用程序和用戶帳戶),靈活性較差,可是操做系統級虛擬化只須要進行少許修改,實現成本較低且運行性能不錯
目前使用較多的是服務器虛擬化,要實現服務器虛擬化必須實現服務器三大硬件資源的虛擬化。同時爲了進行更好的動態資源管理,還必須實現服務器的動態遷移。下面介紹服務器三大硬件資源虛擬化和實時遷移技術。
1.CPU虛擬化
CPU虛擬化就是經過抽象把單個物理CPU模擬成多個CPU並行,容許一臺服務器上同時運行多個操做系統,多個操做系統相互獨立,應用程序均可以在相互獨立的操做系統環境內運行而互不影響。在任意一個時刻單個物理CPU內只能運行一個虛擬的CPU指令。CPU虛擬化的目的是提升CPU的性能和利用率。虛擬CPU的運行相互獨立,互不干擾。多個虛擬機同時提供服務,使CPU長時間處於忙碌狀態,大大提升了CPU的利用率。
x86體系結構下CPU虛擬化能夠用全虛擬化、半虛擬化或硬件輔助虛擬化實現。全虛擬化主要是使用二進制代碼翻譯技術和特權級壓縮技術。二進制代碼翻譯技術是在虛擬機運行時,掃描並修改客戶機的二進制代碼將那些難以虛擬化的指令轉化爲支持虛擬化的指令。特權級壓縮技術是讓客戶機和虛擬機管理程序運行在不一樣的特權級下。因爲特權級不一樣,虛擬機管理程序能夠截獲一部分在客戶機上執行的特權指令,並對其虛擬化。半虛擬化與全虛擬化不一樣,也採用特權級壓縮技術,同時需修改客戶機操做系統代碼,將特權指令相關操做轉換爲對虛擬化管理程序(Hypervisor)的超級調用(Hypercall)來執行。全虛擬化和半虛擬化都是純軟件的CPU虛擬化,未修改x86處理器自己,中間開銷較大。硬件輔助虛擬化使CPU加入新的指令集和運行模式來讓虛擬機管理程序和客戶機操做系統分別運行在合適的模式下,完成與CPU虛擬化相關的功能。目前兩大處理器生產商Intel和AMD都推出了硬件輔助虛擬化產品,如Intel VT技術和AMD-V技術都是CPU硬件輔助虛擬化技術。
2.內存虛擬化
內存虛擬化是把物理的內存交給虛擬機管理程序統一管理,一般採用分塊將其包裝成多個虛擬的物理內存分配給若干個虛擬機使用,使每一個虛擬機擁有各自獨立的內存空間,互不干擾。虛擬機管理程序維護客戶機物理地址到宿主機物理地址的映射關係。內存虛擬化的目標是作好虛擬機內存空間之間的隔離,分塊共享的思想使整個虛擬機都認爲本身擁有了整個內存地址。
x86體系結構下內存虛擬化一樣能夠用全虛擬化、半虛擬化或硬件輔助虛擬化實現。全虛擬化採用影子頁表法(Shadow Page Table)技術,影子頁表技術即客戶機操做系統的內存頁表記錄的內存邏輯地址到客戶機操做系統看到的「物理」地址映射關係,同時虛擬機管理程序維護一張對應的頁表,記錄客戶機操做系統看到的「物理」地址到真實物理機的機器內存地址映射關係。虛擬機管理程序維護的頁表隨着客戶機操做系統的頁表變化而變化,故稱爲影子頁表。當有內存訪問時,虛擬機管理程序將影子頁表交給內存管理單元(Memory Management Unit,MMU)進行地址轉換,獲取到內存的真實物理地址。採用影子頁表技術表明產品有KVM、VMware Workstation、VMware ESX Server。半虛擬化採用頁表寫入技術,當客戶機操做系統建立一個頁表時,須向虛擬機管理程序註冊該頁表。以後在客戶機運行的時候,虛擬機管理程序剝奪客戶機操做系統的寫權限,並不斷管理和維護該頁表。當客戶機操做系統上的程序訪問內存時,能夠直接在本身的頁表內得到真實的機器地址。Xen是採用頁表寫入技術的表明。硬件輔助虛擬化採用擴展頁表(Extended Page Table,EPT)技術,擴展頁表技術經過使用硬件使其在原有的頁表基礎上增長一個頁表,增長的頁表稱爲擴展頁表。經過這個頁表,客戶機操做系統上的程序訪問內存時,能夠直接將客戶機的內存地址翻譯爲真實的機器地址,從而減輕整個內存虛擬化帶來的開銷。
3.I/O接口虛擬化
I/O接口虛擬化即把物理機的真實設備統一管理,包裝成多個虛擬設備分配給若干個虛擬機使用,響應每一個虛擬機的設備請求和I/O請求。I/O接口虛擬化包括虛擬網卡和虛擬交換機。I/O接口虛擬化的目標不只是讓虛擬機能準確、快速訪問到它們所需的I/O資源,並且要作好它們之間的隔離工做,避免出現混亂,更重要的是在提升I/O資源利用率的同時減輕由虛擬化帶來的開銷。
x86體系結構下I/O接口虛擬化一樣能夠用全虛擬化、半虛擬化或硬件輔助虛擬化實現。全虛擬化是徹底模擬I/O設備來實現的。半虛擬化是採用前端/後端模擬,Xen就是採用該方法。硬件輔助虛擬化是採用直接劃分,直接將物理設備分配給某個客戶機操做系統,由客戶機操做系統直接訪問I/O 設備(不經過虛擬機管理程序)。目前使用硬件輔助虛擬化I/O技術的主要有Intel 的VT-d、AMD的IOMMU、 PCI-SIG的IOV(I/O Virtualization)等。
4.實時遷移技術
實時遷移(Live Migration)技術是指在保證虛擬機上服務正常運行的同時,將虛擬機的運行狀態完整快速地從源主機硬件平臺遷移到新主機上。移動過程用戶不會察覺,虛擬機只須要很是短暫的停機時間。
實時遷移過程須要虛擬機管理程序協助,即須要源主機和目的主機上的虛擬機管理程序相互配合,完成虛擬機運行狀態的完整複製。複製開始前,目的主機要清理資源,確保有足夠的資源空間接收這個虛擬機。複製開始後,內存頁面不斷地從源主機複製到目的主機,複製過程對源主機的運行不產生影響。當複製完成後,目的虛擬機運行,源虛擬機終止,實時遷移過程完成。
實時遷移能夠用於排除危險,資源維護,資源優化。當一個虛擬機資源緊張時,能夠實時遷移到另外一臺資源較多的主機上,且遷移過程不影響虛擬機的運行。在一個虛擬機須要維護時,可暫時把虛擬機遷移到另外一臺主機上,維護後可再遷移回來,整個過程用戶感受不到任何變化。把虛擬機從一個資源緊張的主機上遷移到資源充裕的主機上,便於虛擬機整合,資源優化。
目前使用較多的兩種實時遷移技術是VMware的vMotion技術和Xen的Live Migration技術。Xen的Live Migration技術採用預複製遷移,相比簡單的中止複製,遷移過程所須要的虛擬機停機時間大大縮短。
2.3.2 數據存儲的幾種模式
海量的數據存儲是現在計算機存儲研究的熱點和難點。海量數據存儲面臨着難管理、不易擴展、訪問效率較低、安全性等問題。所以適合海量數據存儲的理想模式必須可以具備訪問高效率、易擴展性、跨平臺性好、高可靠性、高安全性等的數據共享能力。
數據存儲模式分類如圖2-3所示。
數據存儲根據服務器類型分爲封閉系統的存儲和開放系統的存儲。封閉系統主要是指大型機,不對外開放,本身獨立地運行。而開放系統通常指基於包括Windows、Linux、Mac OS等操做系統的小型工做站,不一樣的工做站點間經過網絡鏈接起來,協同合做實現複雜的計算。開放系統的存儲分爲:內置存儲和外掛存儲。內置存儲是指固化在硬件設備上的存儲。外掛存儲是指經過總線鏈接到服務器的存儲。開放系統的外掛存儲根據鏈接的方式又分爲:直連式存儲 (Direct-Attached Storage,DAS)和網絡化存儲(Fabric-Attached Storage,FAS)。直連式存儲每每是經過SCSI鏈接,網絡化存儲經過網線鏈接。網絡化存儲根據傳輸協議的不一樣又分爲:網絡附加存儲(Network-Attached Storage,NAS)和存儲區域網絡(Storage Area Network,SAN)。
NAS是將存儲設備做爲存儲系統的附加設備,經過網絡鏈接到系統中。網絡附加存儲是一個相對於普通服務器只少了大量計算功能的專用文件服務器,所以它的功能很完備。它是一種將分佈、獨立的數據整合爲大型、集中化管理的數據中心,以便於對不一樣主機和應用服務器進行訪問的技術。NAS是一種文件級的網絡存儲模式,結構如圖2-4所示。NAS擁有本身的文件系統,通常經過網絡文件系統(Network File System,NFS)或通用因特網文件系統(Common Internet File System,CIFS)對外提供文件訪問服務。NAS 提供統一的存儲接口,全部的存儲設備鏈接到現有網絡的網絡拓撲結構相同,所以NAS的共享性很好。NAS不只僅是做爲存儲設備,更多的是做爲數據備份和恢復的設備。
SAN是一種快速的專用子網,子網內部是經過光纖交換機、光纖路由器、光纖集線器等網絡鏈接設備,將磁盤陣列、磁帶等存儲設備與相關服務器鏈接起來的。SAN是一種塊級的網絡存儲模式,結構如圖2-5所示。存儲區域網絡根據鏈接的方式分爲光纖通道(Fiber Channel,FC)SAN和IP SAN。FC SAN是以光纖通道做爲傳輸介質,克服了傳統上與小型計算機系統接口(Small Computer System Interface,SCSI)相連的線纜限制,極大地拓展了服務器和存儲之間的距離,從而增長了更多鏈接的可能性。可是FC SAN的傳輸距離一般不超過50千米。即便這樣,對於局域網來說,通常足夠了。IP SAN技術是一種在傳統IP以太網上架構一個SAN存儲網絡,經過IP以太網把服務器與存儲設備鏈接起來的SAN存儲技術。IP SAN技術採用的是集中存儲方式,大大提升了存儲空間的利用率。
NAS的優勢是跨平臺性很是好,在不一樣平臺上實現數據共享很是方便,可是NAS 服務器位於客戶端與存儲設備中間,處於數據傳輸鏈路上,當服務的請求數激增時,位於中心的NAS 服務器處理能力將成爲整個存儲系統的I/O瓶頸,存儲性能的瓶頸是NAS 未能在存儲模式中獨佔鰲頭的緣由。相比而言,SAN具備高容量、高可靠性、快速傳輸等優勢,一樣SAN也有一個缺陷是跨平臺性較差,因爲沒有統一的存儲系統接口,數據共享不方便。鑑於NAS和SAN的優缺點,對象存儲技術綜合了NAS 和SAN 兩種存儲結構的優點,同時具備了NAS的共享數據優點和SAN的快速直接訪問優點。對象存儲技術提供基於對象的訪問接口,對象更接近於人們的天然生活,更容易被人接受。
對象存儲(Object-Based Storage,OBS) 通常由三部分組成: Client、MDS(Metadata Server)和對象存儲設備(Object Storage Device,OSD),結構如圖2-6所示。OBS是一種對象級的存儲模式。Client 爲客戶端,是用戶直接接觸的部分,主要用來發送數據操做請求,包括數據的讀寫等;MDS爲元數據服務器,是對象存儲系統的基礎,主要負責元數據的管理,並保證數據訪問的一致性;OSD是對象存儲系統的基礎,是對象數據的存儲設備。相比通常的存儲設備磁盤,OSD相似於一個小型的計算機,擁有本身的處理器、內存、存儲磁盤、網絡接口等,主要功能是管理本地的對象(Object)。OSD是Object的集合。Object是對象存儲的基本單元。每一個Object包含兩部分:文件的數據和數據屬性集。數據的屬性集記錄數據的屬性,這些屬性能夠由管理員自定義。數據的屬性顯示數據的特徵,方便數據同步等操做。在傳統的存儲中,塊設備須要記錄每一個存儲數據塊在設備上的位置,既須要佔用必定的空間,管理又比較麻煩;對象存儲中OSD具備必定的智能,Object維護本身的屬性,大大簡化了存儲系統管理的複雜性,將管理任務分解,減輕了存儲系統的管理壓力,同時增長了靈活性。
雖然如今面向對象存儲仍屬於在研階段,並無市場化,但它更接近天然語言描述事物,相比其餘存儲技術,對象存儲技術具備高性能優點、存儲設備智能化、數據共享更容易、管理更方便、更好的安全性等優勢。對象存儲是數據存儲技術的將來發展方向。