欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

多個物理文件合并為一個邏輯文件的方法

文檔序號:6382475閱讀:317來源:國知局
專利名稱:多個物理文件合并為一個邏輯文件的方法
多個物理文件合并為一個邏輯文件的方法技術(shù)領(lǐng)域
本發(fā)明屬于計算機領(lǐng)域,主要關(guān)注增強文件的個性化存儲和提高文件訪問效率。
技術(shù)背景
很多應(yīng)用中需要建立非常大尺寸的文件,例如TB級別的文件,但是往往單個物理存儲介質(zhì)本身就沒有這么大的容量或者不允許單個文件具有這么大的尺寸(例如fat32文件系統(tǒng)最大支持的單個文件為2GB),因此需要將若干個物理存儲介質(zhì)上的物理文件數(shù)據(jù)合并為一個邏輯文件。另外,通過將一個大的文件分解為若干個部分存儲在不同的存儲介質(zhì)上還有利于并行化訪問文件的不同部分,提高計算機以及應(yīng)用系統(tǒng)的性能。
已有的解決方案包括RAID技術(shù)、邏輯卷技術(shù)、LVM技術(shù)等,這些技術(shù)在數(shù)據(jù)塊級別給出解決方案,實現(xiàn)一個邏輯文件分散在多個物理存儲介質(zhì)中的多個數(shù)據(jù)塊中。
而本發(fā)明的原理不同于上述基于數(shù)據(jù)塊級別技術(shù),本發(fā)明基于已有的若干個文件系統(tǒng)基礎(chǔ)上進一步建立邏輯文件,即基于文件系統(tǒng)級別,而不是數(shù)據(jù)塊級別。
目前將一個文件分散為多個物理文件存儲尚未有通用的解決方案,例如,一些數(shù)據(jù)庫系統(tǒng)自己利用多個物理文件映射為一個數(shù)據(jù)庫邏輯(或者表空間)文件。一般多依賴于具體的應(yīng)用程序本身。
本發(fā)明基于文件系統(tǒng)給出一個將多個物理文件合并為一個邏輯文件的通用方法。 發(fā)明內(nèi)容
本發(fā)明目的是為了增強文件的個性化存儲和提高訪問效率。本發(fā)明基于文件系統(tǒng)給出一個將多個物理文件合并為一個邏輯文件的方法,該方法具有通用性和廣泛的適用性。
本發(fā)明給出的邏輯文件創(chuàng)建和管理方法,超越了單個存儲設(shè)備的容量限制,也超越了單個物理文件系統(tǒng)的容量限制和單個物理文件的容量限制,并且可跨越本地存儲設(shè)備的限制,通過網(wǎng)絡(luò)實現(xiàn)將邏輯文件存儲在網(wǎng)絡(luò)環(huán)境下的多個存儲設(shè)備中,從而構(gòu)建足夠大的邏輯文件,從而極大地方便地為上層應(yīng)用程序提供構(gòu)建大文件的統(tǒng)一方法,并可大大提高訪問的并發(fā)效率。
I.多個物理文件合并為一個邏輯文件的方法,所述方法包括
第I、當(dāng)創(chuàng)建邏輯文件時,需在物理文件系統(tǒng)上建立邏輯文件以及“邏輯文件的主配置文件”,簡稱“主配置文件”。邏輯文件中指明邏輯文件類型和主配置文件信息。一個邏輯文件對應(yīng)有一個“邏輯文件的主配置文件”,邏輯文件的主配置文件中記錄邏輯文件的全局信息以及邏輯文件對應(yīng)的多個物理文件在物理文件系統(tǒng)中具體目錄信息;
第2、當(dāng)打開邏輯文件時,獲知邏輯文件中存儲的主配置文件信息,然后讀取主配置文件,以及進一步讀取在主配置文件中列出的所有物理文件目錄中所有物理文件的配置文件,簡稱“配置文件”。進一步在內(nèi)存中建立“邏輯文件全局控制塊”,“邏輯文件全局控制塊”中包含一個“邏輯文件數(shù)據(jù)存儲分布表”,“邏輯文件數(shù)據(jù)存儲分布表”中記錄邏輯文件的大小以及各離散數(shù)據(jù)段所對應(yīng)的物理文件;
第3、當(dāng)對邏輯文件寫數(shù)據(jù)時,根據(jù)寫訪問請求的偏移量和長度,在內(nèi)存中此邏輯文件的“邏輯文件數(shù)據(jù)存儲分布表”中查找對應(yīng)的一個或者多個物理文件實際偏移量和長度。
第3. I、若找到對應(yīng)的一個或多個物理文件實際偏移量和長度,則將相應(yīng)長度的數(shù)據(jù)依次寫入一個或多個物理文件相應(yīng)的偏移量所標(biāo)明位置。若上述操作成功,寫操作成功返回;否則寫操作失敗返回;
第3. 2、若未找到對應(yīng)的一個或多個物理文件實際偏移量和長度,則根據(jù)內(nèi)存中此邏輯文件的“邏輯文件全局控制塊”中給定的寫目錄集合和寫策略,選擇其中的物理文件系統(tǒng)目錄,在此目錄中建立一個新的物理文件以及新物理文件對應(yīng)的配置文件,將待寫入的數(shù)據(jù)寫入新的物理文件中,并更新此物理文件對應(yīng)的配置文件信息。若上述操作成功,則進一步更新內(nèi)存中此邏輯文件的“邏輯文件全局控制塊”信息,寫操作成功返回;否則寫操作失敗返回;
第3. 3、若寫操作的部分?jǐn)?shù)據(jù)找到對應(yīng)的一個或多個物理文件實際偏移量和長度, 寫操作的另外一部分?jǐn)?shù)據(jù)未找到對應(yīng)的一個或多個物理文件實際偏移量和長度,則將此寫操作分成若干個子的寫操作。對于找到對應(yīng)的一個或多個物理文件實際偏移量和長度的寫操作數(shù)據(jù),調(diào)用第3. I過程;對于未找到對應(yīng)的一個或多個物理文件實際偏移量和長度的寫操作數(shù)據(jù),調(diào)用第3. 2過程。若所有子的寫操作都成功,則寫操作成功返回;否則寫操作失敗返回;
第4、當(dāng)讀取邏輯文件時;根據(jù)讀訪問請求的偏移量和長度,在內(nèi)存中此邏輯文件的“邏輯文件數(shù)據(jù)存儲分布表”中查找對應(yīng)的一個或多個物理文件實際偏移量和長度,若未查找到,則返回讀失??;若查找到對應(yīng)的一個或多個物理文件實際偏移量和長度,進一步讀取“物理文件目錄表”中對應(yīng)的物理文件目錄的“優(yōu)先級”信息,然后按優(yōu)先級依次讀取一個或多個物理文件相應(yīng)的偏移量和長度所標(biāo)明的數(shù)據(jù),并成功返回;
第5、關(guān)閉邏輯文件時,將內(nèi)存中此邏輯文件的“邏輯文件全局控制塊”信息更新到邏輯文件的主配置文件以及邏輯文件對應(yīng)的多個物理文件的配置文件中;
第6、當(dāng)刪除邏輯文件時;需先讀取邏輯文件,獲知主配置文件信息,然后讀取主配置文件,以及進一步讀取在主配置文件中列出的所有物理文件目錄中所有物理文件的配置文件。根據(jù)這些信息在物理文件系統(tǒng)中依次刪除關(guān)物理文件及物理文件所對應(yīng)的配置文件,進一步刪除“邏輯文件的主配置文件”,最后刪除邏輯文件。
2.按照本發(fā)明提供的建立方法,其特征在于,邏輯文件的主配置文件主要包括如下信息邏輯文件大小、物理文件名前綴、單個物理文件大小最大值、主物理文件目錄集合、 主物理文件目錄集合、物理文件目錄集合、寫策略。其中,物理文件名前綴為邏輯文件所包含的所有物理文件的文件名前綴;單個物理文件大小最大值限制單個物理文件最大容量; 主物理文件目錄集合為對邏輯文件可寫操作的物理文件目錄集合;物理文件目錄集合為邏輯文件所包含的所有物理文件所對應(yīng)的物理文件目錄集合。
3.按照本發(fā)明提供的建立方法,所述的,針對邏輯文件所包含的所有物理文件,每個物理文件有一個對應(yīng)的配置文件,主要包括如下信息物理文件大小、有效起始位置、邏輯文件偏移量、長度。其中,“有效起始位置”指邏輯文件在此物理文件中第一個字節(jié)有效數(shù)據(jù)的位置相對于物理文件起始的長度;“邏輯文件偏移量”指輯文件在此物理文件中第一個字節(jié)有效數(shù)據(jù)相對于邏輯文件起始的長度;“長度”指邏輯文件在此物理文件中第一個字節(jié)有效數(shù)據(jù)開始連續(xù)有效數(shù)據(jù)的最大長度。
4.按照本發(fā)明提供的建立方法,所述的,邏輯文件的主配置文件中的寫策略指明對邏輯文件寫操作過程中具體在主物理文件目錄集合中的哪些目錄中可涉及新建物理文件及配置文件,寫策略包括隨機選擇寫目錄、依次輪換選擇寫目錄、指定寫目錄、冗余寫目錄等,并可進一步擴充策略。
5.按照本發(fā)明提供的建立方法,所述的,每個已打開的邏輯文件在內(nèi)存中有一個唯一對應(yīng)的“邏輯文件全局控制塊”,“邏輯文件全局控制塊”包括如下信息邏輯文件inode 號、邏輯文件名、邏輯文件大小、物理文件名前綴、單個物理文件大小最大值、主物理文件目錄表指針、物理文件目錄表指針、數(shù)據(jù)存儲分布表指針、寫策略。其中,邏輯文件inode號為此邏輯文件的唯一索引號;主物理文件目錄表指針指向“主物理文件目錄表”,表明可寫入的物理文件目錄集合;物理文件目錄表指針指向“物理文件目錄表”,表明所有物理文件目錄集合;數(shù)據(jù)存儲分布表指針指向“邏輯文件數(shù)據(jù)存儲分布表”?!爸魑锢砦募夸洷怼焙?“物理文件目錄表”中的每一個物理文件目錄對應(yīng)一個“優(yōu)先級” “優(yōu)先級”表明讀操作的優(yōu)先順序,不同的物理文件目錄可以有相同的“優(yōu)先級”。
6.按照本發(fā)明提供的建立方法,所述的,“邏輯文件數(shù)據(jù)存儲分布表”存放當(dāng)前邏輯文件數(shù)據(jù)在多個物理文件中存儲的實際情況,“邏輯文件數(shù)據(jù)存儲分布表”包括如下信息物理文件目錄、物理文件名、物理文件大小、有效起始位置、邏輯文件偏移量、長度?!斑壿嬑募?shù)據(jù)存儲分布表”的數(shù)據(jù)與邏輯文件所包含的所有物理文件的配置文件的數(shù)據(jù)一致,含義一致。
7.按照本發(fā)明提供的建立方法,所述的,邏輯文件所包含多個物理文件可以分散存儲到多個不同的文件系統(tǒng)目錄下,也可以存儲到網(wǎng)絡(luò)上的文件系統(tǒng)和存儲空間中。本發(fā)明支持采用單獨的計算裝置對外提供邏輯文件服務(wù),計算裝置與各種物理存儲裝置直接線纜連接或者網(wǎng)絡(luò)連接。
8.按照本發(fā)明提供的建立方法,所述的,邏輯文件支持任意的黑洞文件,即邏輯文件中部分偏移量及長度所指的數(shù)據(jù)無需存在。邏輯文件支持由高層應(yīng)用程序?qū)⑵溆梢粋€不帶黑洞的文件轉(zhuǎn)變?yōu)閹Ш诙吹奈募?,也支持由帶黑洞的文件轉(zhuǎn)變?yōu)椴粠Ш诙吹奈募?br> 9.按照本發(fā)明提供的建立方法,所述的,對邏輯文件的寫操作可支持事務(wù)型寫操作。具體方法如下
第9. I、建立一個新的事務(wù);
第9. 2、根據(jù)寫訪問請求的偏移量和長度,并根據(jù)寫策略,直接建立新的物理文件以及對應(yīng)的配置文件,并寫入實際數(shù)據(jù);
第9. 3、若第9. 2操作失敗,則回滾新事務(wù),寫操作失敗返回;否則執(zhí)行第9. 4 ;
第9. 4、在“邏輯文件數(shù)據(jù)存儲分布表”中查找對應(yīng)偏移量和長度的已存在的一個或多個物理文件,若不存在相應(yīng)物理文件,則執(zhí)行第9. 6 ;
第9. 5、若物理文件所包含的有效數(shù)據(jù)完全在中原始寫訪問請求的偏移量和長度范圍內(nèi),則刪除該物理文件及配置文件,并在“邏輯文件數(shù)據(jù)存儲分布表”中刪除對應(yīng)信息; 若物理文件所包含的有效數(shù)據(jù)部分在寫訪問請求的偏移量和長度范圍內(nèi),則在“邏輯文件數(shù)據(jù)存儲分布表”中將此物理文件的偏移量和長度信息中去除原始寫訪問請求的偏移量和長度范圍;若操作失敗,則回滾新事務(wù),寫操作失敗返回;否則執(zhí)行第9. 6 ;
第9. 6、將新的物理文件以及配置文件中相關(guān)信息添加到內(nèi)存中此邏輯文件的 “邏輯文件數(shù)據(jù)存儲分布表”中;若操作失敗,則回滾新事務(wù),寫操作失敗返回;否則執(zhí)行第 9. 7 ;
第9. 7、新事務(wù)成功提交,寫操作成功返回。
10.按照本發(fā)明提供的建立方法,所述的,邏輯文件可支持多個物理文件的冗余存儲,即多個物理文件包含邏輯文件中相同的數(shù)據(jù),這一特征由寫策略的“冗余寫目錄”來標(biāo)識。此時寫操作將向符合條件的多個物理文件中寫入相同的數(shù)據(jù),而讀操作時按照多個物理文件所在物理目錄的優(yōu)先級來按序讀取。
本發(fā)明的優(yōu)點和積極效果
本發(fā)明能夠?qū)崿F(xiàn)文件的個性化存儲和提高文件訪問效率。
目前將一個文件分散為多個物理文件存儲尚未有通用的解決方案,一般取決于具體的應(yīng)用程序本身。本發(fā)明則基于已有的文件系統(tǒng)實現(xiàn)將多個物理文件合并成一個統(tǒng)一的邏輯文件的方法,且獨立于應(yīng)用程序,因此更具有廣泛應(yīng)用價值。










