官术网_书友最值得收藏!

1.4 云計算涉及的關(guān)鍵技術(shù)

云計算的概念不僅僅局限于計算,實際上直接稱為“云”更加合適,云的本質(zhì)是網(wǎng)絡為用戶提供按需即取(Service on Demand)的服務,包括提供計算能力、存儲能力以及網(wǎng)絡能力的各種服務的組合。各種基于云的服務則都需要相應的技術(shù)來提供支撐,下面就列舉了云計算涉及的一些關(guān)鍵技術(shù)。

1.虛擬化技術(shù)

在計算機中,虛擬化(Virtualization)是一種資源管理技術(shù),是將計算機的各種實體資源,如服務器、網(wǎng)絡、內(nèi)存及存儲等,予以抽象、轉(zhuǎn)換后呈現(xiàn)出來,打破實體結(jié)構(gòu)間不可切割的障礙,使得用戶可以使用比原本組態(tài)更好的方式來應用這些資源。這些資源的新虛擬部分是不受現(xiàn)有資源的架設方式、地域或物理組態(tài)所限制。一般所指的虛擬化資源包括計算能力和資料存儲。

在實際的生產(chǎn)環(huán)境中,虛擬化技術(shù)主要用來解決高性能物理硬件產(chǎn)能過剩和老舊硬件產(chǎn)能過低的重組和重用,透明化底層物理硬件,從而最大化利用物理硬件。

虛擬化技術(shù)與多任務以及超線程技術(shù)是完全不同的。多任務是指在一個操作系統(tǒng)中多個程序同時運行,而通過虛擬化技術(shù),則可以同時運行多個操作系統(tǒng),而且每一個操作系統(tǒng)中都有多個程序運行,每一個操作系統(tǒng)都運行在一個虛擬的CPU或者虛擬主機上;超線程技術(shù)只是單CPU模擬雙CPU以平衡程序運行性能,這兩個模擬出來的CPU是不能分離的,只能協(xié)同工作。

2.分布式處理技術(shù)

分布式處理和并行處理是為了提高并行處理速度所采用的兩種不同的體系架構(gòu)。

并行處理是利用多個功能部件或多個處理器同時工作來提高系統(tǒng)性能或可靠性的計算機系統(tǒng),這種系統(tǒng)至少包含指令級或指令級以上的并行。

分布式處理則是將不同地點或具有不同功能,或擁有不同數(shù)據(jù)的多臺計算機通過通信網(wǎng)絡連接起來,在控制系統(tǒng)的統(tǒng)一管理控制下,協(xié)調(diào)完成大規(guī)模信息處理任務的計算機系統(tǒng)。

分布式系統(tǒng)是建立在網(wǎng)絡之上的軟件系統(tǒng),具有高度的內(nèi)聚性和透明性。以分布式數(shù)據(jù)庫為例,內(nèi)聚性是指每一個數(shù)據(jù)庫分布節(jié)點高度自治,有本地的數(shù)據(jù)庫管理系統(tǒng);透明性是指每一個數(shù)據(jù)庫分布節(jié)點對用戶的應用來說都是透明的,即看不出是本地還是遠程。在分布式數(shù)據(jù)庫系統(tǒng)中,用戶感覺不到數(shù)據(jù)是分布的,即用戶無須知道關(guān)系是否分割、有無副本、數(shù)據(jù)存放于哪個站點以及事務在哪個站點上執(zhí)行等。

為了達到互操作性,用戶需要一個標準的分布式計算環(huán)境,在這個環(huán)境里,所有系統(tǒng)和資源都可用。

DCE(分布式計算環(huán)境)是OSF(開放系統(tǒng)基金會)開發(fā)的分布式計算技術(shù)的工業(yè)標準集,提供了保護和控制數(shù)據(jù)訪問的安全服務、名字服務,以及高度可伸縮的模型,主要用于組織極為分散的用戶、服務和數(shù)據(jù)。DCE可在所有主要的計算平臺上運行,并設計成支持異型硬件和軟件環(huán)境下的分布式應用。

CAP理論是由Eric Brewer提出的分布式系統(tǒng)中最為重要的理論之一:

Consistency:(強)一致性,事務保障,ACID模型。

Availiablity:(高)可用性,冗余以避免單點,至少做到柔性可用(服務降級)。

Partitiontolerance:(高)可擴展性(分區(qū)容錯性),一般要求系統(tǒng)能夠自動按需擴展,比如HBase。

CAP三個因素最多只能滿足兩個,不可能三者兼顧。對于分布式系統(tǒng)來說,分區(qū)容錯性是基本要求,所以必然要放棄一致性。對于大型網(wǎng)站來說,分區(qū)容錯性和可用性的要求更高,所以一般都會選擇適當放棄一致性。對應CAP理論,NoSQL追求的是AP,而傳統(tǒng)數(shù)據(jù)庫追求的是CA,這也是傳統(tǒng)數(shù)據(jù)庫的擴展能力有限的原因。

