何麗麗
摘要:隨著網(wǎng)絡技術的快速發(fā)展,在不同場景下,用戶對于信息獲取的實時性需求越來越呈現(xiàn)多樣化。研究表明,數(shù)據(jù)放置策略優(yōu)化可有效提高數(shù)據(jù)請求的效率,使得在對性能影響較小的基礎上,最終滿足用戶對數(shù)據(jù)獲取的實時性需求。該文擬在多云存儲平臺下對數(shù)據(jù)放置策略進行優(yōu)化,根據(jù)性能及實時性需求的不同,在副本數(shù)量、放置位置等方面進行改進和完善,從而滿足不同場景的數(shù)據(jù)實時性需求。
關鍵詞:云存儲;數(shù)據(jù)放置;冗余機制;一致性hash
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2016)07-0006-03
1 概述
近年來,隨著大數(shù)據(jù)和移動互聯(lián)網(wǎng)的發(fā)展,以及國家、大型企業(yè)信息化的大力建設,很多政府部門和企事業(yè)單位都紛紛建立了存儲大量數(shù)據(jù)和媒體的應用系統(tǒng)[1]。1998 年圖靈獎獲得者 Jim Gray 曾斷言:現(xiàn)在每18個月新增的存儲量等于有史以來存儲量之和。根據(jù)預測,2020年數(shù)據(jù)宇宙將達到35.2 ZB(1 ZB = 1百萬PB)[5]。面對每天產(chǎn)生的大量數(shù)據(jù),銀行、國有企業(yè)、中大型企業(yè)等都耗費大量人力、物力、財力去建立自己的數(shù)據(jù)中心。但對于小型企業(yè)或服務短時用戶來說,建立數(shù)據(jù)中心的費用是不值得去耗費或完全無法支付得起的,從而催生了一種按需收費的云存儲技術。
隨著云計算和軟件即(SaaS)服務的興起和發(fā)展,云存儲已成為信息存儲領域研究的熱點話題。與傳統(tǒng)的存儲設備相比,云存儲不僅僅是多個磁盤的整合,更是一個網(wǎng)絡設備、存儲設備、服務器、應用軟件、公用訪問接口、接入網(wǎng)和客戶端程序等多個部分組成的系統(tǒng)[2-3]。云存儲主要提供的是存儲服務,用戶通過網(wǎng)絡將自己的數(shù)據(jù)上傳至云服務提供商提供的在線存儲空間中(公有云)。用戶只需對自己所存儲的那部分數(shù)據(jù)所占的存儲空間支付費用,不必花費高昂的費用去搭建數(shù)據(jù)中心,節(jié)省了大量的費用。如果用戶數(shù)據(jù)需要安全和保密,則企業(yè)或用戶可根據(jù)自身條件和情況,搭建企業(yè)內(nèi)部的數(shù)據(jù)中心,用來保存機密性數(shù)據(jù),同公有云協(xié)同構成混合云來提供存儲服務。
云存儲是通過集群技術、分布式文件系統(tǒng),將網(wǎng)絡中大量不同類型的存儲設備整合起來協(xié)同工作,共同對外提供數(shù)據(jù)存儲和業(yè)務訪問功能[5]。此概念一經(jīng)提出,就得到眾多存儲廠商的廣泛關注和支持。Amazon公司推出彈性塊存儲(EBS)技術支持數(shù)據(jù)持久性存儲;Google推出在線存儲服務GDrive;EMC公司收購BerkeleyDataSystems,取得該公司的Mozy在線服務軟件,并開展SaaS業(yè)務;Microsoft公司推出WindowsAzure,并在美國各地建立龐大的數(shù)據(jù)中心;IBM也將云計算標準作為全球備份中心擴展方案的一部分;阿里巴巴也在世界各地逐漸建立起了龐大的數(shù)據(jù)中心Aliyun[4]。那么面對眾多的云服務提供商,用戶選擇單云還是多云成為需要考慮的問題。對于用戶來講,不僅要滿足用戶對于性能和安全的要求,還應盡量地去降低成本;而對于提供商來講,則重在考慮存儲效率及服務的安全性和穩(wěn)定性,保證滿足用戶的正常需求。
為應對云服務商壟斷和單點故障問題,在學術界就有人提出多云存儲架構。為更好地解決多云存儲中的性能和可靠性保證,本文提出一種基于多云存儲的數(shù)據(jù)放置策略方案,通過優(yōu)化數(shù)據(jù)放置和副本存儲方案,提高數(shù)據(jù)訪問性能和存儲效率。這樣既可以為用戶提供安全穩(wěn)定的存儲服務,服務商還可進一步提高存儲效率。
2 基于多云存儲的數(shù)據(jù)放置策略設計
2.1 云計算與云存儲
云計算是在分布式處理(distributed computing)、并行處理(parallel computing)和網(wǎng)格計算(grid computing)等基礎上進一步發(fā)展的產(chǎn)物,是透過網(wǎng)絡將龐大的計算處理程序自動分拆成無數(shù)個較小的子程序,然后再交由多臺服務器所組成的龐大系統(tǒng)經(jīng)計算、分析后、將處理結果回傳給用戶[6]。運用該技術,將不同地區(qū)、不同類型的單一服務器或PC中的計算資源和存儲資源整合,通過虛擬化技術統(tǒng)一到龐大的云計算系統(tǒng)中,達到可在數(shù)秒內(nèi)處理數(shù)以萬計的數(shù)據(jù)請求和訪問。云計算系統(tǒng)不僅具備對數(shù)據(jù)進行處理和計算的功能,還具備存儲大量數(shù)據(jù)的能力,由此可以把云存儲理解為以數(shù)據(jù)存儲和數(shù)據(jù)管理為中心的云計算系統(tǒng)。從三層模型分析得出,云計算和云存儲的訪問層、接口層相同,在基礎層方面,云存儲增加了數(shù)據(jù)管理和數(shù)據(jù)安全的部分相關功能。
2.2 多云存儲
在The ACM Symposium on Cloud Computing (SoCC) 2010會議的“RACS: A Case for Cloud Storage Diversity”的文章中就已提出云服務商壟斷的概念,即當用戶要將存儲的全部數(shù)據(jù)從單云中遷出時,就不得不為此付出高昂的費用和代價,這樣便使得用戶對某個云服務平臺存在依賴與綁定。在2011年,Amazon 云平臺因數(shù)據(jù)過度備份而耗盡其存儲空間,從而導致Amazon云平臺在短時間內(nèi)出現(xiàn)宕機和停止服務的狀況,使得多個基于Amazon平臺的網(wǎng)站長達24小時都處在離線狀態(tài)。因此為應對和解決云服務商壟斷及單點故障問題,則在學術界提出多云的概念。
多云是將各種類型(public、private、hybrid clouds)和品牌(Azure、Amazon、Rackspace、Aliyun等)的云產(chǎn)品部署在一起。而多云存儲則是將這些不同云服務提供商提供的公有云存儲整合在一個統(tǒng)一的存儲架構體系之內(nèi),用戶上傳的數(shù)據(jù)分散存儲在不同的云存儲平臺上。
2.3 冗余機制
隨著人們對于數(shù)據(jù)安全性及可靠性需求的不斷提高,文件的單副本存儲已經(jīng)完全不能滿足用戶需求,因此就需要采用多副本進行存儲,以實現(xiàn)數(shù)據(jù)存儲的可靠性。多副本存儲不僅僅在性能上可以保證數(shù)據(jù)存取的高度并行性,而且在容錯上根據(jù)副本數(shù)目的不同可以提供不同層次的容錯度。
當用戶將數(shù)據(jù)上傳至多云架構時,則需明確指出該數(shù)據(jù)的容錯度、實時性需求,性能要求、數(shù)據(jù)獲取的主要區(qū)域,位置控制器可根據(jù)用戶數(shù)據(jù)的各項參數(shù),決定改數(shù)據(jù)需要采用什么樣的冗余機制、存儲區(qū)域的選擇等。例如針對于新聞來說,這類數(shù)據(jù)對于實時性要求比較高,在存儲時需采用多個副本進行存儲(通常為三副本存儲),這樣就可提供高并行存取。對于游戲數(shù)據(jù)來說,則對存取性能要求比較高,因此我們則需更高的冗余度來進行存儲,以提供更優(yōu)質的服務。對于國內(nèi)新聞來說,超過90%以上的用戶都來自國內(nèi)區(qū)域,因此我們在存儲數(shù)據(jù)時,則應在國內(nèi)的數(shù)據(jù)中心上進行多副本冗余存儲,以保證多用戶的實時高并發(fā)訪問。
上圖(圖4)為冗余機制下數(shù)據(jù)放置的結構圖,當用戶將需要存儲的數(shù)據(jù)上傳至多云平臺時,首先會將數(shù)據(jù)上傳至數(shù)據(jù)放置控制器,控制器根據(jù)用戶設定的容錯度、實時性、性能以及數(shù)據(jù)訪問的區(qū)域的參數(shù),決定數(shù)據(jù)需要采取哪種冗余機制進行存儲。然后按照控制器設定的冗余要求進行冗余存儲。存儲數(shù)據(jù)的云平臺會根據(jù)云服務商提供的區(qū)域特點,擬在每個云的不同區(qū)域(美國西部、歐洲、亞太地區(qū)、南美洲)中選取一個存儲節(jié)點。然后將多個云服務商提供的存儲資源進行合并,構成多節(jié)點的冗余存儲架構。
圖5中描述將六個文件(A、B、C、D、E、F)采用三副本冗余機制上傳至多云平臺架構的數(shù)據(jù)分布圖。從圖中可以表現(xiàn)出冗余機制的以下優(yōu)點:(1)當用戶請求文件A時,多云架構可從Azure、Amazon、Rackspace三個云存儲服務中并行下載所需文件,提高用戶請求訪問效率,降低訪問延遲。(2)解決了單云故障問題,當Amazon云平臺出現(xiàn)故障宕機時,如用戶需要獲取文件B時,則可從Rackspace或Aliyun云平臺進行獲取,避免了單點故障問題造成的存儲和訪問服務中斷。(3)當文件發(fā)生損壞或丟失時,可從包含該文件的兩個云平臺上進行快速恢復,滿足用戶對于容錯度的需求。綜上所述,引入冗余機制不僅可以滿足用戶對于實時信息獲取的低延遲和高并發(fā)訪問,避免了由于單點故障造成的數(shù)據(jù)或服務中斷問題,還提供了數(shù)據(jù)丟失時的快速恢復機制,保證為用戶提供可靠的數(shù)據(jù)存儲和訪問服務。
2.4 一致性hash算法概述
consistent hashing 算法早在 1997 年就在論文 Consistent hashing and random trees 中被提出,目前在 cache 系統(tǒng)中應用非常廣泛。在一致性hash算法中,為了滿足平衡性,引入了“虛擬節(jié)點”的概念?!疤摂M節(jié)點”( virtual node )是實際節(jié)點(機器)在 hash 空間的復制品( replica ),一實際個節(jié)點(機器)對應了若干個“虛擬節(jié)點”,這個對應個數(shù)也成為“復制個數(shù)”,“虛擬節(jié)點”在 hash 空間中以hash值排列,每個物理節(jié)點生成的虛擬節(jié)點越多,各個物理節(jié)點之間的負載越均衡,新加入的物理服務器對原有物理服務器的影響就越保持一致[7]。增加虛擬節(jié)點后,可以使得數(shù)據(jù)可以較為分散且均勻地分布在各個節(jié)點上。
上圖(圖6)展示了為引入虛擬節(jié)點的對象映射圖,從圖中可以看出當Node2節(jié)點出現(xiàn)故障時,object1指向了Node1節(jié)點,object2、object3、object4均指向了Node3節(jié)點,因此造成了數(shù)據(jù)分布特別不均勻;為了應對這一缺點,從而引出“虛擬節(jié)點”的概念,下圖(圖7)描述的是當引入虛擬節(jié)點時數(shù)據(jù)的分布情況,對比圖6明顯地解決了分布不均勻的問題。根據(jù)以上的分析,本文通過運用一致性hash算法到多云架構,使得上傳的數(shù)據(jù)能夠均勻地分布在多云架構中,緩解不同區(qū)域數(shù)據(jù)存取的訪問性能和效率,提高用戶體驗。
2.5 場景應用
隨著信息技術的發(fā)展,用戶對于應用的體驗要求越來越高,那么如何提高用戶體驗以及保證不同區(qū)域用戶體驗的相似性成為研究的重點話題,本文擬通過一致性hash算法來解決該問題,使得用戶數(shù)據(jù)在存儲時盡可能地分散均勻存儲,避免數(shù)據(jù)存取的不均勻性和兩極分化性。
隨著應用的不斷發(fā)展和普及,用戶變得越來越分散,那么如何為全球各地的用戶提供比較均衡的性能?因此我們提出利用一致性hash算法可以保證數(shù)據(jù)分布平衡性的特點,將此應用到多云存儲架構中,保證用戶體驗的相對均衡,緩解不同區(qū)域用戶體驗的兩極分化現(xiàn)象。例如有一款游戲,它的用戶分布在全世界各地,那么我們在存儲游戲本身數(shù)據(jù)和用戶數(shù)據(jù)時,因為考慮到當前主流云存儲服務提供商(Azure、Amazon、Rackspace等)的所有regions分布,我們會在美國西部、歐洲、亞太地區(qū)、南美洲等四個區(qū)域進行數(shù)據(jù)存儲,這樣既可保證處在世界各地用戶的體驗相差不會太大,提高應用的用戶體驗和評價。另一種情況,我們則會進行特殊處理。例如針對于國內(nèi)新聞來講,有可能訪問該新聞數(shù)據(jù)的用戶90%以上都處于國內(nèi)的區(qū)域,那么我們在對數(shù)據(jù)存儲時,則會將數(shù)據(jù)保存在亞太地區(qū)regions中的多個數(shù)據(jù)中心,但數(shù)據(jù)進行存取時,則應保證數(shù)據(jù)在國內(nèi)區(qū)域盡可能地分散和均勻,這樣不僅可保證用戶集中訪問的服務可靠性,還可保證全國各地的用戶體驗近似相同,避免出現(xiàn)兩極分化的現(xiàn)象。綜上所述,在對數(shù)據(jù)進行存儲模式設置時,我們會根據(jù)數(shù)據(jù)的屬性和情況,進行適應性地選擇存儲模式,在保證性能的同時,還可使得性能在不同區(qū)域中得到均衡,避免或減少兩極分化的出現(xiàn)。
下圖(圖8)中描述的是對數(shù)據(jù)進行隨機放置和使用一致性hash算法放置出現(xiàn)的情況對比。從圖中上圖可以看出,當我們采用隨機放置策略時,有可能就會出現(xiàn)數(shù)據(jù)的區(qū)域聚集,導致有些區(qū)域的數(shù)據(jù)塊較少。針對于圖中所示情況,當美國、歐洲、亞太地區(qū)進行數(shù)據(jù)存取時,都能夠較快地獲取到所需數(shù)據(jù);而當南美洲用戶進行數(shù)據(jù)訪問時,則有可能就會出現(xiàn)較大延遲,因為該區(qū)域沒有存儲相關數(shù)據(jù),需要在距離較近的美國存儲區(qū)域進行數(shù)據(jù)獲取,但是由于距離以及網(wǎng)絡帶寬等的影響,會使得用戶獲取數(shù)據(jù)較慢,從而使得用戶體驗較差;例如當南美洲以為用戶訪問數(shù)據(jù)時,因為該區(qū)域未存儲文件,因此用戶的每一次訪問都需從其他區(qū)域進行獲取,那么這就導致南美洲區(qū)域的用戶體驗特別差;而其他三個區(qū)域包含了所有的文件,因此當這三個區(qū)域的用戶訪問數(shù)據(jù)時,都可以及時獲取到自己所需數(shù)據(jù),用戶體驗較好。這種數(shù)據(jù)放置情況下,只保證了一部分用戶的較快數(shù)據(jù)訪問,用戶體驗兩極分化現(xiàn)象嚴重。圖中下圖表示采用一致性hash進行數(shù)據(jù)放置的情況,從中可以看出數(shù)據(jù)分布相對比較均勻,四個區(qū)域中的任何一個進行數(shù)據(jù)訪問時,大多數(shù)情況都可以在自己所在區(qū)域的云上獲取所需數(shù)據(jù)。當出現(xiàn)所需數(shù)據(jù)不在當前區(qū)域時,則可就近選擇區(qū)域進行數(shù)據(jù)獲取。例如當一位美國用戶需要獲取文件File4時,其所在區(qū)域不包含該文件,則可從距離相對較近的南美洲進行獲取。由于這種情況相對較少,而且四個區(qū)域的用戶出現(xiàn)這種情況的概率基本一致,因此在保證了用戶體驗較好的情況下,也進一步改善兩極分化現(xiàn)象。
3 結論
本文針對多云存儲架構下數(shù)據(jù)放置的不均衡性、用戶對于信息獲取實時性的需求,提出將多副本存儲機制和一致性hash算法應用到多云存儲架構中,多副本存儲機制可以保證用戶對于數(shù)據(jù)獲取性能的要求,還可保證用戶數(shù)據(jù)的安全性和可靠 性;一致性hash算法在保證用戶對于實時信息快速獲取的同時,還可保證用戶體驗的均衡,避免出現(xiàn)兩極分化現(xiàn)象。
參考文獻:
[1] 詹增榮.多云存儲平臺資源共享與安全架構設計[J].信息技術,2015,15:150-151.
[2] Hayes B. Cloud Computing [J].Communications of the ACM, 2008, 51(7):9-11.
[3] LIN G, DASMALCHI G, ZHU J. CloudComputing and IT as a Service:Opportun itiesand Challenges [C]//Proceedings of the IEEE6th International Conference on WebServices (ICWS08),Sep 23-26,2008,Beijing, China. Los Alamitos, CA,USA: IEEEComputer Society, 2008:5.
[4] 周可,等.云存儲技術及其應用[J].中興通訊技術,2010,16(4):24-27.
[5] 晏強,張曉鋒,丁蕊.云存儲技術研究[J].計算機與信息技術,2011,12:22-24.
[6] 張龍立.云存儲技術探討[J].云計算與SaaS.電信科學.2010,S1:71-74.
[7] 李寧.基于一致性Hash算法的分布式緩存數(shù)據(jù)冗余[J].軟件導 刊.2016,15(1):47-50.