5 云存儲
5.1 云存儲實例分析
現有的云存儲更多的是一種在線遠程備份系統,Hu等人針對上面的4種云存儲系統進行了測試、比較和分析,當將8GB的文件備份到云存儲系統中時,有的系統的備份時間超過了30個小時,還有的系統在經過4天的時間還未備份完成,當他們將數據集減小到2GB左右時,云備份系統才回復到基本正常的工作狀態。
圖6 2.12GB數據的備份時間
圖6表示Hu等人在四個不同的云存儲系統下備份2.12GB數據時的遠程備份時間,其中橫坐標從左到右的四種情況分別表示單個2.12GB的大普通文件、單個2.12GB的大稀疏文件、很多小的普通文件組成2.12GB的數據集、很多小的稀疏文件組成2.12GB的數據集,這里的稀疏文件表示該文件不包含用戶數據,也沒有分配用來存儲用戶數據的磁盤空間,當數據被寫入稀疏文件時,文件系統(例如:NTFS)才逐漸地為其分配磁盤空間.可以看到對于正常2,12GB的文件數據四個系統的備份時間都超過了5小時,圖7表示相應的恢復時間,恢復比備份要相對塊很多,這主要是由于網絡的上行鏈路和下行鏈路帶寬的不對稱造成的,通過大量的測試分析,Hu等人得出了以下結論:
圖7 2.12GB數據的恢復時間
1)云存儲系統必須對于網絡失效具有回彈性,同時能夠實現大文件的增量備份;
2)云存儲提供商在進行大數據的網絡傳輸時還要進行加密、壓縮等預處理以避免網絡延遲;
3)云存儲用戶需要手動檢測重要的文件是否都已經進行了備份;
4)云存儲用戶應該將云存儲系統作為本地備份系統的一種補充,而不能將其當成主要的備份策略。
個人認為,現有的云存儲應對普通用戶小數據的備份與恢復應該問題不大,但是企業級用戶大數據量的存儲與恢復則要慎重考慮。
5.2云存儲系統面臨的挑戰
云存儲系統中主要的存儲設備磁盤驅動器是一種機電混合設備,這使得和計算相比,存儲系統具有了很多不同的特性,由于信息數字化所產生的呈指數級增漲的數據對存儲系統提出了嚴峻的挑戰,隨著社會信息化程度的不斷提高,對數據存儲的急劇提升,導致了以"計算"為中心到以"數據存儲"為中心的觀念革新,在過去的十多年中,磁盤的區域密度、軌密度和線密度分別獲得了100%,50%和30%的增長,在存儲領域有兩個重要的技術對存儲系統的發展和存儲容量的擴展產生了重要的影響,第一個是并行存儲,比如磁盤陣列技術,第二個就是網絡技術對存儲系統體系結構的影響,通過將網絡引入存儲系統,改變主機與外部存儲節點間的連接模式,出現了若干新型存儲體系結構:附網存儲(networkattached storage,NAS)和存儲區域網(storage area network,SAN),網絡存儲技術對于解決存儲設備的分散性、I/O的并行性、協議的高效性提供了一種很好的手段,網絡與存儲設備不同的結合方式可以形成不同拓撲結構的網絡存儲系統,不同的拓撲結構對于系統性能的影響又各不相同.但由于性能、價格、可擴展性等各方面的原因,他們也還是不足以應對爆炸性的數據增長。
存儲系統必須要從少數的存儲引擎向連在網絡上的成千上萬的商用化存儲設備進行轉變,在過去的十多年中集群網絡的重要進展之一是可以將成千上萬的節點連起來,同時保證高可擴展性和相對較低的通訊開銷,因此,我們認為,采用商用化的技術來構造可擴展的集群是云存儲的基本組件,因為,我們可以像搭積木的形式來聚合存儲組件以構造大規模的存儲系統,但是現有的存儲系統進行規模的擴展之后還存在很多待解決的問題。
5.2.1 名字空間
存儲器空間的組織和分配,數據的存儲、保護和檢索都依賴于文件系統,文件系統由文件和目錄組成,數據按其內容、結構和用途命名成不同的文件,而目錄則構建文件系統的層次化結構,現代的文件系統一般都是按樹形的層次架構來組織文件和目錄,集群文件系統往往也采用樹形架構來構造名字空間,然而,當數據的訪問從樹根走向樹葉的時候,訪問的延遲會響應的增加,另外,還有兩個重要的因素導致樹形架構不適合于云存儲環境,第一,樹根本身就是一個單一失效點,而且很容易形成系統的瓶頸,第二,樹形架構很難在Internet上擴展到地理上分布的規模,另外,層次化結構使得文件的訪問效率不高,每一層目錄都隱藏了它所包含的子目錄和文件,用戶很難知道一個目錄下面到底有哪些文件和子目錄,因此,用戶訪問某個文件時,必須通過層次型的目錄樹結構到達其保存位置,如果不知道文件保存位置,必須遍歷整個目錄,因此云存儲只有采用非集中式的名字空間來避免潛在的性能瓶頸和單點失效。
5.2.2 元數據組織
元數據是描述數據的數據,主要用來反映地址信息和控制信息,通常包括文件名、文件大小、時間戳、文件屬性等等.元數據主要是用來管理的操作數據,研究表明,在文件系統的操作中,超過50%的操作是針對元數據的,另有研究指出,使用NFS3,0時,其客戶端和服務器端交互的信息中65%的信息是和元數據相關的,元數據最重要的特點是其往往是小的隨機請求,一般來講,元數據都是存儲在磁盤上的,然而,和磁盤存儲容量的增長不同的是,由于機械組件所帶來的延遲,磁盤的平均訪問時間每年的降低不足8%.圖8表示了Hitachi的磁盤在過去十年里磁盤訪問時間和尋道時間的發展趨勢,對于這種由小的隨機請求所組成的數據訪問流中,磁盤的尋道時間是磁盤訪問延遲中最組要的部分,這是由于磁頭的穩定時間主導著磁盤的尋道時間,而且磁頭的穩定時間數年來基本上沒有太大的變化,因此,對于大規模系統來講,元數據的訪問往往成為制約整個系統性能的瓶頸。
很多分布式的存儲系統將數據訪問和元數據的訪問分離開來,在這樣的系統中,客戶端首先和元數據服務器通訊來獲取元數據包括文件名、文件位置等信息,然后,利用該元數據,客戶端直接和數據服務器通訊去訪問相應的數據,一般來講,元數據服務器的內存可以滿足大部分的讀請求,但服務器不得不周期性地訪問磁盤來讀取需要的數據,并且所有元數據的更新也要寫回到磁盤,存儲系統空間的增長可以通過增加額外的存儲服務器來保證,然而,對于一個管理數以億計的數據文件的云存儲系統,如何保證元數據的訪問性能和可擴展性?對于象云這樣的需要高可擴展性的環境,對元數據的依賴性給系統設計帶來了巨大的挑戰。
6 云傳輸
按照Nielsen法則,終端用戶的網絡帶寬以每年50%的速度增長,然而,和局域網形成鮮明對照的是,廣域網的性能不盡人意,例如,一條T1線路的帶寬只相當于千兆網的千分之一,許多幀中繼線路的帶寬只有256Kbits/秒,Garfinkel通過測量發現從美國伯克利大學到西雅圖的平均網絡寫帶寬大約是5to18Mbits/秒,通過使用網絡測試工具iperf,采用256個數據流,我們的測量數據表明在格林尼治標準時間下午7點到10點,從英國劍橋大學到中國北京的平均網絡帶寬大約是14Mbits/秒。
基于以上的測試數據,如果假設網絡帶寬為20Mbits/秒,Armbrustetal,等人作了簡單的計算,計算結果表明從美國伯克利大學傳輸10TB數據到西雅圖需要45天的時間(10×1012Bytes/(20×106bits/秒)=4,000,000秒=45天).如果通過亞馬遜來進行該數據傳輸,需要另外向亞馬遜支付1000美金的網絡傳輸費用,另外,由于廣域網物理距離的原因,不可避免的時延也會對帶寬造成影響,例如,一個T3鏈路(44.736Mbits/秒),當時延超過40ms時,其帶寬很快就下降到與T1鏈路(1.544Mbits/秒)相當。
如果是進行云備份,時間上的開銷相對還可以忍受,因為用戶在本地還有一個數據拷貝可供使用,但如果是從云存儲系統中恢復數據,這是無法讓人接受的,特別是對于那些需要提供24×7×365業務連續性的企業級用戶,為了緩解這個問題,對于云存儲系統中大數據量的恢復,云存儲提供商Mozy和CrashPlan提供了一個不得已的選擇,在用戶許可的情況下,將數據轉存在DVD或者硬盤上,然后通過特快專遞的形式交付給用戶。
為了優化廣域網環境下大規模數據傳輸的性能,我們曾將數據在套接字層,在發送端進行分割,然后利用多個套接字流進行并行傳輸,最后在接收端進行數據的重組(如圖10(c)所示),理論上講,對TCP管道而言,其最大的吞吐量為帶寬延遲乘積,即容量=帶寬×環回時間,在傳輸窗口一定的情況下(圖10中紅色的方形區表示傳輸窗口,缺省為64K字節),按通常100Mb的網絡帶寬來計算,傳統的單套接字流顯然無法填滿TCP管道(如圖10(a)所示),使得其效率極低,通過加大傳輸窗口可以在一定程度上提高TCP管道的利用率(如圖10(b)所示),但在丟包的情況下,會導致每次重傳的數據增加,因此,通過多個套接字流來并行傳輸的效果較好,另外,由于采用了多流,不同的數據流在必要的情況下可以走不同的路由,也能夠進一步優化廣域網的性能。
正如前面提到的,云基礎設施必須是地理上分布的,因為云的成功在很大程度上決定于其規模效應,計算和存儲相對便宜,然而,由于廣域網環境下的低帶寬、高延遲和較高的丟包率,使得廣域網成為云環境下那塊最短的木板,因此,在地理上分布的云環境下進行大規模的數據傳輸是非常昂貴的.圖靈獎獲得者JimGray在2006年就指出在廣域網上處理大數據集時,應該將程序傳給數據,而不是將數據傳給程序,另外,也可以通過數據壓縮、數據的去重等方法來減少網域網上的數據傳輸流量,降低對網絡帶寬的需求,還可以采用動態緩存、IP流量管理以及QoS等方法來降低廣域網的延遲,但是,這些方法只能在一定程度上來緩解網絡瓶頸問題,不能從根本上解決問題,因此,在設計云架構時,必須要考慮廣域網的帶寬、延遲和包丟失率所帶來的影響。
7 討論
云正成為當前學術界討論的熱點問題,工業界也紛紛推進自己的云產品,例如,EMC的云存儲產品Atmos,亞馬遜的云計算產品EC2、云存儲產品S3(Simple Storage Service)和EBS(Elastic Block Store),IBM的云計算產品BlueCloud,Google推出的在線存儲服務GDrive,Microsoft也推出WindowsAzure,各IT業巨頭也紛紛將云計算作為其戰略制高點并在世界各地建立龐大的數據中心。
但是,正如我們在4.2節和5.2節中提到的,云計算環境下虛擬機的I/O問題,云存儲環境下的元數據性能問題必將是云基礎設施的設計者不得不面對的挑戰,閃存(FlashMemory)是一種非易失性(在斷電情況下仍能保持所存儲的數據信息)的存儲器,它可以被電擦除和重編程,它具有很多優點,例如尺寸小、沒有機械部件、低功耗、高性能等,閃存已經在越來越多的場合開始取代傳統的磁盤,下頁圖11和圖12分別比較了4種不同性能的磁盤和由閃存組成的固態盤的帶寬和訪問時間,可以看到固態盤在性能方面具有非常大的優勢,在論文中我們還進一步比較了磁盤和固態盤的功耗,結果表明固態盤也具有相當的優勢,這表明,從性能的角度,固態盤可以在一定程度上解決云計算和云存儲所面臨的I/O問題,更為詳細的分析請參看論文。
閃存具有4個特點:
1)數據擦除是以塊為單位,但數據寫是以頁為單位,一個塊往往是由多個頁組成;
2)在向某一個塊寫數據之前,該塊中的數據必須要擦除;
3)每一個塊只能被寫有限的次數;
4)在一個塊內寫數據必須要順序進行。
這些特性導致固態盤的寫性能比較微妙,另外,和磁盤的壽命相比,固態盤有限的寫次數也是不得不考慮的問題,再者,固態盤的價格和容量目前還無法和磁盤競爭,因此,在試圖使用固態盤來緩解I/O問題時,還必須要同時考慮到磁盤的優勢,兩者結合使用才能發揮各自所長。
同云計算和云存儲相比,對于云傳輸的報道相對較少,現有的工作主要集中在對廣域網下的大規模數據傳輸的性能進行優化,EMC就采用SilvERPeak公司的廣域網優化產品來提高廣域網環境下數據復制的性能、可擴展性和安全性,同時降低在進行遠程復制以實現災難恢復和業務連續性時的廣域網的帶寬需求,Cisco也收購了Actona公司來提高其網絡設備在網域網環境下的性能問題,主要原因在于,目前廣泛使用的TCP/IP協議是在實驗室低速網絡環境下誕生的,在設計初期只是為了保證數據在鏈路上的可靠傳輸,因此,它并不是為廣域網而設計的網絡傳輸協議,例如,TCP/IP協議的滑動窗口,重傳和恢復等機制使得廣域網的傳輸效率急劇下降,另外,TCP的窗口尺寸、慢啟動等機制也無法充分利用已有的網絡帶寬。
云傳輸問題,在5,2節中提到的云存環境下的名字空間問題,都促使我們要重新審視在大規模數據存儲和傳輸的情況下的性能優化相關的一系列問題。
P2P是一種分布式網絡,網絡的參與者共享他們所擁有的一部分資源(如處理能力、存儲能力、數據資源等),在此網絡中的參與者既是資源提供者(Server),又是資源的獲取者(Client),P2P網絡由于其高可擴展性得到了廣泛的使用。其中分布式且結構化的P2P網絡尤其具有應用前景,這種P2P網絡中的關鍵技術是使用分布式哈希表(DistributedHashTables,DHT)來構造結構化拓撲,如:mesh、ring、d-dimensiontorus and butterfly等等,在這種網絡中,每個節點都有一個ID,每個文件有一個關鍵字Key,當宣告一個關鍵字為K1的文件時,先通過哈希映射得到對應的K1→ID1,然后將該文件存到ID號為ID1的節點,文件的存放過程需要將文件路由到該節點ID1,反過來,當查找一個關鍵字為K1的文件時,先進行哈希映射得到K1→ID1,然后將該文件從ID號為ID1的節點上取到該文件,從該網絡中取文件需要將請求消息路由到ID1節點,然后文件從ID1節點原路返回,其優點在于,在資源管理過程中同時擁有自組織特性、規模的強可縮放特性以及部署的廉價性等等,這為規模龐大的資源整合及共享提供了可能性,其中OceanStore,PAST,FreeHeaven,是最具有代表性的幾個大規模的、結構化的P2P存儲系統的代表。
圖 帶寬比較和訪問時間比較和OceanStore 的體系結構
圖表示了OceanStore的體系結構,其中最關鍵技術是將多個資源池進行高度的互連,從而允許數據在各個不同的資源池中自由地流動,用于可以根據需要連接到一個或者多個資源池,例如,如果離用戶最近的資源池中存在其所需要的數據副本,用戶可以連接到該資源池以最大程度地降低廣域網對其性能的影響,個人認為,這種結構化的P2P如果能和云存儲結合起來,對于其云存儲名字空間的管理,對于廣域網環境下大規模數據傳輸的性能優化都會帶來很大的幫助。
8 結論
在云計算之前,網格計算在學術界曾被廣為推崇并進行了大量的研究,網格計算依托互聯網絡,將地理上分布的、異構的各種不同資源組織起來,統一調度,組成虛擬的超級計算機,以協同完成需要大量計算機資源的任務,網格計算的這種架構主要用于科學計算、并行計算等問題,其往往通過作業的形式向網格提交任務,并等待處理結果的完成,因此,缺乏和普通用戶的交互性,由于其面向特定的有限的用戶,未被工業界廣泛推廣,另外,大部分的網格環境和平臺都是基于Globus來開發的,雖然Globus是一個典型的網格計算平臺,但是其構筑在傳統的操作系統之上,現代軟件往往采用模塊化的分層設計,物理資源的性能經過每一層軟件都會導致性能不同程度的降低,因此,由Globus軟件本身所帶來的性能開銷在加上操作系統的性能開銷所導致的網格環境性能的整體下降一直是網格研究社區里經常討論的問題。
不同于網格計算,云計算以用戶需求為導向,利用虛擬化技術將存儲資源、計算資源、軟件資源、數據資源等構造成動態和、可伸縮的虛擬資源,并通過網絡以服務的方式交付給廣大用戶,由于其以普通用戶為主導,并具有廣泛的市場前景,所以,最開始是由工業界以產品的形式大力推動并在短時間內產生廣泛的影響,云計算擁有網格計算所不具備的大量潛在的普通用戶,但是,云如果要避免網格計算的重蹈覆轍,必須要從體系結構進行一個全新的顛覆性的設計,當然,云最終能否成功,還受到其它很多因素的影響(例如,大量的數據存儲在云端,如何保證數據的安全和用戶隱私)。
轉載請注明出處:拓步ERP資訊網http://www.guhuozai8.cn/
本文標題:云基礎設施下的體系結構、挑戰與機遇(下)