本申請(qǐng)涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,特別是涉及一種分布式文件系統(tǒng)中的數(shù)據(jù)寫(xiě)入方法和一種分布式文件系統(tǒng)中的數(shù)據(jù)寫(xiě)入裝置。
背景技術(shù):
大型在線分布式存儲(chǔ)系統(tǒng)中,單臺(tái)服務(wù)器內(nèi)有很多塊磁盤(pán),不同磁盤(pán)可能不同,且在一臺(tái)服務(wù)器內(nèi)部也可能出現(xiàn)異構(gòu)的情況,即兩種不同容量的磁盤(pán)混合。分布式存儲(chǔ)系統(tǒng)解決數(shù)據(jù)存儲(chǔ)的問(wèn)題,當(dāng)有數(shù)據(jù)到來(lái)時(shí)如何選擇一塊磁盤(pán)寫(xiě)入數(shù)據(jù)是一個(gè)需要考慮的問(wèn)題。
傳統(tǒng)的分布式文件系統(tǒng)在選擇磁盤(pán)時(shí)采用一致性哈希算法。該方法是事先根據(jù)數(shù)據(jù)分區(qū)做哈希來(lái)選定磁盤(pán),是一種固定的選盤(pán)策略。哈希算法本身保證了平衡性,通常情況下不會(huì)造成熱點(diǎn),但是在異常情況,當(dāng)同一數(shù)據(jù)分區(qū)有集中的數(shù)據(jù),被選中的磁盤(pán)往往不能躲開(kāi)大量的寫(xiě)入,可能會(huì)寫(xiě)滿磁盤(pán),造成寫(xiě)入失敗,同時(shí)密集的流量會(huì)產(chǎn)生熱點(diǎn)訪問(wèn),造成寫(xiě)入時(shí)間變長(zhǎng)。
因此,目前需要本領(lǐng)域技術(shù)人員迫切解決的一個(gè)技術(shù)問(wèn)題就是:如何可以避免磁盤(pán)寫(xiě)滿,且不會(huì)造成熱點(diǎn)訪問(wèn)。
技術(shù)實(shí)現(xiàn)要素:
本申請(qǐng)實(shí)施例的發(fā)明目的在于提供一種分布式文件系統(tǒng)中的數(shù)據(jù)寫(xiě)入方法,可以避免磁盤(pán)寫(xiě)滿,且不會(huì)造成熱點(diǎn)訪問(wèn)。
相應(yīng)的,本申請(qǐng)實(shí)施例還提供了一種分布式文件系統(tǒng)中的數(shù)據(jù)寫(xiě)入裝置,用以保證上述方法的實(shí)現(xiàn)及應(yīng)用。
為了解決上述問(wèn)題,本申請(qǐng)公開(kāi)了一種分布式文件系統(tǒng)中的數(shù)據(jù)寫(xiě)入方法,包括:
在元數(shù)據(jù)服務(wù)器所管理的多個(gè)副本服務(wù)器中,根據(jù)所述多個(gè)副本服務(wù)器的剩余容量選擇至少一個(gè)目標(biāo)副本服務(wù)器;
在所述目標(biāo)副本服務(wù)器中,根據(jù)所述目標(biāo)副本服務(wù)器所管理的磁盤(pán)的剩 余容量及磁盤(pán)負(fù)載選擇寫(xiě)入磁盤(pán);
通過(guò)所述目標(biāo)副本服務(wù)器將寫(xiě)入數(shù)據(jù)存儲(chǔ)在所述寫(xiě)入磁盤(pán)中。
優(yōu)選地,在所述目標(biāo)副本服務(wù)器中,根據(jù)所述目標(biāo)副本服務(wù)器所管理的磁盤(pán)的剩余容量及磁盤(pán)負(fù)載選擇寫(xiě)入磁盤(pán)的步驟包括:
根據(jù)所述目標(biāo)副本服務(wù)器所管理的磁盤(pán)的剩余容量及磁盤(pán)負(fù)載計(jì)算各磁盤(pán)被選中的概率;
根據(jù)所述各磁盤(pán)被選中的概率及預(yù)設(shè)條件確定所述寫(xiě)入磁盤(pán)。
優(yōu)選地,所述根據(jù)所述目標(biāo)副本服務(wù)器所管理的磁盤(pán)的剩余容量及磁盤(pán)負(fù)載計(jì)算各磁盤(pán)被選中的概率,包括:
根據(jù)所述磁盤(pán)的剩余容量和總?cè)萘恐g的比例及其權(quán)重,以及所述磁盤(pán)的負(fù)載及其權(quán)重,計(jì)算所述磁盤(pán)的得分;
對(duì)各所述磁盤(pán)的得分進(jìn)行歸一化,獲得各所述磁盤(pán)被選中的概率。
優(yōu)選地,所述根據(jù)所述磁盤(pán)的剩余容量和總?cè)萘恐g的比例及其權(quán)重,以及所述磁盤(pán)的負(fù)載及其權(quán)重,計(jì)算所述磁盤(pán)的得分,包括:
分別計(jì)算所述磁盤(pán)的剩余容量和總?cè)萘恐g的比例的得分,以及所述磁盤(pán)的負(fù)載的得分,其中,所述比例的得分與所述比例之間以及所述負(fù)載的得分與所述負(fù)載之間均滿足單調(diào)遞增函數(shù)關(guān)系;
根據(jù)所述比例的得分及所述比例的權(quán)重,以及所述負(fù)載的得分及所述負(fù)載的權(quán)重,計(jì)算所述磁盤(pán)的得分。
優(yōu)選地,所述磁盤(pán)的負(fù)載為所述磁盤(pán)IO隊(duì)列的長(zhǎng)度。
優(yōu)選地,所述根據(jù)所述各磁盤(pán)被選中的概率及預(yù)設(shè)條件確定所述寫(xiě)入磁盤(pán),包括:
根據(jù)所述各磁盤(pán)被選中的概率計(jì)算所述各磁盤(pán)的累加概率值;
對(duì)所述各磁盤(pán)的累加概率值進(jìn)行二分查找,將查找到的滿足預(yù)設(shè)條件的磁盤(pán)的累加概率值對(duì)應(yīng)的磁盤(pán)作為所述寫(xiě)入磁盤(pán)。
本申請(qǐng)還公開(kāi)了一種分布式文件系統(tǒng)中的數(shù)據(jù)寫(xiě)入裝置,包括:
第一選擇單元,被配置為在元數(shù)據(jù)服務(wù)器所管理的多個(gè)副本服務(wù)器中,根據(jù)所述多個(gè)副本服務(wù)器的剩余容量選擇至少一個(gè)目標(biāo)副本服務(wù)器;
第二選擇單元,被配置為在所述目標(biāo)副本服務(wù)器中,根據(jù)所述目標(biāo)副本服務(wù)器所管理的磁盤(pán)的剩余容量及磁盤(pán)負(fù)載選擇寫(xiě)入磁盤(pán);
存儲(chǔ)單元,被配置為通過(guò)所述目標(biāo)副本服務(wù)器將寫(xiě)入數(shù)據(jù)存儲(chǔ)在所述寫(xiě)入磁盤(pán)中。
優(yōu)選地,所述第二選擇單元包括:
概率計(jì)算子單元,被配置為根據(jù)所述目標(biāo)副本服務(wù)器所管理的磁盤(pán)的剩余容量及磁盤(pán)負(fù)載計(jì)算各磁盤(pán)被選中的概率;
確定子單元,被配置為根據(jù)所述各磁盤(pán)被選中的概率及預(yù)設(shè)條件確定所述寫(xiě)入磁盤(pán)。
優(yōu)選地,所述概率計(jì)算子單元包括:
得分計(jì)算子單元,被配置為根據(jù)所述磁盤(pán)的剩余容量和總?cè)萘恐g的比例及其權(quán)重,以及所述磁盤(pán)的負(fù)載及其權(quán)重,計(jì)算所述磁盤(pán)的得分;
概率獲得子單元,被配置為對(duì)各所述磁盤(pán)的得分進(jìn)行歸一化,獲得各所述磁盤(pán)被選中的概率。
優(yōu)選地,所述得分計(jì)算子單元包括:
第一計(jì)算子單元,被配置為分別計(jì)算所述磁盤(pán)的剩余容量和總?cè)萘恐g的比例的得分,以及所述磁盤(pán)的負(fù)載的得分,其中,所述比例的得分與所述比例之間以及所述負(fù)載的得分與所述負(fù)載之間均滿足單調(diào)遞增函數(shù)關(guān)系;
第二計(jì)算子單元,被配置為根據(jù)所述比例的得分及所述比例的權(quán)重,以及所述負(fù)載的得分及所述負(fù)載的權(quán)重,計(jì)算所述磁盤(pán)的得分。
優(yōu)選地,所述磁盤(pán)的負(fù)載為所述磁盤(pán)IO隊(duì)列的長(zhǎng)度。
優(yōu)選地,所述確定子單元包括:
累加子單元,被配置為根據(jù)所述各磁盤(pán)被選中的概率計(jì)算所述各磁盤(pán)的累加概率值;
查找子單元,被配置為對(duì)所述各磁盤(pán)的累加概率值進(jìn)行二分查找,將查找到的滿足預(yù)設(shè)條件的磁盤(pán)的累加概率值對(duì)應(yīng)的磁盤(pán)作為所述寫(xiě)入磁盤(pán)。
與現(xiàn)有技術(shù)相比,本申請(qǐng)實(shí)施例包括以下優(yōu)點(diǎn):
本申請(qǐng)實(shí)施例通過(guò)元數(shù)據(jù)服務(wù)器和副本服務(wù)器兩級(jí)選盤(pán)方式,綜合考慮磁盤(pán)剩余容量以及磁盤(pán)負(fù)載來(lái)確定寫(xiě)入數(shù)據(jù)的存儲(chǔ)磁盤(pán),既避免了磁盤(pán)寫(xiě)滿,也不會(huì)造成磁盤(pán)的熱點(diǎn)訪問(wèn)。當(dāng)各磁盤(pán)負(fù)載基本相同時(shí),可以?xún)?yōu)先選擇剩余容量較高的磁盤(pán)作為寫(xiě)入磁盤(pán),從而可以避免磁盤(pán)寫(xiě)滿;當(dāng)剩余容量基本相同時(shí),可以?xún)?yōu)先選擇磁盤(pán)負(fù)載較低的磁盤(pán)作為寫(xiě)入磁盤(pán),從而可以避免造成磁盤(pán)的熱點(diǎn)訪問(wèn)。
附圖說(shuō)明
圖1是本申請(qǐng)的一種分布式文件系統(tǒng)中的數(shù)據(jù)寫(xiě)入方法實(shí)施例的步驟流程圖;
圖2是本申請(qǐng)的一種根據(jù)目標(biāo)副本服務(wù)器所管理的磁盤(pán)的剩余容量及磁盤(pán)負(fù)載選擇寫(xiě)入磁盤(pán)方法實(shí)施例的步驟流程圖;
圖3是本申請(qǐng)的一種計(jì)算各磁盤(pán)被選中的概率的方法實(shí)施例的步驟流程圖;
圖4是本申請(qǐng)的一種計(jì)算磁盤(pán)得分的方法實(shí)施例的步驟流程圖;
圖5是本申請(qǐng)的一種根據(jù)各磁盤(pán)被選中的概率及預(yù)設(shè)條件確定寫(xiě)入磁盤(pán)的方法實(shí)施例的步驟流程圖;
圖6是本申請(qǐng)的一種分布式文件系統(tǒng)中的數(shù)據(jù)寫(xiě)入裝置實(shí)施例的結(jié)構(gòu)框圖;
圖7是本申請(qǐng)的一種第二選擇單元實(shí)施例的結(jié)構(gòu)框圖;
圖8是本申請(qǐng)的一種概率計(jì)算子單元實(shí)施例的結(jié)構(gòu)框圖;
圖9是本申請(qǐng)的一種得分計(jì)算子單元實(shí)施例的結(jié)構(gòu)框圖;
圖10是本申請(qǐng)的一種確定子單元實(shí)施例的結(jié)構(gòu)框圖。
具體實(shí)施方式
為使本申請(qǐng)的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具體實(shí)施方式對(duì)本申請(qǐng)作進(jìn)一步詳細(xì)的說(shuō)明。
參照?qǐng)D1,示出了本申請(qǐng)的一種分布式文件系統(tǒng)中的數(shù)據(jù)寫(xiě)入方法實(shí)施例的步驟流程圖,具體可以包括如下步驟:
步驟101,在元數(shù)據(jù)服務(wù)器所管理的多個(gè)副本服務(wù)器中,根據(jù)所述多個(gè)副本服務(wù)器的剩余容量選擇至少一個(gè)目標(biāo)副本服務(wù)器。
本申請(qǐng)實(shí)施例中,首先在分布式文件系統(tǒng)中設(shè)置元數(shù)據(jù)服務(wù)器和副本服務(wù)器,其中,元數(shù)據(jù)服務(wù)器用于管理名字空間、數(shù)據(jù)塊的副本信息和副本服務(wù)器地址信息;副本服務(wù)器用于管理數(shù)據(jù)塊的本地副本,提供對(duì)所管理數(shù)據(jù)塊副本的讀寫(xiě)操作。
本實(shí)施例采取兩級(jí)選盤(pán)機(jī)制,該分布式文件系統(tǒng)中的數(shù)據(jù)寫(xiě)入裝置(以下簡(jiǎn)稱(chēng)裝置)首先在元數(shù)據(jù)服務(wù)器所管理的副本服務(wù)器中選擇副本服務(wù)器來(lái)進(jìn)行寫(xiě)入數(shù)據(jù),具體可以選擇剩余容量大的副本服務(wù)器,記為目標(biāo)副本服務(wù)器。
步驟102,在目標(biāo)副本服務(wù)器中,根據(jù)目標(biāo)副本服務(wù)器所管理的磁盤(pán)的剩余容量及磁盤(pán)負(fù)載選擇寫(xiě)入磁盤(pán)。
本步驟中,在該裝置確定出目標(biāo)副本服務(wù)器后,進(jìn)一步在該目標(biāo)副本服務(wù)器中選擇進(jìn)行寫(xiě)入數(shù)據(jù)存儲(chǔ)的磁盤(pán),記為寫(xiě)入磁盤(pán)。該裝置綜合考慮了剩余容量和負(fù)載兩方面來(lái)確定寫(xiě)入磁盤(pán),具體的,該裝置可以對(duì)各磁盤(pán)的剩余容量及磁盤(pán)負(fù)載進(jìn)行打分,然后結(jié)合剩余容量和負(fù)載各自的權(quán)重獲得該磁盤(pán)被選中的概率,進(jìn)而根據(jù)該概率確定出寫(xiě)入磁盤(pán)。具體請(qǐng)參見(jiàn)后續(xù)實(shí)施例的描述。
步驟103,通過(guò)目標(biāo)副本服務(wù)器將寫(xiě)入數(shù)據(jù)存儲(chǔ)在寫(xiě)入磁盤(pán)中。
在該裝置確定出寫(xiě)入磁盤(pán)后,即可通過(guò)該目標(biāo)副本服務(wù)器將客戶(hù)端寫(xiě)入的數(shù)據(jù)存儲(chǔ)到上步驟確定的寫(xiě)入磁盤(pán)上了。
本申請(qǐng)實(shí)施例通過(guò)元數(shù)據(jù)服務(wù)器和副本服務(wù)器兩級(jí)選盤(pán)方式,綜合考慮磁盤(pán)剩余容量以及磁盤(pán)負(fù)載來(lái)確定寫(xiě)入數(shù)據(jù)的存儲(chǔ)磁盤(pán),既避免了磁盤(pán)寫(xiě)滿,也不會(huì)造成磁盤(pán)的熱點(diǎn)訪問(wèn)。當(dāng)各磁盤(pán)負(fù)載基本相同時(shí),可以?xún)?yōu)先選擇剩余容量較高的磁盤(pán)作為寫(xiě)入磁盤(pán),從而可以避免磁盤(pán)寫(xiě)滿;當(dāng)剩余容量基本相同時(shí),可以?xún)?yōu)先選擇磁盤(pán)負(fù)載較低的磁盤(pán)作為寫(xiě)入磁盤(pán),從而可以避免造成磁盤(pán)的熱點(diǎn)訪問(wèn)。
在本申請(qǐng)的另一實(shí)施例中,在目標(biāo)副本服務(wù)器中,根據(jù)目標(biāo)副本服務(wù)器 所管理的磁盤(pán)的剩余容量及磁盤(pán)負(fù)載選擇寫(xiě)入磁盤(pán)的過(guò)程,如圖2所示,可以包括:
步驟201,根據(jù)目標(biāo)副本服務(wù)器所管理的磁盤(pán)的剩余容量及磁盤(pán)負(fù)載計(jì)算各磁盤(pán)被選中的概率。
本步驟中,首先獲得目標(biāo)副本服務(wù)器所管理的各磁盤(pán)的剩余容量及各磁盤(pán)的負(fù)載,然后根據(jù)剩余容量和負(fù)載計(jì)算各磁盤(pán)被選中的概率。具體計(jì)算方法有多種,以下僅為舉例。
其中一種計(jì)算各磁盤(pán)被選中的概率的方法,可以如圖3所示,包括:
步驟301,根據(jù)磁盤(pán)的剩余容量和總?cè)萘恐g的比例及其權(quán)重,以及磁盤(pán)的負(fù)載及其權(quán)重,計(jì)算磁盤(pán)的得分。
目標(biāo)副本服務(wù)器中的各磁盤(pán)采用相同方法計(jì)算獲得磁盤(pán)的得分??梢韵雀鶕?jù)比例及其權(quán)重計(jì)算比例的得分,根據(jù)負(fù)載及其權(quán)重計(jì)算負(fù)載的得分,然后綜合兩個(gè)得分獲得磁盤(pán)的得分,或者綜合兩個(gè)得分并引入指定函數(shù)關(guān)系式獲得磁盤(pán)的得分;還可以先計(jì)算比例的得分以及負(fù)載的得分,然后根據(jù)各自的權(quán)重計(jì)算獲得磁盤(pán)的得分,其中也可以引入指定的函數(shù)關(guān)系式計(jì)算磁盤(pán)得分,具體請(qǐng)參見(jiàn)后續(xù)實(shí)施例的描述。
其中,磁盤(pán)的負(fù)載為可以用磁盤(pán)IO隊(duì)列的長(zhǎng)度來(lái)衡量,磁盤(pán)IO隊(duì)列長(zhǎng)度越大表示該磁盤(pán)的負(fù)載越高。
步驟302,對(duì)各磁盤(pán)的得分進(jìn)行歸一化,獲得各磁盤(pán)被選中的概率。
在獲得各磁盤(pán)的得分后,對(duì)得分進(jìn)行歸一化,進(jìn)而可獲得各磁盤(pán)被選中的概率。
步驟202,根據(jù)各磁盤(pán)被選中的概率及預(yù)設(shè)條件確定寫(xiě)入磁盤(pán)。
在獲得各磁盤(pán)被選中的概率后,即可將概率滿足預(yù)設(shè)條件的磁盤(pán)確定為寫(xiě)入磁盤(pán)。該預(yù)設(shè)條件可以是用戶(hù)自主設(shè)定等。
在本申請(qǐng)的另一實(shí)施例中,一種計(jì)算磁盤(pán)得分的方法,如圖4所示,具體可以包括:
步驟401,分別計(jì)算磁盤(pán)的剩余容量和總?cè)萘恐g的比例的得分,以及磁盤(pán)的負(fù)載的得分。
其中,比例的得分與比例之間以及負(fù)載的得分與負(fù)載之間均滿足單調(diào)遞增函數(shù)關(guān)系,此處的單調(diào)遞增函數(shù)的定義域從負(fù)無(wú)窮到正無(wú)窮,值域范圍為從0到1,形狀為S型,多存在于分類(lèi)評(píng)定模型、邏輯回歸模型,屬于多重變數(shù)分析范疇,例如arctan函數(shù)等。本實(shí)施例中,磁盤(pán)的負(fù)載為用磁盤(pán)IO隊(duì)列的長(zhǎng)度來(lái)衡量。
假設(shè)目標(biāo)副本服務(wù)器中包含N塊磁盤(pán),各磁盤(pán)的剩余容量和N塊磁盤(pán)的總?cè)萘恐g的比例依次為R1,R2,……,RN。N塊磁盤(pán)當(dāng)前磁盤(pán)IO隊(duì)列的長(zhǎng)度(也即磁盤(pán)負(fù)載)依次為Q1,Q2,……,QN。
則磁盤(pán)的剩余容量和總?cè)萘恐g的比例的得分Si(Ri)及磁盤(pán)的負(fù)載的得分Si(Qi),i=1,……,N,可以通過(guò)以下公式獲得:
c=-arctan(a×bottom+b)
x可以是R或Q。也即比例的得分與比例之間以及負(fù)載的得分與負(fù)載之間均滿足單調(diào)遞增函數(shù)關(guān)系。該單調(diào)遞增函數(shù)可以為arctan函數(shù)。
其中,high,low和bottom是實(shí)驗(yàn)確定的值。xi取值需要保證在(low,high)之間,因此axi+b保證了取值范圍保證是在(-3,3)之間。bottom保證了當(dāng)一個(gè)很低的xi時(shí),Pi=0。
由于arctan函數(shù)是一個(gè)單調(diào)遞增函數(shù),其特點(diǎn)是,較高的得分表示磁盤(pán)剩余容量比例高或者負(fù)載較低,而反之則表示磁盤(pán)剩余容量比例低或者負(fù)載較高。
步驟402,根據(jù)比例的得分及比例的權(quán)重,以及負(fù)載的得分及負(fù)載的權(quán)重,計(jì)算磁盤(pán)的得分。
在獲得各磁盤(pán)的剩余容量和總?cè)萘恐g的比例的得分,以及各磁盤(pán)的負(fù)載的得分后,在本步驟中,即可結(jié)合磁盤(pán)剩余容量的權(quán)重及磁盤(pán)負(fù)載的權(quán)重計(jì)算各磁盤(pán)的得分了。
Si=Si(Ri)w×Si(Qi)1-w
其中,w是磁盤(pán)剩余容量對(duì)應(yīng)的權(quán)重,1-w即為磁盤(pán)負(fù)載的權(quán)重,該權(quán)重值可以根據(jù)經(jīng)驗(yàn)值等自主設(shè)定。
在按照上述步驟401~402獲得各磁盤(pán)的得分后,即可執(zhí)行前述步驟302,對(duì)各磁盤(pán)的得分進(jìn)行歸一化,獲得各磁盤(pán)被選中的概率。
對(duì)N塊磁盤(pán)的得分做歸一化,用Si來(lái)表示第i塊磁盤(pán)的得分,則:
因此,第i塊磁盤(pán)被選中的概率Pi是,如下所示:
在本申請(qǐng)的另一實(shí)施例中,根據(jù)各磁盤(pán)被選中的概率及預(yù)設(shè)條件確定寫(xiě)入磁盤(pán)的方法,如圖5所示,可以包括:
步驟501,根據(jù)各磁盤(pán)被選中的概率計(jì)算各磁盤(pán)的累加概率值。
以第i塊磁盤(pán)被選中的概率為Pi為例:
所有磁盤(pán)被選中的概率累加等于1。
定義各磁盤(pán)的累加概率值依次為A1,A2,……,AN,
因此Ai是從小到大排序的,取值范圍是[0,1],定義A0=0。
步驟502,對(duì)各磁盤(pán)的累加概率值進(jìn)行二分查找,將查找到的滿足預(yù)設(shè)條件的磁盤(pán)的累加概率值對(duì)應(yīng)的磁盤(pán)作為寫(xiě)入磁盤(pán)。
本實(shí)施例中,可以生成一個(gè)[0,1]隨機(jī)數(shù)發(fā)生器,產(chǎn)生一個(gè)隨機(jī)數(shù)r,該預(yù)設(shè)條件即為磁盤(pán)i需滿足Ai-1<r≤Ai。
該裝置對(duì)排序后的各磁盤(pán)的累加概率值進(jìn)行二分查找,在查找到磁盤(pán)i滿足Ai-1<r≤Ai時(shí),該磁盤(pán)i即確定為寫(xiě)入磁盤(pán)。其中,二分查找又稱(chēng)折半查找,優(yōu)點(diǎn)是比較次數(shù)少,查找速度快,平均性能好,通過(guò)二分查找方式可以在排序后的累加概率值中很快找到滿足預(yù)設(shè)條件的磁盤(pán)。
在確定出寫(xiě)入磁盤(pán)后,即可執(zhí)行前述步驟103進(jìn)行寫(xiě)入數(shù)據(jù)的存儲(chǔ)。
需要說(shuō)明的是,對(duì)于方法實(shí)施例,為了簡(jiǎn)單描述,故將其都表述為一系列的動(dòng)作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本申請(qǐng)實(shí)施例并不受所描述的動(dòng)作順序的限制,因?yàn)橐罁?jù)本申請(qǐng)實(shí)施例,某些步驟可以采用其他順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說(shuō)明書(shū)中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作并不一定是本申請(qǐng)實(shí)施例所必須的。
參照?qǐng)D6,示出了本申請(qǐng)一種分布式文件系統(tǒng)中的數(shù)據(jù)寫(xiě)入裝置實(shí)施例的結(jié)構(gòu)框圖,具體可以包括如下單元:
第一選擇單元601,被配置為在元數(shù)據(jù)服務(wù)器所管理的多個(gè)副本服務(wù)器中,根據(jù)多個(gè)副本服務(wù)器的剩余容量選擇至少一個(gè)目標(biāo)副本服務(wù)器。
第二選擇單元602,被配置為在所述目標(biāo)副本服務(wù)器中,根據(jù)所述目標(biāo)副本服務(wù)器所管理的磁盤(pán)的剩余容量及磁盤(pán)負(fù)載選擇寫(xiě)入磁盤(pán)。
存儲(chǔ)單元603,被配置為通過(guò)所述目標(biāo)副本服務(wù)器將寫(xiě)入數(shù)據(jù)存儲(chǔ)在所述寫(xiě)入磁盤(pán)中。
本申請(qǐng)實(shí)施例通過(guò)上述單元綜合考慮磁盤(pán)剩余容量以及磁盤(pán)負(fù)載來(lái)確定寫(xiě)入數(shù)據(jù)的存儲(chǔ)磁盤(pán),既避免了磁盤(pán)寫(xiě)滿,也不會(huì)造成磁盤(pán)的熱點(diǎn)訪問(wèn)。當(dāng)各磁盤(pán)負(fù)載基本相同時(shí),可以?xún)?yōu)先選擇剩余容量較高的磁盤(pán)作為寫(xiě)入磁盤(pán),從而可以避免磁盤(pán)寫(xiě)滿;當(dāng)剩余容量基本相同時(shí),可以?xún)?yōu)先選擇磁盤(pán)負(fù)載較低的磁盤(pán)作為寫(xiě)入磁盤(pán),從而可以避免造成磁盤(pán)的熱點(diǎn)訪問(wèn)。
在另一實(shí)施例中,如圖7所示,第二選擇單元602可以進(jìn)一步包括:
概率計(jì)算子單元701,被配置為根據(jù)所述目標(biāo)副本服務(wù)器所管理的磁盤(pán)的剩余容量及磁盤(pán)負(fù)載計(jì)算各磁盤(pán)被選中的概率。
確定子單元702,被配置為根據(jù)所述各磁盤(pán)被選中的概率及預(yù)設(shè)條件確 定所述寫(xiě)入磁盤(pán)。
其中,如圖8所示,概率計(jì)算子單元701又可以進(jìn)一步包括:
得分計(jì)算子單元801,被配置為根據(jù)所述磁盤(pán)的剩余容量和總?cè)萘恐g的比例及其權(quán)重,以及所述磁盤(pán)的負(fù)載及其權(quán)重,計(jì)算所述磁盤(pán)的得分。
概率獲得子單元802,被配置為對(duì)各所述磁盤(pán)的得分進(jìn)行歸一化,獲得各所述磁盤(pán)被選中的概率。
如圖9所示,得分計(jì)算子單元801又可以進(jìn)一步包括:
第一計(jì)算子單元901,被配置為分別計(jì)算所述磁盤(pán)的剩余容量和總?cè)萘恐g的比例的得分,以及所述磁盤(pán)的負(fù)載的得分,其中,所述比例的得分與所述比例之間以及所述負(fù)載的得分與所述負(fù)載之間均滿足單調(diào)遞增函數(shù)關(guān)系。
第二計(jì)算子單元902,被配置為根據(jù)所述比例的得分及所述比例的權(quán)重,以及所述負(fù)載的得分及所述負(fù)載的權(quán)重,計(jì)算所述磁盤(pán)的得分。
其中,磁盤(pán)的負(fù)載為所述磁盤(pán)IO隊(duì)列的長(zhǎng)度。
在另一實(shí)施例中,如圖10所示,確定子單元702可以包括:
累加子單元1001,被配置為根據(jù)所述各磁盤(pán)被選中的概率計(jì)算所述各磁盤(pán)的累加概率值。
查找子單元1002,被配置為對(duì)所述各磁盤(pán)的累加概率值進(jìn)行二分查找,將查找到的滿足預(yù)設(shè)條件的磁盤(pán)的累加概率值對(duì)應(yīng)的磁盤(pán)作為所述寫(xiě)入磁盤(pán)。
本申請(qǐng)實(shí)施例還提供了一種電子設(shè)備,包括存儲(chǔ)器和處理器。
處理器與存儲(chǔ)器通過(guò)總線相互連接;總線可以是ISA總線、PCI總線或EISA總線等。所述總線可以分為地址總線、數(shù)據(jù)總線、控制總線等。
其中,存儲(chǔ)器用于存儲(chǔ)一段程序,具體地,程序可以包括程序代碼,所述程序代碼包括計(jì)算機(jī)操作指令。存儲(chǔ)器可能包含高速RAM存儲(chǔ)器,也可能還包括非易失性存儲(chǔ)器(non-volatile memory),例如至少一個(gè)磁盤(pán)存儲(chǔ)器。
處理器用于讀取存儲(chǔ)器中的程序代碼,執(zhí)行以下步驟:
在元數(shù)據(jù)服務(wù)器所管理的多個(gè)副本服務(wù)器中,根據(jù)多個(gè)副本服務(wù)器的剩 余容量選擇至少一個(gè)目標(biāo)副本服務(wù)器;
在所述目標(biāo)副本服務(wù)器中,根據(jù)所述目標(biāo)副本服務(wù)器所管理的磁盤(pán)的剩余容量及磁盤(pán)負(fù)載選擇寫(xiě)入磁盤(pán);
通過(guò)所述目標(biāo)副本服務(wù)器將寫(xiě)入數(shù)據(jù)存儲(chǔ)在所述存儲(chǔ)器的所述寫(xiě)入磁盤(pán)中。
對(duì)于裝置實(shí)施例而言,由于其與方法實(shí)施例基本相似,所以描述的比較簡(jiǎn)單,相關(guān)之處參見(jiàn)方法實(shí)施例的部分說(shuō)明即可。
本說(shuō)明書(shū)中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似的部分互相參見(jiàn)即可。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本申請(qǐng)實(shí)施例的實(shí)施例可提供為方法、裝置、或計(jì)算機(jī)程序產(chǎn)品。因此,本申請(qǐng)實(shí)施例可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本申請(qǐng)實(shí)施例可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤(pán)存儲(chǔ)器、CD-ROM、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
在一個(gè)典型的配置中,所述計(jì)算機(jī)設(shè)備包括一個(gè)或多個(gè)處理器(CPU)、輸入/輸出接口、網(wǎng)絡(luò)接口和內(nèi)存。內(nèi)存可能包括計(jì)算機(jī)可讀介質(zhì)中的非永久性存儲(chǔ)器,隨機(jī)存取存儲(chǔ)器(RAM)和/或非易失性?xún)?nèi)存等形式,如只讀存儲(chǔ)器(ROM)或閃存(flash RAM)。內(nèi)存是計(jì)算機(jī)可讀介質(zhì)的示例。計(jì)算機(jī)可讀介質(zhì)包括永久性和非永久性、可移動(dòng)和非可移動(dòng)媒體可以由任何方法或技術(shù)來(lái)實(shí)現(xiàn)信息存儲(chǔ)。信息可以是計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計(jì)算機(jī)的存儲(chǔ)介質(zhì)的例子包括,但不限于相變內(nèi)存(PRAM)、靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)、其他類(lèi)型的隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、電可擦除可編程只讀存儲(chǔ)器(EEPROM)、快閃記憶體或其他內(nèi) 存技術(shù)、只讀光盤(pán)只讀存儲(chǔ)器(CD-ROM)、數(shù)字多功能光盤(pán)(DVD)或其他光學(xué)存儲(chǔ)、磁盒式磁帶,磁帶磁磁盤(pán)存儲(chǔ)或其他磁性存儲(chǔ)設(shè)備或任何其他非傳輸介質(zhì),可用于存儲(chǔ)可以被計(jì)算設(shè)備訪問(wèn)的信息。按照本文中的界定,計(jì)算機(jī)可讀介質(zhì)不包括非持續(xù)性的電腦可讀媒體(transitory media),如調(diào)制的數(shù)據(jù)信號(hào)和載波。
本申請(qǐng)實(shí)施例是參照根據(jù)本申請(qǐng)實(shí)施例的方法、終端設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來(lái)描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專(zhuān)用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理終端設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過(guò)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理終端設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理終端設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理終端設(shè)備上,使得在計(jì)算機(jī)或其他可編程終端設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程終端設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
盡管已描述了本申請(qǐng)實(shí)施例的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對(duì)這些實(shí)施例做出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實(shí)施例以及落入本申請(qǐng)實(shí)施例范圍的所有變更和修改。
最后,還需要說(shuō)明的是,在本文中,諸如第一和第二等之類(lèi)的關(guān)系術(shù)語(yǔ)僅僅用來(lái)將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開(kāi)來(lái),而不一定要求 或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者終端設(shè)備不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、物品或者終端設(shè)備所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過(guò)程、方法、物品或者終端設(shè)備中還存在另外的相同要素。
以上對(duì)本申請(qǐng)所提供的一種分布式文件系統(tǒng)中的數(shù)據(jù)寫(xiě)入方法和一種分布式文件系統(tǒng)中的數(shù)據(jù)寫(xiě)入裝置,進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本申請(qǐng)的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說(shuō)明只是用于幫助理解本申請(qǐng)的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本申請(qǐng)的思想,在具體實(shí)施方式及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說(shuō)明書(shū)內(nèi)容不應(yīng)理解為對(duì)本申請(qǐng)的限制。