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