云計算的分類
1、基礎設施云(Infrastructure Cloud):為用戶提供的是底層的、接近于直接操作硬件資源的服務接口,通過調用這些接口,用戶可以直接獲得計算和存儲能力,而且相當靈活自如,幾乎不受邏輯上的限制。用戶需要進行大量工作來設計和實現自己的應用。因為基礎設施云除了為用戶提供計算和存儲等基礎功能外,不進一步做任何應用類型的假設。
2、平臺云(PlatformCloud):為用戶提供一個托管平臺,用戶可以將他們開發和運營的應用托管到云平臺中。但是,這個應用的開發部署必須遵守該平臺特定的規則和限制。
3、應用云(ApplicationCloud):為用戶提供可以為其直接所有的應用,這些應用一般是基于瀏覽器的,針對某一一項特定的功能。但是,它們是靈活性最低的,因為一種應用云只針對一種特定的功能,無法提供其他功能的應用。
云計算的本質
云計算利用高速互聯網的傳輸能力,將數據的處理過程從個人計算機或服務器移到互聯網上的集群中。這些計算機都是普通的工業標準服務器,由一個大型的數據處理中心管理。數據中心按客戶的需求即時進行資源的聚合、重組和分配,達到與超級計算機同樣的效果。
云計算的體系架構
云計算核心業務層通常可以分為:基礎設施即服務(IaaS),平臺即服務(PaaS),軟件即服務(SaaS)三個層次。
云計算的云存儲技術:
云存儲是指通過集群應用、網格技術、或分布式文件系統等功能,將網絡中大量各種不同類型的存儲設備通過應用軟件集合起來協同工作,共同對外提供數據存儲和業務訪問功能的一個系統。
云存儲系統的結構模型
云數據存儲技術
云計算采用分布式存儲的方式來存儲數據,采用冗余存儲的方式來保證存儲數據的可靠性,即為同一份數據存儲多個副本。云計算系統需要同時滿足大量用戶的需求,并行地為大量用戶提供服務。因此,云計算的數據存儲技術必須具有高吞吐率和高傳輸率的特點。
云計算的數據存儲技術主要有谷歌非開源的GFS(Google File System)和Hadoop開發團隊開發的開源的GFS——HDFS(Hadoop Distributed File System)大部分IT廠商,包括Yahoo、Intel的“云”計劃采用的都是HDFS的數據存儲技術。未來的發展將將集中在超大規模的數據存儲、數據加密和安全性保證以及繼續提高I/O速率等方面。
GFS是一個可擴展的分布式文件系統,用于大型的、分布式的、對大量數據進行訪問的應用。GFS應用于廉價的普通硬件上,但可以提供容錯功能,可以給大量用戶提供總體性能較高的服務。一個GFS集群包含一個主服務器(master)和多個塊服務器(chunkserver)被多個客戶端(client)訪問。
HDFS Hadoop中的分布式文件系統HDFS由一個管理節點(Namenode)和四個數據節點(Datanode)組成。Namenode是整個HDFS的核心,管理文件系統的Namepace和客戶端對文件的訪問。
主要云計算平臺
目前,Amazon、Google、IBM、Microsoft、Sun等公司提出的云計算基礎或云計算平臺雖然比較商業化,但對于研究云計算確實比較有參考價值的。當然針對目前商業云計算解決方案存在的種種問題,開源組織和學術界也紛紛提出了許多云計算系統或平臺方案。
云計算的關鍵技術
1、快速部署(Rapid Deployment)
自數據中心誕生以來,快速部署就是一項重要的功能需求。數據中心管理員和用戶一直在追求更快、更高效、更靈活的部署方案。
首先,在云環境中資源和應用不僅變化范圍大而且動態性高。用戶所需的服務主要采用按需部署方式。其次,不同層次云計算環境中服務的部署模式是不一樣的。另外,部署過程所支持的軟件系統形式多樣,形同結構各不相同,部署工具應能適應被部署對象的變化。
2、資源調度(Resource Dispatching)
資源調度是指在特定環境下根據一定的資源使用規則,在不同資源使用者之間進行資源調整的過程。這些資源使用者對應著不同的計算任務,每個計算任務在操作系統中對應著一個或多個進程。虛擬機的出現使得所有的使得所有的計算任務都被封裝在一個虛擬機的內部。
3、大規模數據處理(Massive Data Processing)
以互聯網為計算平臺的云計算會廣泛的涉及到大數據處理任務。由于大規模數據處理操作非常頻繁,很多研究者在從事支持大規模數據處理的編程模型方面的研究。當今世界最流行的大規模數據處理的編程模型可以說是有google公司所設計的Map Reduce編程模型。Map Reduce編程模型將一個任務分成很多更細粒度的子任務 ,這些子任務能夠在空閑的處理節點之間調度,使得處理速度越快的節點處理越多的任務,從而避免處理速度慢的節點延長整個任務的完成時間。
4、大規模消息通信(Massive Message Communication)
云計算的一個核心理念就是資源和軟件功能都是以服務的形式發布的,不同服務之間經常需要進行消息通信協作,因此,可靠、安全、高性能的通信基礎設施對于云計算的成功至關重要。異步消息通信機制可以使得云計算每個層次中的內部組件之間及各個層次之間解耦合,并且保證云計算服務的高可用性。目前,云計算環境中的大規模數據通信技術仍舊處于發展階段。
5、大規模分布式存儲(Massive Distributed Storage)
分布式存儲要求存儲資源能夠被抽象表示和統一管理,并且能夠保證數據讀/寫操作的安全性,可靠性、性能等各方面的要求。分布式文件系統允許用戶像訪問本地文件系統一樣訪問遠程服務器的文件系統,用戶可以將自己的數據存儲在多個遠程服務器上,分布式文件系統基本上都是冗余備份機制和容錯機制。以保證數據讀/寫的正確性。云環境的存儲服務基于分布式文件系統并根據云存儲的特征做了相應的配置和改進。典型的分布式文件系統有Google公司設計的可伸縮的Google File System(GFS)。目前,在云計算環境下的大規模分布式存儲方面已經有了一些研究成果和應用。Google公司設計的用來存儲大規模結構化數據的分布式存儲系統Big Table用來將網頁存儲成分布式的、多維的、有序的圖。
6、虛擬化技術(Virtualization)
虛擬化的核心理念是以透明的方式提供抽象的底層資源,這種抽象的底層資源,這種抽象的方法并不受地理位置或底層資源的物理位置所限。就技術本身而言,它并不是全新的事物,早在20世紀70年代就已經在IBM的虛擬計算系統中得以應用。隨著云計算的興起,虛擬化技術再次成為熱點,究其原因主要在于:首先,計算機系統在功能變得日益強大的同時,本身也越來越難以管理;其次,當計算機系統發展到以用戶為核心的階段時,人們更關心的是如何通過接口和服務來滿足更復雜多變的用戶要求。由于虛擬化技術能夠靈活組織多種計算機資源,解除上、下層資源的綁定和約束關系,提升資源使用率,發揮資源聚合效能。為用戶提供個性化和普通話的資源使用環境,因而得到高度重視。利用虛擬化技術,能夠有效整合數據中心所有的硬件資源、虛擬服務器和其他基礎設施,并通過高效的管理和調度為上層應用提供動態、可伸縮、靈活的基礎設施平臺,從而滿足云計算隨需擴展、按需部署、即需即用的需求。不過,各種虛擬化技術各有優勢和不足。例如目前主流的半虛擬化技術,其虛擬機管理帶來的CPU額外開銷較少,但內存性能開銷較大,因此原有的CPU密集型應用能夠較好地遷移到虛擬化平臺上來,而內存或I/O密集型應用就會遇到較大的性能問題。因此,如何融合各種虛擬化方法的優勢,按照應用任務的需求,將各種資源進行動態共享和靈活配置,使計算系統具備按需構建能力,都是云計算中需要深入研究的問題。