在CAP三者中,“可擴展性”是分布式系統(tǒng)的特有性質(zhì)。分布式系統(tǒng)的設計初衷就是利用集群多機的能力處理單機無法解決的問題。當需要擴展系統(tǒng)性能時,一種做法是優(yōu)化系統(tǒng)的性能或者升級硬件(scale-up),另一種做法就是“簡單”地增加機器來擴展系統(tǒng)的規(guī)模(scale-out)。好的分布式系統(tǒng)總在追求“線性擴展性”,即性能可以隨集群數(shù)量增長而線性增長。

可用性和可擴展性一般是相關(guān)聯(lián)的,可擴展性好的系統(tǒng),其可用性一般會比較高,因為有多個服務(數(shù)據(jù))節(jié)點,不是整體的單點。所以分布式系統(tǒng)的所有問題基本都是在一致性與可用性和可擴展性這兩者之間的一個協(xié)調(diào)和平衡。對于沒有狀態(tài)的系統(tǒng),不存在一致性問題,根據(jù)CAP原理,它們的可用性和分區(qū)容錯性都是很高的,簡單地添加機器就可以實現(xiàn)線性擴展。而對于有狀態(tài)的系統(tǒng),則需要根據(jù)業(yè)務需求和特性在CAP三者中犧牲其中之一。一般來說,交易系統(tǒng)類的業(yè)務對一致性的要求比較高,一般會采用ACID模型來保證數(shù)據(jù)的強一致性,所以其可用性和擴展性就比較差。而其他大多數(shù)業(yè)務系統(tǒng)一般不需要保證強一致性,只要最終一致就可以了,因此它們一般采用BASE模型,用最終一致性的思想來設計分布式系統(tǒng),從而使得系統(tǒng)可以達到很高的可用性和擴展性。

3.海量數(shù)據(jù)存儲技術(shù)

為了保證高可用、高可靠和經(jīng)濟性,云計算采用分布式存儲的方式來存儲數(shù)據(jù),采用冗余存儲的方式來保證存儲數(shù)據(jù)的可靠性,即為同一份數(shù)據(jù)存儲多個副本。

另外,云計算系統(tǒng)需要同時滿足大量用戶的需求,并行地為大量用戶提供服務。因此,云計算的數(shù)據(jù)存儲必須具有高吞吐率和高傳輸率的特點。

云計算系統(tǒng)中廣泛使用的數(shù)據(jù)存儲系統(tǒng)是Google的GFS和Hadoop團隊開發(fā)的GFS的開源實現(xiàn)HDFS。

GFS即Google文件系統(tǒng)(Google File System),是一個可擴展的分布式文件系統(tǒng),用于大型的、分布式的對大量數(shù)據(jù)進行訪問的應用。GFS的設計思想不同于傳統(tǒng)的文件系統(tǒng),它是針對大規(guī)模數(shù)據(jù)處理和Google應用特性而設計的。它運行于廉價的普通硬件上,但可以提供容錯功能。它可以給大量的用戶提供總體性能較高的服務。

GFS由一個Master和大量塊服務器構(gòu)成。Master存放文件系統(tǒng)的所有元數(shù)據(jù),包括名字空間、存取控制、文件分塊信息、文件塊的位置信息等。GFS中的文件被切分為64MB的塊進行存儲。

GFS采用冗余存儲的方式來保證數(shù)據(jù)的可靠性,每份數(shù)據(jù)在系統(tǒng)中保存3個以上的備份。為了保證數(shù)據(jù)的一致性,對于數(shù)據(jù)的所有修改需要在所有備份上進行,并用版本號的方式來確保所有備份處于一致的狀態(tài)。

客戶端不通過Master讀取數(shù)據(jù),以免大量讀操作使得Master成為系統(tǒng)瓶頸??蛻舳藦腗aster獲取目標數(shù)據(jù)塊的位置信息后,直接與塊服務器交互并進行讀操作。

GFS將寫操作控制信號和數(shù)據(jù)流分開,即客戶端在獲取Master的寫授權(quán)后,將數(shù)據(jù)傳輸給所有的數(shù)據(jù)副本,在所有數(shù)據(jù)副本都收到修改的數(shù)據(jù)后,客戶端才發(fā)出寫請求控制信號。在所有數(shù)據(jù)副本更新完數(shù)據(jù)后,由主副本向客戶端發(fā)出寫操作完成控制信號。當然,云計算的海量數(shù)據(jù)存儲技術(shù)并不是只有GFS,其他IT廠商,包括微軟、Hadoop開發(fā)團隊也在開發(fā)相應的數(shù)據(jù)管理工具。其本質(zhì)上是通過一種分布式數(shù)據(jù)存儲技術(shù),以及與之相關(guān)的虛擬化技術(shù),對上層屏蔽具體的物理存儲器的位置、信息等。在快速的數(shù)據(jù)定位、數(shù)據(jù)安全性、數(shù)據(jù)可靠性以及底層設備內(nèi)存儲數(shù)據(jù)量的均衡等方面仍需要繼續(xù)研究完善。

