專利名稱:分布式文件系統(tǒng)多文件副本的管理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及文件副本管理技術(shù)領(lǐng)域,主要是一種分布式文件系統(tǒng)多文件副本的管理方法。
背景技術(shù):
在廣域網(wǎng)的服務(wù)型分布式存儲系統(tǒng)中,每個存儲結(jié)點都是專門提供服務(wù)的服務(wù)器,系統(tǒng) 的結(jié)構(gòu)不會頻繁變化,因此結(jié)點的穩(wěn)定性比較強。然而在發(fā)生系統(tǒng)故障或者網(wǎng)絡(luò)故障時,部 分結(jié)點會無法提供穩(wěn)定的文件服務(wù)。分布式文件系統(tǒng)的突出特點就是具有位置的透明性和遷 移透明性,文件分布保存在不同的存儲節(jié)點上,這些分布式文件系統(tǒng)基本滿足了大規(guī)模存儲 系統(tǒng)的需要。然而在文件訪問性能、系統(tǒng)的可靠性和穩(wěn)定性等諸多方面還存在一定問題。文 件的副本可以有效的提高系統(tǒng)的可靠性,在系統(tǒng)中一個或多個副本發(fā)生故障時,可以對其他
的副本進行操作,保證了系統(tǒng)的可用性。多個副本可以有效的將訪問負荷分散到多個服務(wù)器 上,提供系統(tǒng)負載量的靈活擴展。文件副本同時提供地域上的擴展,在使用文件數(shù)據(jù)附近的 地方存放一個副本,減少了訪問的響應(yīng)時間。
由于副本復(fù)制目標(biāo),副本復(fù)制的粒度和應(yīng)用環(huán)境的差異,傳統(tǒng)的簡單副本管理方法并不 能很好的應(yīng)用在分布式文件系統(tǒng)中。目前的分布式文件系統(tǒng)具有動態(tài)網(wǎng)絡(luò)環(huán)境、海量文件數(shù) 據(jù)和負載均衡等特點,需要針對這些特點,研究滿足要求的多文件副本管理方法。
目前國內(nèi)外副本創(chuàng)建策略的研究中,提出了如Best Client副本創(chuàng)建策略,瀑布副本創(chuàng)建 策略,緩存加瀑布創(chuàng)建策略和快速傳播副本創(chuàng)建策略,這些策略針對數(shù)據(jù)網(wǎng)格的特點,如源數(shù) 據(jù)存儲于網(wǎng)格系統(tǒng)的頂層結(jié)點,網(wǎng)格系統(tǒng)具有層次性的網(wǎng)絡(luò)拓撲結(jié)構(gòu)。另外一種基于用戶驅(qū) 動的副本創(chuàng)建策略是基于域內(nèi)副本衍生和域間副本擴展策略,域內(nèi)副本衍生策略通過在域內(nèi) 衍生副本增加用戶的數(shù)據(jù)訪問點以實現(xiàn)域內(nèi)文件主機的負載均衡性,域間副本擴展策略依據(jù) Popular原則即用戶訪問副本次數(shù)驅(qū)使副本在域間擴展,減少了用戶的訪問延遲和帶寬消耗。
在副本的一致性維護問題上,Gnutella采用基于洪泛的副本一致性維護算法,更新初始 化節(jié)點將消息通過廣播的方式告訴鄰接節(jié)點,其鄰接節(jié)點再將此消息轉(zhuǎn)發(fā)到它的下一輪鄰接 節(jié)點,以這種類似廣度優(yōu)先搜索的方式將更新消息傳送到網(wǎng)絡(luò)中所有的副本。有一種基于副本 鏈(R印lica Chain)的副本一致性維護算法,更新消息通過副本鏈傳遞,網(wǎng)絡(luò)中每個節(jié)點是副 本鏈中的一個點,每次更新消息傳遞給鏈中鄰近的k個節(jié)點,這種方法可以有效地減少冗余
消息的產(chǎn)生,但是每個節(jié)點必須維護一個周圍節(jié)點的副本鏈,在無結(jié)構(gòu)分散P2P網(wǎng)絡(luò)中,節(jié) 點只知道其直接相連的鄰節(jié)點,構(gòu)造和維護一個副本節(jié)點鏈帶來了額外消息交互開銷。CFS 是采用了 chord査找方式的結(jié)構(gòu)化P2P系統(tǒng),其中存儲以文件塊為單位,文件塊副本放置在 通過哈希得到的結(jié)點以及該結(jié)點在chord環(huán)中的k個直接后續(xù)上。同時通過系統(tǒng)維護來保證 k個后續(xù)上始終存在副本,即使有結(jié)點加入或退出。由于后續(xù)的k個相鄰結(jié)點在物理地址上 不太可能相鄰,提高了利用副本的可靠性。用戶來下載時,將返回k個副本的地址以及它們 到用戶的下載速率估計,由用戶選擇最佳副本進行下載。
當(dāng)前已有的文件副本創(chuàng)建和一致性維護方法都具有相應(yīng)的局限性,僅適合于數(shù)據(jù)網(wǎng)格或 結(jié)構(gòu)化的P2P網(wǎng)絡(luò),對于分布式文件系統(tǒng),需要一種靈活的文件副本創(chuàng)建、定位、選擇和維 護方法。
發(fā)明內(nèi)容
本發(fā)明要解決上述技術(shù)所存在的缺陷,提供一種分布式文件系統(tǒng)多文件副本的管理方法, 彌補當(dāng)前分布式文件系統(tǒng)副本創(chuàng)建和維護的局限性和不足,對現(xiàn)有的副本管理方法和策略進 行改進。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案這種分布式文件系統(tǒng)多文件副本的管理方法,
采用基于頻率的副本管理機制FRM(Frequency Based R印lication Management),根據(jù)文件 的讀寫訪問頻率和訪問來源的信息動態(tài)改變文件副本的狀態(tài),通過文件副本數(shù)量的動態(tài)增減 和存儲位置的遷移,實現(xiàn)最佳的系統(tǒng)服務(wù)性能,并減少過多副本占用存儲資源的問題。具體 包括副本粒度管理、副本創(chuàng)建策略、副本選擇和定位、副本的一致性維護方法;文件副本的 創(chuàng)建方法包括用戶發(fā)起的創(chuàng)建和結(jié)點發(fā)起的創(chuàng)建,這兩種創(chuàng)建策略解決了系統(tǒng)缺省創(chuàng)建副本 的盲目性和低利用率。本發(fā)明采用數(shù)據(jù)網(wǎng)格的方法和基于利潤驅(qū)動的策略,解決了分布式文 件系統(tǒng)的副本創(chuàng)建問題。副本的定位提供將邏輯文件映射到一個合適的副本上,選擇代價最 小和訪問效率最高的副本提供給用戶使用;副本的一致性維護方法采用了訂閱副本樹的方法 管理副本的一致性。
本發(fā)明有益的效果是本發(fā)明方法的提供的服務(wù)繼承了分布式文件系統(tǒng)的優(yōu)良特性,包 括松散耦合、高可用性、高可靠性和高性價比,文件的多副本的冗余機制保證了系統(tǒng)的可靠 性和容錯特性,提供了多源文件數(shù)據(jù)的并行傳輸?shù)奶匦?。具體而言,本發(fā)明據(jù)有以下特色 (1)文件副本維護由系統(tǒng)自動完成,無需用戶干預(yù),對用戶透明。
文件的副本數(shù)量過多時,會占用系統(tǒng)存儲資源,保持這些副本的同步和一致性需要消耗
大量網(wǎng)絡(luò)資源,同時帶來難以管理的問題。副本的數(shù)量太少時,文件的可靠性和可用性無法 得到保證,對于大量的文件操作,都集中在少數(shù)節(jié)點上,難以實現(xiàn)操作的負載平衡。系統(tǒng)會 根據(jù)文件的讀寫訪問頻率和訪問來源等信息動態(tài)改變文件副本的狀態(tài),自主選擇副本的創(chuàng)建 和管理方法,用戶無需了解內(nèi)部實現(xiàn)細節(jié),系統(tǒng)提供給用戶的是一個或多個可以快速高效訪 問的文件副本。
(2) 有效節(jié)約存儲設(shè)備成本和管理成本,基于經(jīng)濟的普通服務(wù)器實現(xiàn)了高性能大型計算 機所具有的數(shù)據(jù)處理能力。
本發(fā)明提供的副本管理方法通過副本存儲位置的動態(tài)遷移技術(shù)和基于用戶域的副本創(chuàng)建 策略,降低了單位容量數(shù)據(jù)的存儲成本,文件可以通過遷移到高訪問的區(qū)域,降低對遠程網(wǎng) 絡(luò)的訪問頻率,加快了請求的響應(yīng)速度,充分利用本地網(wǎng)絡(luò)的帶寬實現(xiàn)低成本的文件服務(wù)。
(3) 多個副本服務(wù)松散耦合,具有很強的容錯性和快速的故障恢復(fù)能力,使整個系統(tǒng)具
有高可用性和高可靠性。
多個文件副本通過副本樹建立聯(lián)系,即使一個副本所在的存儲節(jié)點出現(xiàn)硬件或者軟件故 障,整個系統(tǒng)也可以保證文件服務(wù)的可用性。
圖1為本發(fā)明的分布式文件系統(tǒng)環(huán)境示意圖2為用戶發(fā)起副本創(chuàng)建流程圖3為結(jié)點發(fā)起副本創(chuàng)建流程圖4為對副本在Chord環(huán)上的分布圖5為對副本管理的副本樹示意具體實施例方式
下面結(jié)合附圖和實施例對本發(fā)明作進一步介紹
本發(fā)明的系統(tǒng)環(huán)境如圖1所示,整個系統(tǒng)又處在不同地域的文件存儲節(jié)點構(gòu)成,各個節(jié) 點由一個統(tǒng)一的虛擬存儲節(jié)點進行管理,副本管理模塊構(gòu)建在虛擬存儲節(jié)點上,用戶通過與 副本管理模塊交互定位到所需的文件副本上。
對于讀操作比較多的文件,需要在請求率高的地方建立較多的文件副本,對于寫操作和 修改操作比較多的文件應(yīng)該盡量保存較少的副本。因此對每個文件的創(chuàng)建兩個計數(shù)器,對文 件進行了一次讀操作時,增加讀計數(shù),對文件進行了一次寫操作時,增加寫計數(shù)器。每隔一 定的周期,掃描這兩個計數(shù)器,根據(jù)這兩個數(shù)決定副本的增加或者減少。
圖2表示的是有用戶發(fā)起的副本創(chuàng)建方法。在廣域網(wǎng)的環(huán)境中,系統(tǒng)缺省創(chuàng)建的副本有
可能不能覆蓋到部分用戶的地域。用戶要訪問某個文件時,發(fā)現(xiàn)自身所在的區(qū)域沒有文件的 副本存在,現(xiàn)存的副本所在節(jié)點都距離過遠,此時就有必要在用戶附近創(chuàng)建副本。本發(fā)明利 用數(shù)據(jù)網(wǎng)格中域的概念,將服務(wù)器結(jié)點按照域劃分,每個域都有一個ID,對于每個用戶的請 求,系統(tǒng)都可以確定請求屬于哪個域,對于現(xiàn)存副本過遠的情況,用戶可以在所在域中選擇 服務(wù)器創(chuàng)建新的文件副本。
用戶發(fā)起的副本創(chuàng)建具體流程如下
(1) 用戶向文件的主副本發(fā)出創(chuàng)建副本的請求,在提交請求的過程中包含自己所在域的 ID,這個請求將發(fā)送到路由表中的結(jié)點。
(2) 收到請求的結(jié)點首先判斷本地是否存在這個文件的副本,然后檢測域的ID和用戶 請求ID是否一致,如果這些條件不成立,則拒絕創(chuàng)建副本。
(3) 在創(chuàng)建副本之前,先結(jié)點是否巳經(jīng)有足夠的存儲空間,空間足夠時就直接創(chuàng)建副本, 空間不足時,根據(jù)LRU(最近最少使用算法)替換本地中非主副本的文件。
圖3表示的是由結(jié)點發(fā)起的文件副本創(chuàng)建。每個結(jié)點基于利潤驅(qū)動的副本創(chuàng)建策略,由 每個結(jié)點發(fā)起副本創(chuàng)建,可以根據(jù)文件的讀寫計數(shù)器來得到文件的訪問熱度情況,由此來決 定是否創(chuàng)建高訪問頻率的文件的副本來分擔(dān)負載。對于每個訪問熱度高的文件,還可以統(tǒng)計 出請求多的區(qū)域,可以在這些區(qū)域上建立文件副本來分流。同時若結(jié)點的總負載超過一定閾 值時,將通過在其他空閑結(jié)點上創(chuàng)建副本將負載分流到其他的結(jié)點上,這種局部結(jié)點的最優(yōu) 化適合分布式文件系統(tǒng)中節(jié)點對等和自組織的特點。
結(jié)點發(fā)起的文件副本創(chuàng)建具體流程如下
(1) 結(jié)點滿足創(chuàng)建副本的觸發(fā)條件后,向路由表中結(jié)點發(fā)出創(chuàng)建副本請求。
(2) 收到請求的結(jié)點檢査自己是否滿足創(chuàng)建條件。 如果流程(2)的條件符合,則進行(3),否則回復(fù)拒絕信息。
(3) 計算本地創(chuàng)建副本的利潤,選擇利潤最大的結(jié)點創(chuàng)建副本。 用戶訪問一個文件時,涉及文件副本的定位和選擇問題。對于用戶來說,文件副本的存
在是透明的,副本的定位提供將邏輯文件映射到一個合適的副本上。系統(tǒng)可以確定每個請求 所在的域, 一般使用用戶所在域服務(wù)器上的文件副本提供服務(wù),若當(dāng)前的域上沒有所需的文 件的副本,則需要用存在該文件副本的最近的域服務(wù)器提供服務(wù),若遇到負載高的結(jié)點,可 以繼續(xù)尋找負載低的結(jié)點來提供服務(wù)。當(dāng)一個文件的請求持續(xù)增加超過一定的閾值后,會自 動引起副本的生成或者遷移,副本的選擇將在眾多的副本中選擇代價最小和訪問效率最高的 副本。
圖4表示的是文件在Chord環(huán)上的分布圖,其中深色的結(jié)點表示有副本的存在, 一個文 件映射到了結(jié)點N5,沿著Chord環(huán)的方向的N6和N8這兩個節(jié)點上創(chuàng)建了副本。在N5路由 表中的第4項即第5+24-1項N13上創(chuàng)建副本,接著在N13后的N14和N15上創(chuàng)建副本。當(dāng)結(jié) 點N5失效時,沿著Chord環(huán)順時針的下一個節(jié)點N6將成為它的替代者,文件主副本將轉(zhuǎn)移 到N6上,路由表中指向N5的結(jié)點將指向N6。
分布式文件系統(tǒng)中存在的大量副本需要進行一致性的維護,主要有操作順序的一致性和 更新傳播的問題。分布式文件系統(tǒng)的每個邏輯文件都被映射到系統(tǒng)唯一結(jié)點的副本上,對這 個文件所有的操作都將先找到這個結(jié)點,對此副本的操作可以保持順序的一致性。副本的更 新采用二叉副本樹進行管理,樹的根為主副本,右子結(jié)點為副本的失效替代結(jié)點,每創(chuàng)建一 個副本時,需要訂閱該文件的更新服務(wù),將這個結(jié)點加入到該文件的副本樹中。當(dāng)一個副本 被刪除時,要取消訂閱的更新通知,主要分為非葉結(jié)點和葉結(jié)點兩種情況。副本的更新從樹 的頂部向下傳播,最后到達葉結(jié)點。
圖5表示的是副本樹的示意圖,R5是樹的根,它是主副本,右子結(jié)點R6為它的替代品, 樹中的每個節(jié)點維護一定的信息,第一項為標(biāo)識左子結(jié)點在路由表中的哪一項或是左子結(jié)點 的服務(wù)器結(jié)點編號。第二項為記錄父結(jié)點存在的服務(wù)器的結(jié)點編號。第三項為標(biāo)識右子結(jié)點 是否存在的布爾值。第四項為標(biāo)識該結(jié)點是否右子結(jié)點的布爾值。第五項保存的是冗余信息, 用于樹結(jié)構(gòu)的維護。
上述實施例用來解釋說明本發(fā)明,而不是對本發(fā)明進行限制,在本發(fā)明的精神和權(quán)利要 求的保護范圍內(nèi),對本發(fā)明作出的任何修改和改變,都落入本發(fā)明的保護范圍。
權(quán)利要求
1、一種分布式文件系統(tǒng)多文件副本的管理方法,其特征在于采用基于頻率的副本管理機制,根據(jù)文件的讀寫訪問頻率和訪問來源的信息動態(tài)改變文件副本的狀態(tài),通過文件副本數(shù)量的動態(tài)增減和存儲位置的遷移;具體包括副本粒度管理、副本創(chuàng)建策略、副本選擇和定位、副本的一致性維護方法;文件副本的創(chuàng)建方法包括用戶發(fā)起的創(chuàng)建和結(jié)點發(fā)起的創(chuàng)建,采用數(shù)據(jù)網(wǎng)格的方法和基于利潤驅(qū)動的策略;副本的定位提供將邏輯文件映射到一個合適的副本上,選擇代價最小和訪問效率最高的副本提供給用戶使用;副本的一致性維護方法采用了訂閱副本樹的方法管理副本的一致性。
2、 根據(jù)權(quán)利要求1所述的分布式文件系統(tǒng)多文件副本的管理方法,其特征在于所述 的副本粒度管理是對于讀操作比較多的文件,在請求率高的地方建立較多的文件副本,對 于寫操作和修改操作比較多的文件保存較少的副本;對每個文件的創(chuàng)建兩個計數(shù)器,對文件進行了一次讀操作時,增加讀計數(shù),對文件進行了一次寫操作時,增加寫計數(shù)器,每隔一定 的周期,掃描這兩個計數(shù)器,根據(jù)這兩個數(shù)決定副本的增加或者減少。
3、 根據(jù)權(quán)利要求1所述的分布式文件系統(tǒng)多文件副本的管理方法,其特征在于文件 副本的創(chuàng)建方法中將服務(wù)器結(jié)點按照域劃分,每個域都有一個ID,對于每個用戶的請求,系 統(tǒng)確定請求屬于哪個域,對于現(xiàn)存副本過遠的情況,用戶在所在域中選擇服務(wù)器創(chuàng)建新的文 件副本;用戶發(fā)起的副本創(chuàng)建具體流程如下(1) 用戶向文件的主副本發(fā)出創(chuàng)建副本的請求,在提交請求的過程中包含自己所在域 的ID,這個請求將發(fā)送到路由表中的結(jié)點;(2) 收到請求的結(jié)點首先判斷本地是否存在這個文件的副本,然后檢測域的ID和用戶 請求ID是否一致,如果這些條件不成立,則拒絕創(chuàng)建副本;(3) 在創(chuàng)建副本之前,先結(jié)點是否已經(jīng)有足夠的存儲空間,空間足夠時就直接創(chuàng)建副 本,空間不足時,根據(jù)最近最少使用算法替換本地中非主副本的文件。
4、 根據(jù)權(quán)利要求1所述的分布式文件系統(tǒng)多文件副本的管理方法,其特征在于結(jié)點 發(fā)起的文件副本創(chuàng)建,每個結(jié)點基于利潤驅(qū)動的副本創(chuàng)建策略,由每個結(jié)點發(fā)起副本創(chuàng)建, 根據(jù)文件的讀寫計數(shù)器來得到文件的訪問熱度情況,由此來決定是否創(chuàng)建高訪問頻率的文件 的副本來分擔(dān)負載;對于每個訪問熱度高的文件,統(tǒng)計出請求多的區(qū)域,在這些區(qū)域上建立 文件副本來分流;同時若結(jié)點的總負載超過一定閾值時,將通過在其他空閑結(jié)點上創(chuàng)建副本 將負載分流到其他的結(jié)點上。
5、 根據(jù)權(quán)利要求1所述的分布式文件系統(tǒng)多文件副本的管理方法,其特征在于文件 副本的定位和選擇中,副本的定位提供將邏輯文件映射到一個合適的副本上,系統(tǒng)確定每個 請求所在的域,使用用戶所在域服務(wù)器上的文件副本提供服務(wù),若當(dāng)前的域上沒有所需的文 件的副本,則需要用存在該文件副本的最近的域服務(wù)器提供服務(wù),若遇到負載高的結(jié)點,則 繼續(xù)尋找負載低的結(jié)點來提供服務(wù);當(dāng)一個文件的請求持續(xù)增加超過一定的閾值后,則會引 起副本的生成或者遷移,副本的選擇將在眾多的副本中選擇代價最小和訪問效率最高的副 本。
6、 根據(jù)權(quán)利要求1所述的分布式文件系統(tǒng)多文件副本的管理方法,其特征在于副本的一致性維護方法中分布式文件系統(tǒng)的每個邏輯文件都被映射到系統(tǒng)唯一結(jié)點的副本上,對這個文件所有的操作都將先找到這個結(jié)點,對此副本的操作保持順序的一致性;副本的更新 釆用二叉副本樹進行管理,樹的根為主副本,右子結(jié)點為副本的失效替代結(jié)點,每創(chuàng)建一個 副本時,需要訂閱該文件的更新服務(wù),將這個結(jié)點加入到該文件的副本樹中,當(dāng)一個副本被 刪除時,要取消訂閱的更新通知,分為非葉結(jié)點和葉結(jié)點兩種情況,副本的更新從樹的頂部 向下傳播,最后到達葉結(jié)點。
全文摘要
本發(fā)明涉及一種分布式文件系統(tǒng)多文件副本的管理方法,采用基于頻率的副本管理機制,根據(jù)文件的讀寫訪問頻率和訪問來源的信息動態(tài)改變文件副本的狀態(tài),通過文件副本數(shù)量的動態(tài)增減和存儲位置的遷移;具體包括副本粒度管理、副本創(chuàng)建策略、副本選擇和定位、副本的一致性維護方法;文件副本的創(chuàng)建方法包括用戶發(fā)起的創(chuàng)建和結(jié)點發(fā)起的創(chuàng)建,采用數(shù)據(jù)網(wǎng)格的方法和基于利潤驅(qū)動的策略;副本的定位提供將邏輯文件映射到一個合適的副本上,選擇代價最小和訪問效率最高的副本提供給用戶使用。本發(fā)明有益的效果是提供的服務(wù)繼承了分布式文件系統(tǒng)的優(yōu)良特性,包括松散耦合、高可用性、高可靠性和高性價比。
文檔編號G06F17/30GK101187931SQ20071016475
公開日2008年5月28日 申請日期2007年12月12日 優(yōu)先權(quán)日2007年12月12日
發(fā)明者健 吳, 吳朝暉, 鵬 孫, 尹建偉, 瑩 李, 鄧水光 申請人:浙江大學(xué)