分布式流數(shù)據(jù)存儲系統(tǒng)的存儲資源規(guī)劃方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及流數(shù)據(jù)存儲技術(shù)領(lǐng)域,特別涉及一種分布式流數(shù)據(jù)存儲系統(tǒng)的存儲資 源規(guī)劃方法。
【背景技術(shù)】
[0002] 分布式存儲系統(tǒng),是將數(shù)據(jù)分散存儲在多臺獨立設(shè)備上的存儲系統(tǒng)。傳統(tǒng)的網(wǎng)絡(luò) 存儲系統(tǒng)采用集中的存儲服務(wù)器存放所有數(shù)據(jù),存儲服務(wù)器成為系統(tǒng)性能的瓶頸,也是可 靠性和安全性的焦點,不能滿足大規(guī)模存儲應(yīng)用的需要。分布式網(wǎng)絡(luò)存儲系統(tǒng)采用可擴展 的系統(tǒng)結(jié)構(gòu),利用多臺存儲服務(wù)器分擔(dān)存儲負荷,利用位置服務(wù)器定位存儲信息,不但提高 了系統(tǒng)的可靠性、可用性和存取效率,還易于擴展。
[0003] 圖1是典型的分布式視頻流數(shù)據(jù)存儲系統(tǒng)的結(jié)構(gòu)示意圖,所述分布式視頻流數(shù)據(jù) 存儲系統(tǒng)包括元服務(wù)器(MS,MetaServer) 11和若干臺數(shù)據(jù)服務(wù)器(DS,DataServer) 12〇 所述元服務(wù)器11適于接收攝像機10的注冊請求,調(diào)度所述數(shù)據(jù)服務(wù)器12存儲視頻流數(shù) 據(jù),并接收所述數(shù)據(jù)服務(wù)器12匯報的自身硬件和負載狀況。所述數(shù)據(jù)服務(wù)器12則在所述 元服務(wù)器11的調(diào)度下向攝像機10請求數(shù)據(jù),對視頻流數(shù)據(jù)進行存儲。當(dāng)多個進程同時訪 問同一塊磁盤時,可能會出現(xiàn)磁盤沖突。為了避免磁盤沖突,現(xiàn)有技術(shù)中采用條帶化技術(shù)將 視頻流數(shù)據(jù)存儲到不同數(shù)據(jù)服務(wù)器中的不同磁盤上去。
[0004] 條帶化技術(shù)能使多個進程同時訪問數(shù)據(jù)的多個不同部分而不會造成磁盤沖突,而 且在需要對流數(shù)據(jù)進行順序訪問的時候可以獲得最大程度上的I/O并行能力。然而,當(dāng)前 這種將流數(shù)據(jù)的存儲位置分散到不同數(shù)據(jù)服務(wù)器中的不同磁盤上的存儲資源調(diào)度方法,會 導(dǎo)致大量的數(shù)據(jù)服務(wù)器和磁盤處在活躍狀態(tài)。與處在靜默狀態(tài)的數(shù)據(jù)服務(wù)器和磁盤相比, 處在活躍狀態(tài)的數(shù)據(jù)服務(wù)器和磁盤的功耗更高、設(shè)備損耗更大。并且,流數(shù)據(jù)存在存儲生命 周期的需求,當(dāng)前這種存儲資源調(diào)度方法在過期流數(shù)據(jù)刪除后會產(chǎn)生大量的碎片。其中,活 躍狀態(tài)是指執(zhí)行讀任務(wù)或者寫任務(wù)時的狀態(tài),靜默狀態(tài)是指未執(zhí)行讀任務(wù)或者寫任務(wù)時的 狀態(tài)。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明所要解決的是分布式流數(shù)據(jù)存儲系統(tǒng)功耗高、設(shè)備損耗大、流數(shù)據(jù)刪除后 產(chǎn)生大量碎片的問題。
[0006] 為解決上述問題,本發(fā)明提供一種分布式流數(shù)據(jù)存儲系統(tǒng)的存儲資源規(guī)劃方法, 包括:
[0007] 獲得滿足最大存儲需求所需數(shù)據(jù)服務(wù)器的最少數(shù)量;
[0008] 將數(shù)據(jù)服務(wù)器中的每塊磁盤等分為
條條 帶,其中,DSniax為滿足最大存儲需求所需數(shù)據(jù)服務(wù)器的最少數(shù)量,DvS磁盤的容量,Nb為數(shù) 據(jù)服務(wù)器的網(wǎng)絡(luò)帶寬,Dn為數(shù)據(jù)服務(wù)器中磁盤的數(shù)量,S_為存儲系統(tǒng)所能承受的流任務(wù)的 最大數(shù)量,Sb為流任務(wù)的碼率,T為流任務(wù)的存儲周期,Db為磁盤的帶寬;
[0009]根據(jù)實際存儲需求設(shè)置
臺數(shù)據(jù)服務(wù)器,其中,Sn為流任 務(wù)的實際數(shù)量,Dsn為每塊磁盤中條帶的數(shù)量;
[0010] 將同一臺數(shù)據(jù)服務(wù)器中的每Nb/Db條條帶集合成條帶捆,所述條帶捆中的任意兩 條條帶不在同一磁盤上;
[0011] 將所有條帶捆集合成存儲資源帶,所述存儲資源帶中的任意
個相鄰條帶捆不在同一數(shù)據(jù)服務(wù)器中;
[0012] 將在同一條帶中執(zhí)行的寫任務(wù)集合成任務(wù)集束,所有任務(wù)集束構(gòu)成任務(wù)總窗口, 使所述任務(wù)總窗口在所述存儲資源帶中滾動。
[0013] 通過將同一臺數(shù)據(jù)服務(wù)器中不同磁盤上的條帶集合成條帶捆,將所有條帶捆集合 成存儲資源帶,在滿足存儲系統(tǒng)所有讀寫任務(wù)的網(wǎng)絡(luò)帶寬和磁盤帶寬的要求下,盡可能地 將寫任務(wù)集中到了同一臺數(shù)據(jù)服務(wù)器中的同一塊磁盤上,減少了過期流數(shù)據(jù)刪除后產(chǎn)生的 碎片,在底層存儲資源上形成連續(xù)可寫入的磁盤空間,可最大化磁盤寫入帶寬。當(dāng)所有寫任 務(wù)集合成的任務(wù)總窗口在所述存儲資源帶中滾動時,只有任務(wù)總窗口中的數(shù)據(jù)服務(wù)器和磁 盤處于活躍狀態(tài),因而能夠降低分布式流數(shù)據(jù)存儲系統(tǒng)的功耗、減小設(shè)備損耗。
[0014] 進一步,本發(fā)明在進行條帶劃分時,將所有條帶規(guī)劃成兩部分:一部分條帶用作存 儲流任務(wù)帶來的數(shù)據(jù)總量,該部分條帶的存儲容量等于流任務(wù)帶來的數(shù)據(jù)總大?。涣硪徊?分條帶為最大任務(wù)總窗口所需的多個連續(xù)條帶。通過如此設(shè)置,在任務(wù)總窗口滾動到存儲 資源帶的末端時,存儲資源帶前端條帶中存儲的數(shù)據(jù)過期,可以重新寫入數(shù)據(jù),因而能夠保 證在流數(shù)據(jù)的存儲周期內(nèi)有足夠的可用磁盤。
[0015] 可選的,所述獲得滿足最大存儲需求所需的數(shù)據(jù)服務(wù)器的最少數(shù)量包括:
[0016]
獲得滿足最大存儲需求所需數(shù)據(jù)服務(wù)器的
初始數(shù)量,其中,DSniax'為所述初始數(shù)量;
[0017]步驟S12,判斷所述初始數(shù)量DSniax'
[0018] 步驟S13,若所述初始數(shù)量DSniax'
則所述初始數(shù)量DSniax'即為滿足 最大存儲需求所需數(shù)據(jù)服務(wù)器的最少數(shù)量DSniax,否則將所述初始數(shù)量DSniax'作為變量不斷
[0019] 可選的,所述存儲資源帶中的首尾條帶相連。
[0020]可選的,使所述任務(wù)總窗口在所述存儲資源帶中滾動包括:在當(dāng)前任務(wù)集束寫滿 一條條帶后,將當(dāng)前任務(wù)集束向前滾動到空白或者未寫滿數(shù)據(jù)的條帶中;在有新的寫任務(wù) 加入時,將新加入的寫任務(wù)分配到前端任務(wù)集束中。
[0021] 可選的,使所述任務(wù)總窗口在所述存儲資源帶中滾動還包括:在當(dāng)前任務(wù)集束的 條帶被調(diào)度執(zhí)行讀任務(wù)時,將當(dāng)前任務(wù)集束向前滾動到空白或者未寫滿數(shù)據(jù)的條帶中。
[0022] 可選的,寫滿數(shù)據(jù)但數(shù)據(jù)已過期的條帶可被任務(wù)集束重新寫入數(shù)據(jù)。
[0023] 與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點:
[0024] 本發(fā)明提供的分布式流數(shù)據(jù)存儲系統(tǒng)的存儲資源規(guī)劃方法,基于流數(shù)據(jù)的時間序 列特征和存儲生命周期的需求,將同一臺數(shù)據(jù)服務(wù)器中不同磁盤上的條帶集合成條帶捆避
個相鄰條帶捆設(shè)計成不在同一 數(shù)據(jù)服務(wù)器中以滿足存儲系統(tǒng)所有讀寫任務(wù)的網(wǎng)絡(luò)帶寬,盡可能將寫任務(wù)集中到了同一臺 數(shù)據(jù)服務(wù)器中的同一塊磁盤上,而不是盡量將存儲位置分散到不同數(shù)據(jù)服務(wù)器中的不同磁 盤上,從而減少了過期流數(shù)據(jù)刪除后產(chǎn)生的碎片,并能夠降低分布式流數(shù)據(jù)存儲系統(tǒng)的功 耗高、減小設(shè)備損耗。
【附圖說明】
[0025] 圖1是典型的分布式視頻流數(shù)據(jù)存儲系統(tǒng)的結(jié)構(gòu)示意圖;
[0026] 圖2是本發(fā)明實施例將所有磁盤條帶化后的示意圖;
[0027] 圖3是本發(fā)明實施例將條帶集合成條帶捆、條帶捆集合成存儲資源帶后的示意 圖;
[0028] 圖4是本發(fā)明實施例任務(wù)總窗口在存儲資源帶中滾動的示意圖;
[0029] 圖5是本發(fā)明實施例任務(wù)總窗口在首尾條帶相連的存儲資源帶中滾動的示意圖。
【具體實施方式】
[0030] 本發(fā)明實施例提供一種分布式流數(shù)據(jù)存儲系統(tǒng)的存儲資源規(guī)劃方法,所述流數(shù)據(jù) 可以為傳感器網(wǎng)絡(luò)數(shù)據(jù)、航空航天監(jiān)測數(shù)據(jù)、氣象監(jiān)控數(shù)據(jù)、金融服務(wù)數(shù)據(jù)或者圖1所示的 視頻流數(shù)據(jù)等,所述分布式流數(shù)據(jù)存儲系統(tǒng)與圖1所示的分布式視頻流數(shù)據(jù)存儲系統(tǒng)類 似,包括元服務(wù)器和若干臺數(shù)據(jù)服務(wù)器,每臺數(shù)據(jù)服務(wù)器包括若干塊磁盤。作為數(shù)據(jù)服務(wù)器 的屬性,數(shù)據(jù)服務(wù)器的網(wǎng)絡(luò)帶寬、數(shù)據(jù)服務(wù)器中的磁盤數(shù)量、磁盤的帶寬以及磁盤的容量都 是確定的。而作為需要存儲的流數(shù)據(jù)的屬性,流任務(wù)的碼率和流任務(wù)的存儲周期也是確定 的,流任務(wù)是指將單路流數(shù)據(jù)存儲進存儲系統(tǒng)。本發(fā)明實施例提供的分布式流數(shù)據(jù)存儲系 統(tǒng)的存儲資源規(guī)劃方法,正是基于數(shù)據(jù)服務(wù)器的屬性和流數(shù)據(jù)的屬性提出的。所述規(guī)劃方 法包括:
[0031] 步驟Sl:獲得滿足最大存儲需求所需數(shù)據(jù)服務(wù)器的最少數(shù)量;
[0032] 步驟S2 :將數(shù)據(jù)服務(wù)器中的每塊磁盤等分為
其中,DSniax為滿足最大存儲需求所需數(shù)據(jù)服 務(wù)器的最少數(shù)量,隊為磁盤的容量,Nb為數(shù)據(jù)服務(wù)器的網(wǎng)絡(luò)帶寬,D"為數(shù)據(jù)服務(wù)器中磁盤的 數(shù)量,Sniax為存儲系統(tǒng)所能承受的流任務(wù)的最大數(shù)量,Sb為流任務(wù)的碼率,T為流任務(wù)的存 儲周期,Db為磁盤的帶寬;
[0033]
臺數(shù)據(jù)服務(wù)器,其中,Sn 為流任務(wù)的實際數(shù)量,Dsn為每塊磁盤中條帶的數(shù)量;
[0034] 步驟S4 :將同一臺數(shù)據(jù)服務(wù)器中的每Nb/Db條條帶集合成條帶捆,所述條帶捆中的 任意兩條條帶不在同一磁盤上;
[0035] 步驟S5:將所有條帶捆集合成存儲資源帶,所述存儲資源帶中的任意
[0036] 步驟S6 :將在同一條帶中執(zhí)行的寫任務(wù)集合成任務(wù)集束,所有任務(wù)集束構(gòu)成任務(wù) 總窗口,使所述任務(wù)總窗口在所述存儲資源帶中滾動。
[0037] 本實施例提供的分布式流數(shù)據(jù)存儲系統(tǒng)的存儲資源規(guī)劃方法,通過盡可能將寫任 務(wù)集中到同一臺數(shù)據(jù)服務(wù)器中的同一塊磁盤上,減少過期流數(shù)據(jù)刪除后產(chǎn)生的碎片,在底 層存儲資源上形成連續(xù)可寫入的磁盤空間,可最大化磁盤寫入帶寬。當(dāng)所有寫任務(wù)集合成 的任務(wù)總窗口在存儲資源帶中滾動時,只有任務(wù)總窗口中的數(shù)據(jù)服務(wù)器和磁盤處于活躍狀 態(tài),因而能夠降低分布式流數(shù)據(jù)存儲系統(tǒng)的功耗、減小設(shè)備損耗。
[0038] 下面結(jié)合實施例及附圖,對本發(fā)明作進一步地的詳細說明,但本發(fā)明的實施方式 不限于此。
[0039] 如步驟Sl所述,獲得滿足最大存儲需求所需數(shù)據(jù)服務(wù)器的最少數(shù)量。分布式流數(shù) 據(jù)存儲系統(tǒng)的構(gòu)建一般是多期的,比如規(guī)劃是存儲來自1000路網(wǎng)絡(luò)攝像頭的視頻流,但第 一期只上馬600路網(wǎng)絡(luò)攝像頭,此時分布式流數(shù)據(jù)存儲系統(tǒng)的構(gòu)建依然按照滿足存儲來自 1000路網(wǎng)絡(luò)攝像頭的視頻流來計算所需數(shù)據(jù)服務(wù)器的最少數(shù)量,以該最少數(shù)量來計算磁盤 應(yīng)當(dāng)?shù)确值臈l帶數(shù),再以該等分的磁盤條帶數(shù)計算存儲來自600路網(wǎng)絡(luò)攝像頭的視頻流所 需的數(shù)據(jù)服務(wù)器。獲得滿足最大存儲需求所需數(shù)據(jù)服務(wù)器的最少數(shù)量具體包括:
[0040]
獲得滿足最大存儲需求所需數(shù)據(jù)服務(wù)器的 初始數(shù)量,其中,DSniax'為所述初始數(shù)量。具體地,為了滿足最大存儲需求,構(gòu)建的分布式 存儲系統(tǒng)總存儲容量首先必須大于最大數(shù)量的流任務(wù)帶來的數(shù)據(jù)總量,即需要滿足不等式 DS_XDnXDv>S_XSbXT,根據(jù)此不等式可以獲得滿足最大存儲需求所需數(shù)據(jù)服務(wù)器的
初始數(shù)量DS_'。由于數(shù)據(jù)服務(wù)器的數(shù)量為整數(shù):
[0041] 步驟S12,判斷所述初始數(shù)量DSniax'
。滿足最大存儲需求所需數(shù) 據(jù)服務(wù)器的最少數(shù)量除了在容量上需要滿足存儲需求,還要