專利名稱:多個(gè)物理文件合并為一個(gè)邏輯文件的方法
多個(gè)物理文件合并為一個(gè)邏輯文件的方法技術(shù)領(lǐng)域
本發(fā)明屬于計(jì)算機(jī)領(lǐng)域,主要關(guān)注增強(qiáng)文件的個(gè)性化存儲(chǔ)和提高文件訪問效率。
技術(shù)背景
很多應(yīng)用中需要建立非常大尺寸的文件,例如TB級(jí)別的文件,但是往往單個(gè)物理存儲(chǔ)介質(zhì)本身就沒有這么大的容量或者不允許單個(gè)文件具有這么大的尺寸(例如fat32文件系統(tǒng)最大支持的單個(gè)文件為2GB),因此需要將若干個(gè)物理存儲(chǔ)介質(zhì)上的物理文件數(shù)據(jù)合并為一個(gè)邏輯文件。另外,通過將一個(gè)大的文件分解為若干個(gè)部分存儲(chǔ)在不同的存儲(chǔ)介質(zhì)上還有利于并行化訪問文件的不同部分,提高計(jì)算機(jī)以及應(yīng)用系統(tǒng)的性能。
已有的解決方案包括RAID技術(shù)、邏輯卷技術(shù)、LVM技術(shù)等,這些技術(shù)在數(shù)據(jù)塊級(jí)別給出解決方案,實(shí)現(xiàn)一個(gè)邏輯文件分散在多個(gè)物理存儲(chǔ)介質(zhì)中的多個(gè)數(shù)據(jù)塊中。
而本發(fā)明的原理不同于上述基于數(shù)據(jù)塊級(jí)別技術(shù),本發(fā)明基于已有的若干個(gè)文件系統(tǒng)基礎(chǔ)上進(jìn)一步建立邏輯文件,即基于文件系統(tǒng)級(jí)別,而不是數(shù)據(jù)塊級(jí)別。
目前將一個(gè)文件分散為多個(gè)物理文件存儲(chǔ)尚未有通用的解決方案,例如,一些數(shù)據(jù)庫(kù)系統(tǒng)自己利用多個(gè)物理文件映射為一個(gè)數(shù)據(jù)庫(kù)邏輯(或者表空間)文件。一般多依賴于具體的應(yīng)用程序本身。
本發(fā)明基于文件系統(tǒng)給出一個(gè)將多個(gè)物理文件合并為一個(gè)邏輯文件的通用方法。 發(fā)明內(nèi)容
本發(fā)明目的是為了增強(qiáng)文件的個(gè)性化存儲(chǔ)和提高訪問效率。本發(fā)明基于文件系統(tǒng)給出一個(gè)將多個(gè)物理文件合并為一個(gè)邏輯文件的方法,該方法具有通用性和廣泛的適用性。
本發(fā)明給出的邏輯文件創(chuàng)建和管理方法,超越了單個(gè)存儲(chǔ)設(shè)備的容量限制,也超越了單個(gè)物理文件系統(tǒng)的容量限制和單個(gè)物理文件的容量限制,并且可跨越本地存儲(chǔ)設(shè)備的限制,通過網(wǎng)絡(luò)實(shí)現(xiàn)將邏輯文件存儲(chǔ)在網(wǎng)絡(luò)環(huán)境下的多個(gè)存儲(chǔ)設(shè)備中,從而構(gòu)建足夠大的邏輯文件,從而極大地方便地為上層應(yīng)用程序提供構(gòu)建大文件的統(tǒng)一方法,并可大大提高訪問的并發(fā)效率。
I.多個(gè)物理文件合并為一個(gè)邏輯文件的方法,所述方法包括
第I、當(dāng)創(chuàng)建邏輯文件時(shí),需在物理文件系統(tǒng)上建立邏輯文件以及“邏輯文件的主配置文件”,簡(jiǎn)稱“主配置文件”。邏輯文件中指明邏輯文件類型和主配置文件信息。一個(gè)邏輯文件對(duì)應(yīng)有一個(gè)“邏輯文件的主配置文件”,邏輯文件的主配置文件中記錄邏輯文件的全局信息以及邏輯文件對(duì)應(yīng)的多個(gè)物理文件在物理文件系統(tǒng)中具體目錄信息;
第2、當(dāng)打開邏輯文件時(shí),獲知邏輯文件中存儲(chǔ)的主配置文件信息,然后讀取主配置文件,以及進(jìn)一步讀取在主配置文件中列出的所有物理文件目錄中所有物理文件的配置文件,簡(jiǎn)稱“配置文件”。進(jìn)一步在內(nèi)存中建立“邏輯文件全局控制塊”,“邏輯文件全局控制塊”中包含一個(gè)“邏輯文件數(shù)據(jù)存儲(chǔ)分布表”,“邏輯文件數(shù)據(jù)存儲(chǔ)分布表”中記錄邏輯文件的大小以及各離散數(shù)據(jù)段所對(duì)應(yīng)的物理文件;
第3、當(dāng)對(duì)邏輯文件寫數(shù)據(jù)時(shí),根據(jù)寫訪問請(qǐng)求的偏移量和長(zhǎng)度,在內(nèi)存中此邏輯文件的“邏輯文件數(shù)據(jù)存儲(chǔ)分布表”中查找對(duì)應(yīng)的一個(gè)或者多個(gè)物理文件實(shí)際偏移量和長(zhǎng)度。
第3. I、若找到對(duì)應(yīng)的一個(gè)或多個(gè)物理文件實(shí)際偏移量和長(zhǎng)度,則將相應(yīng)長(zhǎng)度的數(shù)據(jù)依次寫入一個(gè)或多個(gè)物理文件相應(yīng)的偏移量所標(biāo)明位置。若上述操作成功,寫操作成功返回;否則寫操作失敗返回;
第3. 2、若未找到對(duì)應(yīng)的一個(gè)或多個(gè)物理文件實(shí)際偏移量和長(zhǎng)度,則根據(jù)內(nèi)存中此邏輯文件的“邏輯文件全局控制塊”中給定的寫目錄集合和寫策略,選擇其中的物理文件系統(tǒng)目錄,在此目錄中建立一個(gè)新的物理文件以及新物理文件對(duì)應(yīng)的配置文件,將待寫入的數(shù)據(jù)寫入新的物理文件中,并更新此物理文件對(duì)應(yīng)的配置文件信息。若上述操作成功,則進(jìn)一步更新內(nèi)存中此邏輯文件的“邏輯文件全局控制塊”信息,寫操作成功返回;否則寫操作失敗返回;
第3. 3、若寫操作的部分?jǐn)?shù)據(jù)找到對(duì)應(yīng)的一個(gè)或多個(gè)物理文件實(shí)際偏移量和長(zhǎng)度, 寫操作的另外一部分?jǐn)?shù)據(jù)未找到對(duì)應(yīng)的一個(gè)或多個(gè)物理文件實(shí)際偏移量和長(zhǎng)度,則將此寫操作分成若干個(gè)子的寫操作。對(duì)于找到對(duì)應(yīng)的一個(gè)或多個(gè)物理文件實(shí)際偏移量和長(zhǎng)度的寫操作數(shù)據(jù),調(diào)用第3. I過程;對(duì)于未找到對(duì)應(yīng)的一個(gè)或多個(gè)物理文件實(shí)際偏移量和長(zhǎng)度的寫操作數(shù)據(jù),調(diào)用第3. 2過程。若所有子的寫操作都成功,則寫操作成功返回;否則寫操作失敗返回;
第4、當(dāng)讀取邏輯文件時(shí);根據(jù)讀訪問請(qǐng)求的偏移量和長(zhǎng)度,在內(nèi)存中此邏輯文件的“邏輯文件數(shù)據(jù)存儲(chǔ)分布表”中查找對(duì)應(yīng)的一個(gè)或多個(gè)物理文件實(shí)際偏移量和長(zhǎng)度,若未查找到,則返回讀失??;若查找到對(duì)應(yīng)的一個(gè)或多個(gè)物理文件實(shí)際偏移量和長(zhǎng)度,進(jìn)一步讀取“物理文件目錄表”中對(duì)應(yīng)的物理文件目錄的“優(yōu)先級(jí)”信息,然后按優(yōu)先級(jí)依次讀取一個(gè)或多個(gè)物理文件相應(yīng)的偏移量和長(zhǎng)度所標(biāo)明的數(shù)據(jù),并成功返回;
第5、關(guān)閉邏輯文件時(shí),將內(nèi)存中此邏輯文件的“邏輯文件全局控制塊”信息更新到邏輯文件的主配置文件以及邏輯文件對(duì)應(yīng)的多個(gè)物理文件的配置文件中;
第6、當(dāng)刪除邏輯文件時(shí);需先讀取邏輯文件,獲知主配置文件信息,然后讀取主配置文件,以及進(jìn)一步讀取在主配置文件中列出的所有物理文件目錄中所有物理文件的配置文件。根據(jù)這些信息在物理文件系統(tǒng)中依次刪除關(guān)物理文件及物理文件所對(duì)應(yīng)的配置文件,進(jìn)一步刪除“邏輯文件的主配置文件”,最后刪除邏輯文件。
2.按照本發(fā)明提供的建立方法,其特征在于,邏輯文件的主配置文件主要包括如下信息邏輯文件大小、物理文件名前綴、單個(gè)物理文件大小最大值、主物理文件目錄集合、 主物理文件目錄集合、物理文件目錄集合、寫策略。其中,物理文件名前綴為邏輯文件所包含的所有物理文件的文件名前綴;單個(gè)物理文件大小最大值限制單個(gè)物理文件最大容量; 主物理文件目錄集合為對(duì)邏輯文件可寫操作的物理文件目錄集合;物理文件目錄集合為邏輯文件所包含的所有物理文件所對(duì)應(yīng)的物理文件目錄集合。
3.按照本發(fā)明提供的建立方法,所述的,針對(duì)邏輯文件所包含的所有物理文件,每個(gè)物理文件有一個(gè)對(duì)應(yīng)的配置文件,主要包括如下信息物理文件大小、有效起始位置、邏輯文件偏移量、長(zhǎng)度。其中,“有效起始位置”指邏輯文件在此物理文件中第一個(gè)字節(jié)有效數(shù)據(jù)的位置相對(duì)于物理文件起始的長(zhǎng)度;“邏輯文件偏移量”指輯文件在此物理文件中第一個(gè)字節(jié)有效數(shù)據(jù)相對(duì)于邏輯文件起始的長(zhǎng)度;“長(zhǎng)度”指邏輯文件在此物理文件中第一個(gè)字節(jié)有效數(shù)據(jù)開始連續(xù)有效數(shù)據(jù)的最大長(zhǎng)度。
4.按照本發(fā)明提供的建立方法,所述的,邏輯文件的主配置文件中的寫策略指明對(duì)邏輯文件寫操作過程中具體在主物理文件目錄集合中的哪些目錄中可涉及新建物理文件及配置文件,寫策略包括隨機(jī)選擇寫目錄、依次輪換選擇寫目錄、指定寫目錄、冗余寫目錄等,并可進(jìn)一步擴(kuò)充策略。
5.按照本發(fā)明提供的建立方法,所述的,每個(gè)已打開的邏輯文件在內(nèi)存中有一個(gè)唯一對(duì)應(yīng)的“邏輯文件全局控制塊”,“邏輯文件全局控制塊”包括如下信息邏輯文件inode 號(hào)、邏輯文件名、邏輯文件大小、物理文件名前綴、單個(gè)物理文件大小最大值、主物理文件目錄表指針、物理文件目錄表指針、數(shù)據(jù)存儲(chǔ)分布表指針、寫策略。其中,邏輯文件inode號(hào)為此邏輯文件的唯一索引號(hào);主物理文件目錄表指針指向“主物理文件目錄表”,表明可寫入的物理文件目錄集合;物理文件目錄表指針指向“物理文件目錄表”,表明所有物理文件目錄集合;數(shù)據(jù)存儲(chǔ)分布表指針指向“邏輯文件數(shù)據(jù)存儲(chǔ)分布表”?!爸魑锢砦募夸洷怼焙?“物理文件目錄表”中的每一個(gè)物理文件目錄對(duì)應(yīng)一個(gè)“優(yōu)先級(jí)” “優(yōu)先級(jí)”表明讀操作的優(yōu)先順序,不同的物理文件目錄可以有相同的“優(yōu)先級(jí)”。
6.按照本發(fā)明提供的建立方法,所述的,“邏輯文件數(shù)據(jù)存儲(chǔ)分布表”存放當(dāng)前邏輯文件數(shù)據(jù)在多個(gè)物理文件中存儲(chǔ)的實(shí)際情況,“邏輯文件數(shù)據(jù)存儲(chǔ)分布表”包括如下信息物理文件目錄、物理文件名、物理文件大小、有效起始位置、邏輯文件偏移量、長(zhǎng)度?!斑壿嬑募?shù)據(jù)存儲(chǔ)分布表”的數(shù)據(jù)與邏輯文件所包含的所有物理文件的配置文件的數(shù)據(jù)一致,含義一致。
7.按照本發(fā)明提供的建立方法,所述的,邏輯文件所包含多個(gè)物理文件可以分散存儲(chǔ)到多個(gè)不同的文件系統(tǒng)目錄下,也可以存儲(chǔ)到網(wǎng)絡(luò)上的文件系統(tǒng)和存儲(chǔ)空間中。本發(fā)明支持采用單獨(dú)的計(jì)算裝置對(duì)外提供邏輯文件服務(wù),計(jì)算裝置與各種物理存儲(chǔ)裝置直接線纜連接或者網(wǎng)絡(luò)連接。
8.按照本發(fā)明提供的建立方法,所述的,邏輯文件支持任意的黑洞文件,即邏輯文件中部分偏移量及長(zhǎng)度所指的數(shù)據(jù)無(wú)需存在。邏輯文件支持由高層應(yīng)用程序?qū)⑵溆梢粋€(gè)不帶黑洞的文件轉(zhuǎn)變?yōu)閹Ш诙吹奈募?,也支持由帶黑洞的文件轉(zhuǎn)變?yōu)椴粠Ш诙吹奈募?br>
9.按照本發(fā)明提供的建立方法,所述的,對(duì)邏輯文件的寫操作可支持事務(wù)型寫操作。具體方法如下
第9. I、建立一個(gè)新的事務(wù);
第9. 2、根據(jù)寫訪問請(qǐng)求的偏移量和長(zhǎng)度,并根據(jù)寫策略,直接建立新的物理文件以及對(duì)應(yīng)的配置文件,并寫入實(shí)際數(shù)據(jù);
第9. 3、若第9. 2操作失敗,則回滾新事務(wù),寫操作失敗返回;否則執(zhí)行第9. 4 ;
第9. 4、在“邏輯文件數(shù)據(jù)存儲(chǔ)分布表”中查找對(duì)應(yīng)偏移量和長(zhǎng)度的已存在的一個(gè)或多個(gè)物理文件,若不存在相應(yīng)物理文件,則執(zhí)行第9. 6 ;
第9. 5、若物理文件所包含的有效數(shù)據(jù)完全在中原始寫訪問請(qǐng)求的偏移量和長(zhǎng)度范圍內(nèi),則刪除該物理文件及配置文件,并在“邏輯文件數(shù)據(jù)存儲(chǔ)分布表”中刪除對(duì)應(yīng)信息; 若物理文件所包含的有效數(shù)據(jù)部分在寫訪問請(qǐng)求的偏移量和長(zhǎng)度范圍內(nèi),則在“邏輯文件數(shù)據(jù)存儲(chǔ)分布表”中將此物理文件的偏移量和長(zhǎng)度信息中去除原始寫訪問請(qǐng)求的偏移量和長(zhǎng)度范圍;若操作失敗,則回滾新事務(wù),寫操作失敗返回;否則執(zhí)行第9. 6 ;
第9. 6、將新的物理文件以及配置文件中相關(guān)信息添加到內(nèi)存中此邏輯文件的 “邏輯文件數(shù)據(jù)存儲(chǔ)分布表”中;若操作失敗,則回滾新事務(wù),寫操作失敗返回;否則執(zhí)行第 9. 7 ;
第9. 7、新事務(wù)成功提交,寫操作成功返回。
10.按照本發(fā)明提供的建立方法,所述的,邏輯文件可支持多個(gè)物理文件的冗余存儲(chǔ),即多個(gè)物理文件包含邏輯文件中相同的數(shù)據(jù),這一特征由寫策略的“冗余寫目錄”來標(biāo)識(shí)。此時(shí)寫操作將向符合條件的多個(gè)物理文件中寫入相同的數(shù)據(jù),而讀操作時(shí)按照多個(gè)物理文件所在物理目錄的優(yōu)先級(jí)來按序讀取。
本發(fā)明的優(yōu)點(diǎn)和積極效果
本發(fā)明能夠?qū)崿F(xiàn)文件的個(gè)性化存儲(chǔ)和提高文件訪問效率。
目前將一個(gè)文件分散為多個(gè)物理文件存儲(chǔ)尚未有通用的解決方案,一般取決于具體的應(yīng)用程序本身。本發(fā)明則基于已有的文件系統(tǒng)實(shí)現(xiàn)將多個(gè)物理文件合并成一個(gè)統(tǒng)一的邏輯文件的方法,且獨(dú)立于應(yīng)用程序,因此更具有廣泛應(yīng)用價(jià)值。
圖
圖
圖
圖
圖
圖
圖
圖
圖I是本發(fā)明中多個(gè)物理文件合并為一個(gè)邏輯文件的示意圖。2是本發(fā)明中多個(gè)物理文件合并為一個(gè)邏輯文件的物理存儲(chǔ)拓?fù)涫疽鈭D。 3是本發(fā)明中多個(gè)物理文件合并為一個(gè)邏輯文件的技術(shù)架構(gòu)示意圖。4是本發(fā)明中邏輯文件在內(nèi)存中的“邏輯文件數(shù)據(jù)存儲(chǔ)分布表”示意圖。5是本發(fā)明中多個(gè)物理文件合并為邏輯文件Myfile的實(shí)例I。6是本發(fā)明中實(shí)例I的主配置文件Myfile. uf. conf。7是本發(fā)明中實(shí)例I的物理文件I的配置文件Myfile. uf. 01. conf。8是本發(fā)明中實(shí)例I的物理文件I的配置文件Myfile. uf. 02. conf。9是本發(fā)明中實(shí)例I的物理文件I的配置文件Myfile. uf. 03. conf。
具體實(shí)施方式
本發(fā)明提供了一種多個(gè)物理文件合并為一個(gè)邏輯文件的方法。
為能進(jìn)一步了解本發(fā)明的技術(shù)內(nèi)容、特點(diǎn)及功效,茲列舉以下應(yīng)用實(shí)例,并配合附圖詳細(xì)說明。
如圖I所示一個(gè)邏輯文件由主配置文件、多個(gè)物理文件以及配置文件組成。一個(gè)邏輯文件可以分為若干個(gè)物理文件以及對(duì)應(yīng)配置文件,這些物理文件以及配置文件可以分散到多個(gè)存儲(chǔ)設(shè)備中,如圖2,若干個(gè)物理文件以及對(duì)應(yīng)配置文件存儲(chǔ)在存儲(chǔ)介質(zhì)I中的多個(gè)目錄中,若干個(gè)物理文件以及對(duì)應(yīng)配置文件存儲(chǔ)在存儲(chǔ)介質(zhì)N中的多個(gè)目錄中,甚至若干個(gè)物理文件以及對(duì)應(yīng)配置文件存儲(chǔ)在網(wǎng)絡(luò)存儲(chǔ)介質(zhì)X中的多個(gè)目錄中。
如圖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等三個(gè)物理文件組成。上述三個(gè)物理文件相應(yīng)的配置文件分別為Myfile. uf. 01. conf、Myfile.uf. 02. conf、和Myfile. uf. 03. conf。而邏輯文件Myfile 的主配置文件為 Myfile. uf. conf。
從圖1、2可以看出本發(fā)明給出的邏輯文件創(chuàng)建和管理方法,超越了單個(gè)存儲(chǔ)設(shè)備的容量限制,也超越了單個(gè)物理文件系統(tǒng)的容量限制和單個(gè)物理文件的容量限制,并且可跨越本地存儲(chǔ)設(shè)備的限制,通過網(wǎng)絡(luò)實(shí)現(xiàn)將邏輯文件存儲(chǔ)在網(wǎng)絡(luò)環(huán)境下的多個(gè)存儲(chǔ)設(shè)備中,從而構(gòu)建足夠大的邏輯文件。
“邏輯文件”指從應(yīng)用程序角度看該對(duì)象為文件系統(tǒng)中的一個(gè)文件對(duì)象。具體可以采用三種成熟框架來支持“邏輯文件”的實(shí)現(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)下更底冊(cè)的wrapFS框架基礎(chǔ)上為上層應(yīng)用程序提供文件系統(tǒng)以及文件服務(wù)。本發(fā)明支持上述三種框架下提供文件系統(tǒng)以及文件服務(wù)基礎(chǔ)上的多個(gè)物理文件合并為一個(gè)邏輯文件的方法。
本發(fā)明可以采用單獨(dú)的計(jì)算裝置對(duì)外提供邏輯文件服務(wù),計(jì)算裝置與各種物理存儲(chǔ)裝置直接線纜連接或者網(wǎng)絡(luò)連接。
結(jié)合圖5-9所示,邏輯文件Myfile訪問的具體實(shí)例如下。
I.基于上述三種技術(shù)框架實(shí)現(xiàn)“多個(gè)物理文件合并為一個(gè)邏輯文件”,具體方法
第I、當(dāng)創(chuàng)建邏輯文件Myfile時(shí),需在物理文件系統(tǒng)上建立邏輯文件Myfile以及 “邏輯文件的主配置文件Myfile. uf. conf ”,簡(jiǎn)稱“主配置文件”。邏輯文件中指明邏輯文件類型和主配置文件信息。一個(gè)邏輯文件對(duì)應(yīng)有一個(gè)“邏輯文件的主配置文件”,邏輯文件的主配置文件中記錄邏輯文件的全局信息以及邏輯文件對(duì)應(yīng)的多個(gè)物理文件在物理文件系統(tǒng)中具體目錄信息,Myfile. uf. conf的具體內(nèi)容如圖6 ;
第2、當(dāng)打開邏輯文件Myfile時(shí),獲知邏輯文件中存儲(chǔ)的主配置文件(Myfile. uf. conf)信息,然后讀取主配置文件Myfile. uf. conf,以及進(jìn)一步讀取在主配置文件中列出的所有物理文件目錄中所有物理文件的配置文件(包括Myfile. uf. 01. conf, Myfile. uf. 02. conf, Myfile. uf. 03. conf ),簡(jiǎn)稱“配置文件”。進(jìn)一步在內(nèi)存中建立“邏輯文件全局控制塊”,“邏輯文件全局控制塊”中包含一個(gè)“邏輯文件數(shù)據(jù)存儲(chǔ)分布表”,“邏輯文件數(shù)據(jù)存儲(chǔ)分布表”中記錄邏輯文件的大小以及各離散數(shù)據(jù)段所對(duì)應(yīng)的物理文件,如圖4 ;
第3、當(dāng)對(duì)邏輯文件Myfile寫數(shù)據(jù)時(shí),根據(jù)寫訪問請(qǐng)求的偏移量和長(zhǎng)度(由上層的用戶應(yīng)用程序來提供),在內(nèi)存中此邏輯文件的“邏輯文件數(shù)據(jù)存儲(chǔ)分布表”中查找對(duì)應(yīng)的一個(gè)或者多個(gè)物理文件實(shí)際偏移量和長(zhǎng)度(如圖4的“邏輯文件數(shù)據(jù)存儲(chǔ)分布表”所示)。
第3. I、若找到對(duì)應(yīng)的一個(gè)或多個(gè)物理文件實(shí)際偏移量和長(zhǎng)度,則將相應(yīng)長(zhǎng)度的數(shù)據(jù)依次寫入一個(gè)或多個(gè)物理文件相應(yīng)的偏移量所標(biāo)明位置。若上述操作成功,寫操作成功返回;否則寫操作失敗返回;
第3. 2、若未找到對(duì)應(yīng)的一個(gè)或多個(gè)物理文件實(shí)際偏移量和長(zhǎng)度,則根據(jù)內(nèi)存中此邏輯文件的“邏輯文件全局控制塊”中給定的寫目錄集合和寫策略(如圖4中主物理文件目錄表),選擇其中的物理文件系統(tǒng)目錄,在此目錄中建立一個(gè)新的物理文件以及新物理文件對(duì)應(yīng)的配置文件,將待寫入的數(shù)據(jù)寫入新的物理文件中,并更新此物理文件對(duì)應(yīng)的配置文件信息。若上述操作成功,則進(jìn)一步更新內(nèi)存中此邏輯文件的“邏輯文件全局控制塊”信息, 寫操作成功返回;否則寫操作失敗返回;
第3. 3、若寫操作的部分?jǐn)?shù)據(jù)找到對(duì)應(yīng)的一個(gè)或多個(gè)物理文件實(shí)際偏移量和長(zhǎng)度, 寫操作的另外一部分?jǐn)?shù)據(jù)未找到對(duì)應(yīng)的一個(gè)或多個(gè)物理文件實(shí)際偏移量和長(zhǎng)度,則將此寫操作分成若干個(gè)子的寫操作。對(duì)于找到對(duì)應(yīng)的一個(gè)或多個(gè)物理文件實(shí)際偏移量和長(zhǎng)度的寫操作數(shù)據(jù),調(diào)用第3. I過程;對(duì)于未找到對(duì)應(yīng)的一個(gè)或多個(gè)物理文件實(shí)際偏移量和長(zhǎng)度的寫操作數(shù)據(jù),調(diào)用第3. 2過程。若所有子的寫操作都成功,則寫操作成功返回;否則寫操作失敗返回;
第4、當(dāng)讀取邏輯文件Myfile時(shí);根據(jù)讀訪問請(qǐng)求的偏移量和長(zhǎng)度,在內(nèi)存中此邏輯文件的“邏輯文件數(shù)據(jù)存儲(chǔ)分布表”(如圖4)中查找對(duì)應(yīng)的一個(gè)或多個(gè)物理文件實(shí)際偏移量和長(zhǎng)度,若未查找到,則返回讀失??;若查找到對(duì)應(yīng)的一個(gè)或多個(gè)物理文件實(shí)際偏移量和長(zhǎng)度,進(jìn)一步讀取“物理文件目錄表”中對(duì)應(yīng)的物理文件目錄的“優(yōu)先級(jí)”信息,然后按優(yōu)先級(jí)依次讀取一個(gè)或多個(gè)物理文件相應(yīng)的偏移量和長(zhǎng)度所標(biāo)明的數(shù)據(jù),并成功返回;
第5、關(guān)閉邏輯文件Myfile時(shí),將內(nèi)存中此邏輯文件的“邏輯文件全局控制塊”(如圖4)信息更新到邏輯文件的主配置文件Myfile. uf. conf以及邏輯文件對(duì)應(yīng)的多個(gè)物理文件的配置文件(Myfile. uf. 01. conf, Myfile. uf. 02. conf, Myfile. uf. 03. conf)中;
第6、當(dāng)刪除邏輯文件Myfile時(shí);需先讀取邏輯文件Myfile,獲知主配置文件信息,然后讀取主配置文件Myfile. uf. conf,以及進(jìn)一步讀取在主配置文件中列出的所有物理文件目錄中所有物理文件的配置文件(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)及物理文件所對(duì)應(yīng)的配置文件(Myfile. uf. 01. conf, Myfile. uf. 02. conf, Myfile. uf. 03. conf),進(jìn)一步刪除“邏輯文件的主配置文件”Myfile. ufconf,最后刪除邏輯文件Myfile。
2.按照本發(fā)明提供的建立方法,所述的,邏輯文件的主配置文件Myfile. uf. conf 主要包括如下信息(如圖6):邏輯文件大小、物理文件名前綴、單個(gè)物理文件大小最大值、主物理文件目錄集合、主物理文件目錄集合、物理文件目錄集合、寫策略。其中,物理文件名前綴為邏輯文件所包含的所有物理文件的文件名前綴;單個(gè)物理文件大小最大值限制單個(gè)物理文件最大容量;主物理文件目錄集合為對(duì)邏輯文件可寫操作的物理文件目錄集合;物理文件目錄集合為邏輯文件所包含的所有物理文件所對(duì)應(yīng)的物理文件目錄集合。
在本實(shí)例中,邏輯文件Myfile中主物理目錄集合為K本地文件系統(tǒng)目錄a,優(yōu)先級(jí)1),(本地文件系統(tǒng)目錄c,優(yōu)先級(jí)I)},寫策略為“隨機(jī)”,因此每次寫操作創(chuàng)建新的物理文件時(shí)可以隨機(jī)選擇“本地文件系統(tǒng)目錄a”和“本地文件系統(tǒng)目錄c”中的一個(gè)目錄來創(chuàng)建新的物理文件。
3.按照本發(fā)明提供的建立方法,所述的,針對(duì)邏輯文件所包含的所有物理文件 (Myfile. uf. 01,Myfile. uf. 02,Myfile. uf. 03),每個(gè)物理文件有一個(gè)對(duì)應(yīng)的配置文件 (Myfile. uf. 01. conf, Myfile. uf02. conf, Myfile. uf. 03. conf),配置文件主要包括如下信息(如圖7、8、9所示):物理文件大小、有效起始位置、邏輯文件偏移量、長(zhǎng)度。其中,“有效起始位置”指邏輯文件在此物理文件中第一個(gè)字節(jié)有效數(shù)據(jù)的位置相對(duì)于物理文件起始的長(zhǎng)度;“邏輯文件偏移量”指輯文件在此物理文件中第一個(gè)字節(jié)有效數(shù)據(jù)相對(duì)于邏輯文件起始的長(zhǎng)度;“長(zhǎng)度”指邏輯文件在此物理文件中第一個(gè)字節(jié)有效數(shù)據(jù)開始連續(xù)有效數(shù)據(jù)的最大長(zhǎng)度。
4.按照本發(fā)明提供的建立方法,所述的,邏輯文件的主配置文件中的寫策略指明對(duì)邏輯文件寫操作過程中具體在主物理文件目錄集合中的哪些目錄中可涉及新建物理文件及配置文件,寫策略包括隨機(jī)選擇寫目錄、依次輪換選擇寫目錄、指定寫目錄、冗余寫目錄等,并可進(jìn)一步擴(kuò)充策略。
在本實(shí)例中,如圖6所示(邏輯文件的主配置文件),邏輯文件Myfile中主物理目錄集合為K本地文件系統(tǒng)目錄a,優(yōu)先級(jí)1),(本地文件系統(tǒng)目錄C,優(yōu)先級(jí)I)},寫策略為 “隨機(jī)”,因此每次寫操作創(chuàng)建新的物理文件時(shí)可以隨機(jī)選擇“本地文件系統(tǒng)目錄a”和“本地文件系統(tǒng)目錄c”中的一個(gè)目錄來創(chuàng)建新的物理文件。
5.按照本發(fā)明提供的建立方法,所述的,每個(gè)已打開的邏輯文件在內(nèi)存中有一個(gè)唯一對(duì)應(yīng)的“邏輯文件全局控制塊”,“邏輯文件全局控制塊”包括如下信息邏輯文件inode 號(hào)、邏輯文件名、邏輯文件大小、物理文件名前綴、單個(gè)物理文件大小最大值、主物理文件目錄表指針、物理文件目錄表指針、數(shù)據(jù)存儲(chǔ)分布表指針、寫策略。其中,邏輯文件inode號(hào)為此邏輯文件的唯一索引號(hào);主物理文件目錄表指針指向“主物理文件目錄表”,表明可寫入的物理文件目錄集合;物理文件目錄表指針指向“物理文件目錄表”,表明所有物理文件目錄集合;數(shù)據(jù)存儲(chǔ)分布表指針指向“邏輯文件數(shù)據(jù)存儲(chǔ)分布表”?!爸魑锢砦募夸洷怼焙?“物理文件目錄表”中的每一個(gè)物理文件目錄對(duì)應(yīng)一個(gè)“優(yōu)先級(jí)” “優(yōu)先級(jí)”表明讀操作、寫操作的優(yōu)先順序,不同的物理文件目錄可以有相同的“優(yōu)先級(jí)”?!斑壿嬑募挚刂茐K”如圖4所示。
6.按照本發(fā)明提供的建立方法,所述的,“邏輯文件數(shù)據(jù)存儲(chǔ)分布表”存放當(dāng)前邏輯文件數(shù)據(jù)在多個(gè)物理文件中存儲(chǔ)的實(shí)際情況,“邏輯文件數(shù)據(jù)存儲(chǔ)分布表”包括如下信息物理文件目錄、物理文件名、物理文件大小、有效起始位置、邏輯文件偏移量、長(zhǎng)度?!斑壿嬑募?shù)據(jù)存儲(chǔ)分布表”的數(shù)據(jù)與邏輯文件所包含的所有物理文件的配置文件的數(shù)據(jù)一致,含義一致?!斑壿嬑募?shù)據(jù)存儲(chǔ)分布表”如圖4所示。
7.按照本發(fā)明提供的建立方法,所述的,邏輯文件所包含多個(gè)物理文件可以分散存儲(chǔ)到多個(gè)不同的文件系統(tǒng)目錄下,也可以存儲(chǔ)到網(wǎng)絡(luò)上的文件系統(tǒng)和存儲(chǔ)空間中。本發(fā)明支持采用單獨(dú)的計(jì)算裝置對(duì)外提供邏輯文件服務(wù),計(jì)算裝置與各種物理存儲(chǔ)裝置直接線纜連接或者網(wǎng)絡(luò)連接。在本實(shí)例中,如圖5所示,邏輯文件Myfile的部分?jǐn)?shù)據(jù)存儲(chǔ)在“網(wǎng)絡(luò)文件系統(tǒng)nfs之目錄d”下的Myfile. uf03中,其對(duì)應(yīng)的配置文件為Myfile. uf03. conf。 本發(fā)明支持將一個(gè)邏輯文件的數(shù)據(jù)分散存儲(chǔ)在任意物理文件系統(tǒng)甚至網(wǎng)絡(luò)中。
8.按照本發(fā)明提供的建立方法,所述的,邏輯文件支持任意的黑洞文件,即邏輯文件中部分偏移量及長(zhǎng)度所指的數(shù)據(jù)無(wú)需存在。邏輯文件支持由高層應(yīng)用程序?qū)⑵溆梢粋€(gè)不帶黑洞的文件轉(zhuǎn)變?yōu)閹Ш诙吹奈募?,也支持由帶黑洞的文件轉(zhuǎn)變?yōu)椴粠Ш诙吹奈募?br>
在本實(shí)例中,如圖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長(zhǎng)度為IM尚未有任何數(shù)據(jù),因此此邏輯文件Myfile為帶洞的文件,即黑洞文件。
9.按照本發(fā)明提供的建立方法,所述的,對(duì)邏輯文件的寫操作可支持事務(wù)型寫操作。具體方法如下
第9.1、建立一個(gè)新的事務(wù);
第9. 2、根據(jù)寫訪問請(qǐng)求的偏移量和長(zhǎng)度,并根據(jù)寫策略,直接建立新的物理文件以及對(duì)應(yīng)的配置文件,并寫入實(shí)際數(shù)據(jù);
第9. 3、若第9. 2操作失敗,則回滾新事務(wù),寫操作失敗返回;否則執(zhí)行第9. 4 ;
第9. 4、在“邏輯文件數(shù)據(jù)存儲(chǔ)分布表”中查找對(duì)應(yīng)偏移量和長(zhǎng)度的已存在的一個(gè)或多個(gè)物理文件,若不存在相應(yīng)物理文件,則執(zhí)行第9. 6 ;
第9. 5、若物理文件所包含的有效數(shù)據(jù)完全在中原始寫訪問請(qǐng)求的偏移量和長(zhǎng)度范圍內(nèi),則刪除該物理文件及配置文件,并在“邏輯文件數(shù)據(jù)存儲(chǔ)分布表”中刪除對(duì)應(yīng)信息; 若物理文件所包含的有效數(shù)據(jù)部分在寫訪問請(qǐng)求的偏移量和長(zhǎng)度范圍內(nèi),則在“邏輯文件數(shù)據(jù)存儲(chǔ)分布表”中將此物理文件的偏移量和長(zhǎng)度信息中去除原始寫訪問請(qǐng)求的偏移量和長(zhǎng)度范圍;若操作失敗,則回滾新事務(wù),寫操作失敗返回;否則執(zhí)行第9. 6 ;
第9. 6、將新的物理文件以及配置文件中相關(guān)信息添加到內(nèi)存中此邏輯文件的 “邏輯文件數(shù)據(jù)存儲(chǔ)分布表”中;若操作失敗,則回滾新事務(wù),寫操作失敗返回;否則執(zhí)行第 9. 7 ;
第9. 7、新事務(wù)成功提交,寫操作成功返回。在本實(shí)例中,當(dāng)對(duì)邏輯文件Myfile進(jìn)行寫操作,覆蓋偏移量(Γ(2Μ-1)的數(shù)據(jù)時(shí),可以不覆蓋本地文件系統(tǒng)之目錄b下的物理文件Myfile. uf. 01,而是先建立一個(gè)新的物理文件Myfile. uf. 04存儲(chǔ)新的2M數(shù)據(jù)以及對(duì)應(yīng)的配置文件Myfile. uf. 04. conf,具體在哪個(gè)目錄下建立新的物理文件Myfile. uf. 04 和Myfile. uf. 04. conf,根據(jù)圖6 (主配置文件Myfile. uf. conf)、圖4 (邏輯文件全局控制塊)中主物理目錄集合為K本地文件系統(tǒng)目錄a,優(yōu)先級(jí)I),(本地文件系統(tǒng)目錄C,優(yōu)先級(jí)I)},寫策略為“隨機(jī)”,因此每次寫操作創(chuàng)建新的物理文件時(shí)可以隨機(jī)選擇“本地文件系統(tǒng)目錄a”和“本地文件系統(tǒng)目錄c”中的一個(gè)目錄來創(chuàng)建新的物理文件Myfile. uf. 04和 Myfile. uf. 04. conf ;然后在圖4 (邏輯文件全局控制塊)中的邏輯文件數(shù)據(jù)存儲(chǔ)分布表中增加Myfile. uf. 04和Myfile. uf. 04. conf ;并進(jìn)一步查詢偏移量0 (2M_1)的已有數(shù)據(jù)所在的舊的物理文件(即Myfile. uf. 01和Myfile. uf. 01. conf),然后刪除舊的物理文件(即 Myfile. uf. 01和Myfile. uf. 01. conf )以及去除在圖4(邏輯文件全局控制塊)中的邏輯文件數(shù)據(jù)存儲(chǔ)分布表的記錄,完成寫操作。當(dāng)創(chuàng)建和寫新的物理文件Myfile. uf. 04和Myfile. uf. 04. conf失敗時(shí),不會(huì)影響邏輯文件Myf ile已有的完整數(shù)據(jù)(包括偏移量(Γ(2Μ_1)的數(shù)據(jù)),從而保證文件操作的可靠性,有效支持事務(wù)性特征。
10.按照本發(fā)明提供的建立方法,所述的,邏輯文件可支持多個(gè)物理文件的冗余存儲(chǔ),即多個(gè)物理文件包含邏輯文件中相同的數(shù)據(jù),這一特征由寫策略的“冗余寫目錄”來標(biāo)識(shí)。此時(shí)寫操作將向符合條件的多個(gè)物理文件中寫入相同的數(shù)據(jù),而讀操作時(shí)按照多個(gè)物理文件所在物理目錄的優(yōu)先級(jí)來按序讀取。
在本實(shí)例中,接前述第9特征中實(shí)例,當(dāng)寫策略的“冗余寫目錄”時(shí),對(duì)邏輯文件 Myfile進(jìn)行寫操作,覆蓋偏移量(Γ(2Μ-1)的數(shù)據(jù)操作成功完成,即新數(shù)據(jù)寫入到新的物理文件Myfile. uf. 04中,同時(shí)也會(huì)進(jìn)一步向覆蓋偏移量(Γ (2M-1)的舊數(shù)據(jù)所存儲(chǔ)的物理文件Myfile. uf. 01寫入,此時(shí)Myfile. uf. 01和Myfile. uf. 04具有相同的覆蓋偏移量 (Γ(2Μ-1)的最新數(shù)據(jù)。此后,若有對(duì)偏移量(Γ(2Μ-1)中部分或全部的讀操作時(shí),可以并行地從這兩個(gè)物理文件中按優(yōu)先級(jí)讀取(或同時(shí)讀取當(dāng)優(yōu)先級(jí)相同時(shí)),從而提高文件訪問效率。
考慮到在此公開的對(duì)本發(fā)明的描述和特例的實(shí)施例,本發(fā)明的其他實(shí)施例對(duì)于本領(lǐng)域的技術(shù)人員來說是顯而意見的。這些說明和實(shí)施例僅作為例子來考慮,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.多個(gè)物理文件合并為一個(gè)邏輯文件的方法,其特征在于,所述方法包括 第I、當(dāng)創(chuàng)建邏輯文件時(shí),需在物理文件系統(tǒng)上建立邏輯文件以及“邏輯文件的主配置文件”,簡(jiǎn)稱“主配置文件”;邏輯文件中指明邏輯文件類型和主配置文件信息;一個(gè)邏輯文件對(duì)應(yīng)有一個(gè)“邏輯文件的主配置文件”,邏輯文件的主配置文件中記錄邏輯文件的全局信息以及邏輯文件對(duì)應(yīng)的多個(gè)物理文件在物理文件系統(tǒng)中具體目錄信息; 第2、當(dāng)打開邏輯文件時(shí),獲知邏輯文件中存儲(chǔ)的主配置文件信息,然后讀取主配置文件,以及進(jìn)一步讀取在主配置文件中列出的所有物理文件目錄中所有物理文件的配置文件,簡(jiǎn)稱“配置文件”;進(jìn)一步在內(nèi)存中建立“邏輯文件全局控制塊”,“邏輯文件全局控制塊”中包含一個(gè)“邏輯文件數(shù)據(jù)存儲(chǔ)分布表”,“邏輯文件數(shù)據(jù)存儲(chǔ)分布表”中記錄邏輯文件的大小以及各離散數(shù)據(jù)段所對(duì)應(yīng)的物理文件; 第3、當(dāng)對(duì)邏輯文件寫數(shù)據(jù)時(shí),根據(jù)寫訪問請(qǐng)求的偏移量和長(zhǎng)度,在內(nèi)存中此邏輯文件的“邏輯文件數(shù)據(jù)存儲(chǔ)分布表”中查找對(duì)應(yīng)的一個(gè)或者多個(gè)物理文件實(shí)際偏移量和長(zhǎng)度;第3. I、若找到對(duì)應(yīng)的一個(gè)或多個(gè)物理文件實(shí)際偏移量和長(zhǎng)度,則將相應(yīng)長(zhǎng)度的數(shù)據(jù)依次寫入一個(gè)或多個(gè)物理文件相應(yīng)的偏移量所標(biāo)明位置。若上述操作成功,寫操作成功返回;否則寫操作失敗返回; 第3. 2、若未找到對(duì)應(yīng)的一個(gè)或多個(gè)物理文件實(shí)際偏移量和長(zhǎng)度,則根據(jù)內(nèi)存中此邏輯文件的“邏輯文件全局控制塊”中給定的寫目錄集合和寫策略,選擇其中的物理文件系統(tǒng)目錄,在此目錄中建立一個(gè)新的物理文件以及新物理文件對(duì)應(yīng)的配置文件,將待寫入的數(shù)據(jù)寫入新的物理文件中,并更新此物理文件對(duì)應(yīng)的配置文件信息;若上述操作成功,則進(jìn)一步更新內(nèi)存中此邏輯文件的“邏輯文件全局控制塊”信息,寫操作成功返回;否則寫操作失敗返回; 第3. 3、若寫操作的部分?jǐn)?shù)據(jù)找到對(duì)應(yīng)的一個(gè)或多個(gè)物理文件實(shí)際偏移量和長(zhǎng)度,寫操作的另外一部分?jǐn)?shù)據(jù)未找到對(duì)應(yīng)的一個(gè)或多個(gè)物理文件實(shí)際偏移量和長(zhǎng)度,則將此寫操作分成若干個(gè)子的寫操作;對(duì)于找到對(duì)應(yīng)的一個(gè)或多個(gè)物理文件實(shí)際偏移量和長(zhǎng)度的寫操作數(shù)據(jù),調(diào)用第3. I過程;對(duì)于未找到對(duì)應(yīng)的一個(gè)或多個(gè)物理文件實(shí)際偏移量和長(zhǎng)度的寫操作數(shù)據(jù),調(diào)用第3. 2過程;若所有子的寫操作都成功,則寫操作成功返回;否則寫操作失敗返回; 第4、當(dāng)讀取邏輯文件時(shí);根據(jù)讀訪問請(qǐng)求的偏移量和長(zhǎng)度,在內(nèi)存中此邏輯文件的“邏輯文件數(shù)據(jù)存儲(chǔ)分布表”中查找對(duì)應(yīng)的一個(gè)或多個(gè)物理文件實(shí)際偏移量和長(zhǎng)度,若未查找到,則返回讀失??;若查找到對(duì)應(yīng)的一個(gè)或多個(gè)物理文件實(shí)際偏移量和長(zhǎng)度,進(jìn)一步讀取“物理文件目錄表”中對(duì)應(yīng)的物理文件目錄的“優(yōu)先級(jí)”信息,然后按優(yōu)先級(jí)依次讀取一個(gè)或多個(gè)物理文件相應(yīng)的偏移量和長(zhǎng)度所標(biāo)明的數(shù)據(jù),并成功返回; 第5、關(guān)閉邏輯文件時(shí),將內(nèi)存中此邏輯文件的“邏輯文件全局控制塊”信息更新到邏輯文件的主配置文件以及邏輯文件對(duì)應(yīng)的多個(gè)物理文件的配置文件中; 第6、當(dāng)刪除邏輯文件時(shí);需先讀取邏輯文件,獲知主配置文件信息,然后讀取主配置文件,以及進(jìn)一步讀取在主配置文件中列出的所有物理文件目錄中所有物理文件的配置文件。根據(jù)這些信息在物理文件系統(tǒng)中依次刪除關(guān)物理文件及物理文件所對(duì)應(yīng)的配置文件,進(jìn)一步刪除“邏輯文件的主配置文件”,最后刪除邏輯文件。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,邏輯文件的主配置文件主要包括如下信息邏輯文件大小、物理文件名前綴、單個(gè)物理文件大小最大值、主物理文件目錄集合、主物理文件目錄集合、物理文件目錄集合、寫策略;其中,物理文件名前綴為邏輯文件所包含的所有物理文件的文件名前綴;單個(gè)物理文件大小最大值限制單個(gè)物理文件最大容量;主物理文件目錄集合為對(duì)邏輯文件可寫操作的物理文件目錄集合;物理文件目錄集合為邏輯文件所包含的所有物理文件所對(duì)應(yīng)的物理文件目錄集合。
3.根據(jù)權(quán)利要求I所述的方法,其特征在于,針對(duì)邏輯文件所包含的所有物理文件,每個(gè)物理文件有一個(gè)對(duì)應(yīng)的配置文件,主要包括如下信息物理文件大小、有效起始位置、邏輯文件偏移量、長(zhǎng)度;其中,“有效起始位置”指邏輯文件在此物理文件中第一個(gè)字節(jié)有效數(shù)據(jù)的位置相對(duì)于物理文件起始的長(zhǎng)度;“邏輯文件偏移量”指輯文件在此物理文件中第一個(gè)字節(jié)有效數(shù)據(jù)相對(duì)于邏輯文件起始的長(zhǎng)度;“長(zhǎng)度”指邏輯文件在此物理文件中第一個(gè)字節(jié)有效數(shù)據(jù)開始連續(xù)有效數(shù)據(jù)的最大長(zhǎng)度。
4.根據(jù)權(quán)利要求1、2所述的方法,其特征在于,邏輯文件的主配置文件中的寫策略指明對(duì)邏輯文件寫操作過程中具體在主物理文件目錄集合中的哪些目錄中可涉及新建物理文件及配置文件,寫策略包括隨機(jī)選擇寫目錄、依次輪換選擇寫目錄、指定寫目錄、冗余寫目錄等,并可進(jìn)一步擴(kuò)充策略。
5.根據(jù)權(quán)利要求I所述的方法,其特征在于,每個(gè)已打開的邏輯文件在內(nèi)存中有一個(gè)唯一對(duì)應(yīng)的“邏輯文件全局控制塊”,“邏輯文件全局控制塊”包括如下信息邏輯文件inode號(hào)、邏輯文件名、邏輯文件大小、物理文件名前綴、單個(gè)物理文件大小最大值、主物理文件目錄表指針、物理文件目錄表指針、數(shù)據(jù)存儲(chǔ)分布表指針、寫策略;其中,邏輯文件inode號(hào)為此邏輯文件的唯一索引號(hào);主物理文件目錄表指針指向“主物理文件目錄表”,表明可寫入的物理文件目錄集合;物理文件目錄表指針指向“物理文件目錄表”,表明所有物理文件目錄集合;數(shù)據(jù)存儲(chǔ)分布表指針指向“邏輯文件數(shù)據(jù)存儲(chǔ)分布表”;“主物理文件目錄表”和“物理文件目錄表”中的每一個(gè)物理文件目錄對(duì)應(yīng)一個(gè)“優(yōu)先級(jí)” “優(yōu)先級(jí)”表明讀操作的優(yōu)先順序,不同的物理文件目錄可以有相同的“優(yōu)先級(jí)”。
6.根據(jù)權(quán)利要求1,5所述的方法,其特征在于,“邏輯文件數(shù)據(jù)存儲(chǔ)分布表”存放當(dāng)前邏輯文件數(shù)據(jù)在多個(gè)物理文件中存儲(chǔ)的實(shí)際情況,“邏輯文件數(shù)據(jù)存儲(chǔ)分布表”包括如下信息物理文件目錄、物理文件名、物理文件大小、有效起始位置、邏輯文件偏移量、長(zhǎng)度;“邏輯文件數(shù)據(jù)存儲(chǔ)分布表”的數(shù)據(jù)與邏輯文件所包含的所有物理文件的配置文件的數(shù)據(jù)一致,含義一致。
7.根據(jù)權(quán)利要求1,3所述的方法,其特征在于,邏輯文件所包含多個(gè)物理文件可以分散存儲(chǔ)到多個(gè)不同的文件系統(tǒng)目錄下,也可以存儲(chǔ)到網(wǎng)絡(luò)上的文件系統(tǒng)和存儲(chǔ)空間中;本發(fā)明支持采用單獨(dú)的計(jì)算裝置對(duì)外提供邏輯文件服務(wù),計(jì)算裝置與各種物理存儲(chǔ)裝置直接線纜連接或者網(wǎng)絡(luò)連接。
8.根據(jù)權(quán)利要求I所述的方法,其特征在于,邏輯文件支持任意的黑洞文件,即邏輯文件中部分偏移量及長(zhǎng)度所指的數(shù)據(jù)無(wú)需存在;邏輯文件支持由高層應(yīng)用程序?qū)⑵溆梢粋€(gè)不帶黑洞的文件轉(zhuǎn)變?yōu)閹Ш诙吹奈募?,也支持由帶黑洞的文件轉(zhuǎn)變?yōu)椴粠Ш诙吹奈募?br>
9.根據(jù)權(quán)利要求I所述的方法,其特征在于,對(duì)邏輯文件的寫操作可支持事務(wù)型寫操作; 具體方法如下第9. I、建立一個(gè)新的事務(wù); 第9. 2、根據(jù)寫訪問請(qǐng)求的偏移量和長(zhǎng)度,并根據(jù)寫策略,直接建立新的物理文件以及對(duì)應(yīng)的配置文件,并寫入實(shí)際數(shù)據(jù); 第9. 3、若第9. 2操作失敗,則回滾新事務(wù),寫操作失敗返回;否則執(zhí)行第9. 4 ; 第9. 4、在“邏輯文件數(shù)據(jù)存儲(chǔ)分布表”中查找對(duì)應(yīng)偏移量和長(zhǎng)度的已存在的一個(gè)或多個(gè)物理文件,若不存在相應(yīng)物理文件,則執(zhí)行第9. 6 ; 第9. 5、若物理文件所包含的有效數(shù)據(jù)完全在中原始寫訪問請(qǐng)求的偏移量和長(zhǎng)度范圍內(nèi),則刪除該物理文件及配置文件,并在“邏輯文件數(shù)據(jù)存儲(chǔ)分布表”中刪除對(duì)應(yīng)信息;若物理文件所包含的有效數(shù)據(jù)部分在寫訪問請(qǐng)求的偏移量和長(zhǎng)度范圍內(nèi),則在“邏輯文件數(shù)據(jù)存儲(chǔ)分布表”中將此物理文件的偏移量和長(zhǎng)度信息中去除原始寫訪問請(qǐng)求的偏移量和長(zhǎng)度范圍;若操作失敗,則回滾新事務(wù),寫操作失敗返回;否則執(zhí)行第9. 6 ; 第9. 6、將新的物理文件以及配置文件中相關(guān)信息添加到內(nèi)存中此邏輯文件的“邏輯文件數(shù)據(jù)存儲(chǔ)分布表”中;若操作失敗,則回滾新事務(wù),寫操作失敗返回;否則執(zhí)行第9. 7 ; 第9. 7、新事務(wù)成功提交,寫操作成功返回。10.根據(jù)權(quán)利要求I所述的方法,其特征在于,邏輯文件可支持多個(gè)物理文件的冗余存儲(chǔ),即多個(gè)物理文件包含邏輯文件中相同的數(shù)據(jù),這一特征由寫策略的冗余寫目錄來標(biāo)識(shí);此時(shí)寫操作將向符合條件的多個(gè)物理文件中寫入相同的數(shù)據(jù),而讀操作時(shí)按照多個(gè)物理文件所在物理目錄的優(yōu)先級(jí)來按序讀取。
全文摘要
本發(fā)明公開了一種將多個(gè)物理文件合并為一個(gè)邏輯文件的方法,屬于計(jì)算機(jī)領(lǐng)域。將多個(gè)存儲(chǔ)設(shè)備上的多個(gè)物理文件合并為一個(gè)邏輯文件的方法包括建立邏輯文件時(shí),在物理文件系統(tǒng)上建立邏輯文件及邏輯文件的主配置文件,并在邏輯文件中指明主配置文件信息;刪除邏輯文件時(shí),在物理文件系統(tǒng)上刪除邏輯文件、主配置文件、相關(guān)物理文件及配置文件;當(dāng)讀寫邏輯文件時(shí),將對(duì)邏輯文件訪問請(qǐng)求的偏移量和長(zhǎng)度轉(zhuǎn)化為對(duì)應(yīng)的物理文件實(shí)際偏移量和長(zhǎng)度,寫操作需要新建立物理文件時(shí),同時(shí)建立相對(duì)應(yīng)的配置文件。本發(fā)明能夠有效地將邏輯文件分散在多個(gè)存儲(chǔ)設(shè)備上多個(gè)文件系統(tǒng)的多個(gè)目錄中從而實(shí)現(xiàn)個(gè)性化存儲(chǔ),并提高邏輯文件的訪問速度。
文檔編號(hào)G06F17/30GK102982151SQ201210493369
公開日2013年3月20日 申請(qǐng)日期2012年11月27日 優(yōu)先權(quán)日2012年11月27日
發(fā)明者李旭東, 史寶旭 申請(qǐng)人:南開大學(xué)