專利名稱:用于提高寫地址非連續(xù)的數(shù)據(jù)存儲效率的方法和存儲設備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)存儲技術(shù),特別涉及一種用于提高寫地址非連續(xù)的數(shù)據(jù) 存儲效率的方法、以及一種用于提高寫地址非連續(xù)的數(shù)據(jù)存儲效率的存儲設 備。
背景技術(shù):
獨立冗余;茲盤陣列(RAID)中包括控制器和多個物理;茲盤,該控制器 將待存儲數(shù)據(jù)按一定規(guī)則分段后,分別存儲于RAID中的多個物理磁盤,以 利用多個物理磁盤的并行存取、并行傳輸來匹配帶寬來提高數(shù)據(jù)存儲的效 率。另外,RAID中的各物理磁盤還存儲有用于數(shù)據(jù)恢復的冗余數(shù)據(jù),例如 鏡像數(shù)據(jù)或冗余校驗信息,從而提高數(shù)據(jù)存儲的可靠性。
其中,RAID目前分為7個等級第0等級RAID ( RAID0 ) ~第6等 級RAID (RAID6)。圖1為現(xiàn)有第5等級RAID ( RAID5 )中的數(shù)據(jù)分布 示意圖。如圖l所示,以包括4個物理磁盤的第5等級RAID (RAID5)為 例,該RAID整體上可看作一邏輯》茲盤,邏輯》茲盤中的數(shù)據(jù)被分為15個段 并分別存儲于4個物理磁盤,即圖1中的物理磁盤0 物理磁盤3,每一段稱 為一個條塊(Strip),即圖1中的D0 D14;各物理f茲盤中處于如圖1所示 的同一行的條塊組合為條帶(Stripe),即圖1中的條帶0 條帶4,條帶中 的條塊容量稱之為條帶深度;而且,每個條帶中還包括冗余數(shù)據(jù),即圖1中 的P0 P4。
雖然RAID可整體上看作一邏輯磁盤,但其最終的存儲載體是各物理磁 盤中的盤片。在將待存儲數(shù)據(jù)存儲至物理磁盤的盤片之前,控制器首先需要 根據(jù)待存儲數(shù)據(jù)的寫地址確定盤片中對應的磁道,并向物理磁盤發(fā)出指令。
5物理磁盤根據(jù)控制器的指令控制磁頭從當前所在磁道移動至控制器所確定 的對應;茲道,物理/磁盤移動石茲頭的過程稱為尋道。對于寫地址連續(xù)的待存儲數(shù)據(jù),磁頭在存儲過程中移動的距離較短,使 得所耗費的尋道時間較短;而對于寫地址非連續(xù)的待存儲數(shù)據(jù),磁頭在存儲 過程中移動的距離則相對較長,使得耗費的尋道時間較長,從而降低存儲效 率。以包括RAID的存儲設備應用于視頻監(jiān)控為例,多個攝像頭拍攝到的視 頻數(shù)據(jù)包作為待存儲數(shù)據(jù),同時連續(xù)不斷地輸入至同一臺存儲設備。對于存 儲設備來說,從每個攝像頭連續(xù)接收到的視頻數(shù)據(jù)包的寫地址是連續(xù)的,即 來自同一攝像頭的視頻數(shù)據(jù)包的寫地址對應RAID中的同一存儲區(qū)域、而來 自不同攝像頭的視頻數(shù)據(jù)包的寫地址分別對應RAID中的不同存儲區(qū)域。其中,本文所述的每個存儲區(qū)域中的物理地址均是連續(xù)的,即連續(xù)的至 少兩個寫地址對應同一存〗諸區(qū)域。這里所述的連續(xù)可以是絕對的連續(xù),也可 以是相對的連續(xù)。例如,寫地址1、 2對應存儲區(qū)域1,即絕對連續(xù)的寫地 址對應同一存儲區(qū)域。再例如,寫地址5、 7對應存儲區(qū)域2,寫地址ll、 13對應存儲區(qū)域3,即相比于存儲區(qū)域3所對應的各寫地址11和13,存儲 區(qū)域2中的寫地址5和7為相對連續(xù)。由于多個攝像頭同時將拍攝到的視頻數(shù)據(jù)包輸入至存儲設備,因而存儲 設備從多個攝像頭連續(xù)接收到的視頻數(shù)據(jù)包的寫地址是非連續(xù)的。這樣, RAID中的控制器,在將寫地址對應不同存儲區(qū)域的視頻數(shù)據(jù)包寫入至物理 磁盤的過程中,不得不控制RAID中對應物理磁盤的反復尋道,從而耗費了 4交多的尋道時間。可見,現(xiàn)有寫地址非連續(xù)的數(shù)據(jù)存儲效率較低。發(fā)明內(nèi)容有鑒于此,本發(fā)明提供了一種用于提高寫地址非連續(xù)的數(shù)據(jù)存儲效率的 方法、以及一種用于提高寫地址非連續(xù)的數(shù)據(jù)存儲效率的存儲設備,能夠提高對寫地址非連續(xù)的數(shù)據(jù)的存儲效率。
本發(fā)明提供的 一種用于提高寫地址非連續(xù)的數(shù)據(jù)存儲效率的方法,該方
法應用于獨立-茲盤冗余陣列RAID中,所述RAID包括控制器和物理磁盤,
所述控制器和物理磁盤之間具有緩存、且所述物理》茲盤包含至少兩個存儲區(qū)
域,該方法包括
控制器將接收到的待存儲數(shù)據(jù)寫入至所述緩存,并記錄待存儲數(shù)據(jù)的寫 地址所對應的存儲區(qū)域;
控制器將緩存中寫地址對應不同存儲區(qū)域的待存儲數(shù)據(jù)分次刷新至對 應的存儲區(qū)域,且每次僅刷新寫地址對應相同存儲區(qū)域的待存儲數(shù)據(jù)。
所述緩存中包括多個緩存塊,所述將接收到的待存儲數(shù)據(jù)寫入至所述緩 存包括將接收到的待存儲數(shù)據(jù)直接寫入至所述緩存中空閑的各緩存塊;
所述記錄待存儲數(shù)據(jù)的寫地址所對應的存儲區(qū)域包括記錄待存儲數(shù)據(jù) 的寫地址、待存儲數(shù)據(jù)的寫地址所對應的存儲區(qū)域、以及該待存儲數(shù)據(jù)所在 緩存塊之間的對應關(guān)系;
所述將緩存中寫地址對應相同存儲區(qū)域的待存儲數(shù)據(jù)刷新至該存儲區(qū) 域包括根據(jù)所述對應關(guān)系,將對應相同存儲區(qū)域的所有非空閑緩存塊中的 待存儲數(shù)據(jù),按照對應的寫地址刷新至該存儲區(qū)域。
所述緩存塊的大小為所述待存儲數(shù)據(jù)大小與所述RAID中條塊大小的 最大公約數(shù)。
每一存儲區(qū)域分別對應 一預設的編號;
所述將緩存中寫地址對應不同存儲區(qū)域的待存儲數(shù)據(jù)分別刷新至對應 的存儲區(qū)域包括按照各存儲區(qū)域?qū)木幪柵帕许樞?,循環(huán)地將緩存中寫 地址對應不同存儲區(qū)域的待存儲數(shù)據(jù)分別刷新至對應的存儲區(qū)域。
所述接收到的待存儲數(shù)據(jù)包括來自不同攝像頭的視頻數(shù)據(jù)包,其中, 來自同一攝像頭的視頻數(shù)據(jù)包的寫地址,對應該攝像頭的編號所對應的存儲 區(qū)域。
本發(fā)明提供的 一種用于提高寫地址非連續(xù)的數(shù)據(jù)存儲效率的存儲設備,該存儲設備中具有獨立磁盤冗余陣列RAID,所述RAID包括控制器、以及包含多個存儲區(qū)域的物理》茲盤,所述RAID在所述控制器和所述物理磁盤之間還包括緩存;所述控制器將接收到的待存儲數(shù)據(jù)寫入至所述緩存,并記錄待存儲數(shù)據(jù)的寫地址所對應的存儲區(qū)域;將緩存中寫地址對應不同存儲區(qū)域的待存儲數(shù)據(jù)分次刷新至對應的存儲區(qū)域,且每次僅刷新寫地址對應相同存儲區(qū)域的待存儲數(shù)據(jù)。所述緩存中包括多個緩存塊;所述控制器將接收到的待存儲數(shù)據(jù)直接寫入至所述緩存中空閑的各緩 存塊,并記錄待存儲數(shù)據(jù)的寫地址、待存儲數(shù)據(jù)的寫地址所對應的存儲區(qū)域、 以及該待存儲數(shù)據(jù)所在緩存塊之間的對應關(guān)系;根據(jù)所述對應關(guān)系,將對應 相同存儲區(qū)域的所有非空閑緩存塊中的待存儲數(shù)據(jù),按照對應的寫地址刷新 至該存儲區(qū)域。所述緩存塊的大小為所述待存儲數(shù)據(jù)大小與所述RAID中條塊大小的 最大公約數(shù)。每一存儲區(qū)域分別對應 一預設的編號;所述控制器按照各存儲區(qū)域?qū)木幪柵帕许樞颍h(huán)地將緩存中寫地 址對應不同存儲區(qū)域的待存儲數(shù)據(jù)分別刷新至對應的存儲區(qū)域。所接收到的待存儲數(shù)據(jù)包括來自不同攝像頭的視頻數(shù)據(jù)包,其中,來 自同一攝像頭的視頻數(shù)據(jù)包的寫地址,對應該攝像頭的編號所對應的存儲區(qū) 域。本發(fā)明又提供了 一種在網(wǎng)絡存儲設備上執(zhí)行的數(shù)據(jù)存儲控制方法,其中 所述網(wǎng)絡存儲設備在應用時,位于物理磁盤以及需要存儲服務的 一 個或多個 節(jié)點之間,該方法包括以下步驟a. 接收至少兩個節(jié)點向物理磁盤寫入數(shù)據(jù)的請求,連續(xù)來自同一節(jié)點 的數(shù)據(jù)的寫地址通常可以是連續(xù)的;b. 將待寫入物理磁盤的數(shù)據(jù)存入緩存中;c. 記錄每個節(jié)點數(shù)據(jù)在緩存中存放的地址信息;d. 在控制緩存向物理磁盤刷新數(shù)據(jù)時,根據(jù)已經(jīng)記錄的地址信息,以 節(jié)點為單位,依次將各個節(jié)點的數(shù)據(jù)向物理磁盤刷新,也就是說,可以每次 僅刷新寫地址連續(xù)的數(shù)據(jù)。所述節(jié)點為攝像頭,步驟c具體實現(xiàn)方式可以為從攝像頭的寫入請求 中獲得攝像頭唯一標識,建立各個攝像頭標識與數(shù)據(jù)在緩存中存放地址之間 的對應關(guān)系。步驟d每次向物理磁盤刷新數(shù)據(jù)的程度可以是全部刷新。本發(fā)明還提供了 一種在網(wǎng)絡存儲設備上執(zhí)行的數(shù)據(jù)存儲控制方法,其中所述網(wǎng)絡存儲設備在應用時,位于物理磁盤以及需要存儲服務的節(jié)點之間,該方法包括以下步驟a. 將需要寫入物理磁盤的數(shù)據(jù)存入緩存中;b. 根據(jù)數(shù)據(jù)的寫地址,將寫地址連續(xù)的數(shù)據(jù)劃分到同一組中,記錄每 個組數(shù)據(jù)在緩存中存放地址;c. 在控制緩存向物理磁盤刷新數(shù)據(jù)時,根據(jù)各個組數(shù)據(jù)在緩存中的存 放地址,以組為單位依次將各組中的數(shù)據(jù)向物理^茲盤刷新。由上述技術(shù)方案可見,在本發(fā)明中,RAID中的控制器和物理^茲盤之間 具有緩存,控制器先將寫地址對應不同存儲區(qū)域的待存儲數(shù)據(jù)、即寫地址非 連續(xù)的數(shù)據(jù)寫入至緩存,然后將緩存中寫地址對應不同存儲區(qū)域的待存儲數(shù) 據(jù)分次刷新至對應的存儲區(qū)域,且每次僅刷新寫地址對應相同存儲區(qū)域的待 存儲數(shù)據(jù)、即寫地址連續(xù)的數(shù)據(jù),從而能夠大大減少物理磁盤的尋道時間, 以提高數(shù)據(jù)存儲效率。
圖1為現(xiàn)有第5等級RAID中的數(shù)據(jù)分布示意圖。圖2為本發(fā)明中用于提高寫地址非連續(xù)的數(shù)據(jù)存儲效率的存儲設備的 示例性結(jié)構(gòu)示意圖。圖3為本發(fā)明中用于提高寫地址非連續(xù)的數(shù)據(jù)存儲效率的方法流程示 意圖。圖4為傳統(tǒng)組相聯(lián)地址映像方式的示意圖。圖5為本發(fā)明實施例中地址映像方式的示意圖。圖6a 圖6c為基于傳統(tǒng)替換方式的刷新過程示意圖。圖7a 圖7c為基于本發(fā)明實施例中替換方式的刷新過程示意圖。
具體實施方式
為使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下參照附圖并舉 實施例,對本發(fā)明進一步詳細說明。圖2為本發(fā)明中用于提高寫地址非連續(xù)的數(shù)據(jù)存儲效率的存儲設備的 示例性結(jié)構(gòu)示意圖。如圖2所示,本發(fā)明的存儲設備中,RAID包括控制器、 以及包含多個存儲區(qū)域的物理》茲盤。在RAID中的控制器和物理^茲盤之間具 有緩存(Cache),本文所述的Cache是指例如物理內(nèi)存等不需要尋道的存 儲介質(zhì)。當然,有些RAID本身就具有Cache,這種情況下,圖2所示的Cache 則是RAID原有的,而無需再額外增加。這樣,控制器先將連續(xù)接收到的待存儲數(shù)據(jù)均寫入至Cache,連續(xù)接收 到的各待存儲數(shù)據(jù)的寫地址可以是連續(xù)的、也可以是非連續(xù)的,然后在每次 刷新時,再將Cache中寫地址對應不同存儲區(qū)域的待存儲數(shù)據(jù)分次刷新至物 理磁盤中對應的存儲區(qū)域,且每次僅刷新寫地址對應相同存儲區(qū)域的待存儲 數(shù)據(jù)、即寫地址連續(xù)的數(shù)據(jù)。圖3為本發(fā)明中用于提高寫地址非連續(xù)的數(shù)據(jù)存儲效率的方法流程示 意圖。如圖3所示,該方法包括步驟300,在RAID的控制器和物理i茲盤之間i殳置Cache,所述物理不茲 盤包含多個存儲區(qū)域。實際應用中,本步驟為一預先執(zhí)行的步驟。步驟301,控制器將接收到的待存儲數(shù)據(jù)寫入至Cache,并記錄待存儲數(shù)據(jù)的寫地址所對應的存儲區(qū)域。實際應用中,本步驟為一實時執(zhí)行的步驟。步驟302,在預設的刷新時刻到來時,控制器將緩存中寫地址對應相同存儲區(qū)域的待存儲數(shù)據(jù)刷新至該存儲區(qū)域。實際應用中,本步驟為一周期性執(zhí)行的步驟,且與步驟301之間不存在 固定不變的執(zhí)行順序。也就是說,周期性執(zhí)行的步驟302所構(gòu)成的處理過程為控制器將緩存 中寫地址對應不同存儲區(qū)域的待存儲數(shù)據(jù)分次刷新至對應的存儲區(qū)域,且每 次僅刷新寫地址對應相同存儲區(qū)域的待存儲數(shù)據(jù)。至此,本流程結(jié)束。上述存儲設備的工作原理、以及方法的處理流程均可看作控制器通過 Cache,將寫地址非連續(xù)'的數(shù)據(jù)整理為寫地址連續(xù)的數(shù)據(jù),然后再將寫地址 連續(xù)的數(shù)據(jù)寫入至物理磁盤。例如3個待存儲數(shù)據(jù)的寫地址分別為0x111122、 0x888899、 0x111123, 如果直接寫入物理磁盤,則需要先將磁頭從當前^茲道移動至0x111122對應 的》茲道、然后移動至0x888899對應的》茲道、再移動至0x111123對應的》茲道。 而如果通過Cache進行整理,將寫地址為Oxl 11122和Oxl 11123的2個待存 儲數(shù)據(jù)同時寫入物理磁盤,之后再將寫地址為0x888899的待存儲數(shù)據(jù)寫入 物理磁盤,則先將磁頭從當前磁道移動至0x111122對應的磁道、然后移動 至0x111123對應的》茲道、再移動至0x888899對應的》茲道,由于0x111122 和0x111123為連續(xù)的地址,因而將i茲頭/人0x111122對應的f茲道移動至 0x111123對應的》茲道所需的尋道時間非常短、甚至0x111122與0x111123 對應同 一 磁道而不需要尋道,從而降低了總的尋道時間??梢?,通過Cache將寫地址非連續(xù)的數(shù)據(jù)整理為寫地址連續(xù)的數(shù)據(jù),能 夠減少尋道時間,從而提高數(shù)據(jù)存儲效率。具體來說,將待存儲數(shù)據(jù)寫入至Cache的過程,涉及Cache的地址映l象方式;將Cache中的數(shù)據(jù)刷新至物理磁盤,涉及Cache替換方式。目前常用的Cache的地址映像方式、以及Cache替換方式,考慮的主要 因素通常都是如何提高Cache的命中率,但在本發(fā)明中所采用的Cache的地 址映像方式、以及Cache替換方式,考慮的主要因素則可以是存儲效率、而 非Cache的命中率。下面,以包括RAID的存儲設備應用于視頻監(jiān)控為例,對本發(fā)明用于提 高寫地址非連續(xù)的數(shù)據(jù)存儲效率的方法和存儲設備中,所采用的Cache的地 址映像方式和Cache替換方式進行詳細說明。需要說明的是,在視頻監(jiān)控中,來自同一攝像頭的視頻數(shù)據(jù)包的寫地址 對應相同的至少 一個存儲區(qū)域、且來自不同攝像頭的視頻數(shù)據(jù)包的寫地址所 對應的存儲區(qū)域互不相同,即來自每一攝像頭的視頻數(shù)據(jù)在物理磁盤中分別 集中存放。1、 Cache的地址映^象方式。Cache通常包括多個緩存塊,而Cache的地址映^^方式則決定著寫入 Cache的數(shù)據(jù)存放在Cache中的哪一個緩存塊中。目前存在3種傳統(tǒng)的地址映像方式均針對如何提高Cache的命中率全 相4關(guān)(Fully associative)、直才妄映射(Direct mapped)、以及組相聯(lián)(Set associative),其中最常用的一種是組相聯(lián)。圖4為組相聯(lián)地址映像方式的示意圖。如圖4所示,以8個緩存塊、每 個存儲區(qū)域由4個連續(xù)物理地址構(gòu)成為例,組相聯(lián)的地址映像方式中,預先 按照物理地址將8個緩存塊劃分為4個組,即圖4中所示的組0~組3,組 0~組3中的各緩存塊分別固定不變地對應存儲區(qū)域0 存儲區(qū)域n中的第0~ 第3個物理地址,n為大于l的正整數(shù)。這樣,如果采用組相聯(lián)地址映像方式,則控制器首先需要根據(jù)視頻數(shù)據(jù) 包的寫地址確定對應的物理地址,然后,再查找該物理地址所在存儲區(qū)域所 對應的緩存塊,之后,才能夠?qū)⒃撘曨l數(shù)據(jù)包寫入至查找到的緩存塊。由圖4可見,目前的組相聯(lián)地址映像方式顯然能夠提高Cache的命中率,但由于視頻監(jiān)控具有如下特點,提高Cache的命中率顯然毫無意義Cache中存儲的來自攝像頭的視頻數(shù)據(jù)包、即待存儲數(shù)據(jù),幾乎不可能在短時間內(nèi)被重寫,即對Cache的寫命中率應當為0%??梢?,如果采用常用的組相聯(lián)的地址映像方式,則只會在將待存儲數(shù)據(jù)寫入到Cache的過程中花費更多的時間來查找對應的緩存塊,從而造成存儲效率的降低。因此,4支佳地,在本實施例中并不按照物理地址預先將Cache中的緩存 塊劃分為多個組,即Cache中的每個緩存塊并不固定地對應存儲區(qū)域中的某 一具體物理地址。這樣,控制器能夠?qū)⒔邮盏降拇鎯?shù)據(jù)直接寫入至Cache中的任意空 閑緩存塊,從而無需根據(jù)寫地址確定物理地址、也無需進行任何查找,即可 將連續(xù)接收到的待存儲數(shù)據(jù)隨機或順序地直接寫入到Cache中的各空閑緩 存塊中,并在寫入的過程中實時記錄每個待存儲數(shù)據(jù)的寫地址所對應的存儲 區(qū)域。由于記錄了各緩存塊中的待存儲數(shù)據(jù)的寫地址所對應的存儲區(qū)域,因而 能夠確定各緩存塊所對應的存儲區(qū)域,從而形成了對應不同存儲區(qū)域的邏輯 上的多個緩存塊組,即每個緩存塊所對應的存儲區(qū)域取決于該緩存塊中的待 存儲數(shù)據(jù)的寫地址所對應的存儲區(qū)域、而非預先確定。具體來說,在本實施例中,控制器只需按照視頻數(shù)據(jù)包的接收順序,將 接收自各攝像頭的i見頻數(shù)據(jù)包順序或隨機地直接寫入至Cache中空閑的各 緩存塊,同時,將每個視頻數(shù)據(jù)包的寫地址、每個視頻數(shù)據(jù)包的寫地址所對 應的存儲區(qū)域、以及每個視頻數(shù)據(jù)包所在緩存塊之間的對應關(guān)系,記錄在 Cache中預設的對應關(guān)系列表內(nèi),從而形成對應不同存儲區(qū)域的邏輯上的多 個組。實際應用中,可為每一個攝像頭分別設置了一個編號,例如,3個攝像 頭的編號依次為1、 2、 3。由于來自同一攝像頭的視頻數(shù)據(jù)在物理磁盤中集 中存放,因此,每個攝像頭的編號還可表示來自該攝像頭的視頻數(shù)據(jù)包的寫地址所對應的存儲區(qū)域。這樣,記錄于對應關(guān)系列表內(nèi)的每個視頻數(shù)據(jù)包的寫地址所對應的存儲 區(qū)域即可用對應攝像頭的編號來表示,相應地,攝像頭的編號即可看作對應 存儲區(qū)域的緩存塊組的組標識。圖5為本發(fā)明實施例中地址映像方式的示意圖。如圖5所示,以視頻監(jiān)控采用編號依次為l、 2、 3的3個攝像頭、Cache中包括8個緩存塊、每個 存儲區(qū)域由4個連續(xù)物理地址構(gòu)成為例,本實施例中來自攝像頭1~3的視頻 數(shù)據(jù)的寫地址包分別對應于存儲區(qū)域1~3,將來自攝像頭1 3的視頻數(shù)據(jù)包 直接寫入至Cache中、并同時記錄每個視頻數(shù)據(jù)包的寫地址、該視頻數(shù)據(jù)包 所來自的攝像頭的編號、以及該視頻數(shù)據(jù)包所在緩存塊之間的對應關(guān)系,從 而形成了圖5中分別對應攝像頭1~3的各緩存塊所構(gòu)成的3個緩存塊組,這 3個緩存塊組中的各緩存塊分別對應于存儲區(qū)域1 3,而每個緩存塊所對應 的具體物理地址則取決于該緩存塊中的視頻數(shù)據(jù)包的寫地址??梢姡捎诒緦嵤├捎昧巳缟纤龅牡刂酚砠f象方式,因而相比于傳統(tǒng) 的地址映像方式,將待存儲數(shù)據(jù)寫入至Cache的過程更加快捷,能夠提高數(shù) 據(jù)存儲效率。2、 Cache替換方式Cache替換方式?jīng)Q定著將Cache中的數(shù)據(jù)刷新至物理》茲盤的規(guī)則。通常情況下, 一般會在Cache中未刷入物理磁盤的數(shù)據(jù)比例達到一個上 限額度以后(例如80%),按傳統(tǒng)Cache替換算法,例如先進先出(FIFO) 算法和近期最少使用(LRU)算法,選擇一定量的數(shù)據(jù)刷入物理磁盤,使得 未刷入物理磁盤的數(shù)據(jù)比例又降到一個下限額度(例如40%),如此反復。圖6a 圖6c為基于傳統(tǒng)替換方式的刷新過程示意圖。以視頻監(jiān)控采用2 個攝像頭、攝像頭1對應存儲區(qū)域1、攝像頭2對應存儲區(qū)域2、 Cache中 包括5個緩存塊為例。參見圖6a,采用本發(fā)明實施例中的地址映像方式將來自攝像頭1的視頻數(shù)據(jù)包1和視頻數(shù)據(jù)包2、來自攝像頭2的視頻數(shù)據(jù)包1和視頻數(shù)據(jù)包2 寫入至Cache中之后,Cache中未刷入物理》茲盤的^L頻數(shù)據(jù)包比例達到預設 上限額度80%。此后,參見圖6b,將來自攝像頭1的視頻數(shù)據(jù)包1、來自攝像頭2的視 頻數(shù)據(jù)包1分別刷新至物理磁盤的存儲區(qū)域1、存儲區(qū)域2,使得Cache中 未刷入物理i茲盤的視頻數(shù)據(jù)包比例降至預設下限額度40%。然后,參見圖6c,采用本發(fā)明實施例中的地址映像方式,再將來自攝 像頭1的視頻數(shù)據(jù)包3、來自攝像頭2的^L頻數(shù)據(jù)包3寫入至Cache中,Cache 中未刷入物理磁盤的視頻數(shù)據(jù)包比例再次達到預設上限額度80%,從而開始 下一次刷新。如前所述,Cache中存儲的來自攝像頭的視頻數(shù)據(jù)包幾乎不可能在短時 間內(nèi)被重寫,因而對于視頻監(jiān)控來說,本實施例中所采用的Cache替換方式 主要針對如何在一次刷新時,盡可能地將寫地址連續(xù)、即對應統(tǒng)一存儲區(qū)域 的待存儲數(shù)據(jù)刷新至物理磁盤,以減少物理磁盤的尋道時間、提高存儲效率。首先,在本實施例中,每次刷新時,根據(jù)本實施例中在地址映像時所建 立的每個視頻數(shù)據(jù)包的寫地址、每個視頻數(shù)據(jù)包的寫地址所對應的存儲區(qū) 域、以及每個視頻數(shù)據(jù)包所在緩存塊之間的對應關(guān)系,將對應相同存儲區(qū)域 的所有緩存塊中的視頻數(shù)據(jù)包,按照對應的寫地址刷新至該存儲區(qū)域,而不 是像傳統(tǒng)方式那樣僅刷新 一部分數(shù)據(jù)而使得未刷入物理磁盤的數(shù)據(jù)比例降 到一個下限額度。其次,本實施例中,按照攝像頭編號,循環(huán)地逐一將Cache中對應每一 攝像頭編號的存儲區(qū)域所對應的所有緩存塊中的視頻數(shù)據(jù)包刷新至物理磁 盤,而不再按照LRU算法等傳統(tǒng)Cache替換算法決定將數(shù)據(jù)刷入物理磁盤 的順序。例如,先刷新對應攝像頭1的存儲區(qū)域所對應的所有緩存塊中的視 頻數(shù)據(jù)包,然后將對應攝像頭2的存儲區(qū)域所對應的所有緩存塊中的視頻數(shù) 據(jù)包,依次類推,當刷新對應最后一個攝像頭的存儲區(qū)域所對應的所有緩存 塊中的視頻數(shù)據(jù)包之后,再刷新對應攝像頭1的存儲區(qū)域所對應的所有緩存塊中的視頻數(shù)據(jù)包,即循環(huán)執(zhí)行上述刷新過程。第三,只要Cache中存有視頻數(shù)據(jù)包、即存在非空閑的緩存塊,上述循 環(huán)刷新的過程就一直進行,而不在像傳統(tǒng)方式那樣等到Cache中未刷入物理 磁盤的數(shù)據(jù)比例達到 一 個額度以后開始刷新。圖7a 圖7c為基于本發(fā)明實施例中替換方式的刷新過程示意圖。仍以 視頻監(jiān)控采用2個攝像頭、攝像頭l對應存儲區(qū)域l、攝像頭2對應存儲區(qū) 域2、 Cache中包括6個緩存塊為例。參見圖7a,采用本發(fā)明實施例中的地址映像方式將來自攝像頭1的視 頻數(shù)據(jù)包1和視頻數(shù)據(jù)包2、來自攝像頭2的視頻數(shù)據(jù)包1和視頻數(shù)據(jù)包2 寫入至Cache中。此后,參見圖7b,不論Cache中未刷入物理磁盤的視頻數(shù)據(jù)包比例是 否達到預設上限額度80%,只要Cache中存有視頻數(shù)據(jù)包,就執(zhí)行刷新。在 圖7b中,將來自攝像頭1的視頻數(shù)據(jù)包1和視頻數(shù)據(jù)包2、即來自攝像頭1 的所有視頻數(shù)據(jù)包均刷新至物理磁盤的存儲區(qū)域1,而至于Cache中未刷入 物理磁盤的視頻數(shù)據(jù)包比例是否降至預設下限額度則無需考慮。由于圖7b 所示的刷新過程中,來自攝像頭1的視頻數(shù)據(jù)包1和視頻數(shù)據(jù)包2的寫地址 連續(xù),因而該刷新過程所需尋道時間,遠遠少于如圖6b所示的刷新過程。然后,參見圖7c,采用本發(fā)明實施例中的地址映像方式,再將來自攝 像頭1的視頻數(shù)據(jù)包3、來自攝像頭2的視頻數(shù)據(jù)包3寫入至Cache中。之后,無需考慮Cache中未刷入物理磁盤的視頻數(shù)據(jù)包比例是否達到預 設上限額度80%,而繼續(xù)執(zhí)行刷新,按照如圖7b所示的原理,再將來自攝 像頭2的視頻數(shù)據(jù)包1和視頻數(shù)據(jù)包2、即來自攝像頭2的所有視頻數(shù)據(jù)包 均刷新至物理磁盤的存儲區(qū)域2,然后,再循環(huán)執(zhí)行上述過程??梢?,由于本實施例采用了如上所述的Cache替換方式,因而相比于傳 統(tǒng)的Cache替換方式,將待存儲數(shù)據(jù)刷新至物理》茲盤的過程所需尋道時間更 短,能夠更提高數(shù)據(jù)存儲效率。3、緩存塊的大小除了對地址映像方式和Cache替換方式進行了改進,本實施例中針對視 頻監(jiān)控領(lǐng)域的特點,對Cache中的緩存塊大小也進行了設置。通常情況下,Cache中通常會包括至少兩個緩存塊,且Cache中的緩存 塊大小主要根據(jù)RAID的實際使用情況而定,通常每個緩存塊的大小設為 8K~ 128K,緩存塊的大小也可以在使用過程中動態(tài)地根據(jù)實際應用情況進 行調(diào)整。在Cache容量一定的前提下,緩存塊如果太大,則可供使用的緩存塊總 數(shù)就比較少,同一時刻能處理的讀寫任務就比較少,在單位讀寫數(shù)據(jù)量比較 小的情況下,還會造成緩存塊的利用率較低。在Cache容量一定的前提下,緩存塊如果太小,則可供使用的緩存塊總 數(shù)就比較多, 一方面保存緩存塊附加信息量、例如如前所述的對應關(guān)系相關(guān) 信息量就比較大,另一方面數(shù)據(jù)傳輸總線的使用效率也較低??紤]到視頻數(shù)據(jù)包一般都比較大,通常為128KB 1MB,因此,本實施 例中將緩存塊設置得大一些,便于管理和傳輸。另一方面, 一般來說緩存塊 的大小都小于RAID的條帶深度、即每個條塊的容量,以便于降低RAID中 的控制器對Cache的管理難度?;谏鲜鲈?,較佳地,本實施例中將緩存塊大小設置為視頻數(shù)據(jù)包 大小與條帶深度的最大公約數(shù)、即 一 個待存儲數(shù)據(jù)大小與條帶深度的最大公 約數(shù),且能夠在使用過程中動態(tài)地根據(jù)實際應用情況進行調(diào)整。以上是以包括RAID的存儲設備應用于視頻監(jiān)控為例,并針對Cache的 地址映像方式、Cache替換方式、緩存塊容量對本發(fā)明用于提高寫地址非連 續(xù)的數(shù)據(jù)存儲效率的方法和存儲設備的詳細說明。下面,再舉一實例對本發(fā)明用于提高寫地址非連續(xù)的數(shù)據(jù)存儲效率的方 法和存儲設備所能夠產(chǎn)生的技術(shù)效果進行進一步的說明。假設存儲設備中位于RAID的控制器和物理磁盤之間的Cache容量為 1G、該RAID的順序?qū)懶阅転?00MBps、每發(fā)生一次隨機寫平均需要多消 耗0.01s的尋道時間、每路攝像頭的視頻數(shù)據(jù)包流入的流量為lMBps、每個 -見頻數(shù)據(jù)包的大小為1MB。1) 如果控制器不將視頻數(shù)據(jù)包寫入Cache、而直接將視頻數(shù)據(jù)包寫入 至RADI中的物理磁盤,則每個詳見頻數(shù)據(jù)包乂人流入控制器到寫入物理f茲盤的 總傳輸時間tl= ( lMB/200MBps) +0.01s=0.015s,即該存儲設備所能支持的 最大攝像頭數(shù)量約為67路。2) 如果控制器將視頻數(shù)據(jù)包先寫入Cache、但刷新時使用傳統(tǒng)的Cache 替換方式,假設Cache中未刷入物理磁盤的視頻數(shù)據(jù)包比例仍達到預設上限 額度80%時開始刷新、降至預設下限額度60%時停止、根據(jù)LRU或者FIFO 算法每次從Cache中刷入200MB的視頻數(shù)據(jù)包、存儲設備所能支持的最大 攝像頭數(shù)量約為X2路,貝,J:200MB的視頻數(shù)據(jù)包從流入控制器到寫入物理磁盤的總傳輸時間t2= (200MB/200MBps ) +0.0Is x X2;所以在這段總傳輸時間內(nèi)新寫入Cache的視頻數(shù)據(jù)包總量W2=X2 x t2; 顯然要保證視頻數(shù)據(jù)包都能夠順利寫入Cache,則要求W2 < 200MB; 取極限值W2:200MB可以計算出X2=100,即該存儲設備所能支持的最 大攝像頭數(shù)量約為100路。3) 如果控制器將視頻數(shù)據(jù)包先寫入Cache、且使用本發(fā)明實施例中的 Cache替換方式,假設根據(jù)本發(fā)明實施例中的Cache替換方式每次從Cache 中刷入1GB的視頻數(shù)據(jù)包、存儲設備所能支持的最大攝像頭數(shù)量約為X3 路,則200MB的視頻數(shù)據(jù)包從流入控制器到寫入物理磁盤的總傳輸時間t3= (lGB/200MBps ) +0.0Is x X3;所以在這段總傳輸時間內(nèi)新寫入Cache的視頻數(shù)據(jù)包總量W3=X3 x t3; 顯然要保證視頻數(shù)據(jù)包都能夠順利寫入Cache,則要求W3《1GB;取極限值W3=1GB可以計算出X3-153,即該存儲設備所能支持的最 大攝像頭數(shù)量約為153路??梢?,采用本發(fā)明的技術(shù)方案、并采用本發(fā)明實施例中的地址映像方式、 Cache替換方式,能夠同時支持更多攝像頭的視頻數(shù)據(jù)包的存儲,從而提高 了寫地址非連續(xù)的視頻數(shù)據(jù)包的存儲效率。當然,以上均是以視頻監(jiān)控為例,實際應用中,將本發(fā)明應用于其他技 術(shù)領(lǐng)域,基于同樣的原理,也能夠提高寫地址非連續(xù)的數(shù)據(jù)存儲效率。而且,本發(fā)明的技術(shù)方案也不僅限于RAID中,而是可以擴展至涉及各 種網(wǎng)絡存儲設備、網(wǎng)絡控制設備的存儲控制。比如說,本領(lǐng)域技術(shù)人員可基于本發(fā)明的上述實施例,將用于提高寫地 址非連續(xù)的數(shù)據(jù)存儲效率的方法擴展為一種在網(wǎng)絡存儲設備上執(zhí)行的數(shù)據(jù) 存儲控制方法,其中的網(wǎng)絡存儲設備在應用時,位于物理磁盤以及需要存儲 服務的一個或多個節(jié)點之間,該方法包括以下步驟a. 接收至少兩個節(jié)點向物理磁盤寫入數(shù)據(jù)的請求,如以視頻監(jiān)控為例, 則每個攝像頭可看作為一個節(jié)點;b. 將待寫入物理磁盤的數(shù)據(jù)存入緩存中;c. 記錄每個節(jié)點數(shù)據(jù)在緩存中存放的地址信息;d. 在控制緩存向物理磁盤刷新數(shù)據(jù)時,根據(jù)已經(jīng)記錄的地址信息,以 節(jié)點為單位,依次將各個節(jié)點的數(shù)據(jù)向物理磁盤刷新。如果上述節(jié)點為攝像頭,則步驟c具體實現(xiàn)方式可以為從攝像頭的寫 入請求中獲得攝像頭唯一標識,建立各個攝像頭標識與數(shù)據(jù)在緩存中存放地 址之間的對應關(guān)系。步驟d中,每次向物理磁盤刷新數(shù)據(jù)的程度是全部刷新。 再比如,本領(lǐng)域技術(shù)人員可基于本發(fā)明的上述實施例,將用于提高寫地 址非連續(xù)的數(shù)據(jù)存儲效率的方法擴展為 一種在網(wǎng)絡存儲設備上執(zhí)行的數(shù)據(jù)存儲控制方法,其中的網(wǎng)絡存儲設備在應用時,位于物理磁盤以及需要存儲 服務的節(jié)點之間,該方法包括以下步驟a. 將需要寫入物理磁盤的數(shù)據(jù)存入緩存中;b. 根據(jù)數(shù)據(jù)的寫地址,將寫地址連續(xù)的數(shù)據(jù)劃分到同一組中;記錄每 個組數(shù)據(jù)在緩存中存放地址;也就是說,不論數(shù)據(jù)來自網(wǎng)絡中需要服務的哪 個節(jié)點,只要寫地址連續(xù)就劃分到同一組;c. 在控制緩存向物理磁盤刷新數(shù)據(jù)時,根據(jù)各個組數(shù)據(jù)在緩存中的存 放地址,以組為單位依次將各組中的數(shù)據(jù)向物理磁盤刷新。以上所述僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范 圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換以及改進等, 均應包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1、一種用于提高寫地址非連續(xù)的數(shù)據(jù)存儲效率的方法,該方法應用于獨立磁盤冗余陣列RAID中,所述RAID包括控制器和物理磁盤,所述控制器和物理磁盤之間具有緩存、且所述物理磁盤包含至少兩個存儲區(qū)域,其特征在于,該方法包括控制器將接收到的待存儲數(shù)據(jù)寫入至所述緩存,并記錄待存儲數(shù)據(jù)的寫地址所對應的存儲區(qū)域;控制器將緩存中寫地址對應不同存儲區(qū)域的待存儲數(shù)據(jù)分次刷新至對應的存儲區(qū)域,且每次僅刷新寫地址對應相同存儲區(qū)域的待存儲數(shù)據(jù)。
2、 如權(quán)利要求l所述的方法,其特征在于,所述緩存中包括多個緩存 塊,所述將接收到的待存儲數(shù)據(jù)寫入至所述緩存包括將接收到的待存儲數(shù) 據(jù)直接寫入至所述緩存中空閑的各緩存塊;所述記錄待存儲數(shù)據(jù)的寫地址所 對應的存儲區(qū)域包括記錄待存儲數(shù)據(jù)的寫地址、待存儲數(shù)據(jù)的寫地址所對 應的存儲區(qū)域、以及該待存儲數(shù)據(jù)所在緩存塊之間的對應關(guān)系;所述每次僅刷新寫地址對應相同存儲區(qū)域的待存儲數(shù)據(jù)包括根據(jù)所述 對應關(guān)系,每次僅將對應相同存儲區(qū)域的所有非空閎緩存塊中的待存儲數(shù) 據(jù),按照對應的寫地址刷新至該存儲區(qū)域。
3、 如權(quán)利要求2所述的方法,其特征在于,所述緩存塊的大小為所 述待存儲數(shù)據(jù)大小與所述RAID中條塊大小的最大公約數(shù)。
4、 如權(quán)利要求1所述的方法,其特征在于,每一存儲區(qū)域分別對應一 預設的編號;所述將緩存中寫地址對應不同存儲區(qū)域的待存儲數(shù)據(jù)分別刷新至對應 的存儲區(qū)域包括按照各存儲區(qū)域?qū)木幪柵帕许樞颍h(huán)地將緩存中寫
5、 如權(quán)利要求4所述的方法,其特征在于,所述接收到的待存儲數(shù)據(jù) 包括來自不同攝像頭的視頻數(shù)據(jù)包,其中,來自同一攝像頭的視頻數(shù)據(jù)包的寫地址,對應該攝像頭的編號所對應的存儲區(qū)域。
6、 一種用于提高寫地址非連續(xù)的數(shù)據(jù)存儲效率的存儲設備,該存儲設備中具有獨立磁盤冗余陣列RAID,所述RAID包括控制器、以及包含多個存儲區(qū)域的物理磁盤,其特征在于,所述RAID在所述控制器和所述物理-茲盤之間還包括緩存;所述控制器將接收到的待存儲數(shù)據(jù)寫入至所述緩存,并記錄待存儲數(shù)據(jù)的寫地址所對應的存儲區(qū)域;將緩存中寫地址對應不同存儲區(qū)域的待存儲數(shù)據(jù)分次刷新至對應的存儲區(qū)域,且每次僅刷新寫地址對應相同存儲區(qū)域的待存儲數(shù)據(jù)。
7、 如權(quán)利要求6所述的存儲設備,其特征在于,所述緩存中包括多個 緩存塊;所述控制器將接收到的待存儲數(shù)據(jù)直接寫入至所述緩存中空閑的各緩 存塊,并記錄待存儲數(shù)據(jù)的寫地址、待存儲數(shù)據(jù)的寫地址所對應的存儲區(qū)域、 以及該待存儲數(shù)據(jù)所在緩存塊之間的對應關(guān)系;根據(jù)所述對應關(guān)系,將對應 相同存儲區(qū)域的所有非空閑緩存塊中的待存儲數(shù)據(jù),按照對應的寫地址刷新 至該存儲區(qū)域。
8、 如權(quán)利要求7所述的存儲設備,其特征在于,所述緩存塊的大小為 所述待存儲數(shù)據(jù)大小與所述RAID中條塊大小的最大公約數(shù)。
9、 如權(quán)利要求6所述的存儲設備,其特征在于,每一存儲區(qū)域分別對 應一預,沒的編號;所述控制器按照各存儲區(qū)域?qū)木幪柵帕许樞?,循環(huán)地將緩存中寫地 址對應不同存儲區(qū)域的待存儲數(shù)據(jù)分別刷新至對應的存儲區(qū)域。
10、 如權(quán)利要求9所述的存儲設備,其特征在于,所接收到的待存儲數(shù) 據(jù)包括來自不同攝像頭的視頻數(shù)據(jù)包,其中,來自同一攝像頭的視頻數(shù)據(jù) 包的寫地址,對應該攝像頭的編號所對應的存儲區(qū)域。
11、 一種在網(wǎng)絡存儲設備上執(zhí)行的數(shù)據(jù)存儲控制方法,其中所述網(wǎng)絡存 儲設備在應用時,位于物理磁盤以及需要存儲服務的一個或多個節(jié)點之間,其特征在于,該方法包括以下步驟a. 接收至少兩個節(jié)點向物理磁盤寫入數(shù)據(jù)的請求;b. 將待寫入物理磁盤的數(shù)據(jù)存入緩存中;c. 記錄每個節(jié)點數(shù)據(jù)在緩存中存放的地址信息;d. 在控制緩存向物理磁盤刷新數(shù)據(jù)時,根據(jù)已經(jīng)記錄的地址信息,以 節(jié)點為單位,依次將各個節(jié)點的數(shù)據(jù)向物理磁盤刷新。
12、 如權(quán)利要求11所述的數(shù)據(jù)存儲控制方法,其特征在于,其中所述 節(jié)點為攝像頭,而步驟c具體實現(xiàn)方式為從攝像頭的寫入請求中獲得攝像 頭唯 一 標識,建立各個攝像頭標識與數(shù)據(jù)在緩存中存放地址之間的對應關(guān) 系。
13、 如權(quán)利要求11所述的數(shù)據(jù)存儲控制方法,其特征在于,所述步驟 d每次向物理磁盤刷新數(shù)據(jù)的程度是全部刷新。
14、 一種在網(wǎng)絡存儲設備上執(zhí)行的數(shù)據(jù)存儲控制方法,其中所述網(wǎng)絡存 儲設備在應用時,位于物理磁盤以及需要存儲服務的節(jié)點之間,其特征在于, 該方法包括以下步驟a. 將需要寫入物理磁盤的數(shù)據(jù)存入緩存中;b. 根據(jù)數(shù)據(jù)的寫地址,將寫地址連續(xù)的數(shù)據(jù)劃分到同一組中;記錄每 個組數(shù)據(jù)在緩存中存放地址;c. 在控制緩存向物理磁盤刷新數(shù)據(jù)時,根據(jù)各個組數(shù)據(jù)在緩存中的存 ;改地址,以組為單位依次將各組中的it據(jù)向物理-茲盤刷新。
全文摘要
本發(fā)明公開了一種用于提高寫地址非連續(xù)的數(shù)據(jù)存儲效率的方法。在本發(fā)明中,RAID中的控制器和物理磁盤之間具有緩存,控制器先將寫地址對應不同存儲區(qū)域的待存儲數(shù)據(jù)、即寫地址非連續(xù)的數(shù)據(jù)寫入至緩存,然后將緩存中寫地址對應不同存儲區(qū)域的待存儲數(shù)據(jù)分次刷新至對應的存儲區(qū)域,且每次僅刷新寫地址對應相同存儲區(qū)域的待存儲數(shù)據(jù)、即寫地址連續(xù)的數(shù)據(jù),從而能夠大大減少物理磁盤的尋道時間,以提高數(shù)據(jù)存儲效率。本發(fā)明還公開了一種用于提高寫地址非連續(xù)的數(shù)據(jù)存儲效率的存儲設備。
文檔編號G06F3/06GK101241420SQ20081010233
公開日2008年8月13日 申請日期2008年3月20日 優(yōu)先權(quán)日2008年3月20日
發(fā)明者敏 侯, 斌 蔡 申請人:杭州華三通信技術(shù)有限公司