Ceph是云計算分布式存儲中另一個明星項目,由Sage Weil于2004年發(fā)起。Ceph是典型的分布式文件系統(tǒng),它面向錯誤設計,假設大規(guī)模存儲(PB級存儲)故障是常見現(xiàn)象而不是例外情況,可輕松擴展到數(shù)PB級容量,支持多種工作負載,高性能并且具備高可靠性。

作為分布式文件系統(tǒng),Ceph能夠在維護POSIX兼容性的同時加入復制和容錯功能。自2010年3月底開始,用戶可以在Linux內(nèi)核(從2.6.34版本開始)中找到Ceph的身影。作為Linux的文件系統(tǒng)備選之一,Ceph.ko已經(jīng)集成到Linux內(nèi)核之中。2016年,Ceph官方認為其已經(jīng)具備生產(chǎn)環(huán)境應用能力。

同時,Ceph也是統(tǒng)一存儲系統(tǒng),支持三種接口:

Object:有原生的API,而且也兼容Swift和S3的API。

Block:支持精簡配置、快照、克隆。

File:POSIX接口,支持快照。

目前Inktank公司負責Ceph的開發(fā),但Ceph是開源的,遵循LGPL。Inktank還積極整合Ceph與其他云計算和大數(shù)據(jù)平臺,目前Ceph支持OpenStack、CloudStack、OpenNebula、Hadoop、Docker等。

4.海量數(shù)據(jù)管理技術(shù)

云計算需要對分布的、海量的數(shù)據(jù)進行處理、分析,因此,數(shù)據(jù)管理技術(shù)必須能夠高效地管理大量的數(shù)據(jù)。云計算系統(tǒng)中的數(shù)據(jù)管理技術(shù)主要是Google的BT(Big Table)數(shù)據(jù)管理技術(shù)和Hadoop團隊開發(fā)的開源數(shù)據(jù)管理模塊HBase。由于云數(shù)據(jù)存儲管理形式不同于傳統(tǒng)的RDBMS數(shù)據(jù)管理方式,如何在規(guī)模巨大的分布式數(shù)據(jù)中找到特定的數(shù)據(jù)是云計算數(shù)據(jù)管理技術(shù)所必須解決的問題。同時,由于管理形式的不同,造成傳統(tǒng)的SQL數(shù)據(jù)庫接口無法直接移植到云管理系統(tǒng)中來,目前一些研究關(guān)注于為云數(shù)據(jù)管理提供RDBMS和SQL的接口,如基于Hadoop的子項目HBase和Hive等。另外,在云數(shù)據(jù)管理方面,如何保證數(shù)據(jù)安全性和數(shù)據(jù)訪問高效性也是研究關(guān)注的重點問題之一。

5.編程方式

云計算提供了分布式計算模式,客觀上要求必須有分布式編程模式。云計算采用了一種思想簡潔的分布式并行編程模型Map-Reduce。Map-Reduce是一種編程模型和任務調(diào)度模型,主要用于數(shù)據(jù)集的并行運算和并行任務的調(diào)度處理。在該模式下,用戶只需要自行編寫Map函數(shù)和Reduce函數(shù)即可進行并行計算。其中,Map函數(shù)中定義各節(jié)點上分塊數(shù)據(jù)的處理方法,而Reduce函數(shù)定義中間結(jié)果的保存方法以及最終結(jié)果的歸納方法。

6.云計算平臺管理技術(shù)

云計算資源規(guī)模龐大,服務器數(shù)量眾多并分布在不同的地點,且同時運行著數(shù)百種應用,因此如何有效地管理這些服務器并保證整個系統(tǒng)提供不間斷的服務是一個巨大的挑戰(zhàn)。云計算系統(tǒng)的平臺管理技術(shù)能夠使大量服務器協(xié)同工作并方便地進行業(yè)務部署和開通,快速發(fā)現(xiàn)和恢復系統(tǒng)故障,通過自動化、智能化手段實現(xiàn)大規(guī)模系統(tǒng)的可靠運營。

主站蜘蛛池模板: 电白县| 鄯善县| 中江县| 台山市| 皋兰县| 泗洪县| 淮阳县| 徐闻县| 石城县| 洛宁县| 郯城县| 江安县| 榆中县| 衡阳县| 汝阳县| 姜堰市| 武乡县| 黄浦区| 芮城县| 乡城县| 田阳县| 谷城县| 泰安市| 木兰县| 塘沽区| 特克斯县| 榆林市| 双峰县| 高雄县| 乐安县| 星座| 邵阳市| 蓬溪县| 承德县| 来宾市| 白水县| 东丰县| 县级市| 会宁县| 大余县| 古田县|