專利名稱:在多個(gè)存儲單元中存儲文件的方法以及存儲分配方法
技術(shù)領(lǐng)域:
本發(fā)明涉及文件存儲領(lǐng)域,尤其涉及一種在多個(gè)存儲單元中存儲文件的方法和使用該方法對包括多個(gè)存儲単元的文件存儲系統(tǒng)進(jìn)行存儲分配的方法。
背景技術(shù):
隨著寬帶市場的飛速發(fā)展和用戶數(shù)量的激増,流媒體視頻應(yīng)用如VOD視頻點(diǎn)播等 系統(tǒng)的規(guī)模正日益龐大。廣電行業(yè)的互動(dòng)系統(tǒng)要求存儲系統(tǒng)具備大容量、高讀寫性能、高安全性的特點(diǎn),如何高效且安全的存儲并管理媒體文件是廣電視頻行業(yè)的一大挑戰(zhàn)。目前大多數(shù)的視頻點(diǎn)播方案中主要采用視頻服務(wù)器直連磁盤陣列(即RAID)的方式進(jìn)行數(shù)據(jù)存儲。這種技術(shù)將多個(gè)獨(dú)立的硬盤通過不同的方式組合成一個(gè)硬盤組,硬盤組較單個(gè)磁盤在性能上有較大程度的提升。RAID技術(shù)已廣泛應(yīng)用于數(shù)據(jù)存儲領(lǐng)域。但隨著應(yīng)用的日益發(fā)展,RAID存儲方式逐漸顯現(xiàn)出了以下缺陷首先,RAID存儲方式中都是以整個(gè)文件為基本單元進(jìn)行存儲的,當(dāng)多個(gè)用戶同時(shí)對同一個(gè)媒體文件進(jìn)行訪問時(shí),訪問速度會受到限制。其次,當(dāng)對現(xiàn)有的多個(gè)硬盤驅(qū)動(dòng)器進(jìn)行動(dòng)態(tài)擴(kuò)容時(shí),尤其是對采用了 RAID冗余策略的硬盤驅(qū)動(dòng)器進(jìn)行擴(kuò)容時(shí),由于RAID的冗余策略是通過硬盤鏡像來實(shí)現(xiàn)的,進(jìn)行擴(kuò)容時(shí)需要重建RAID策略,代價(jià)很高,擴(kuò)容復(fù)雜,并且當(dāng)存在用戶對媒體文件進(jìn)行訪問時(shí),動(dòng)態(tài)擴(kuò)容對正在進(jìn)行的正常業(yè)務(wù)也會產(chǎn)生影響。
發(fā)明內(nèi)容
針對現(xiàn)有的文件存儲方法和文件存儲系統(tǒng)中存在的上述缺陷,本發(fā)明提出了新型的文件存儲方法,以及對使用該文件存儲方法進(jìn)行存儲的文件存儲系統(tǒng)進(jìn)行存儲分配的方法。本發(fā)明提供了一種在多個(gè)磁盤存儲單元中存儲文件的方法,該方法包括將需要存儲的文件分割成多個(gè)文件塊;設(shè)置所述文件塊的副本數(shù)量,其中該副本數(shù)量小于所述多個(gè)磁盤存儲單元的數(shù)量;獲取所述多個(gè)磁盤存儲單元中的每個(gè)磁盤存儲単元的磁盤剩余空間大??;根據(jù)所述磁盤剩余空間大小和所述副本數(shù)量將所述多個(gè)文件塊和其中每個(gè)文件塊的所有副本存儲在所述多個(gè)磁盤存儲單元中,其中每個(gè)文件塊和該文件塊的每個(gè)副本分別存儲在不同的磁盤存儲單元中。本發(fā)明提供了一種對文件存儲系統(tǒng)進(jìn)行存儲分配的方法,該方法包括a)獲取所述文件存儲系統(tǒng)中的在線的磁盤存儲單元的磁盤剩余空間大小山)根據(jù)所述磁盤剩余空間大小,將所述在線的磁盤存儲単元分為多組,該多組磁盤存儲單元中包括第一組磁盤存儲單元,該第一組磁盤存儲單元的每個(gè)磁盤存儲単元的磁盤剩余空間均大于其它組中的一個(gè)磁盤存儲單元的磁盤剩余空間,將所述第一組磁盤存儲單元中的至少ー個(gè)文件塊轉(zhuǎn)移到其它組中的至少ー個(gè)磁盤存儲單元中,其中其它組中的每ー個(gè)磁盤存儲單元不含有相同的文件塊。本發(fā)明提供了一種對文件存儲系統(tǒng)進(jìn)行存儲分配的方法,其中所述文件存儲系統(tǒng)包括初始的多個(gè)磁盤存儲單元,該方法包括檢測所述文件存儲系統(tǒng)中的磁盤存儲單元的在線狀況;當(dāng)檢測到減少了磁盤存儲單元時(shí),執(zhí)行以下操作獲取該磁盤存儲單元的文件塊列表;從所述多個(gè)磁盤存儲單元中的剩余磁盤存儲單元中查找與所述文件塊列表中所列的文件塊相同的文件塊;在保證相同的文件塊不重復(fù)存儲在同一磁盤存儲單元的條件下,在剩余磁盤存儲單元中盡量多地創(chuàng)建所查找到的文件塊的副本。本發(fā)明所提出的文件存儲方法,以及對使用該文件存儲方法進(jìn)行存儲的文件存儲系統(tǒng)進(jìn)行存儲分配的方法通過將文件劃分成文件塊分別存儲到多個(gè)磁盤存儲單元中,很好的解決了多用戶訪問同一文件時(shí)的速度受限問題,并通過文件塊冗余在進(jìn)ー步提高磁盤存儲單元的性能的同時(shí),有效地提高了文件存儲系統(tǒng)的安全性。
圖I示出了與本發(fā)明相關(guān)的文件存儲系統(tǒng)的結(jié)構(gòu)圖;圖2示出了一種在多個(gè)磁盤存儲單元中存儲文件的方法;圖3示出了ー種對使用圖2中的方法進(jìn)行文件存儲的包括多個(gè)磁盤存儲單元的文件存儲系統(tǒng)進(jìn)行存儲分配的方法;以及圖4示出了另ー種對使用圖2中的方法進(jìn)行文件存儲的包括多個(gè)磁盤存儲單元的文件存儲系統(tǒng)進(jìn)行存儲分配的方法。
具體實(shí)施例方式如圖I所示,本發(fā)明所涉及的文件存儲系統(tǒng)包括一個(gè)存儲控制單元10和多個(gè)磁盤存儲單元20。存儲控制単元10用于創(chuàng)建文件,并將文件分割成多個(gè)文件塊,以便存儲在所述多個(gè)磁盤存儲單元20中。存儲控制単元10還能夠檢測所述多個(gè)磁盤存儲單元20的在線狀況(即磁盤存儲單元20與存儲控制単元10的電連接狀況),并獲取每個(gè)磁盤存儲単元20中存儲的文件塊的列表。在所述多個(gè)磁盤存儲單元20中出現(xiàn)剩余存儲容量相對較大的磁盤存儲單元時(shí)(比如新增了磁盤存儲単元,或原有的磁盤存儲單元釋放了新的可用空間等),所述存儲控制單元10還用于將現(xiàn)有的多個(gè)磁盤存儲單元20中的部分文件塊轉(zhuǎn)移到新增的磁盤存儲單元中,當(dāng)所述多個(gè)磁盤存儲單元20的數(shù)量減少時(shí),根據(jù)減少的磁盤存儲單元的文件塊列表將減少的磁盤存儲單元中的文件在剰余的磁盤存儲單元中進(jìn)行備份。圖2示出了一種在多個(gè)磁盤存儲單元中存儲文件的方法。在步驟210中,將需要存儲的文件分割成多個(gè)文件塊。當(dāng)確定要對某文件進(jìn)行存儲時(shí),存儲控制単元將該需要存儲的文件分割成多個(gè)文件塊,以便分別存儲在所述多個(gè)磁盤存儲單元中。存儲控制單元對文件進(jìn)行分割時(shí),根據(jù)存儲文件的類型、存儲文件的預(yù)計(jì)讀取頻率以及磁盤存儲単元的數(shù)量中的至少ー者來確定將所述文件分割成的文件塊的數(shù)量。舉例來講,對于占用空間較大的媒體文件可以選擇較大的文件塊大小,而對于占用空間較小的文檔文件則可以選擇較小的文件塊大小。其中,優(yōu)選的將文件分割成大小相同的文件塊,并且每個(gè)文件塊的大小應(yīng)該為基本存儲單位的倍數(shù)。在一種實(shí)施方式中,對每個(gè)存儲的文件進(jìn)行編號,并對每個(gè)文件的每個(gè)文件塊進(jìn)行第二重編號,同時(shí)在存儲控制単元中建立索引,以便在讀取文件時(shí)按照索引對需要讀取的文件塊進(jìn)行順序讀取。在步驟220中,設(shè)置所述文件塊的副本數(shù)量,其中該副本數(shù)量小于所述多個(gè)磁盤存儲單元的數(shù)量。首先,某文件塊的副本指的是按照該文件塊復(fù)制的相同的文件塊,在實(shí)際存儲過程中,通常是在磁盤中創(chuàng)建多個(gè)相同的文件塊,這些文件塊相互之間是等同的,但為了方便描述,可以選定ー個(gè)文件塊,而將其他文件塊視為該文件塊的副本。存儲副本一方面是為了提高文件存儲的安全性,當(dāng)因意外損失掉一個(gè)磁盤存儲單元時(shí),仍能夠從剩余的磁盤存儲單元中找到損失的文件,從而避免文件的徹底丟失;另一方面,在多個(gè)用戶同時(shí)訪問相同的文件塊時(shí),能夠提高磁盤性能,避免過多的用戶擁塞到同一個(gè)磁盤存儲單元。設(shè)定的副本數(shù)量越大,以上的作用就越明顯。在一種實(shí)施方式中,在任何一次進(jìn)行文件存儲時(shí),針對所有文件設(shè)定相同的副本數(shù)量。可替換地,在另ー種實(shí)施方式中,針對不同文件分別設(shè)定副本數(shù)量。可替換地,在另一種實(shí)施方式中,針對相同文件中的不同的文件塊分別設(shè)定副本數(shù)量。在為不同的文件塊分別設(shè)定副本數(shù)量時(shí),可以利用文件塊的類型、文件塊的預(yù)計(jì)讀取頻率以及磁盤存儲單元的數(shù)量中的至少ー者。優(yōu)選地,所述副本數(shù)量加一等于所述多個(gè)磁盤存儲單元的數(shù)量。在步驟230中,獲取所述多個(gè)磁盤存儲單元中的每個(gè)磁盤存儲単元的磁盤剩余空間大小。所述磁盤剰余空間大小可以在對文件進(jìn)行存儲后由存儲控制單元進(jìn)行更新,比如在建立文件塊索引時(shí)進(jìn)行更新,也可以在需要進(jìn)行存儲時(shí),基于存儲控制單元發(fā)出的查詢命令而進(jìn)行更新。在步驟240中,根據(jù)所述磁盤剩余空間大小和所述副本數(shù)量將所述多個(gè)文件塊和其中每個(gè)文件塊的所有副本存儲在所述多個(gè)磁盤存儲單元中,其中每個(gè)文件塊和該文件塊的每個(gè)副本分別存儲在不同的磁盤存儲單元中。優(yōu)選地,將所述多個(gè)文件塊以及文件塊副本存儲到磁盤剩余存儲空間最大的磁盤存儲單元中。在一種實(shí)施方式中,將同一文件所分成的文件塊分散地存儲到盡量多的磁盤存儲単元中,以便在多用戶讀取同一文件的不同文件塊時(shí)盡可能的加快讀取速度。可替換地,也可以將更為熱門的文件(預(yù)計(jì)讀取頻率高的資源)存儲到更多的磁盤存儲單元中,而熱度較低的文件則存儲到較少的磁盤存儲單元中。在一種實(shí)施方式中,當(dāng)需要在一個(gè)磁盤存儲單元中存儲同一個(gè)文件中的多個(gè)文件塊時(shí),優(yōu)選地,將多個(gè)連續(xù)的文件塊存儲在該磁盤存儲單元中。圖3示出了ー種對使用圖2中的方法進(jìn)行文件存儲的包括多個(gè)磁盤存儲單元的文件存儲系統(tǒng)進(jìn)行存儲分配的方法,該方法對應(yīng)于對文件存儲系統(tǒng)進(jìn)行擴(kuò)容的情況。在步驟310中,獲取所述文件存儲系統(tǒng)中的在線的磁盤存儲單元的磁盤剩余空間 大小。當(dāng)在所述多個(gè)磁盤存儲單元20中檢測到剰余存儲容量相對較大的磁盤存儲單元時(shí)(比如新增了磁盤存儲単元,或初始的磁盤存儲單元釋放了新的可用空間等),需要將原有的磁盤存儲單元中的部分文件轉(zhuǎn)移到這些剩余存儲容量相對較大的磁盤存儲單元中,從而使所有磁盤存儲單元處 于更為均衡的存儲狀態(tài),提高整個(gè)文件存儲系統(tǒng)的性能。在步驟320中,根據(jù)所述磁盤剩余空間大小,將所述在線的磁盤存儲単元分為多組,該多組磁盤存儲單元中包括第一組磁盤存儲單元,該第一組磁盤存儲單元的每個(gè)磁盤存儲單元的磁盤剩余空間均大于其它組中的一個(gè)磁盤存儲單元的磁盤剩余空間,將所述第一組磁盤存儲單元中的至少ー個(gè)文件塊轉(zhuǎn)移到其它組中的至少ー個(gè)磁盤存儲單元中,其中其它組中的每ー個(gè)磁盤存儲單元不含有相同的文件塊。其中,被轉(zhuǎn)移的文件塊為多個(gè),該多個(gè)被轉(zhuǎn)移的文件塊中的相同的文件塊被轉(zhuǎn)移到不同的磁盤存儲單元中。優(yōu)選地,將所述第一組磁盤存儲單元中的至少ー個(gè)文件塊優(yōu)先轉(zhuǎn)移到其它組中的磁盤剩余空間最小的一個(gè)或多個(gè)磁盤存儲單元中。其中,將所述第一組磁盤存儲單元中的至少ー個(gè)文件塊轉(zhuǎn)移到其它組中的至少ー個(gè)磁盤存儲單元中包括從所述第一組磁盤存儲單元中選擇將要遷移的至少ー個(gè)文件塊;從其他組中選擇至少一個(gè)磁盤存儲單元;在所選擇的至少ー個(gè)磁盤存儲單元中創(chuàng)建所述至少ー個(gè)文件塊;以及在所述第一組磁盤存儲單元中刪除已被遷移的所述至少ー個(gè)文件塊。在ー種優(yōu)選實(shí)施方式中,在進(jìn)行文件塊轉(zhuǎn)移后,各個(gè)磁盤存儲單元中的文件塊數(shù)量處于相對均衡的狀態(tài),即各個(gè)磁盤存儲單元中的文件塊數(shù)量相近。可替換地,在另ー種優(yōu)選實(shí)施方式中,在進(jìn)行文件塊轉(zhuǎn)移后,各個(gè)磁盤存儲單元中的存儲空間被占用的百分比處于相對均衡地狀態(tài),其中所述被占用的百分比,可以由占用空間大小和剰余空間大小得到。在一種實(shí)施方式中,在進(jìn)行文件轉(zhuǎn)移后,將同一文件所分成的文件塊被盡可能分散地存儲到全部磁盤存儲單元中,以便在多用戶讀取同一文件的不同文件塊時(shí)盡可能的加快讀取速度,因此,在將要進(jìn)行文件轉(zhuǎn)移的磁盤存儲單元中,如果屬于某文件的文件塊較多,則優(yōu)先選取該文件的文件塊進(jìn)行轉(zhuǎn)移??商鎿Q地,在另ー實(shí)施方式中,優(yōu)選的對更為熱門的文件(讀取頻率高的資源)的文件塊進(jìn)行轉(zhuǎn)移。在一種實(shí)施方式中,當(dāng)需要向一個(gè)磁盤存儲單元中轉(zhuǎn)移屬于某ー個(gè)文件的多個(gè)文件塊時(shí),優(yōu)選地,將屬于該文件的連續(xù)文件塊轉(zhuǎn)移到該磁盤存儲單元中。在一種實(shí)施方式中,在步驟310之前,該方法還包括檢測所述文件存儲系統(tǒng)中的磁盤存儲單元的在線狀況。存儲控制単元檢測文件存儲系統(tǒng)中的磁盤存儲單元的狀態(tài)是否發(fā)生了變化。存儲控制單元能夠獲知其所控制的每個(gè)磁盤存儲單元是否與其相連(即在線狀況),并能夠在有新的磁盤存儲單元加入時(shí)通過檢測過程及時(shí)地獲知,并對該新增的磁盤存儲単元進(jìn)行控制。該檢測步驟可以是周期性的執(zhí)行的,也可以在接收到系統(tǒng)指令時(shí)執(zhí)行,舉例來講,當(dāng)有新的磁盤存儲單元接入到文件存儲系統(tǒng)中時(shí),存儲控制單元可能會接收到指示有新設(shè)備接入的指令,存儲控制単元基于該指令進(jìn)行磁盤檢測,發(fā)現(xiàn)并識別該新增的磁盤存儲單元,并開始對其進(jìn)行控制。圖4示出了ー種對使用圖2中的方法進(jìn)行文件存儲的包括多個(gè)磁盤存儲單元的文件存儲系統(tǒng)進(jìn)行存儲分配的方法,該方法對應(yīng)于減容的情況。在步驟410中,檢測所述文件存儲系統(tǒng)中的磁盤存儲單元的在線狀況。存儲控制単元檢測文件存儲系統(tǒng)中的磁盤存儲單元的狀態(tài)是否發(fā)生了變化。存儲控制單元能夠獲知其所控制的每個(gè)磁盤存儲單元是否與其相連(即在線狀況),并能夠在減少了磁盤存儲單元時(shí)通過檢測過程及時(shí)地獲知,并對所減少的磁盤存儲單元中的文件塊及時(shí)進(jìn)行恢復(fù)。該檢測步驟可以是周期性的執(zhí)行的,也可以在接收到系統(tǒng)指令時(shí)執(zhí)行,舉例來講,當(dāng)檢測到磁盤存儲單元減少時(shí),存儲控制單元可能會接收到指示丟失磁盤的指令,存儲控制単元基于該指令進(jìn)行磁盤檢測,從存儲控制単元獲取丟失的文件塊列表,并開始對列表上的文件塊進(jìn)行恢復(fù)。在步驟420中,當(dāng)檢測到減少了磁盤存儲單元時(shí),獲取該磁盤存儲單元的文件塊列表。當(dāng)檢測到磁盤存儲單元減少時(shí),需要查找到該磁盤存儲單元中所包含的文件塊,即文件塊列表,存儲控制単元可以從存儲信息中獲得該文件塊列表, 在隨后的步驟中,存儲控制単元可以基于該列表對損失的文件塊進(jìn)行復(fù)制,從而恢復(fù)文件存儲系統(tǒng)原有的安全性。在步驟430中,從所述多個(gè)磁盤存儲單元中的剩余磁盤存儲單元中查找與所述文件塊列表中所列的文件塊相同的文件塊。該查找步驟也是基于存儲過程中所建立的索引進(jìn)行的,存儲控制単元按照獲得的文件塊列表,逐個(gè)在剰余的存儲器中進(jìn)行遍歷查找。在步驟440中,在保證相同的文件塊不重復(fù)存儲在同一磁盤存儲單元的條件下,在剩余磁盤存儲單元中盡量多地創(chuàng)建所查找到的文件塊的副本。優(yōu)選地,創(chuàng)建所查找到的每個(gè)文件塊的副本數(shù)量不多于減少的磁盤存儲單元存儲的該文件塊的副本數(shù)量。其中優(yōu)先在所述剩余磁盤存儲單元中的磁盤剩余空間最大的ー個(gè)或多個(gè)磁盤存儲單元中創(chuàng)建所述文件塊的副本。具體來講,還可以分兩種情況進(jìn)行更為細(xì)致的說明。第一種情況,當(dāng)減少了ー個(gè)磁盤存儲單元時(shí),在所查找到的文件塊的所設(shè)置的副本數(shù)量加一小于所述剰余磁盤存儲單元的數(shù)量的條件下,在所述剩余磁盤存儲單元中創(chuàng)建該文件塊的另一副本,其中該另ー副本與該文件塊以及該文件塊的其他副本位于不同的磁盤存儲單元中。由于磁盤存儲單元的數(shù)量減少了,當(dāng)按照先前設(shè)定的文件塊副本數(shù)量來恢復(fù)丟失的文件塊時(shí),有可能會出現(xiàn)問題。舉例來講,考慮各個(gè)文件塊的副本數(shù)量相同的情況,如果原有5個(gè)磁盤存儲單元,而每個(gè)文件塊都具有4個(gè)副本,當(dāng)損失了一個(gè)磁盤存儲單元吋,總共還剩下4個(gè)磁盤存儲單元,對于每個(gè)文件塊來講即使損失了ー個(gè)副本,其剰余的3個(gè)副本加上該文件塊本身已經(jīng)等于4,這時(shí)便沒有必要對損失的文件塊進(jìn)行恢復(fù)了。事實(shí)上,這種情況等同于RAID存儲的磁盤備份,不適用于圖4中的存儲分配方法。第二種情況,當(dāng)檢測到減少了 M個(gè)(M是大于I且小于或等于所有文件塊的副本數(shù)量中的最小值乂^的整數(shù))磁盤存儲單元吋,假定該M個(gè)磁盤存儲單元中存儲的文件塊的列表中的每個(gè)文件塊減少的數(shù)量為SJSi是所述文件塊列表中第i個(gè)文件塊的減少的數(shù)量)。那么,在為所述文件塊列表中的文件塊的設(shè)置的副本數(shù)量加ー小于所述剩余磁盤存儲單元的數(shù)量的條件下,在所述剩余磁盤存儲單元中為該文件塊創(chuàng)建Si個(gè)副本,否則,在所述剩余磁盤存儲單元中為該文件塊創(chuàng)建Ti-I個(gè)副本,其中Ti為剩余磁盤存儲單元的數(shù)量與該文件塊的剩余副本數(shù)量的差,其中,每個(gè)文件塊的各個(gè)副本與該文件塊以及該文件塊的其他副本位于不同的磁盤存儲單元中。在第二種情況中,如果在減少了 M個(gè)磁盤存儲單元后,剩余的磁盤存儲單元數(shù)目仍然大于某個(gè)文件塊的設(shè)置的副本數(shù)量加一(即該文件塊的所有副本與該文件塊本身的數(shù)量之和),則在剩余的磁盤存儲單元中能夠容納該文件塊的所有副本(所設(shè)置的副本數(shù)量),因此,在所述剩余磁盤存儲單元中為該文件塊創(chuàng)建的副本數(shù)量等于該文件塊損失的副本數(shù)量。否則,剰余磁盤存儲單元中無法 容納所設(shè)置的數(shù)量的副本,則在每個(gè)不具有該文件塊的剩余磁盤存儲單元中創(chuàng)建ー個(gè)該文件塊的副本,即為該文件塊創(chuàng)建Ti-I個(gè)副本,其中Ti為剩余磁盤存儲單元的數(shù)量與該文件塊的剩余副本數(shù)量的差。在圖4的方法中,存儲控制單元將查找到的文件塊復(fù)制到剩余的磁盤存儲單元中,該復(fù)制過程與圖3中的文件轉(zhuǎn)移類似,所不同的是在步驟440中,只是在其它磁盤存儲単元中創(chuàng)建查找到的文件的副本,而不會刪除查找到的文件,不屬于轉(zhuǎn)移過程。本發(fā)明所提出的文件存儲方法,以及對使用該文件存儲方法進(jìn)行存儲的文件存儲系統(tǒng)進(jìn)行存儲分配的方法通過將文件劃分成文件塊分別存儲到多個(gè)磁盤存儲單元中,很好的解決了多用戶訪問同一文件時(shí)的速度受限問題,并通過文件塊冗余在進(jìn)ー步提高磁盤存儲單元的性能的同時(shí),有效地提高了文件存儲系統(tǒng)的安全性。
權(quán)利要求
1.一種在多個(gè)磁盤存儲單元中存儲文件的方法,該方法包括 將需要存儲的文件分割成多個(gè)文件塊; 設(shè)置所述文件塊的副本數(shù)量,其中該副本數(shù)量小于所述多個(gè)磁盤存儲單元的數(shù)量; 獲取所述多個(gè)磁盤存儲單元中的每個(gè)磁盤存儲單元的磁盤剩余空間大小; 根據(jù)所述磁盤剩余空間大小和所述副本數(shù)量將所述多個(gè)文件塊和其中每個(gè)文件塊的所有副本存儲在所述多個(gè)磁盤存儲單元中,其中每個(gè)文件塊和該文件塊的每個(gè)副本分別存儲在不同的磁盤存儲單元中。
2.根據(jù)權(quán)利要求I所述的方法,其中根據(jù)存儲文件的類型、存儲文件的預(yù)計(jì)讀取頻率以及磁盤存儲單元的數(shù)量中的至少一者來確定將所述文件分割成的文件塊的數(shù)量。
3.根據(jù)權(quán)利要求I或2所述的方法,其中所分割成的各個(gè)文件塊的大小相同。
4.根據(jù)權(quán)利要求I所述的方法,其中根據(jù)文件塊的類型、文件塊的預(yù)計(jì)讀取頻率以及磁盤存儲單元的數(shù)量中的至少一者,為每個(gè)文件塊分別設(shè)定副本數(shù)量。
5.根據(jù)權(quán)利要求I所述的方法,其中優(yōu)先將所述多個(gè)文件塊以及文件塊副本存儲到磁盤剩余存儲空間最大的磁盤存儲單元中。
6.根據(jù)權(quán)利要求I所述的方法,其中所述副本數(shù)量加一等于所述多個(gè)磁盤存儲單元的數(shù)量。
7.一種對根據(jù)權(quán)利要求1-6中的任一項(xiàng)權(quán)利要求的方法進(jìn)行存儲的文件存儲系統(tǒng)進(jìn)行存儲分配的方法,該方法包括 a)獲取所述文件存儲系統(tǒng)中的在線的磁盤存儲單元的磁盤剩余空間大??; b)根據(jù)所述磁盤剩余空間大小,將所述在線的磁盤存儲單元分為多組,該多組磁盤存儲單元中包括第一組磁盤存儲單元,該第一組磁盤存儲單元的每個(gè)磁盤存儲單元的磁盤剩余空間均大于其它組中的一個(gè)磁盤存儲單元的磁盤剩余空間,將所述第一組磁盤存儲單元中的至少一個(gè)文件塊轉(zhuǎn)移到其它組中的至少一個(gè)磁盤存儲單元中,其中其它組中的每一個(gè)磁盤存儲單元不含有相同的文件塊。
8.根據(jù)權(quán)利要求7所述的方法,其中,被轉(zhuǎn)移的文件塊為多個(gè),該多個(gè)被轉(zhuǎn)移的文件塊中的相同的文件塊被轉(zhuǎn)移到不同的磁盤存儲單元中。
9.根據(jù)權(quán)利要求7所述的方法,其中在線的磁盤存儲單元包括所述文件存儲系統(tǒng)的初始磁盤存儲單元和增加的至少一個(gè)磁盤存儲單元。
10.根據(jù)權(quán)利要求7所述的方法,其中將所述第一組磁盤存儲單元中的至少一個(gè)文件塊優(yōu)先轉(zhuǎn)移到其它組中的磁盤剩余空間最小的一個(gè)或多個(gè)磁盤存儲單元中。
11.根據(jù)權(quán)利要求7所述的方法,其中將所述第一組磁盤存儲單元中的至少一個(gè)文件塊轉(zhuǎn)移到其它組中的至少一個(gè)磁盤存儲單元中包括 從所述第一組磁盤存儲單元中選擇將要遷移的至少一個(gè)文件塊; 從其他組中選擇至少一個(gè)磁盤存儲單元; 在所選擇的至少一個(gè)磁盤存儲單元中創(chuàng)建所述至少一個(gè)文件塊;以及 在所述第一組磁盤存儲單元中刪除已被遷移的所述至少一個(gè)文件塊。
12.根據(jù)權(quán)利要求7所述的方法,其中在步驟a)之前還包括 c)檢測所述文件存儲系統(tǒng)中的磁盤存儲單元的在線狀況。
13.—種對根據(jù)權(quán)利要求1-6中的任一項(xiàng)權(quán)利要求所述的方法進(jìn)行存儲的文件存儲系統(tǒng)進(jìn)行存儲分配的方法,其中所述文件存儲系統(tǒng)包括初始的多個(gè)磁盤存儲單元,該方法包括: 檢測所述文件存儲系統(tǒng)中的磁盤存儲單元的在線狀況; 當(dāng)檢測到減少了磁盤存儲單元時(shí),執(zhí)行以下操作 獲取該磁盤存儲單元的文件塊列表; 從所述多個(gè)磁盤存儲單元中的剩余磁盤存儲單元中查找與所述文件塊列表中所列的文件塊相同的文件塊; 在保證相同的文件塊不重復(fù)存儲在同一磁盤存儲單元的條件下,在剩余磁盤存儲單元中盡量多地創(chuàng)建所查找到的文件塊的副本。
14.根據(jù)權(quán)利要求13所述的方法,創(chuàng)建所查找到的每個(gè)文件塊的副本數(shù)量不多于減少的磁盤存儲單元存儲的該文件塊的副本數(shù)量。
15.根據(jù)權(quán)利要求13所述的方法,其中優(yōu)先在所述剩余磁盤存儲單元中的磁盤剩余空間最大的一個(gè)或多個(gè)磁盤存儲單元中創(chuàng)建所述文件塊的副本。
全文摘要
本發(fā)明提出了文件存儲方法以及對使用該文件存儲方法進(jìn)行存儲的文件存儲系統(tǒng)進(jìn)行存儲分配的方法,通過將文件劃分成文件塊分別存儲到多個(gè)磁盤存儲單元中,很好的解決了多用戶訪問同一文件時(shí)的速度受限問題,并通過文件塊冗余在進(jìn)一步提高磁盤存儲單元的性能的同時(shí),有效地提高了文件存儲系統(tǒng)的安全性。
文檔編號G06F17/30GK102622185SQ20111003043
公開日2012年8月1日 申請日期2011年1月27日 優(yōu)先權(quán)日2011年1月27日
發(fā)明者張寶柱, 張超, 徐衛(wèi)東, 朱峰, 段國學(xué) 申請人:北京東方廣視科技股份有限公司