專利名稱:一種應用于分布式存儲的多活動副本機制及其存取方法
技術領域:
本發(fā)明涉及一種應用于分布式存儲的多活動副本機制及其存取方法,是適用于分布式存儲和云存儲系統(tǒng)的一種新機制和方法,屬于計算機科學與技術領域。
背景技術:
在大數(shù)據(jù)時代,分布式存儲是解決海量數(shù)據(jù)存儲問題的有效途徑。文件副本策略作為一種保證數(shù)據(jù)高可用性的有效手段,可以提高分布式存儲系統(tǒng)的可靠性和訪問速度,均衡系統(tǒng)負載。分布式存儲系統(tǒng)將網(wǎng)絡中大量各種不同類型的存儲設備通過應用軟件集合起來協(xié)同工作,并通過一定的應用軟件或接口共同對外提供數(shù)據(jù)存儲和業(yè)務訪問功能,實現(xiàn)海量數(shù)據(jù)的分布式存儲和并行I/o訪問。它的基本結(jié)構(gòu)如圖I所示,主要包括元數(shù)據(jù)服務器 (MS, Metadata servers)、數(shù)據(jù)服務器(DS, Data servers)和客戶端(Client)三個部分。然而隨著系統(tǒng)規(guī)模的擴大,硬件設備或軟件架構(gòu)不可避免會出現(xiàn)故障,從而造成數(shù)據(jù)的損壞和丟失,影響到數(shù)據(jù)的正常訪問。而副本技術將數(shù)據(jù)復制多份放在分布式系統(tǒng)的多個節(jié)點上,單個或多個節(jié)點的數(shù)據(jù)發(fā)生損壞或者丟失,甚至整個節(jié)點的失效,都不會導致副本的無法訪問,從而能夠保證數(shù)據(jù)的完整性和可用性。并且動態(tài)副本策略會根據(jù)系統(tǒng)環(huán)境和應用需求的變化動態(tài)調(diào)整副本的個數(shù)和存儲位置,從而提高系統(tǒng)的響應速度,并能實現(xiàn)負載均衡。不同的應用場合對副本策略也提出了不同的需求。對于一個讀操作集中的應用,關注的是數(shù)據(jù)的可用性,需要盡可能地將副本分布在廣闊的節(jié)點上,提高讀操作的性能和訪問速度;而對于一個寫操作集中的應用,數(shù)據(jù)的一致性更為重要,需要將副本集中部署,以方便數(shù)據(jù)的寫入和更新。目前,主流的分布式存儲系統(tǒng)包括GFS、HDFS、Dynamo、PVFS等,它們的副本策略都存在兩個共同的問題。首先,在進行讀操作時,通常只有一個文件副本是活動可用的,也就是說只有一個副本提供數(shù)據(jù),其它副本只是起到數(shù)據(jù)備份和容錯作用。這樣就造成了系統(tǒng)資源的浪費,并且當用戶訪問量很大時,活動副本所在的節(jié)點會產(chǎn)生I/O瓶頸或者網(wǎng)絡擁堵。其次,它們沒有把副本存放策略的實現(xiàn)開放給用戶,用戶無法根據(jù)自己的實際需求來指定文件副本存放的具體位置?;谶@種情況,本發(fā)明提出一種應用于分布式存儲的多活動副本機制及其存取方法。該方法首先確保在讀取數(shù)據(jù)時系統(tǒng)中每個文件副本都是活動可用的,用戶可隨意存取其中的任意副本,克服單一活動副本的缺陷;其次,系統(tǒng)可根據(jù)用戶需求動態(tài)調(diào)整副本數(shù)目和存放位置,加快數(shù)據(jù)的訪問。
發(fā)明內(nèi)容
針對背景技術所述,本發(fā)明“一種應用于分布式存儲的多活動副本機制及其存取方法”包括兩個部分多活動副本機制和基于該機制的動態(tài)副本存取方法,旨在解決讀操作頻繁的分布式存儲系統(tǒng)中易出現(xiàn)的網(wǎng)絡擁堵和磁盤I/o瓶頸問題,提高系統(tǒng)的可靠性和響應速度。I、多活動副本機制所謂多活動副本機制,是指系統(tǒng)中每個文件副本都是活動可用的,用戶可根據(jù)需要隨意存取其中的任意副本。如圖2所示,原始文件有三個副本,分別存放在數(shù)據(jù)中心I的數(shù)據(jù)服務器DS1、DS2和數(shù)據(jù)中心2的數(shù)據(jù)服務器DS3上。在某一時刻,當用戶訪問量很大時,如果只有副本I提供數(shù)據(jù),那么存儲該副本的數(shù)據(jù)服務器DSl就會因吞吐量過大而不可避免地達到I/O瓶頸,DSl所在的網(wǎng)絡也會產(chǎn)生擁塞。而多活動副本機制通過讓多個副本同時提供數(shù)據(jù),將用戶的訪問分散到不同數(shù)據(jù)中心的多個數(shù)據(jù)服務器上,增大數(shù)據(jù)服務器總的磁盤I/O吞吐量,降低單個服務器的網(wǎng)絡負載。此時,數(shù)據(jù)服務器DS1、DS2和DS3共同對外提供存取服務,副本 I、副本2和副本3同時被用戶所讀寫,從而避免了出現(xiàn)上述情況。2、動態(tài)副本存取方法基于多活動副本機制的動態(tài)副本存取方法,位于分布式存儲系統(tǒng)的元數(shù)據(jù)服務器上,是分布式存儲系統(tǒng)的一個軟件模塊。元數(shù)據(jù)服務器主要通過四個模塊來完成多活動副本的讀取和動態(tài)調(diào)整功能,包括數(shù)據(jù)節(jié)點信息維護模塊、路由分析模塊、用戶請求處理模塊和動態(tài)副本管理模塊。圖3是各個模塊及信息的利用關系。下面介紹各組成部分。(I)數(shù)據(jù)服務器信息維護模塊(DIM, Data server Information Module):該模塊記錄整個系統(tǒng)中文件到數(shù)據(jù)塊和數(shù)據(jù)塊到數(shù)據(jù)服務器的映射關系,根據(jù)數(shù)據(jù)服務器的反饋信息監(jiān)控數(shù)據(jù)服務器和文件副本的工作狀態(tài)。(2)路由分析模塊(RAM,Routing Analysis Module):該模塊分析數(shù)據(jù)中心和用戶以及數(shù)據(jù)中心之間的路由關系,確保數(shù)據(jù)能夠在最好的網(wǎng)絡狀況下進行傳輸,避免網(wǎng)絡擁堵。(3)用戶請求處理模塊(URM,User Request Module):該模塊對用戶的訪問權限進行認證,根據(jù)用戶請求將相應的元數(shù)據(jù)信息發(fā)送給用戶,用戶根據(jù)這些控制信息與數(shù)據(jù)服務器進行數(shù)據(jù)交互。(4)動態(tài)副本管理模塊(DRM, Dynamic Replication Module).該模塊管理文件副本的讀取和寫入,并能夠根據(jù)用戶行為和系統(tǒng)的1/0、網(wǎng)絡狀況,動態(tài)調(diào)整副本數(shù)目,將副本存放在合適的數(shù)據(jù)服務器上。一種基于多活動副本機制的動態(tài)副本存取方法包括圖4所示的7個步驟(I)數(shù)據(jù)服務器信息維護DM模塊監(jiān)控系統(tǒng)中數(shù)據(jù)服務器的工作狀態(tài),記錄每個節(jié)點的1/0吞吐量、網(wǎng)絡帶寬和文件副本的存放位置等元數(shù)據(jù)信息。(2)用戶讀寫請求處理URM模塊驗證用戶的訪問權限,并記錄用戶的網(wǎng)絡位置和路由情況。若用戶請求為寫數(shù)據(jù),繼續(xù)步驟(3);若用戶請求為讀數(shù)據(jù),進入步驟(5)。(3)文件副本的初始化存儲URM模塊將節(jié)點的控制信息發(fā)送給用戶,用戶據(jù)此向數(shù)據(jù)服務器傳送數(shù)據(jù),DRM模塊進行副本存儲。當沒有特殊應用需求時,如圖5所示,DRM默認的副本數(shù)目為三個。其中副本I和副本2放置在本地數(shù)據(jù)中心的兩個不同數(shù)據(jù)服務器DSl和DS2上,用戶與數(shù)據(jù)中心I在同一⑶N域內(nèi)進行數(shù)據(jù)交互,加快數(shù)據(jù)流的傳輸,避免網(wǎng)絡擁堵;DRM采用Round-Robin方法將副本3放置在遠程數(shù)據(jù)中心2的數(shù)據(jù)服務器DS3上,保證數(shù)據(jù)的可靠性。(4)副本數(shù)目和存放位置的主動調(diào)整很多情況下,用戶在本地數(shù)據(jù)中心存放的數(shù)據(jù)往往不是由本地用戶讀取,而是提供給遠端的其他用戶,當遠端用戶從本地數(shù)據(jù)中心大量讀取數(shù)據(jù)時同樣會造成網(wǎng)絡擁堵。理想情況下,每個數(shù)據(jù)中心內(nèi)都存放一個副本可以保證用戶的快速訪問,但是這會造成不必要的資源浪費,消耗更大的管理和維護成本。這就要求DRM根據(jù)不同應用需求進行調(diào)整,DRM根據(jù)文件可能被大量用戶使用的區(qū)域,將副本推送(PUSH)到該CDN域內(nèi)對應的數(shù)據(jù)中心內(nèi)緩存起來。如圖6所示,DRM主動將副本數(shù)據(jù)推送到數(shù)據(jù)中心3和4上,并在數(shù)據(jù)服務器DS4和DS5上緩存,方便同一⑶N域內(nèi)用戶的訪問。這一步是副本的預處理過程,主要通過人工配置完成。由于這個步驟是DRM主動完成的,因此稱之為主動調(diào)整過程。(5)數(shù)據(jù)中心和數(shù)據(jù)服務器的選擇RAM模塊根據(jù)用戶的網(wǎng)絡位置和路由情況,找到用戶所在CDN域內(nèi)的數(shù)據(jù)中心和數(shù)據(jù)服務器。(6)多活動副本的讀取URM模塊根據(jù)RAM的選擇將相應的元數(shù)據(jù)信息發(fā)送給用戶。若該數(shù)據(jù)中心的數(shù)據(jù)服務器上有用戶請求的副本數(shù)據(jù),則用戶與數(shù)據(jù)服務器建立連接進行多活動副本的讀??;否則繼續(xù)步驟(7)進行副本的第二次調(diào)整。(7)副本數(shù)目和存放位置的被動調(diào)整如圖7所示,當與用戶連接的數(shù)據(jù)中心(例如圖中的數(shù)據(jù)中心5和6)沒有請求的數(shù)據(jù)時,數(shù)據(jù)中心會啟動DRM的拉取(PULL)方法,將其它數(shù)據(jù)中心(圖中的數(shù)據(jù)中心I)存儲的副本數(shù)據(jù)緩存到本地數(shù)據(jù)服務器(數(shù)據(jù)服務器 DS6和DS9)上,然后與用戶進行數(shù)據(jù)交互;當用戶訪問量很大時,存儲該副本緩存數(shù)據(jù)的服務器(例如數(shù)據(jù)服務器DS6)的磁盤I/O吞吐量可能會很快達到瓶頸,造成數(shù)據(jù)的無法訪問,這時DRM會在該數(shù)據(jù)中心的其它數(shù)據(jù)服務器(DS7和DS8)上新建其它緩存,同時向外提供服務,以提高系統(tǒng)的I/O性能。隨著副本數(shù)目的增多,系統(tǒng)的存儲量會呈線性增大趨勢,為降低系統(tǒng)的存儲壓力,增大存儲容量,副本的緩存數(shù)據(jù)通常具有實效性,默認為24小時。這個步驟是DRM被動完成的,因此稱之為被動調(diào)整過程。這個方法是對第一次副本調(diào)整的優(yōu)化,這里副本數(shù)目和和存放位置的調(diào)整是按需分配的。根據(jù)以上步驟即可完成基于多活動副本機制的動態(tài)副本存取過程。
圖I分布式存儲系統(tǒng)的基本結(jié)構(gòu)圖2多活動副本機制的基本原理圖3基于多活動副本機制的動態(tài)副本存取方法的各個模塊及利用關系圖4基于多活動副本機制的動態(tài)副本存取步驟圖5副本的初始化存儲過程圖6副本的主動調(diào)整過程圖7副本的被動調(diào)整過程圖8基于多活動副本機制的動態(tài)副本存取方法使用實例具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例也僅僅是本發(fā)明的一部分實施例,而不是全部實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。為了說明一種基于多活動副本機制的動態(tài)副本存取方法,這里給出了一個實例。實例以現(xiàn)實生活中某門戶網(wǎng)站提供視頻服務這種應用為基礎,假設分布式存儲系統(tǒng)有北京、上海、廣州、成都、武漢五個數(shù)據(jù)中心,每個數(shù)據(jù)中心有百臺數(shù)據(jù)服務器。相應的參數(shù)為元數(shù)據(jù)服務器和數(shù)據(jù)中心之間以千兆以太網(wǎng)連接,網(wǎng)絡吞吐量為Bt :1000M/S每臺數(shù)據(jù)服務器的最大磁盤I/O為Umax 300M/S ;用戶訪問本地數(shù)據(jù)中心的數(shù)據(jù)流量為Vtl :1M/S,訪問其他數(shù)據(jù)中心則降為Vt2 :200KB/S。假設記者A從廣州拍攝了一段比賽視頻,視頻大小為M 500M,需要將視頻數(shù)據(jù)提供給用戶訪問,采用基于多活動副本機制的動態(tài)副本存取方法主要通過如圖8所示的四個 階段完成。(I)副本的默認存儲元數(shù)據(jù)服務器根據(jù)記者所在的位置選擇了廣州數(shù)據(jù)中心,并將此數(shù)據(jù)中心的元數(shù)據(jù)信息發(fā)送給記者A的客戶端,隨后記者A與廣州數(shù)據(jù)中心建立連接開始上傳數(shù)據(jù);同時元數(shù)據(jù)服務器采用輪詢的方式選擇了武漢數(shù)據(jù)中心,在記者A上傳數(shù)據(jù)的同時,廣州數(shù)據(jù)中心也會將數(shù)據(jù)傳輸?shù)轿錆h數(shù)據(jù)中心進行備份;完成后系統(tǒng)中副本數(shù)目為3個,分別為副本I、副本2、副本3。視頻在本地的上傳時間為Tup = M/Vtl = 500/1 =500S,而副本從廣州數(shù)據(jù)中心存儲到武漢的最大延遲為Tdelay = M/Bt = 500/1000 = 0. 5S ;若副本直接從用戶上傳到武漢數(shù)據(jù)中心,所需時間為=Tup2 = M/Vt2 = 500/0. 2 = 2500S,可見Tup2遠遠大于Tup和Td6lay的總和。因此用戶應與同一⑶N域內(nèi)的數(shù)據(jù)中心進行交互,并且副本數(shù)據(jù)的傳輸應盡可能在數(shù)據(jù)中心間進行。(2)副本數(shù)目和存放位置的主動調(diào)整副本的初始化存儲沒有考慮到視頻數(shù)據(jù)可能被何處用戶訪問的情況,而元數(shù)據(jù)服務器會根據(jù)視頻信息對此進行初步調(diào)整。假設記者A拍攝的視頻為北京隊與上海隊的比賽,為方便北京和上海兩地用戶訪問,元數(shù)據(jù)服務器會選擇距離最近的副本(分別為武漢和廣州),主動將副本數(shù)據(jù)推送(PUSH)到北京和上海的數(shù)據(jù)中心,此時系統(tǒng)中的副本數(shù)目變?yōu)?個,新增了緩存副本4和緩存副本5。(3)副本數(shù)目和存放位置的被動調(diào)整副本的主動調(diào)整帶有一定的主觀性,不能完全滿足實際情況。例如,北京和上海兩支球隊中有多名隊員來自成都,于是成都地區(qū)用戶也會大量訪問。當用戶發(fā)出讀取請求時,本方法是把用戶所在CDN域內(nèi)的數(shù)據(jù)中心的元數(shù)據(jù)信息發(fā)送給用戶。而此時成都數(shù)據(jù)中心中沒有副本數(shù)據(jù),于是它會從距離最近的數(shù)據(jù)中心(這里是廣州)拉取(PULL)數(shù)據(jù)并進行緩存,同時將緩存數(shù)據(jù)發(fā)送給用戶,此時副本數(shù)目變?yōu)?個,新增了緩存副本6。這樣視頻的下載時間為Td_lMd = M/Vtl+Tdelay = 500/1+0. 5=500. 5S ;若直接從武漢數(shù)據(jù)中心訪問則時間為=Tdownload2 = M/Yt2 = 500/0. 2 = 2500S。由此可見先緩存再讀取的效率遠遠高于直接讀取的效率。(4)緩存數(shù)目的調(diào)整對于熱度很高的視頻,在某一時刻用戶訪問量很大時,存儲該視頻副本的服務器可能達到磁盤I/O瓶頸。在本例中,當北京數(shù)據(jù)中心緩存副本5所在的數(shù)據(jù)服務器每秒內(nèi)同時有300人訪問時,用戶的總訪問量U_ = 300*1 = Umax,服務器達到了傳輸瓶頸。為避免這種情況發(fā)生,元數(shù)據(jù)服務器會設置一個門限值=Uthreshtjld = 0. 8*U_ ;當用戶訪問量達到門限值,即Usmi = Uthreshold時,數(shù)據(jù)中心會在另外一個數(shù)據(jù)服務器上建立副本的緩存,共同對外提供服務,如圖中新建的緩存副本7和緩存副本8。此時,數(shù)據(jù)的I/O吞吐量擴大了 2倍,達到了 900M/S。當然,這是以消耗磁盤空間為代價的,因此副本的緩存通常具有實效性。如果在24小時內(nèi)沒有用戶的訪問,系統(tǒng)會自動刪除這些緩存數(shù)據(jù),只保留初始情況下的副本,從而避免資源的浪費,提高系統(tǒng)容量。主要技術優(yōu)勢為了提高系統(tǒng)的可靠性,分布式存儲系統(tǒng)都采用了文件副本策略。然而當前的分布式存儲系統(tǒng)大都是基于單個活動副本的,在任意時刻只能對一個副本進行操作,并且用戶很難根據(jù)自己需要來指定副本的存放位置。本發(fā)明基于多活動副本機制提出了一種新型的動態(tài)存取副本方法,副本可以按需進行復制和存儲。本發(fā)明的優(yōu)勢在于(1)提出了多活動副本機制,通過將用戶的訪問分散到不同數(shù)據(jù)中心的多個數(shù)據(jù)服務器上,增大了數(shù)據(jù)服務器的磁盤I/O吞吐量,降低了單個服務器的網(wǎng)絡負載,避免資源的浪費;(2)系統(tǒng)在初始化存儲的基礎上,還可根據(jù)應用需求將副本·數(shù)據(jù)主動推送到不同CDN域內(nèi)的數(shù)據(jù)中心,使用戶能夠快速從本地數(shù)據(jù)中心獲得請求的數(shù)據(jù);(3)元數(shù)據(jù)服務器在處理用戶的讀請求時并不是把副本所在的數(shù)據(jù)服務器發(fā)送給用戶,而是把同一 CDN域內(nèi)的數(shù)據(jù)中心發(fā)送給用戶,系統(tǒng)根據(jù)用戶需求對文件副本進行緩存,從而實現(xiàn)了按需分配,在保證數(shù)據(jù)的高效傳輸?shù)耐瑫r提高系統(tǒng)存儲容量。該發(fā)明不涉及數(shù)據(jù)在分布式存儲系統(tǒng)中具體的存儲方式,對讀操作集中的應用具有很好的作用。
權利要求
1.提出了多活動副本機制,分布式存儲系統(tǒng)中存儲的所有文件副本在任意時刻都是活動可用的,用戶可根據(jù)需要隨意存取其中的任意副本,通過將用戶的訪問分散到不同數(shù)據(jù)中心的多個數(shù)據(jù)服務器上,增大磁盤I/o吞吐量,降低單個服務器的網(wǎng)絡負載。
2.提出了副本數(shù)目和存放位置的動態(tài)調(diào)整方法,根據(jù)不同的應用場景和用戶需求,系統(tǒng)會動態(tài)調(diào)整副本數(shù)目和存放位置,提高系統(tǒng)的響應速度和可靠性,主要通過兩個步驟實現(xiàn) (1)用戶寫入文件時系統(tǒng)的主動調(diào)整,元數(shù)據(jù)服務器主動將副本數(shù)據(jù)推送到可能被大量訪問的地區(qū)的數(shù)據(jù)服務器上進行緩存。
(2)用戶讀取文件時系統(tǒng)的被動調(diào)整,與用戶連接的數(shù)據(jù)中心通知元數(shù)據(jù)服務器傳輸數(shù)據(jù)并建立副本緩存。
3.副本緩存具有時效性,如果在有效時間內(nèi)沒有用戶訪問,系統(tǒng)將刪除這些副本,避免該方法在實施過程中因建立多個副本緩存占用額外的磁盤空間,提高系統(tǒng)的存儲容量。
全文摘要
本發(fā)明提出了一種應用于分布式存儲的多活動副本機制及其存取方法,適用于讀操作頻繁的分布式存儲系統(tǒng)。該方法位于分布式存儲系統(tǒng)的元數(shù)據(jù)服務器上,它包括數(shù)據(jù)節(jié)點信息維護模塊、路由分析模塊、用戶請求處理模塊和動態(tài)副本管理模塊四個部分;提出了多活動副本機制,用戶可隨意存取系統(tǒng)中的任意副本,提高了系統(tǒng)的可靠性和I/O吞吐量;針對不同的應用環(huán)境和用戶需求,它可以動態(tài)調(diào)整副本的數(shù)目和存放位置,加快系統(tǒng)的響應速度和數(shù)據(jù)流量的傳輸;由于新增副本具有時效性,可以保證系統(tǒng)在快速響應用戶訪問的同時節(jié)省磁盤空間,避免資源浪費,達到增大系統(tǒng)容量的目的。
文檔編號H04L29/08GK102752381SQ20121022277
公開日2012年10月24日 申請日期2012年6月28日 優(yōu)先權日2012年6月28日
發(fā)明者袁玉宇, 陸月明, 馬良 申請人:北京郵電大學