圖I是本發(fā)明中多個物理文件合并為一個邏輯文件的示意圖。2是本發(fā)明中多個物理文件合并為一個邏輯文件的物理存儲拓撲示意圖。 3是本發(fā)明中多個物理文件合并為一個邏輯文件的技術(shù)架構(gòu)示意圖。4是本發(fā)明中邏輯文件在內(nèi)存中的“邏輯文件數(shù)據(jù)存儲分布表”示意圖。5是本發(fā)明中多個物理文件合并為邏輯文件Myfile的實例I。6是本發(fā)明中實例I的主配置文件Myfile. uf. conf。7是本發(fā)明中實例I的物理文件I的配置文件Myfile. uf. 01. conf。8是本發(fā)明中實例I的物理文件I的配置文件Myfile. uf. 02. conf。9是本發(fā)明中實例I的物理文件I的配置文件Myfile. uf. 03. conf。
具體實施方式
本發(fā)明提供了一種多個物理文件合并為一個邏輯文件的方法。
為能進一步了解本發(fā)明的技術(shù)內(nèi)容、特點及功效,茲列舉以下應(yīng)用實例,并配合附圖詳細說明。
如圖I所示一個邏輯文件由主配置文件、多個物理文件以及配置文件組成。一個邏輯文件可以分為若干個物理文件以及對應(yīng)配置文件,這些物理文件以及配置文件可以分散到多個存儲設(shè)備中,如圖2,若干個物理文件以及對應(yīng)配置文件存儲在存儲介質(zhì)I中的多個目錄中,若干個物理文件以及對應(yīng)配置文件存儲在存儲介質(zhì)N中的多個目錄中,甚至若干個物理文件以及對應(yīng)配置文件存儲在網(wǎng)絡(luò)存儲介質(zhì)X中的多個目錄中。
如圖5所示,邏輯文件Myfile當(dāng)前由本地文件系統(tǒng)之目錄b下的Myfile. uf. 01、 本地文件系統(tǒng)之目錄c下Myfile. uf. 02、網(wǎng)絡(luò)文件系統(tǒng)nfs之目錄d下的Myfile. uf03等三個物理文件組成。上述三個物理文件相應(yīng)的配置文件分別為Myfile. uf. 01. conf、Myfile.uf. 02. conf、和Myfile. uf. 03. conf。而邏輯文件Myfile 的主配置文件為 Myfile. uf. conf。
從圖1、2可以看出本發(fā)明給出的邏輯文件創(chuàng)建和管理方法,超越了單個存儲設(shè)備的容量限制,也超越了單個物理文件系統(tǒng)的容量限制和單個物理文件的容量限制,并且可跨越本地存儲設(shè)備的限制,通過網(wǎng)絡(luò)實現(xiàn)將邏輯文件存儲在網(wǎng)絡(luò)環(huán)境下的多個存儲設(shè)備中,從而構(gòu)建足夠大的邏輯文件。
“邏輯文件”指從應(yīng)用程序角度看該對象為文件系統(tǒng)中的一個文件對象。具體可以采用三種成熟框架來支持“邏輯文件”的實現(xiàn),如圖3。第一種方法,在操作系統(tǒng)用戶態(tài)下在 fuse框架基礎(chǔ)上為上層應(yīng)用程序提供文件系統(tǒng)以及文件服務(wù);第二種方法,在操作系統(tǒng)內(nèi)核態(tài)下在虛擬文件系統(tǒng)VFS框架基礎(chǔ)上為上層應(yīng)用程序提供文件系統(tǒng)以及文件服務(wù);第三種方法,在操作系統(tǒng)內(nèi)核態(tài)下更底冊的wrapFS框架基礎(chǔ)上為上層應(yīng)用程序提供文件系統(tǒng)以及文件服務(wù)。本發(fā)明支持上述三種框架下提供文件系統(tǒng)以及文件服務(wù)基礎(chǔ)上的多個物理文件合并為一個邏輯文件的方法。
本發(fā)明可以采用單獨的計算裝置對外提供邏輯文件服務(wù),計算裝置與各種物理存儲裝置直接線纜連接或者網(wǎng)絡(luò)連接。
結(jié)合圖5-9所示,邏輯文件Myfile訪問的具體實例如下。
I.基于上述三種技術(shù)框架實現(xiàn)“多個物理文件合并為一個邏輯文件”,具體方法
第I、當(dāng)創(chuàng)建邏輯文件Myfile時,需在物理文件系統(tǒng)上建立邏輯文件Myfile以及 “邏輯文件的主配置文件Myfile. uf. conf ”,簡稱“主配置文件”。邏輯文件中指明邏輯文件類型和主配置文件信息。一個邏輯文件對應(yīng)有一個“邏輯文件的主配置文件”,邏輯文件的主配置文件中記錄邏輯文件的全局信息以及邏輯文件對應(yīng)的多個物理文件在物理文件系統(tǒng)中具體目錄信息,Myfile. uf. conf的具體內(nèi)容如圖6 ;
第2、當(dāng)打開邏輯文件Myfile時,獲知邏輯文件中存儲的主配置文件(Myfile. uf. conf)信息,然后讀取主配置文件Myfile. uf. conf,以及進一步讀取在主配置文件中列出的所有物理文件目錄中所有物理文件的配置文件(包括Myfile. uf. 01. conf, Myfile. uf. 02. conf, Myfile. uf. 03. conf ),簡稱“配置文件”。進一步在內(nèi)存中建立“邏輯文件全局控制塊”,“邏輯文件全局控制塊”中包含一個“邏輯文件數(shù)據(jù)存儲分布表”,“邏輯文件數(shù)據(jù)存儲分布表”中記錄邏輯文件的大小以及各離散數(shù)據(jù)段所對應(yīng)的物理文件,如圖4 ;
第3、當(dāng)對邏輯文件Myfile寫數(shù)據(jù)時,根據(jù)寫訪問請求的偏移量和長度(由上層的用戶應(yīng)用程序來提供),在內(nèi)存中此邏輯文件的“邏輯文件數(shù)據(jù)存儲分布表”中查找對應(yīng)的一個或者多個物理文件實際偏移量和長度(如圖4的“邏輯文件數(shù)據(jù)存儲分布表”所示)。
第3. I、若找到對應(yīng)的一個或多個物理文件實際偏移量和長度,則將相應(yīng)長度的數(shù)據(jù)依次寫入一個或多個物理文件相應(yīng)的偏移量所標(biāo)明位置。若上述操作成功,寫操作成功返回;否則寫操作失敗返回;
第3. 2、若未找到對應(yīng)的一個或多個物理文件實際偏移量和長度,則根據(jù)內(nèi)存中此邏輯文件的“邏輯文件全局控制塊”中給定的寫目錄集合和寫策略(如圖4中主物理文件目錄表),選擇其中的物理文件系統(tǒng)目錄,在此目錄中建立一個新的物理文件以及新物理文件對應(yīng)的配置文件,將待寫入的數(shù)據(jù)寫入新的物理文件中,并更新此物理文件對應(yīng)的配置文件信息。若上述操作成功,則進一步更新內(nèi)存中此邏輯文件的“邏輯文件全局控制塊”信息, 寫操作成功返回;否則寫操作失敗返回;
第3. 3、若寫操作的部分?jǐn)?shù)據(jù)找到對應(yīng)的一個或多個物理文件實際偏移量和長度, 寫操作的另外一部分?jǐn)?shù)據(jù)未找到對應(yīng)的一個或多個物理文件實際偏移量和長度,則將此寫操作分成若干個子的寫操作。對于找到對應(yīng)的一個或多個物理文件實際偏移量和長度的寫操作數(shù)據(jù),調(diào)用第3. I過程;對于未找到對應(yīng)的一個或多個物理文件實際偏移量和長度的寫操作數(shù)據(jù),調(diào)用第3. 2過程。若所有子的寫操作都成功,則寫操作成功返回;否則寫操作失敗返回;
第4、當(dāng)讀取邏輯文件Myfile時;根據(jù)讀訪問請求的偏移量和長度,在內(nèi)存中此邏輯文件的“邏輯文件數(shù)據(jù)存儲分布表”(如圖4)中查找對應(yīng)的一個或多個物理文件實際偏移量和長度,若未查找到,則返回讀失?。蝗舨檎业綄?yīng)的一個或多個物理文件實際偏移量和長度,進一步讀取“物理文件目錄表”中對應(yīng)的物理文件目錄的“優(yōu)先級”信息,然后按優(yōu)先級依次讀取一個或多個物理文件相應(yīng)的偏移量和長度所標(biāo)明的數(shù)據(jù),并成功返回;
第5、關(guān)閉邏輯文件Myfile時,將內(nèi)存中此邏輯文件的“邏輯文件全局控制塊”(如圖4)信息更新到邏輯文件的主配置文件Myfile. uf. conf以及邏輯文件對應(yīng)的多個物理文件的配置文件(Myfile. uf. 01. conf, Myfile. uf. 02. conf, Myfile. uf. 03. conf)中;
第6、當(dāng)刪除邏輯文件Myfile時;需先讀取邏輯文件Myfile,獲知主配置文件信息,然后讀取主配置文件Myfile. uf. conf,以及進一步讀取在主配置文件中列出的所有物理文件目錄中所有物理文件的配置文件(Myfile. uf. 01. conf, Myfile. uf. 02. conf, Myfile. uf. 03. conf)。根據(jù)這些信息在物理文件系統(tǒng)中依次刪除關(guān)物理文件(MyfiIe. uf. OLMyfile. uf. 02,Myfile. uf. 03)及物理文件所對應(yīng)的配置文件(Myfile. uf. 01. conf, Myfile. uf. 02. conf, Myfile. uf. 03. conf),進一步刪除“邏輯文件的主配置文件”Myfile. ufconf,最后刪除邏輯文件Myfile。
2.按照本發(fā)明提供的建立方法,所述的,邏輯文件的主配置文件Myfile. uf. conf 主要包括如下信息(如圖6):邏輯文件大小、物理文件名前綴、單個物理文件大小最大值、主物理文件目錄集合、主物理文件目錄集合、物理文件目錄集合、寫策略。其中,物理文件名前綴為邏輯文件所包含的所有物理文件的文件名前綴;單個物理文件大小最大值限制單個物理文件最大容量;主物理文件目錄集合為對邏輯文件可寫操作的物理文件目錄集合;物理文件目錄集合為邏輯文件所包含的所有物理文件所對應(yīng)的物理文件目錄集合。
在本實例中,邏輯文件Myfile中主物理目錄集合為K本地文件系統(tǒng)目錄a,優(yōu)先級1),(本地文件系統(tǒng)目錄c,優(yōu)先級I)},寫策略為“隨機”,因此每次寫操作創(chuàng)建新的物理文件時可以隨機選擇“本地文件系統(tǒng)目錄a”和“本地文件系統(tǒng)目錄c”中的一個目錄來創(chuàng)建新的物理文件。
3.按照本發(fā)明提供的建立方法,所述的,針對邏輯文件所包含的所有物理文件 (Myfile. uf. 01,Myfile. uf. 02,Myfile. uf. 03),每個物理文件有一個對應(yīng)的配置文件 (Myfile. uf. 01. conf, Myfile. uf02. conf, Myfile. uf. 03. conf),配置文件主要包括如下信息(如圖7、8、9所示):物理文件大小、有效起始位置、邏輯文件偏移量、長度。其中,“有效起始位置”指邏輯文件在此物理文件中第一個字節(jié)有效數(shù)據(jù)的位置相對于物理文件起始的長度;“邏輯文件偏移量”指輯文件在此物理文件中第一個字節(jié)有效數(shù)據(jù)相對于邏輯文件起始的長度;“長度”指邏輯文件在此物理文件中第一個字節(jié)有效數(shù)據(jù)開始連續(xù)有效數(shù)據(jù)的最大長度。
4.按照本發(fā)明提供的建立方法,所述的,邏輯文件的主配置文件中的寫策略指明對邏輯文件寫操作過程中具體在主物理文件目錄集合中的哪些目錄中可涉及新建物理文件及配置文件,寫策略包括隨機選擇寫目錄、依次輪換選擇寫目錄、指定寫目錄、冗余寫目錄等,并可進一步擴充策略。
在本實例中,如圖6所示(邏輯文件的主配置文件),邏輯文件Myfile中主物理目錄集合為K本地文件系統(tǒng)目錄a,優(yōu)先級1),(本地文件系統(tǒng)目錄C,優(yōu)先級I)},寫策略為 “隨機”,因此每次寫操作創(chuàng)建新的物理文件時可以隨機選擇“本地文件系統(tǒng)目錄a”和“本地文件系統(tǒng)目錄c”中的一個目錄來創(chuàng)建新的物理文件。
5.按照本發(fā)明提供的建立方法,所述的,每個已打開的邏輯文件在內(nèi)存中有一個唯一對應(yīng)的“邏輯文件全局控制塊”,“邏輯文件全局控制塊”包括如下信息邏輯文件inode 號、邏輯文件名、邏輯文件大小、物理文件名前綴、單個物理文件大小最大值、主物理文件目錄表指針、物理文件目錄表指針、數(shù)據(jù)存儲分布表指針、寫策略。其中,邏輯文件inode號為此邏輯文件的唯一索引號;主物理文件目錄表指針指向“主物理文件目錄表”,表明可寫入的物理文件目錄集合;物理文件目錄表指針指向“物理文件目錄表”,表明所有物理文件目錄集合;數(shù)據(jù)存儲分布表指針指向“邏輯文件數(shù)據(jù)存儲分布表”?!爸魑锢砦募夸洷怼焙?“物理文件目錄表”中的每一個物理文件目錄對應(yīng)一個“優(yōu)先級” “優(yōu)先級”表明讀操作、寫操作的優(yōu)先順序,不同的物理文件目錄可以有相同的“優(yōu)先級”?!斑壿嬑募挚刂茐K”如圖4所示。
6.按照本發(fā)明提供的建立方法,所述的,“邏輯文件數(shù)據(jù)存儲分布表”存放當(dāng)前邏輯文件數(shù)據(jù)在多個物理文件中存儲的實際情況,“邏輯文件數(shù)據(jù)存儲分布表”包括如下信息物理文件目錄、物理文件名、物理文件大小、有效起始位置、邏輯文件偏移量、長度。“邏輯文件數(shù)據(jù)存儲分布表”的數(shù)據(jù)與邏輯文件所包含的所有物理文件的配置文件的數(shù)據(jù)一致,含義一致?!斑壿嬑募?shù)據(jù)存儲分布表”如圖4所示。
7.按照本發(fā)明提供的建立方法,所述的,邏輯文件所包含多個物理文件可以分散存儲到多個不同的文件系統(tǒng)目錄下,也可以存儲到網(wǎng)絡(luò)上的文件系統(tǒng)和存儲空間中。本發(fā)明支持采用單獨的計算裝置對外提供邏輯文件服務(wù),計算裝置與各種物理存儲裝置直接線纜連接或者網(wǎng)絡(luò)連接。在本實例中,如圖5所示,邏輯文件Myfile的部分?jǐn)?shù)據(jù)存儲在“網(wǎng)絡(luò)文件系統(tǒng)nfs之目錄d”下的Myfile. uf03中,其對應(yīng)的配置文件為Myfile. uf03. conf。 本發(fā)明支持將一個邏輯文件的數(shù)據(jù)分散存儲在任意物理文件系統(tǒng)甚至網(wǎng)絡(luò)中。
8.按照本發(fā)明提供的建立方法,所述的,邏輯文件支持任意的黑洞文件,即邏輯文件中部分偏移量及長度所指的數(shù)據(jù)無需存在。邏輯文件支持由高層應(yīng)用程序?qū)⑵溆梢粋€不帶黑洞的文件轉(zhuǎn)變?yōu)閹Ш诙吹奈募?,也支持由帶黑洞的文件轉(zhuǎn)變?yōu)椴粠Ш诙吹奈募?br> 在本實例中,如圖6、7、8、9所示,邏輯文件Myfile的大小為10M,物理文件 Myfile. uf. 01的有效數(shù)據(jù)為2M (邏輯文件的偏移量為0),物理文件Myf ile. uf. 01的有效數(shù)據(jù)為4M (邏輯文件的偏移量為3M),物理文件Myfile. uf. 01的有效數(shù)據(jù)為3M (邏輯文件的偏移量為7M)。由此可以看出邏輯文件Myfile中偏移量為2M長度為IM尚未有任何數(shù)據(jù),因此此邏輯文件Myfile為帶洞的文件,即黑洞文件。
9.按照本發(fā)明提供的建立方法,所述的,對邏輯文件的寫操作可支持事務(wù)型寫操作。具體方法如下
第9.1、建立一個新的事務(wù);
第9. 2、根據(jù)寫訪問請求的偏移量和長度,并根據(jù)寫策略,直接建立新的物理文件以及對應(yīng)的配置文件,并寫入實際數(shù)據(jù);
第9. 3、若第9. 2操作失敗,則回滾新事務(wù),寫操作失敗返回;否則執(zhí)行第9. 4 ;
第9. 4、在“邏輯文件數(shù)據(jù)存儲分布表”中查找對應(yīng)偏移量和長度的已存在的一個或多個物理文件,若不存在相應(yīng)物理文件,則執(zhí)行第9. 6 ;
第9. 5、若物理文件所包含的有效數(shù)據(jù)完全在中原始寫訪問請求的偏移量和長度范圍內(nèi),則刪除該物理文件及配置文件,并在“邏輯文件數(shù)據(jù)存儲分布表”中刪除對應(yīng)信息; 若物理文件所包含的有效數(shù)據(jù)部分在寫訪問請求的偏移量和長度范圍內(nèi),則在“邏輯文件數(shù)據(jù)存儲分布表”中將此物理文件的偏移量和長度信息中去除原始寫訪問請求的偏移量和長度范圍;若操作失敗,則回滾新事務(wù),寫操作失敗返回;否則執(zhí)行第9. 6 ;
第9. 6、將新的物理文件以及配置文件中相關(guān)信息添加到內(nèi)存中此邏輯文件的 “邏輯文件數(shù)據(jù)存儲分布表”中;若操作失敗,則回滾新事務(wù),寫操作失敗返回;否則執(zhí)行第 9. 7 ;
第9. 7、新事務(wù)成功提交,寫操作成功返回。在本實例中,當(dāng)對邏輯文件Myfile進行寫操作,覆蓋偏移量(Γ(2Μ-1)的數(shù)據(jù)時,可以不覆蓋本地文件系統(tǒng)之目錄b下的物理文件Myfile. uf. 01,而是先建立一個新的物理文件Myfile. uf. 04存儲新的2M數(shù)據(jù)以及對應(yīng)的配置文件Myfile. uf. 04. conf,具體在哪個目錄下建立新的物理文件Myfile. uf. 04 和Myfile. uf. 04. conf,根據(jù)圖6 (主配置文件Myfile. uf. conf)、圖4 (邏輯文件全局控制塊)中主物理目錄集合為K本地文件系統(tǒng)目錄a,優(yōu)先級I),(本地文件系統(tǒng)目錄C,優(yōu)先級I)},寫策略為“隨機”,因此每次寫操作創(chuàng)建新的物理文件時可以隨機選擇“本地文件系統(tǒng)目錄a”和“本地文件系統(tǒng)目錄c”中的一個目錄來創(chuàng)建新的物理文件Myfile. uf. 04和 Myfile. uf. 04. conf ;然后在圖4 (邏輯文件全局控制塊)中的邏輯文件數(shù)據(jù)存儲分布表中增加Myfile. uf. 04和Myfile. uf. 04. conf ;并進一步查詢偏移量0 (2M_1)的已有數(shù)據(jù)所在的舊的物理文件(即Myfile. uf. 01和Myfile. uf. 01. conf),然后刪除舊的物理文件(即 Myfile. uf. 01和Myfile. uf. 01. conf )以及去除在圖4(邏輯文件全局控制塊)中的邏輯文件數(shù)據(jù)存儲分布表的記錄,完成寫操作。當(dāng)創(chuàng)建和寫新的物理文件Myfile. uf. 04和Myfile. uf. 04. conf失敗時,不會影響邏輯文件Myf ile已有的完整數(shù)據(jù)(包括偏移量(Γ(2Μ_1)的數(shù)據(jù)),從而保證文件操作的可靠性,有效支持事務(wù)性特征。
10.按照本發(fā)明提供的建立方法,所述的,邏輯文件可支持多個物理文件的冗余存儲,即多個物理文件包含邏輯文件中相同的數(shù)據(jù),這一特征由寫策略的“冗余寫目錄”來標(biāo)識。此時寫操作將向符合條件的多個物理文件中寫入相同的數(shù)據(jù),而讀操作時按照多個物理文件所在物理目錄的優(yōu)先級來按序讀取。
在本實例中,接前述第9特征中實例,當(dāng)寫策略的“冗余寫目錄”時,對邏輯文件 Myfile進行寫操作,覆蓋偏移量(Γ(2Μ-1)的數(shù)據(jù)操作成功完成,即新數(shù)據(jù)寫入到新的物理文件Myfile. uf. 04中,同時也會進一步向覆蓋偏移量(Γ (2M-1)的舊數(shù)據(jù)所存儲的物理文件Myfile. uf. 01寫入,此時Myfile. uf. 01和Myfile. uf. 04具有相同的覆蓋偏移量 (Γ(2Μ-1)的最新數(shù)據(jù)。此后,若有對偏移量(Γ(2Μ-1)中部分或全部的讀操作時,可以并行地從這兩個物理文件中按優(yōu)先級讀取(或同時讀取當(dāng)優(yōu)先級相同時),從而提高文件訪問效率。
考慮到在此公開的對本發(fā)明的描述和特例的實施例,本發(fā)明的其他實施例對于本領(lǐng)域的技術(shù)人員來說是顯而意見的。這些說明和實施例僅作為例子來考慮,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.多個物理文件合并為一個邏輯文件的方法,其特征在于,所述方法包括 第I、當(dāng)創(chuàng)建邏輯文件時,需在物理文件系統(tǒng)上建立邏輯文件以及“邏輯文件的主配置文件”,簡稱“主配置文件”;邏輯文件中指明邏輯文件類型和主配置文件信息;一個邏輯文件對應(yīng)有一個“邏輯文件的主配置文件”,邏輯文件的主配置文件中記錄邏輯文件的全局信息以及邏輯文件對應(yīng)的多個物理文件在物理文件系統(tǒng)中具體目錄信息; 第2、當(dāng)打開邏輯文件時,獲知邏輯文件中存儲的主配置文件信息,然后讀取主配置文件,以及進一步讀取在主配置文件中列出的所有物理文件目錄中所有物理文件的配置文件,簡稱“配置文件”;進一步在內(nèi)存中建立“邏輯文件全局控制塊”,“邏輯文件全局控制塊”中包含一個“邏輯文件數(shù)據(jù)存儲分布表”,“邏輯文件數(shù)據(jù)存儲分布表”中記錄邏輯文件的大小以及各離散數(shù)據(jù)段所對應(yīng)的物理文件; 第3、當(dāng)對邏輯文件寫數(shù)據(jù)時,根據(jù)寫訪問請求的偏移量和長度,在內(nèi)存中此邏輯文件的“邏輯文件數(shù)據(jù)存儲分布表”中查找對應(yīng)的一個或者多個物理文件實際偏移量和長度;第3. I、若找到對應(yīng)的一個或多個物理文件實際偏移量和長度,則將相應(yīng)長度的數(shù)據(jù)依次寫入一個或多個物理文件相應(yīng)的偏移量所標(biāo)明位置。若上述操作成功,寫操作成功返回;否則寫操作失敗返回; 第3. 2、若未找到對應(yīng)的一個或多個物理文件實際偏移量和長度,則根據(jù)內(nèi)存中此邏輯文件的“邏輯文件全局控制塊”中給定的寫目錄集合和寫策略,選擇其中的物理文件系統(tǒng)目錄,在此目錄中建立一個新的物理文件以及新物理文件對應(yīng)的配置文件,將待寫入的數(shù)據(jù)寫入新的物理文件中,并更新此物理文件對應(yīng)的配置文件信息;若上述操作成功,則進一步更新內(nèi)存中此邏輯文件的“邏輯文件全局控制塊”信息,寫操作成功返回;否則寫操作失敗返回; 第3. 3、若寫操作的部分?jǐn)?shù)據(jù)找到對應(yīng)的一個或多個物理文件實際偏移量和長度,寫操作的另外一部分?jǐn)?shù)據(jù)未找到對應(yīng)的一個或多個物理文件實際偏移量和長度,則將此寫操作分成若干個子的寫操作;對于找到對應(yīng)的一個或多個物理文件實際偏移量和長度的寫操作數(shù)據(jù),調(diào)用第3. I過程;對于未找到對應(yīng)的一個或多個物理文件實際偏移量和長度的寫操作數(shù)據(jù),調(diào)用第3. 2過程;若所有子的寫操作都成功,則寫操作成功返回;否則寫操作失敗返回; 第4、當(dāng)讀取邏輯文件時;根據(jù)讀訪問請求的偏移量和長度,在內(nèi)存中此邏輯文件的“邏輯文件數(shù)據(jù)存儲分布表”中查找對應(yīng)的一個或多個物理文件實際偏移量和長度,若未查找到,則返回讀失?。蝗舨檎业綄?yīng)的一個或多個物理文件實際偏移量和長度,進一步讀取“物理文件目錄表”中對應(yīng)的物理文件目錄的“優(yōu)先級”信息,然后按優(yōu)先級依次讀取一個或多個物理文件相應(yīng)的偏移量和長度所標(biāo)明的數(shù)據(jù),并成功返回; 第5、關(guān)閉邏輯文件時,將內(nèi)存中此邏輯文件的“邏輯文件全局控制塊”信息更新到邏輯文件的主配置文件以及邏輯文件對應(yīng)的多個物理文件的配置文件中; 第6、當(dāng)刪除邏輯文件時;需先讀取邏輯文件,獲知主配置文件信息,然后讀取主配置文件,以及進一步讀取在主配置文件中列出的所有物理文件目錄中所有物理文件的配置文件。根據(jù)這些信息在物理文件系統(tǒng)中依次刪除關(guān)物理文件及物理文件所對應(yīng)的配置文件,進一步刪除“邏輯文件的主配置文件”,最后刪除邏輯文件。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,邏輯文件的主配置文件主要包括如下信息邏輯文件大小、物理文件名前綴、單個物理文件大小最大值、主物理文件目錄集合、主物理文件目錄集合、物理文件目錄集合、寫策略;其中,物理文件名前綴為邏輯文件所包含的所有物理文件的文件名前綴;單個物理文件大小最大值限制單個物理文件最大容量;主物理文件目錄集合為對邏輯文件可寫操作的物理文件目錄集合;物理文件目錄集合為邏輯文件所包含的所有物理文件所對應(yīng)的物理文件目錄集合。
3.根據(jù)權(quán)利要求I所述的方法,其特征在于,針對邏輯文件所包含的所有物理文件,每個物理文件有一個對應(yīng)的配置文件,主要包括如下信息物理文件大小、有效起始位置、邏輯文件偏移量、長度;其中,“有效起始位置”指邏輯文件在此物理文件中第一個字節(jié)有效數(shù)據(jù)的位置相對于物理文件起始的長度;“邏輯文件偏移量”指輯文件在此物理文件中第一個字節(jié)有效數(shù)據(jù)相對于邏輯文件起始的長度;“長度”指邏輯文件在此物理文件中第一個字節(jié)有效數(shù)據(jù)開始連續(xù)有效數(shù)據(jù)的最大長度。
4.根據(jù)權(quán)利要求1、2所述的方法,其特征在于,邏輯文件的主配置文件中的寫策略指明對邏輯文件寫操作過程中具體在主物理文件目錄集合中的哪些目錄中可涉及新建物理文件及配置文件,寫策略包括隨機選擇寫目錄、依次輪換選擇寫目錄、指定寫目錄、冗余寫目錄等,并可進一步擴充策略。
5.根據(jù)權(quán)利要求I所述的方法,其特征在于,每個已打開的邏輯文件在內(nèi)存中有一個唯一對應(yīng)的“邏輯文件全局控制塊”,“邏輯文件全局控制塊”包括如下信息邏輯文件inode號、邏輯文件名、邏輯文件大小、物理文件名前綴、單個物理文件大小最大值、主物理文件目錄表指針、物理文件目錄表指針、數(shù)據(jù)存儲分布表指針、寫策略;其中,邏輯文件inode號為此邏輯文件的唯一索引號;主物理文件目錄表指針指向“主物理文件目錄表”,表明可寫入的物理文件目錄集合;物理文件目錄表指針指向“物理文件目錄表”,表明所有物理文件目錄集合;數(shù)據(jù)存儲分布表指針指向“邏輯文件數(shù)據(jù)存儲分布表”;“主物理文件目錄表”和“物理文件目錄表”中的每一個物理文件目錄對應(yīng)一個“優(yōu)先級” “優(yōu)先級”表明讀操作的優(yōu)先順序,不同的物理文件目錄可以有相同的“優(yōu)先級”。
6.根據(jù)權(quán)利要求1,5所述的方法,其特征在于,“邏輯文件數(shù)據(jù)存儲分布表”存放當(dāng)前邏輯文件數(shù)據(jù)在多個物理文件中存儲的實際情況,“邏輯文件數(shù)據(jù)存儲分布表”包括如下信息物理文件目錄、物理文件名、物理文件大小、有效起始位置、邏輯文件偏移量、長度;“邏輯文件數(shù)據(jù)存儲分布表”的數(shù)據(jù)與邏輯文件所包含的所有物理文件的配置文件的數(shù)據(jù)一致,含義一致。
7.根據(jù)權(quán)利要求1,3所述的方法,其特征在于,邏輯文件所包含多個物理文件可以分散存儲到多個不同的文件系統(tǒng)目錄下,也可以存儲到網(wǎng)絡(luò)上的文件系統(tǒng)和存儲空間中;本發(fā)明支持采用單獨的計算裝置對外提供邏輯文件服務(wù),計算裝置與各種物理存儲裝置直接線纜連接或者網(wǎng)絡(luò)連接。
8.根據(jù)權(quán)利要求I所述的方法,其特征在于,邏輯文件支持任意的黑洞文件,即邏輯文件中部分偏移量及長度所指的數(shù)據(jù)無需存在;邏輯文件支持由高層應(yīng)用程序?qū)⑵溆梢粋€不帶黑洞的文件轉(zhuǎn)變?yōu)閹Ш诙吹奈募?,也支持由帶黑洞的文件轉(zhuǎn)變?yōu)椴粠Ш诙吹奈募?br> 9.根據(jù)權(quán)利要求I所述的方法,其特征在于,對邏輯文件的寫操作可支持事務(wù)型寫操作; 具體方法如下第9. I、建立一個新的事務(wù); 第9. 2、根據(jù)寫訪問請求的偏移量和長度,并根據(jù)寫策略,直接建立新的物理文件以及對應(yīng)的配置文件,并寫入實際數(shù)據(jù); 第9. 3、若第9. 2操作失敗,則回滾新事務(wù),寫操作失敗返回;否則執(zhí)行第9. 4 ; 第9. 4、在“邏輯文件數(shù)據(jù)存儲分布表”中查找對應(yīng)偏移量和長度的已存在的一個或多個物理文件,若不存在相應(yīng)物理文件,則執(zhí)行第9. 6 ; 第9. 5、若物理文件所包含的有效數(shù)據(jù)完全在中原始寫訪問請求的偏移量和長度范圍內(nèi),則刪除該物理文件及配置文件,并在“邏輯文件數(shù)據(jù)存儲分布表”中刪除對應(yīng)信息;若物理文件所包含的有效數(shù)據(jù)部分在寫訪問請求的偏移量和長度范圍內(nèi),則在“邏輯文件數(shù)據(jù)存儲分布表”中將此物理文件的偏移量和長度信息中去除原始寫訪問請求的偏移量和長度范圍;若操作失敗,則回滾新事務(wù),寫操作失敗返回;否則執(zhí)行第9. 6 ; 第9. 6、將新的物理文件以及配置文件中相關(guān)信息添加到內(nèi)存中此邏輯文件的“邏輯文件數(shù)據(jù)存儲分布表”中;若操作失敗,則回滾新事務(wù),寫操作失敗返回;否則執(zhí)行第9. 7 ; 第9. 7、新事務(wù)成功提交,寫操作成功返回。10.根據(jù)權(quán)利要求I所述的方法,其特征在于,邏輯文件可支持多個物理文件的冗余存儲,即多個物理文件包含邏輯文件中相同的數(shù)據(jù),這一特征由寫策略的冗余寫目錄來標(biāo)識;此時寫操作將向符合條件的多個物理文件中寫入相同的數(shù)據(jù),而讀操作時按照多個物理文件所在物理目錄的優(yōu)先級來按序讀取。
全文摘要
本發(fā)明公開了一種將多個物理文件合并為一個邏輯文件的方法,屬于計算機領(lǐng)域。將多個存儲設(shè)備上的多個物理文件合并為一個邏輯文件的方法包括建立邏輯文件時,在物理文件系統(tǒng)上建立邏輯文件及邏輯文件的主配置文件,并在邏輯文件中指明主配置文件信息;刪除邏輯文件時,在物理文件系統(tǒng)上刪除邏輯文件、主配置文件、相關(guān)物理文件及配置文件;當(dāng)讀寫邏輯文件時,將對邏輯文件訪問請求的偏移量和長度轉(zhuǎn)化為對應(yīng)的物理文件實際偏移量和長度,寫操作需要新建立物理文件時,同時建立相對應(yīng)的配置文件。本發(fā)明能夠有效地將邏輯文件分散在多個存儲設(shè)備上多個文件系統(tǒng)的多個目錄中從而實現(xiàn)個性化存儲,并提高邏輯文件的訪問速度。
文檔編號G06F17/30GK102982151SQ201210493369
公開日2013年3月20日 申請日期2012年11月27日 優(yōu)先權(quán)日2012年11月27日
發(fā)明者李旭東, 史寶旭 申請人:南開大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
浪卡子县| 永仁县| 肃北| 叶城县| 方正县| 太湖县| 东明县| 若尔盖县| 绥宁县| 南和县| 当阳市| 朝阳区| 洛扎县| 屯昌县| 泸溪县| 枣庄市| 福建省| 封开县| 特克斯县| 八宿县| 广宁县| 武鸣县| 石阡县| 那坡县| 伊川县| 梓潼县| 丹寨县| 涿州市| 资阳市| 洛阳市| 渭源县| 汝城县| 五河县| 武川县| 比如县| 伽师县| 沙雅县| 屏东县| 马山县| 财经| 日土县|