国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      用于創(chuàng)建克隆文件的方法以及采用該方法的文件系統(tǒng)的制作方法

      文檔序號(hào):6484784閱讀:205來源:國知局
      用于創(chuàng)建克隆文件的方法以及采用該方法的文件系統(tǒng)的制作方法
      【專利摘要】在現(xiàn)有技術(shù)的文件克隆創(chuàng)建技術(shù)中,在創(chuàng)建克隆文件時(shí),創(chuàng)建文件和快照的管理表,從而需要相當(dāng)大量的用于創(chuàng)建克隆文件的創(chuàng)建時(shí)間和存儲(chǔ)空間。為了解決現(xiàn)有技術(shù)的這一問題,本發(fā)明提供了一種系統(tǒng),其中如果接收到創(chuàng)建文件的克隆的請(qǐng)求,則創(chuàng)建差異文件,同時(shí)禁止文件的更新,并且將更新數(shù)據(jù)寫入到差異文件中。另外,在創(chuàng)建差異文件之后,在接收到對(duì)差異文件的第一更新請(qǐng)求時(shí),創(chuàng)建管理表。根據(jù)本發(fā)明,可以快速地創(chuàng)建大量的克隆文件。
      【專利說明】用于創(chuàng)建克隆文件的方法以及采用該方法的文件系統(tǒng)
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及具有文件克隆功能的文件系統(tǒng),以及用于增強(qiáng)創(chuàng)建克隆文件的性能的方法。
      【背景技術(shù)】
      [0002]近來,隨著虛擬化技術(shù)的推迸,VM (虛擬機(jī))的使用得到廣泛傳播,其典型的示例是VDI (虛擬桌面基礎(chǔ)架構(gòu))。為了快速地使用VM,常見的是復(fù)制已經(jīng)安裝了 OS (操作系統(tǒng))環(huán)境的虛擬盤文件。
      [0003]然而,由于虛擬盤文件的大小可能是幾個(gè)GB (千兆字節(jié)),所以物理地復(fù)制文件的過程可能需要花費(fèi)大約數(shù)十秒甚至數(shù)十分鐘。因此,能夠虛擬地復(fù)制虛擬盤文件以便削減復(fù)制過程所需的時(shí)間的文件克隆技術(shù)引起了注意(專利文獻(xiàn)I)。
      [0004]引用列表
      [0005]專利文獻(xiàn)
      [0006]PTLl:美國專利號(hào) 7,409,511
      【發(fā)明內(nèi)容】

      [0007]技術(shù)問題
      [0008]專利文獻(xiàn)I公開了ー種創(chuàng)建克隆的技術(shù),其中該克隆是父虛擬卷的可寫副本。根據(jù)專利文獻(xiàn)I公開的技術(shù),創(chuàng)建了父虛擬卷的快照和充當(dāng)克隆的虛擬卷,并且在不同文件(差異文件)中差異地管理快照的修改數(shù)據(jù)。差異文件在創(chuàng)建之后不會(huì)立即具有數(shù)據(jù)塊,但是數(shù)據(jù)塊的管理表被創(chuàng)建。物理塊編號(hào)等被存儲(chǔ)在數(shù)據(jù)庫管理表的字段中,并且其初始值是“O”。當(dāng)訪問其中數(shù)據(jù)塊管理表的字段是“0”的文件時(shí),參考快照。
      [0009]根據(jù)所公開的文件克隆功能,因?yàn)閯?chuàng)建了用于管理文件塊的文件管理表以及將邏輯塊與物理塊相關(guān)聯(lián)的管理表,創(chuàng)建克隆文件的性能具有缺點(diǎn)。換言之,現(xiàn)有技術(shù)的克隆功能具有以下兩個(gè)問題。
      [0010](al)必須按順序創(chuàng)建快照以創(chuàng)建克隆。
      [0011](a2)在克隆的更新發(fā)生之前,創(chuàng)建管理表,但是如果文件大小為大,則文件管理表的容量必須也大,這樣克隆的創(chuàng)建需要較長時(shí)間。
      [0012]因此,在創(chuàng)建幾百到幾千個(gè)克隆文件時(shí),創(chuàng)建克隆文件的性能惡化,并且創(chuàng)建需要非常長的時(shí)間。
      [0013]問題的解決方案
      [0014]由此,本發(fā)明采用了以下兩種方法來實(shí)現(xiàn)克隆文件的高速創(chuàng)建。
      [0015](bl)當(dāng)接收到用于創(chuàng)建文件的克隆的請(qǐng)求時(shí),禁止文件的更新,創(chuàng)建差異文件,并且將更新數(shù)據(jù)寫入到差異文件中。
      [0016](b2)在創(chuàng)建差異文件之后,當(dāng)接收到差異文件的第一更新請(qǐng)求時(shí),創(chuàng)建管理表。
      [0017]實(shí)際上,本發(fā)明提供了一種連接至客戶端終端和存儲(chǔ)系統(tǒng)的文件服務(wù)器,該文件服務(wù)器包括:處理器,以及存儲(chǔ)管理文件的文件系統(tǒng)程序的存儲(chǔ)器;其中在接收到用于創(chuàng)建所述文件的克隆的請(qǐng)求之后,創(chuàng)建第一差異文件,并禁止所述文件的更新;在接收到用于訪問所述克隆的請(qǐng)求時(shí),訪問所述第一差異文件;其中當(dāng)所述訪問是(I)更新請(qǐng)求時(shí):
      [0018](Ia)如果經(jīng)由所述更新請(qǐng)求而指定的所述第一差異文件的文件塊沒有被指派到所述存儲(chǔ)系統(tǒng)的盤塊,則向所述文件塊指派所述存儲(chǔ)系統(tǒng)的盤塊,并且將更新數(shù)據(jù)寫入其中;
      [0019]( Ib)如果所述文件塊被指派到所述存儲(chǔ)系統(tǒng)的盤塊,則將更新數(shù)據(jù)寫入其中;
      [0020]其中當(dāng)所述訪問是(2)讀取請(qǐng)求時(shí):
      [0021](2a)如果經(jīng)由所述讀取請(qǐng)求而指定的所述第一差異文件的所述文件塊中存在數(shù)據(jù),則從其中讀取所述數(shù)據(jù);
      [0022](2b)如果所述文件塊中沒有數(shù)據(jù),并且如果與所述文件相對(duì)應(yīng)的所述文件塊中存在數(shù)據(jù),則從其中讀取所述數(shù)據(jù),以及
      [0023]在所述文件的更新請(qǐng)求發(fā)生時(shí),創(chuàng)建第二差異文件,并且
      [0024]向經(jīng)由所述更新請(qǐng)求而指定的所述第二差異文件的所述文件塊指派所述存儲(chǔ)系統(tǒng)的盤塊,并且將更新數(shù)據(jù)寫入其中。
      [0025]根據(jù)本發(fā)明的另一方面,在接收到所述文件的復(fù)制文件創(chuàng)建請(qǐng)求時(shí),所述文件系統(tǒng)程序?qū)⒌诙町愇募B同所述第一差異文件一起創(chuàng)建,而不考慮所述文件的更新請(qǐng)求是否發(fā)生,并且在接收到對(duì)所述文件的訪問請(qǐng)求時(shí),訪問所述第二差異文件;
      [0026]其中,當(dāng)所述訪問是(I)更新請(qǐng)求時(shí):
      [0027](Ia)如果經(jīng)由所述更新請(qǐng)求而指定的所述第二差異文件的文件塊沒有被指派到所述存儲(chǔ)系統(tǒng)的盤塊,則指派所述存儲(chǔ)系統(tǒng)的盤塊,并且將更新數(shù)據(jù)寫入其中;
      [0028]( Ib)如果所述文件塊被指派到盤塊,則將更新數(shù)據(jù)寫入其中;
      [0029]其中當(dāng)所述訪問是(2)讀取請(qǐng)求時(shí):
      [0030](2a)如果經(jīng)由所述讀取請(qǐng)求而指定的所述第二差異文件的所述文件塊中存在數(shù)據(jù),則從其中讀取所述數(shù)據(jù);以及
      [0031](2b)如果所述文件塊中沒有數(shù)據(jù),并且如果與所述文件相對(duì)應(yīng)的所述文件塊中存在數(shù)據(jù),則從其中讀取所述數(shù)據(jù)。
      [0032]根據(jù)本發(fā)明的又一方面,在創(chuàng)建所述第一差異文件之后,當(dāng)接收到對(duì)所述第一差異文件的第一更新請(qǐng)求吋,所述文件系統(tǒng)程序創(chuàng)建第一數(shù)據(jù)管理表;以及在所述第一數(shù)據(jù)管理表中存儲(chǔ)包括所述更新數(shù)據(jù)的文件數(shù)據(jù)的偏移、所述存儲(chǔ)系統(tǒng)的盤塊的向經(jīng)由所述更新請(qǐng)求指定的所述第一差異文件的所述文件塊指派的開始?jí)K位置以及文件的數(shù)據(jù)塊長度。
      [0033]本發(fā)明的有益效果
      [0034]如所描述的,當(dāng)創(chuàng)建克隆文件時(shí)不需要?jiǎng)?chuàng)建快照,從而可以快速創(chuàng)建克隆文件。另夕卜,因?yàn)樵诳寺∥募母掳l(fā)生之后創(chuàng)建管理表,所以不需要在更新之前分配不必要的容量,可以減少容量消耗。
      【專利附圖】

      【附圖說明】
      [0035]圖1是示出本發(fā)明的結(jié)構(gòu)的示例的框圖。
      [0036]圖2是示出客戶端結(jié)構(gòu)的示例的框圖。[0037]圖3是示出文件服務(wù)器結(jié)構(gòu)的示例的框圖。
      [0038]圖4是示出盤存儲(chǔ)結(jié)構(gòu)的示例的框圖。
      [0039]圖5是示出管理終端結(jié)構(gòu)的示例的框圖。
      [0040]圖6是示出克隆文件的關(guān)系的示例的框圖。
      [0041]圖7是示出文件管理信息的關(guān)系的框圖。
      [0042]圖8示出克隆文件數(shù)據(jù)的關(guān)系。
      [0043]圖9是示出克隆文件的創(chuàng)建的示例的流程圖。
      [0044]圖10是示出用于讀取克隆文件的操作的示例的流程圖。
      [0045]圖11是示出用于經(jīng)由文件系統(tǒng)程序讀取文件的操作的示例的流程圖。
      [0046]圖12是示出用于向克隆文件寫入數(shù)據(jù)的操作的示例的流程圖。
      [0047]圖13是示出用于經(jīng)由文件系統(tǒng)程序向文件寫入數(shù)據(jù)的操作的示例的流程圖。
      [0048]圖14是示出用于改變克隆文件的大小的操作的示例的流程圖。
      [0049]圖15是示出用于經(jīng)由文件系統(tǒng)程序改變克隆文件的大小的操作的示例的流程圖。
      [0050]圖16是示出用于刪除克隆文件的操作的示例的流程圖。
      [0051]圖17是示出用于經(jīng)由文件系統(tǒng)程序刪除克隆文件的操作的示例的流程圖。
      [0052]圖18是示出管理⑶I的示例的視圖。
      [0053]圖19是示出根據(jù)本發(fā)明的實(shí)施方式2的克隆文件的層級(jí)結(jié)構(gòu)的視圖。
      [0054]圖20是示出根據(jù)實(shí)施方式2的用于讀取克隆文件的操作的示例的流程圖。
      [0055]圖21是示出根據(jù)實(shí)施方式2的用于經(jīng)由文件系統(tǒng)程序讀取克隆文件的操作的示例的流程圖。
      [0056]圖22是示出根據(jù)實(shí)施方式2的用于向克隆文件寫入數(shù)據(jù)的操作的示例的流程圖。
      [0057]圖23是示出根據(jù)實(shí)施方式2的用于經(jīng)由文件系統(tǒng)程序向克隆文件寫入數(shù)據(jù)的操作的示例的流程圖。
      [0058]圖24是示出根據(jù)實(shí)施方式3的管理GH的示例的視圖。
      [0059]圖25是示出根據(jù)實(shí)施方式3的用于復(fù)制文件的操作的示例的流程圖。
      【具體實(shí)施方式】
      [0060]現(xiàn)在,將參考附圖來描述本發(fā)明的優(yōu)選實(shí)施方式,但是本發(fā)明的范圍不限于這些實(shí)施方式。
      [0061]〈實(shí)施方式1>
      [0062]現(xiàn)在,將參考圖1到圖18來描述本發(fā)明的第一實(shí)施方式。首先,將參考圖1到圖5來描述本發(fā)明的配置。圖1是示出根據(jù)本發(fā)明的文件共享系統(tǒng)的配置的示例的框圖??蛻舳?001是使用文件共享系統(tǒng)的終端用戶所使用的計(jì)算機(jī)。將隨后描述(參考圖2)客戶端1001的內(nèi)部配置和內(nèi)部過程的操作。
      [0063]網(wǎng)絡(luò)交換機(jī)1002是能夠經(jīng)由LAN (局域網(wǎng))連接客戶端1001、管理終端1005和文件服務(wù)器1003的設(shè)備。然而,根據(jù)本發(fā)明的連接的形式不限于這些,并且LAN可以通過應(yīng)用無線通信裝置等來實(shí)現(xiàn)。文件服務(wù)器1003是使用客戶端1001向終端用戶提供文件共享服務(wù)的計(jì)算機(jī)。隨后將詳細(xì)描述其內(nèi)部配置和內(nèi)部過程。盤存儲(chǔ)1004是用于保留存儲(chǔ)在文件服務(wù)器1003中的文件數(shù)據(jù)的盤系統(tǒng)。
      [0064]文件服務(wù)器1003和盤存儲(chǔ)1004經(jīng)由FC (光纖通道)協(xié)議連接。諸如iSCSI (互聯(lián)網(wǎng)小計(jì)算機(jī)系統(tǒng)接ロ)的其他協(xié)議也可以用于連接文件服務(wù)器1003和盤存儲(chǔ)1004。本發(fā)明不限制文件服務(wù)器1003和盤存儲(chǔ)1004的形式。管理終端1005是系統(tǒng)管理員用于管理根據(jù)本發(fā)明的文件共享系統(tǒng)的計(jì)算機(jī)。將隨后詳細(xì)描述(參考圖5)管理終端1005的內(nèi)部配置和內(nèi)部過程。
      [0065]圖2是示出根據(jù)本發(fā)明的客戶端1001的內(nèi)部配置的示例的框圖??蛻舳?001包括CPU2001、存儲(chǔ)器2002和網(wǎng)絡(luò)接ロ 2005,其可以經(jīng)由內(nèi)部通信路徑相互連接。CPU2001執(zhí)行存儲(chǔ)在存儲(chǔ)器2002中的應(yīng)用程序2003和文件訪問程序2004。應(yīng)用程序2003是由終端用戶使用的程序(諸如電子制表程序)。
      [0066]文件訪問程序2004是使得文件服務(wù)器1003能夠訪問向終端用戶提供的文件共享服務(wù)的程序。當(dāng)應(yīng)用程序2003經(jīng)由LAN訪問文件服務(wù)器1003中的文件時(shí),文件訪問程序2004向文件服務(wù)器1003發(fā)送文件訪問請(qǐng)求。繼而,文件訪問程序2004從文件服務(wù)器1003接收文件訪問數(shù)據(jù),并且將其發(fā)送至應(yīng)用程序2003。
      [0067]圖3是示出根據(jù)本發(fā)明的文件服務(wù)器1003的內(nèi)部配置的示例的框圖。文件服務(wù)器1003包括CPU3001、存儲(chǔ)器3002、網(wǎng)絡(luò)接ロ 3020和存儲(chǔ)接ロ 3021,其經(jīng)由內(nèi)部通信路徑互相連接。CPU3001執(zhí)行存儲(chǔ)在存儲(chǔ)器3002中的文件服務(wù)器程序3003、文件系統(tǒng)程序3004、文件克隆程序3005和文件克隆管理程序3006。以上提到的程序的組可以存儲(chǔ)在盤(未示出)中,并且被任意讀取以便執(zhí)行。
      [0068]存儲(chǔ)器還保留文件元數(shù)據(jù)3008和存儲(chǔ)文件的數(shù)據(jù)塊信息的數(shù)據(jù)管理表3011。如在圖7中進(jìn)ー步詳細(xì)描述的,為各個(gè)文件創(chuàng)建文件元數(shù)據(jù)3008和數(shù)據(jù)管理表3011。另外,文件元數(shù)據(jù)3008和數(shù)據(jù)管理表3011存儲(chǔ)在盤系統(tǒng)1004的盤4005中,以使得其可以在啟動(dòng)文件服務(wù)器1003之后被加載。
      [0069]文件元數(shù)據(jù)3008包括索引節(jié)點(diǎn)3009,該索引節(jié)點(diǎn)3009是具有以下各項(xiàng)的文件管理信息:文件大小和訪問許可標(biāo)記、保留克隆文件的屬性的標(biāo)記3010、存儲(chǔ)文件被剪切為最小(在刪除數(shù)據(jù)之后)大小的數(shù)據(jù)大小的最小大小3012和保持對(duì)克隆源文件的參考的克隆子差異文件的數(shù)目的參考計(jì)數(shù)器3013。
      [0070]根據(jù)本發(fā)明,除了保持文件管理信息之外,索引節(jié)點(diǎn)3009還保持指向克隆源文件6011的源指針3020和指向克隆父差異文件6010的父差異指針3021,這在圖6中進(jìn)ー步詳細(xì)描述。源指針3020和父差異指針3021例如存儲(chǔ)向各個(gè)索引節(jié)點(diǎn)唯一地指派的編號(hào)的索引節(jié)點(diǎn)編號(hào)。然而,只要使用存儲(chǔ)在3020和3021中的信息可標(biāo)識(shí)索引節(jié)點(diǎn),索引節(jié)點(diǎn)編號(hào)就不必是不可缺少的。文件克隆功能使用這些數(shù)據(jù)來實(shí)現(xiàn)克隆功能。隨后將詳細(xì)描述這些數(shù)據(jù)的詳細(xì)使用。另外,上述數(shù)據(jù)和表可以存儲(chǔ)在盤(未示出)中,并且在必要時(shí)任意從中讀取,或者可以被存儲(chǔ)在盤中并且被使用。
      [0071]文件服務(wù)器程序3003從客戶端1001的文件訪問程序2004接收文件訪問請(qǐng)求。文件服務(wù)器程序3003是使用文件系統(tǒng)程序3004來訪問盤存儲(chǔ)1004中存儲(chǔ)的文件的數(shù)據(jù)的程序。此時(shí),如果要訪問的文件是克隆文件,則文件系統(tǒng)程序3004對(duì)克隆文件執(zhí)行過程。文件服務(wù)器1003的過程的內(nèi)容隨后將詳細(xì)描述。
      [0072]圖4是示出根據(jù)本發(fā)明的盤存儲(chǔ)1004的內(nèi)部配置的框圖。盤存儲(chǔ)1004包括CPU4001、存儲(chǔ)器4002、盤控制器4004和存儲(chǔ)接口 4006,其經(jīng)由內(nèi)部通信路徑互相連接。盤控制器4004還與盤4005連接,并且控制盤4005。盤控制器4004具有RAID (便宜盤的冗余陣列)功能,并且通過多個(gè)盤4005的冗余來增強(qiáng)盤單元的容錯(cuò)。
      [0073]CPU4001執(zhí)行存儲(chǔ)在存儲(chǔ)器4002中的存儲(chǔ)管理程序4003。存儲(chǔ)管理程序4003是用于管理盤控制器4004的RAID功能的程序。例如,設(shè)置冗余盤單元的配置。根據(jù)本發(fā)明,盤存儲(chǔ)1004還可以是特定種類的存儲(chǔ)單元或者不具有冗余功能的存儲(chǔ)單元。另外,盤存儲(chǔ)1004可以采用光盤或者磁帶單元。換言之,本發(fā)明不限制存儲(chǔ)文件數(shù)據(jù)的存儲(chǔ)設(shè)備。
      [0074]圖5是示出根據(jù)本發(fā)明的管理終端1005的內(nèi)部配置的一個(gè)示例的框圖。管理終端1005包括CPU5001、存儲(chǔ)器5005和網(wǎng)絡(luò)接口 5004,其經(jīng)由內(nèi)部通信路徑相互連接。CPU5001執(zhí)行存儲(chǔ)在存儲(chǔ)器5005中的管理程序5002和管理接口 5003。
      [0075]管理程序5002是通過管理接口 5003根據(jù)本發(fā)明用于向系統(tǒng)管理員提供用于管理文件共享系統(tǒng)的功能的程序。當(dāng)系統(tǒng)管理員向管理接口 5003錄入管理信息時(shí),管理信息被傳輸?shù)焦芾沓绦?002。管理程序5002基于所接收的管理信息來設(shè)置文件服務(wù)器1003。將隨后進(jìn)行描述管理程序5002和管理接口 5003的過程內(nèi)容的細(xì)節(jié)。
      [0076]接下來,將描述克隆文件的結(jié)構(gòu)。圖6是示出根據(jù)本發(fā)明的克隆文件之間的關(guān)系的視圖。根據(jù)本發(fā)明的文件克隆功能通過將文件劃分為克隆父文件6004和克隆子文件6003來定義克隆文件??寺「肝募?004表示與將被克隆的文件相同的文件??寺「肝募?004包括克隆源文件6011和克隆父差異文件6010??寺「肝募?004充當(dāng)克隆文件的源文件。也即,當(dāng)客戶端1001訪問克隆文件的源文件時(shí),實(shí)際上對(duì)克隆父文件6004執(zhí)行訪問。
      [0077]當(dāng)客戶端1001訪問克隆父文件6004時(shí),文件系統(tǒng)程序3004訪問克隆源文件6011。同時(shí),文件系統(tǒng)程序3004還訪問克隆父差異文件6010。如果客戶端1001將數(shù)據(jù)寫入到克隆父文件6004中(也即,如果將數(shù)據(jù)寫入到克隆源文件6011中),文件系統(tǒng)程序3004將該數(shù)據(jù)寫入到克隆父差異文件中。
      [0078]為了實(shí)現(xiàn)該過程,在打開克隆源文件6011時(shí),文件系統(tǒng)程序3004將克隆父差異文件6010的索引節(jié)點(diǎn)的編號(hào)設(shè)置為克隆源文件6011的索引節(jié)點(diǎn)3009中的父差異指針3021。之后,文件系統(tǒng)程序3004打開克隆父差異文件6010,并且將克隆源文件6011的索引節(jié)點(diǎn)編號(hào)設(shè)置為克隆父差異文件6010的索引節(jié)點(diǎn)3009中的源指針3020。
      [0079]當(dāng)客戶端1001嘗試將數(shù)據(jù)寫入到克隆源文件6011中時(shí)(也即,當(dāng)客戶端嘗試將數(shù)據(jù)寫入到克隆父文件6004中時(shí)),文件系統(tǒng)程序3004從父差異指針3021獲得克隆父差異文件6010,并且將數(shù)據(jù)寫入到克隆父差異文件6010中。隨后將進(jìn)一步詳細(xì)地描述這一過程。
      [0080]如上文所述,根據(jù)專利文獻(xiàn)1,有必要管理快照,快照需要管理和克隆。另一方面,本發(fā)明使得能夠?qū)崿F(xiàn)文件克隆功能,而不向客戶端1001公開克隆父差異文件6010,以使得可以削減管理成本。
      [0081]根據(jù)圖6的示例,克隆父差異文件6010不具有數(shù)據(jù)管理表3011。換言之,克隆父差異文件6010不具有數(shù)據(jù)6001。也即,在創(chuàng)建克隆子文件6003之后,客戶端1001沒有將數(shù)據(jù)寫入到克隆父文件6004中。如上文所述,在創(chuàng)建克隆文件時(shí),克隆父差異文件6010既沒有數(shù)據(jù)也沒有數(shù)據(jù)管理表3011。因此,可以快速地創(chuàng)建克隆父差異文件。
      [0082]另一方面,克隆子文件6003包括克隆源文件6011和克隆子差異文件6012??寺∽游募?003充當(dāng)克隆源文件6011的復(fù)制文件。當(dāng)客戶端1001訪問克隆子文件6003時(shí),文件系統(tǒng)程序3004訪問克隆子差異文件6012。此時(shí),文件系統(tǒng)程序3004還訪問克隆源文件 6011。
      [0083]當(dāng)客戶端1001將數(shù)據(jù)寫入到克隆子文件6003中時(shí),文件系統(tǒng)程序3004將數(shù)據(jù)寫入到克隆子差異文件6012中。為了實(shí)現(xiàn)該過程,在打開克隆子差異文件6012時(shí),文件系統(tǒng)程序3004將克隆源文件6011的索引節(jié)點(diǎn)的編號(hào)設(shè)置為克隆子差異文件6012的索引節(jié)點(diǎn)3009中的源指針3020。
      [0084]當(dāng)客戶端1001嘗試將數(shù)據(jù)寫入到克隆子差異文件6012中時(shí)(也即,當(dāng)客戶端嘗試將數(shù)據(jù)寫入到克隆子文件6003中吋),文件系統(tǒng)程序3004根據(jù)源指針3020找到克隆源文件6011。繼而,文件系統(tǒng)程序3004寫入克隆源文件6011的合并數(shù)據(jù),并且將數(shù)據(jù)寫入到克隆子差異文件6012中。這些過程隨后將詳細(xì)描述。
      [0085]根據(jù)圖6的示例,當(dāng)客戶端1001將數(shù)據(jù)寫入到克隆子文件6003中時(shí),在文件元數(shù)據(jù)6012中創(chuàng)建數(shù)據(jù)管理表3011。數(shù)據(jù)管理表3011指定盤4005中的克隆子差異文件的數(shù)據(jù)塊6002。另外,克隆源文件6011的文件元數(shù)據(jù)中的數(shù)據(jù)管理表3011指定克隆源文件6011的數(shù)據(jù)塊6001。為了示出克隆父文件6004的文件的關(guān)系,克隆源文件6011的索引節(jié)點(diǎn)3009的父差異指針3021指向克隆父差異文件6010的索引節(jié)點(diǎn)3009。
      [0086]類似地,克隆父差異文件6010的索引節(jié)點(diǎn)3009的源指針3020還指定克隆源文件6011的索引節(jié)點(diǎn)3009。另ー方面,為了示出克隆子文件6003的文件的關(guān)系,克隆子差異文件6012的索引節(jié)點(diǎn)3009的源指針指向克隆源文件6011的索引節(jié)點(diǎn)。另外,克隆父差異文件6010的索引節(jié)點(diǎn)3009指示克隆源文件6011的索引節(jié)點(diǎn)3009。另ー方面,為了示出克隆子文件6003的文件的關(guān)系,克隆子差異文件6012的索引節(jié)點(diǎn)3009指定克隆源文件6011的索引節(jié)點(diǎn)。
      [0087]各個(gè)文件6010、6011和6012的標(biāo)記3010保留重新發(fā)送文件的屬性的標(biāo)記。所設(shè)置的標(biāo)記是GI (黃金映像)標(biāo)記和CLONE標(biāo)記。在創(chuàng)建克隆子文件吋,文件克隆程序3005將GI標(biāo)記設(shè)置為指示該文件是克隆源文件的克隆源文件6011的標(biāo)記3010。
      [0088]另外,程序?qū)LONE標(biāo)記設(shè)置為克隆子差異文件6012的標(biāo)記3010以及克隆父差異文件6010的標(biāo)記3010,其指示文件是克隆差異文件。這些標(biāo)記用于指定由文件系統(tǒng)程序3004的處理目標(biāo)文件。在圖6的示例的情況下,數(shù)據(jù)存在于克隆子差異文件中。然而,如果在創(chuàng)建克隆子差異文件之后,沒有將數(shù)據(jù)寫入到克隆子文件中去,則既不存在數(shù)據(jù)也不存在數(shù)據(jù)管理表3011。因此,可以快速地創(chuàng)建克隆子差異文件。
      [0089]如上所述,形成了克隆文件之間的關(guān)系。隨后將詳細(xì)描述各個(gè)文件的操作。另外圖6示出了創(chuàng)建ー個(gè)克隆子文件6003的示例。根據(jù)本發(fā)明,克隆子文件6003的數(shù)目不受限制,所以可以創(chuàng)建不止ー個(gè)克隆子文件。在以下描述中,創(chuàng)建的克隆子文件6003的數(shù)目是1,類似于圖6的示例。
      [0090]圖1示出了存儲(chǔ)在盤4005中的文件7001、文件元數(shù)據(jù)3008、數(shù)據(jù)管理表3011和文件數(shù)據(jù)7020的關(guān)系。文件7001包括文件元數(shù)據(jù)3008和數(shù)據(jù)管理表3011。經(jīng)由邏輯文件塊7030為單位來管理文件7001的大小。例如,從文件的開始的前4個(gè)千字節(jié)(KB)作為塊I來管理,并且隨后的4個(gè)千字節(jié)(KB)作為塊2來管理。另外,與盤塊7010不同,也向邏輯文件塊7030中的孔指派文件塊編號(hào)。
      [0091]將盤4005劃分為特定大小的盤塊并且進(jìn)行管理。在圖7所示的示例中,將盤劃分為文件7001的4KB單元盤塊7010。數(shù)據(jù)管理表3011是用于管理文件7001中的文件數(shù)據(jù)7020的表。數(shù)據(jù)管理表3011的各個(gè)記錄包括文件偏移7002、開始?jí)K位置7003和塊長度7004的字段。文件偏移7002表示從文件數(shù)據(jù)7020的開始的偏移。開始?jí)K位置7003存儲(chǔ)了存儲(chǔ)文件數(shù)據(jù)7020的盤塊6001的引導(dǎo)塊編號(hào)。塊長度7004存儲(chǔ)了文件數(shù)據(jù)7020的塊7010的塊的長度。
      [0092]例如,如果文件偏移7002是“O ”,開始?jí)K位置7003是“ I ”,并且塊長度7004是“ 5 ”,則意味著文件7001的從第O字節(jié)開始到20KB (=4KB/塊X 5個(gè)塊)的數(shù)據(jù)被存儲(chǔ)在從盤4005的塊編號(hào)I到塊編號(hào)5中。類似地,如果文件偏移7002是“65536”,開始?jí)K位置7003是“7”,并且塊長度7004是“6”,則意味著從第65536字節(jié)(64KB)到24KB (=4KB/塊X6個(gè)塊)的數(shù)據(jù)被存儲(chǔ)在從塊編號(hào)7到塊編號(hào)12的6個(gè)塊中。
      [0093]在圖7的情況下,文件7001的數(shù)據(jù)包括文件的數(shù)據(jù)區(qū)域7021和孔7022,如文件數(shù)據(jù)7020中所示??资菦]有指派盤中的塊7010的數(shù)據(jù)區(qū)域。當(dāng)客戶端1001讀取文件7001的孔7022的部分時(shí),文件系統(tǒng)程序3004向客戶端1001返回“0”,因?yàn)椴淮嬖谙鄬?duì)應(yīng)的塊7010。
      [0094]當(dāng)在盤中存儲(chǔ)數(shù)據(jù)時(shí),創(chuàng)建數(shù)據(jù)管理表3011。類似地,當(dāng)添加新塊時(shí),并且僅當(dāng)塊不連續(xù)時(shí),向數(shù)據(jù)管理表3011添加記錄。在圖7的情況下,在將附加數(shù)據(jù)寫入到文件中并且塊13被新近使用時(shí),第二記錄的塊長度7004的值從“6”增加到“7”。
      [0095]另一方面,如果要新近使用塊14,有可能添加新記錄(第三記錄)。如上所述,通過在必要的情況下向數(shù)據(jù)管理表3011添加新記錄,可以減少創(chuàng)建文件時(shí)必須同時(shí)創(chuàng)建的管理數(shù)據(jù),并且可以快速地創(chuàng)建文件。
      [0096]圖8是示出克隆子文件6003或者克隆父文件6004中的數(shù)據(jù)的關(guān)聯(lián)的示圖。通過疊加克隆子差異文件6012和克隆源文件6011來構(gòu)造克隆子文件6003??寺∽硬町愇募?012的孔處于這樣的狀態(tài),其中在已經(jīng)創(chuàng)建了克隆子文件6003之后,沒有將數(shù)據(jù)寫入其中(換目之,不存在差異信息)。
      [0097]在圖8中,向克隆子差異文件6012指派塊編號(hào)10,并且向文件塊I中的克隆源文件6011指派塊編號(hào)I。現(xiàn)在,當(dāng)客戶端1001讀取克隆子文件6003的文件塊I時(shí)(8003),文件系統(tǒng)程序3004讀取克隆子差異文件6012的塊編號(hào)10中的數(shù)據(jù)。
      [0098]另外,克隆子差異文件6012的文件塊3與孔7022相對(duì)應(yīng)。然而,塊3被指派到克隆源文件6011?,F(xiàn)在,當(dāng)客戶端1001讀取克隆子文件6003的文件塊3時(shí)(8004),文件系統(tǒng)程序3004讀取克隆源文件6011的塊編號(hào)3中的數(shù)據(jù)。
      [0099]當(dāng)客戶端1001將數(shù)據(jù)寫入到克隆子文件6003中時(shí),數(shù)據(jù)被寫入到克隆子差異文件6012中。在寫入數(shù)據(jù)時(shí)(8001),客戶端1001將數(shù)據(jù)寫入到克隆子文件6003的文件塊5中。在這種情況下,塊被指派到克隆子差異文件6012,并且從客戶端1001傳輸?shù)臄?shù)據(jù)被寫入到其中。
      [0100]當(dāng)客戶端1001將數(shù)據(jù)寫入到文件塊6中時(shí)(8002),數(shù)據(jù)被寫入到盤區(qū)域中,因?yàn)閴K編號(hào)15被指派到克隆子差異文件6012。
      [0101]如上所述,當(dāng)客戶端1001訪問克隆子文件6003時(shí),文件系統(tǒng)程序3004檢查克隆子差異文件6012中是否存在塊,并且在塊存在時(shí),處理塊中的數(shù)據(jù)。
      [0102]另一方面,如果克隆子差異文件6012中沒有塊,則文件系統(tǒng)程序3004檢查克隆源文件6011的塊。如果克隆源文件6011中存在塊,則文件系統(tǒng)程序3004處理塊中的數(shù)據(jù),并且如果不存在塊,則將數(shù)據(jù)設(shè)置為“O”。另外,針對(duì)克隆父文件6004執(zhí)行相同的過程。
      [0103]圖9是示出用于創(chuàng)建克隆文件的操作的示例的流程圖。使用客戶端1001的終端用戶或者文件服務(wù)器1003的管理員使用管理終端1005的管理程序5002來創(chuàng)建克隆文件(步驟9001)。管理程序5002通過管理接ロ 5003向文件服務(wù)器1003中的文件克隆管理程序3006請(qǐng)求克隆文件的創(chuàng)建(步驟9002)。
      [0104]文件克隆管理程序3006接收克隆文件創(chuàng)建請(qǐng)求(步驟9003),并且向文件克隆程序3005請(qǐng)求克隆子文件的創(chuàng)建(步驟9004)。
      [0105]當(dāng)文件克隆程序3005接收到用于創(chuàng)建克隆子文件的請(qǐng)求時(shí),該程序凍結(jié)變成克隆源文件6011的文件。因此,文件克隆程序3004將GI標(biāo)記設(shè)置為該文件的標(biāo)記3010(步驟9010)。在設(shè)置了 GI標(biāo)記時(shí),文件系統(tǒng)程序3004禁止被凍結(jié)的文件的任何更新過程(諸如寫入過程)。在完成了步驟9010時(shí),所述文件變成克隆源文件6011。
      [0106]接下來,文件克隆程序3005創(chuàng)建克隆子差異文件6012和克隆父差異文件6010(步驟9006)。繼而,文件克隆程序3005將克隆源文件6011的索引節(jié)點(diǎn)編號(hào)設(shè)置為克隆子差異文件6012的索引節(jié)點(diǎn)3009的源指針3020 (步驟9007)。
      [0107]根據(jù)該過程,映射了克隆子差異文件6012的索引節(jié)點(diǎn)3009和克隆源文件6011的索引節(jié)點(diǎn)3009。另外,文件克隆程序3005將CLONE標(biāo)記設(shè)置為克隆子差異文件6012的標(biāo)記 3010。
      [0108]如上所述,可以通過將GI標(biāo)記設(shè)置為變成克隆源文件6011的文件的標(biāo)記3010而將文件凍結(jié)。文件系統(tǒng)程序3004通過確認(rèn)GI標(biāo)記來識(shí)別相關(guān)文件是克隆源文件6011,并且禁止對(duì)其進(jìn)行更新。
      [0109]另外,在步驟9007中,文件克隆程序3005將CLONE標(biāo)記設(shè)置為克隆父差異文件6010的標(biāo)記3010。繼而,文件克隆程序3005將CLONE標(biāo)記設(shè)置為克隆父差異文件6010的標(biāo)記3010。繼而,文件克隆程序3005將克隆源文件6011的索引節(jié)點(diǎn)編號(hào)設(shè)置為克隆父差異文件6010的索引節(jié)點(diǎn)3009的源指針3020。
      [0110]繼而,文件克隆程序3005將克隆父差異文件6010的索引節(jié)點(diǎn)編號(hào)設(shè)置為克隆源文件6011的索引節(jié)點(diǎn)3009的父差異指針3021。類似地,文件克隆程序3005增加克隆源文件6011的參考計(jì)數(shù)器3013。
      [0111]最后,文件克隆程序3005經(jīng)由管理接ロ 5003向管理程序5002通知克隆文件的創(chuàng)建的結(jié)果(步驟9008)。作為結(jié)果,構(gòu)造了參考圖6描述的克隆文件的數(shù)據(jù)的關(guān)系。另外,在創(chuàng)建克隆文件時(shí),有可能向文件克隆程序3005錄入同時(shí)創(chuàng)建的克隆文件的數(shù)目。在這種情況下,文件克隆程序3005將步驟9006執(zhí)行指定次數(shù)。
      [0112]在本實(shí)施方式中假設(shè)的VDI環(huán)境中,首先,創(chuàng)建虛擬盤文件作為克隆源文件6011,并且向創(chuàng)建的虛擬盤文件安裝VM的OS映像。此后,相關(guān)于虛擬盤文件來創(chuàng)建克隆子文件6003。
      [0113]在VDI環(huán)境中(在使用VDI技術(shù)的情況下),針對(duì)使用客戶端1001的每個(gè)終端用戶分別創(chuàng)建克隆子文件6003。也即,如果存在1000個(gè)用戶,則創(chuàng)建虛擬盤文件的1000個(gè)克隆子文件6003。終端用戶使用虛擬盤文件的克隆子文件6003作為源,來啟動(dòng)VM。
      [0114]另ー方面,在創(chuàng)建VM之后,因?yàn)槭褂每寺≡次募?011作為源將不會(huì)啟動(dòng)VM,將不會(huì)更新克隆源文件6011。因此,考慮到VDI環(huán)境,還有可能采用文件克隆程序3005在圖9的步驟9006中不創(chuàng)建克隆父差異文件6010的方法。
      [0115]換言之,因?yàn)椴恍枰募寺〕绦?005來創(chuàng)建克隆父差異文件6010,創(chuàng)建克隆文件的性能可以增強(qiáng)。如果不創(chuàng)建克隆父差異文件6010,則在創(chuàng)建克隆文件之后,將禁止克隆源文件6011的更新。
      [0116]另一方面,在參考圖12和圖13所述的將數(shù)據(jù)寫入到克隆父文件6004時(shí),文件克隆程序3005可以創(chuàng)建克隆父差異文件6010,而不在步驟9006中創(chuàng)建克隆父差異文件6010。根據(jù)此方法,在創(chuàng)建克隆子文件6003時(shí),不創(chuàng)建克隆父差異文件6010,以使得預(yù)期創(chuàng)建克隆文件的性能得到增強(qiáng)。另外,可以向克隆源文件6011寫入數(shù)據(jù)。
      [0117]根據(jù)現(xiàn)有技術(shù),相關(guān)于所獲取的快照來創(chuàng)建克隆文件??煺帐窃谔囟〞r(shí)間點(diǎn)取得的文件系統(tǒng)映像。因此,在獲得快照時(shí),文件系統(tǒng)程序必須保存文件系統(tǒng)的管理信息。作為結(jié)果,需要花費(fèi)時(shí)間來創(chuàng)建克隆文件。然而,因?yàn)楦鶕?jù)本發(fā)明,在創(chuàng)建克隆文件時(shí)不需要獲得快照,所以預(yù)期創(chuàng)建克隆文件的性能得到增強(qiáng)。
      [0118]類似地,在現(xiàn)有技術(shù)示例中,在執(zhí)行與克隆子差異文件6012的創(chuàng)建相對(duì)應(yīng)的過程時(shí),創(chuàng)建于克隆子差異文件6012的數(shù)據(jù)管理表3011相對(duì)應(yīng)的整個(gè)表,并且初始化該整個(gè)表。因此,由于可以按照幾十千兆字節(jié)的大小來創(chuàng)建被指派到VDI環(huán)境中的VM的虛擬盤文件,所以初始化過程花費(fèi)較長時(shí)間,并且克隆過程被延遲。根據(jù)本發(fā)明,不需要初始化數(shù)據(jù)管理表3011,從而使得在不消耗過度盤容量的情況下可以高速執(zhí)行克隆文件創(chuàng)建過程。
      [0119]圖10是示出克隆文件的讀取操作的流程圖。在讀取克隆子文件6003或者克隆父文件6004時(shí),客戶端1001的應(yīng)用程序2003向文件訪問程序2004發(fā)送用于讀取文件的請(qǐng)求。繼而,文件訪問程序2004向文件服務(wù)器1003的文件服務(wù)器程序3003發(fā)送文件讀取請(qǐng)求(步驟10001)。
      [0120]在文件服務(wù)器程序3003接收到文件讀取訪問請(qǐng)求之后,文件服務(wù)器程序3003向文件系統(tǒng)程序3004發(fā)送文件讀取訪問請(qǐng)求(步驟10002)。已經(jīng)接收到文件讀取訪問請(qǐng)求的文件系統(tǒng)程序3004經(jīng)由標(biāo)記3010來確定讀取目標(biāo)文件是否是克隆源文件6011 (步驟10003)。
      [0121]如果讀取目標(biāo)文件是克隆源文件6011 (步驟10003:是),則文件系統(tǒng)程序3004使用存儲(chǔ)在克隆源文件6011的索引節(jié)點(diǎn)3009的差異指針3021中的克隆父差異文件6010的索引節(jié)點(diǎn)的編號(hào),來獲取克隆父差異文件6010的文件元數(shù)據(jù)3008 (步驟10004)。
      [0122]根據(jù)克隆父差異文件6010的文件元數(shù)據(jù)3008的狀態(tài)來執(zhí)行后續(xù)步驟11000的文件塊讀取過程。步驟11000的過程對(duì)于克隆子差異文件6012和克隆父差異文件6010 二者是相同的。另一方面,如果讀取目標(biāo)文件不是克隆源文件6011 (步驟10003:否),則文件系統(tǒng)程序3004執(zhí)行步驟11000。在步驟11000的過程中,文件系統(tǒng)程序3004實(shí)際上讀取文件塊。隨后將進(jìn)一步詳細(xì)地描述本過程。
      [0123]最后,文件系統(tǒng)程序3004向文件服務(wù)器程序3003返回讀取文件的結(jié)果,并且文件服務(wù)器程序3003向文件訪問程序2004發(fā)送該結(jié)果。繼而,文件訪問程序2004將結(jié)果通知到應(yīng)用程序2003(步驟10005)。經(jīng)由上述過程執(zhí)行應(yīng)用程序2003所請(qǐng)求的文件讀取過程。
      [0124]圖11是示出用于根據(jù)文件系統(tǒng)程序3004來讀取文件的操作的流程圖。文件系統(tǒng)程序3004確認(rèn)GI標(biāo)記或者CLONE標(biāo)記是否被設(shè)置為:圖10的步驟10004中獲取的克隆父差異文件6010的文件元數(shù)據(jù)3008的標(biāo)記3010、或者克隆子差異文件6012的文件元數(shù)據(jù)3008 的標(biāo)記 3010 (步驟 11002,步驟 11003)。
      [0125]如果沒有設(shè)置標(biāo)記(步驟11003:否),因?yàn)樵撐募c文件克隆功能不相關(guān),則將文件作為常規(guī)文件進(jìn)行處理(步驟11004)。另ー方面,如果設(shè)置了標(biāo)記中的任何ー個(gè)(步驟11003:是),則文件系統(tǒng)程序3004將該文件作為克隆文件來處理。
      [0126]現(xiàn)在,將基于克隆子差異文件來描述操作。將以類似的方式來處理克隆父差異文件。文件系統(tǒng)程序3004確定讀取文件位置中是否存在克隆子差異文件6012的數(shù)據(jù)(步驟11005,步驟11006)。將使用參考圖7描述的管理信息。
      [0127]例如,如果客戶端1001請(qǐng)求讀取從4KB開始的數(shù)據(jù)的10個(gè)字節(jié),因?yàn)槲募?001
      具有盤塊,則文件系統(tǒng)程序3004確定數(shù)據(jù)存在。
      [0128]另ー方面,如果客戶端1001請(qǐng)求讀取從20KB開始的數(shù)據(jù)的4個(gè)千字節(jié),則因?yàn)樵谖募?001的該區(qū)段存在孔7022,文件沒有盤塊。因此,文件系統(tǒng)程序3004確定“沒有數(shù)據(jù)”。
      [0129]如果在步驟11006中文件系統(tǒng)程序3004確定數(shù)據(jù)存在,則文件系統(tǒng)程序3004從克隆子差異文件6012讀取數(shù)據(jù),并且發(fā)送此數(shù)據(jù)以完成圖11的過程。
      [0130]另ー方面,如果在步驟11006中,文件系統(tǒng)程序3004確定沒有數(shù)據(jù),則文件系統(tǒng)程序3004將最小大小3012和讀取位置進(jìn)行比較(步驟11012)。如果讀取位置在最小大小3012的數(shù)據(jù)的最后位置之后(步驟11012:是),則文件系統(tǒng)程序3004返回“0”(步驟11010)。
      [0131]在經(jīng)由克隆源文件6011而已經(jīng)被削減(在刪除數(shù)據(jù)之后)的克隆子差異文件6012的大小被客戶端1001拉長時(shí),該過程是有效的。在執(zhí)行該過程時(shí),與其中已經(jīng)被削減了數(shù)據(jù)的區(qū)段相對(duì)應(yīng)的克隆子差異文件6012的數(shù)據(jù)變?yōu)榭?。在客戶?001請(qǐng)求讀取與孔相對(duì)應(yīng)的區(qū)段吋,文件系統(tǒng)程序3004必須返回“O”。
      [0132]然而,文件系統(tǒng)程序3004無法僅基于孔來判斷克隆子差異文件6012是否沒有數(shù)據(jù)(克隆子文件6003沒有被更新)或者是否已經(jīng)被削減。因此,存儲(chǔ)了已經(jīng)被削減了的最小大小3012的最小大小。文件系統(tǒng)程序3004可以通過將最小大小3012的數(shù)據(jù)的最后位置與讀取位置進(jìn)行比較,來確定是否返回“0”或者是否返回克隆源文件6011的數(shù)據(jù)。
      [0133]另ー方面,如果步驟11012中的確定結(jié)果是“否”,則文件系統(tǒng)程序3004基于克隆源文件3011的數(shù)據(jù)管理表6011來檢查克隆源文件6011是否具有數(shù)據(jù)塊(步驟11008、步驟11009)。如果克隆源文件6011沒有數(shù)據(jù)塊(步驟11009:否),則該過程前進(jìn)到步驟1010,其中文件系統(tǒng)程序3004返回“0”,并且結(jié)束該過程。
      [0134]另ー方面,如果步驟11009中的確定結(jié)果是“是”,則文件系統(tǒng)程序返回克隆源文件6011的數(shù)據(jù)并且結(jié)束該過程。根據(jù)該過程,客戶端1001可以讀取克隆子文件6003或者克隆父文件6004。
      [0135]基于文件讀取操作子例程11000的步驟11012,即使在克隆子文件的大小與克隆源文件的大小不同時(shí),也可以正確地讀取數(shù)據(jù)。如果文件系統(tǒng)程序3004不執(zhí)行步驟11012,則無法確定是否從開始就沒有數(shù)據(jù),或者是否已經(jīng)通過刪除盤塊而將克隆子差異文件6012的數(shù)據(jù)改變?yōu)椤癘”。
      [0136]圖12是示出將數(shù)據(jù)寫入到克隆文件中的操作的流程圖。當(dāng)客戶端1001的應(yīng)用程序2003將數(shù)據(jù)寫入到克隆子文件6003或者克隆父文件6004中時(shí),用于將數(shù)據(jù)寫入到文件中的請(qǐng)求被發(fā)送給文件訪問程序2004。文件訪問程序2004向文件服務(wù)器1003的文件服務(wù)器程序3003發(fā)送文件寫入訪問請(qǐng)求(步驟1201)。
      [0137]在接收到文件寫入訪問請(qǐng)求之后,文件服務(wù)器程序3003請(qǐng)求文件系統(tǒng)程序3004執(zhí)行文件寫入過程(步驟1202)。
      [0138]已經(jīng)接收到文件寫入訪問請(qǐng)求的文件系統(tǒng)程序3004基于標(biāo)記3010來確定數(shù)據(jù)寫入目標(biāo)文件是否是克隆源文件6011 (步驟1203)。如果數(shù)據(jù)寫入目標(biāo)文件是克隆源文件6011 (步驟1203:是),則文件系統(tǒng)程序3004基于存儲(chǔ)在克隆源文件6011的索引節(jié)點(diǎn)3009的父差異指針3021中的克隆父差異文件6010的索引節(jié)點(diǎn)編號(hào)來獲取克隆父差異文件6010的文件元數(shù)據(jù)3008 (步驟1204)。
      [0139]如果克隆父差異文件6010在對(duì)克隆父文件6004發(fā)生寫入訪問時(shí)被創(chuàng)建,則在文件系統(tǒng)程序3004執(zhí)行步驟1204時(shí),向文件克隆程序請(qǐng)求步驟9006的執(zhí)行。
      [0140]在以下步驟13000中,基于克隆父差異文件6010的文件元數(shù)據(jù)3008來執(zhí)行操作。步驟13000的過程對(duì)于克隆子差異文件6012和克隆父差異文件6010 二者是相同的。另一方面,如果步驟1203是“否”,則文件系統(tǒng)程序3004將不執(zhí)行任何過程,并且過程前進(jìn)到后續(xù)步驟13000。文件系統(tǒng)程序3004實(shí)際上在步驟13000中將數(shù)據(jù)寫入到文件塊中。隨后將詳細(xì)描述本過程。
      [0141]最后,文件系統(tǒng)程序3004向文件服務(wù)器程序3003返回文件寫入結(jié)果,并且文件服務(wù)器程序3003向文件訪問程序2004發(fā)送該結(jié)果。之后,文件訪問程序2004向應(yīng)用程序2003發(fā)送該結(jié)果(步驟1205)。通過以上過程執(zhí)行經(jīng)由應(yīng)用程序2003請(qǐng)求的文件寫入過程。
      [0142]圖13是示出根據(jù)文件系統(tǒng)程序3004的對(duì)文件的數(shù)據(jù)寫入操作的流程圖。文件系統(tǒng)程序3004檢查GI標(biāo)記或者CLONE標(biāo)記是否被設(shè)置為在圖12的步驟1204中計(jì)算的克隆父差異文件6010的文件元數(shù)據(jù)3008的標(biāo)記3010、或者克隆子差異文件6012的文件元數(shù)據(jù)的標(biāo)記3010 (步驟13002、步驟13003)。
      [0143]如果標(biāo)記沒有被設(shè)置,則因?yàn)樵撐募c文件克隆功能無關(guān),將該文件作為常規(guī)文件進(jìn)行處理(步驟13004)。另一方面,如果標(biāo)記中的任何一個(gè)被設(shè)置(步驟13003:是),則文件系統(tǒng)程序3004將該文件作為克隆文件進(jìn)行處理?,F(xiàn)在,將基于克隆子差異文件來描述該操作??寺「覆町愇募⒁灶愃频姆绞竭M(jìn)行處理。
      [0144]文件系統(tǒng)程序3004確定文件寫入位置中是否存在克隆子差異文件6012的數(shù)據(jù)(步驟13005)。針對(duì)該步驟將使用圖7中描述的管理信息。例如,如果客戶端1001請(qǐng)求寫入從4KB開始的數(shù)據(jù)的10個(gè)字節(jié),則因?yàn)槲募?001具有數(shù)據(jù)塊,文件系統(tǒng)程序3004確定“數(shù)據(jù)存在”。
      [0145]另一方面,如果客戶端1001請(qǐng)求寫入從20KB開始的數(shù)據(jù)的4個(gè)千字節(jié),則因?yàn)槲募?001的該區(qū)段中存在孔7022,文件沒有盤塊。因此,文件系統(tǒng)程序3004確定“沒有數(shù)據(jù)”。如果文件系統(tǒng)程序3004在步驟13005中確定沒有數(shù)據(jù),則文件系統(tǒng)程序3004向克隆子差異文件6012指派新的盤塊(步驟13006)。
      [0146]如圖7所述,如果所指派的塊不是從已經(jīng)指派的塊的下一個(gè)塊開始,則文件系統(tǒng)程序3004對(duì)數(shù)據(jù)管理表3011創(chuàng)建新記錄(步驟13020)。
      [0147]接下來,文件系統(tǒng)程序3004向盤寫入在步驟13020中創(chuàng)建的新記錄,或者更新已經(jīng)存在的記錄(步驟13021)。[0148]根據(jù)步驟13006、步驟13020和步驟13021的過程,在將數(shù)據(jù)寫入到克隆子差異文件6012時(shí),添加了數(shù)據(jù)管理表3011的記錄。因此,在克隆子差異文件6012的創(chuàng)建期間,不需要?jiǎng)?chuàng)建數(shù)據(jù)管理表3011的記錄。因此,可以快速地創(chuàng)建克隆子差異文件6012。
      [0149]如果克隆源文件6011具有數(shù)據(jù),則文件系統(tǒng)程序3004將數(shù)據(jù)寫入到存儲(chǔ)器中,并且在將數(shù)據(jù)寫入到所指派的盤塊之前,數(shù)據(jù)被寫入數(shù)據(jù)所重寫(步驟13022)。如果克隆源文件6011中不存在數(shù)據(jù),則在不變更所指派的塊的情況下將寫入數(shù)據(jù)寫入。
      [0150]另ー方面,在步驟13005中,如果文件系統(tǒng)程序3004確定數(shù)據(jù)存在(進(jìn)行到“是”),則文件系統(tǒng)程序3004確定寫入大小是否等于塊7010的塊大小(根據(jù)圖7是4KB)(步驟13009)。
      [0151]如果寫入大小等于塊7010的大小(步驟13009:“ = ”),則文件系統(tǒng)程序3004在不對(duì)盤塊進(jìn)行任何變更的情況下將寫入數(shù)據(jù)寫入。另ー方面,當(dāng)步驟13009中大小不相等吋,文件系統(tǒng)程序3004將克隆源文件6011的盤4005上的數(shù)據(jù)臨時(shí)讀取到存儲(chǔ)器3002上(步驟 13010)。
      [0152]文件系統(tǒng)程序3004將數(shù)據(jù)寫入到已經(jīng)被讀取到存儲(chǔ)器3002的數(shù)據(jù)的數(shù)據(jù)寫入位置(步驟13011)。繼而,文件系統(tǒng)程序3004將存儲(chǔ)器3002中的數(shù)據(jù)寫入到盤4005上(步驟13012)。
      [0153]為了針對(duì)每個(gè)盤塊處理讀取和寫入操作,如果寫入大小小宇塊大小,則文件系統(tǒng)程序3004必須首先將盤中的數(shù)據(jù)讀取到存儲(chǔ)器并且在將數(shù)據(jù)寫入到塊中之前修改數(shù)據(jù)。然而,如果寫入大小等于盤塊大小,則不需要將數(shù)據(jù)讀取到存儲(chǔ)器。
      [0154]另ー方面,如果文件系統(tǒng)程序3004在步驟13005中確定沒有數(shù)據(jù)(進(jìn)行到“否”),則向克隆子差異文件6012指派新的盤塊(步驟13006)。繼而,文件系統(tǒng)程序3004將數(shù)據(jù)寫入到所指派的盤塊中,并且結(jié)束該過程(步驟13012)。根據(jù)以上過程,客戶端1001可以將數(shù)據(jù)寫入到克隆子文件6003或者克隆父文件6004中。
      [0155]圖14是示出用于改變克隆文件的大小的操作的流程圖。當(dāng)客戶端1001的應(yīng)用程序2003希望改變克隆子文件6003或者克隆父文件6004的大小時(shí),應(yīng)用程序向文件訪問程序2004發(fā)送文件大小改變請(qǐng)求。文件訪問程序2004向文件服務(wù)器1003的文件服務(wù)器程序3003發(fā)送文件大小改變請(qǐng)求(步驟14001)。
      [0156]在接收到文件大小改變請(qǐng)求之后,文件服務(wù)器程序3003向文件系統(tǒng)程序3004發(fā)送文件大小改變請(qǐng)求(步驟14002)。已經(jīng)接收到文件大小改變請(qǐng)求的文件系統(tǒng)程序3004基于標(biāo)記3010來確定文件大小改變請(qǐng)求的目標(biāo)文件是否是克隆源文件6011 (步驟14003)。
      [0157]如果文件大小改變請(qǐng)求的目標(biāo)文件是克隆源文件6011 (步驟14003 是”),則執(zhí)行步驟14004。在步驟14004中,文件系統(tǒng)程序3004基于存儲(chǔ)在克隆源文件6011的索引節(jié)點(diǎn)3009的父差異指針3021中的克隆父差異文件6010的索引節(jié)點(diǎn)編號(hào)來獲取克隆父差異文件6010的文件元數(shù)據(jù)3008。
      [0158]在下ー步驟15000中,基于克隆父差異文件6010的文件元數(shù)據(jù)3008來執(zhí)行文件大小改變過程。另外,步驟15000的過程的內(nèi)容對(duì)于克隆子差異文件6012和克隆父差異文件6010是相同的。另ー方面,如果步驟14003的確定結(jié)果是“否”,則該過程前進(jìn)到步驟15000,而不需要由文件系統(tǒng)程序3004執(zhí)行的任何操作。在步驟15000中,文件系統(tǒng)程序3004實(shí)際上改變文件大小。隨后將詳細(xì)描述該過程。[0159]之后,文件系統(tǒng)程序3004向文件服務(wù)器程序3003通知文件大小的改變的結(jié)果。文件服務(wù)器程序3003向文件訪問程序2004發(fā)送文件大小改變的結(jié)果。文件訪問程序2004向應(yīng)用程序2003通知文件大小改變的結(jié)果(步驟14005)。通過上述過程,可以執(zhí)行經(jīng)由應(yīng)用程序2003而請(qǐng)求的文件大小改變過程。
      [0160]圖15是示出文件系統(tǒng)程序3004的文件大小改變操作的流程圖。文件系統(tǒng)程序3004檢查GI標(biāo)記或者CLONE標(biāo)記是否被設(shè)置為圖14的步驟14004中獲取的克隆父差異文件6010的文件元數(shù)據(jù)3008的標(biāo)記3010或者克隆子差異文件6012的文件元數(shù)據(jù)3008的標(biāo)記3010 (步驟15002、步驟15003)。
      [0161]如果標(biāo)記沒有被設(shè)置(步驟15003 否”),因?yàn)樵撐募c文件克隆功能不相關(guān),將該文件作為常規(guī)文件進(jìn)行處理(步驟15004)。另一方面,如果標(biāo)記中的任何一個(gè)被設(shè)置(步驟15003 是”),則文件系統(tǒng)程序3004將該文件作為克隆文件來處理。現(xiàn)在,將把該操作描述為用于處理克隆子差異文件的過程。將以類似的方式處理克隆父差異文件。
      [0162]文件系統(tǒng)程序3004將當(dāng)前文件大小與經(jīng)修改的文件大小進(jìn)行比較(步驟15005)。作為結(jié)果,如果經(jīng)修改的文件大小較大(步驟15005 否”),則文件系統(tǒng)程序3004將經(jīng)修改的文件大小設(shè)置為克隆子差異文件6012的索引節(jié)點(diǎn)3009 (步驟15009),并且結(jié)束該過程。
      [0163]另一方面,如果經(jīng)修改的文件大小較小(步驟15005:是),則文件系統(tǒng)程序3004丟棄不再必要的削減(在刪除數(shù)據(jù)之后)的數(shù)據(jù)塊。換言之,文件系統(tǒng)程序3004重置克隆子差異文件6012的數(shù)據(jù)管理表3011的數(shù)據(jù)(步驟15006)。
      [0164]之后,將克隆子差異文件6012的最小大小3012與經(jīng)修改的文件大小進(jìn)行比較。如果經(jīng)修改的文件大小較小(步驟15007:是),則將經(jīng)修改的文件大小設(shè)置為克隆子差異文件6012的最小大小3012(步驟15008)。文件系統(tǒng)程序3004將經(jīng)修改的文件大小設(shè)置為克隆子差異文件6012的索引節(jié)點(diǎn)3009,并且結(jié)束該過程(步驟15009)。
      [0165]另一方面,如果步驟15007的確定結(jié)果是“否”(經(jīng)修改的文件大小較大),則文件系統(tǒng)程序3004將經(jīng)修改的文件大小設(shè)置為克隆子差異文件6012的索引節(jié)點(diǎn)3009,并且結(jié)束該過程(步驟15009)。通過以上過程,客戶端1001可以改變克隆子文件6003或者克隆父文件6004的文件大小。
      [0166]圖16是示出用于刪除克隆文件的操作的流程圖。當(dāng)客戶端1001的應(yīng)用程序2003希望刪除克隆子文件6003或者克隆父文件6004時(shí),其向文件訪問程序2004發(fā)送文件刪除請(qǐng)求。文件訪問程序2004向文件服務(wù)器1003的文件服務(wù)器程序3003發(fā)送文件刪除請(qǐng)求(步驟16001)。在已經(jīng)接收到文件刪除請(qǐng)求之后,文件服務(wù)器程序3003向文件系統(tǒng)程序3004發(fā)送文件刪除請(qǐng)求(步驟16002)。
      [0167]已經(jīng)接收到文件刪除請(qǐng)求的文件系統(tǒng)程序3004基于標(biāo)記3010來確定該文件是否是克隆源文件6011 (步驟16003)。如果該文件是克隆源文件6011 (步驟16003 是”),執(zhí)行步驟16004。在步驟16004中,文件系統(tǒng)程序3004經(jīng)由存儲(chǔ)在克隆源文件6011的索引節(jié)點(diǎn)3009的父差異指針3021中的克隆父差異文件6010的索引節(jié)點(diǎn)編號(hào),來獲取克隆父差異文件6010的文件元數(shù)據(jù)3008。
      [0168]在以下步驟17000中,基于克隆父差異文件6010的文件元數(shù)據(jù)3008來執(zhí)行文件刪除操作。另外,步驟17000的文件刪除操作的內(nèi)容對(duì)于克隆子差異文件6012和克隆父差異文件6010是相同的。[0169]另ー方面,如果步驟16003的確定結(jié)果是“否”,則該過程前進(jìn)到下ー步驟而無需文件系統(tǒng)程序3004執(zhí)行任何操作。在步驟17000中,文件系統(tǒng)程序3004實(shí)際上刪除文件。隨后將詳細(xì)描述該過程。
      [0170]最后,文件系統(tǒng)程序3004向文件服務(wù)器程序3003返回文件刪除結(jié)果,并且文件服務(wù)器程序3003向文件訪問程序2004發(fā)送該結(jié)果。
      [0171]繼而,文件訪問程序2004向應(yīng)用程序2003通知?jiǎng)h除結(jié)果(步驟16005)。基于以上過程,執(zhí)行經(jīng)由應(yīng)用程序2003而請(qǐng)求的文件刪除過程。
      [0172]圖17是示出文件系統(tǒng)程序3004的克隆文件刪除操作的流程圖。文件系統(tǒng)程序3004檢查GI標(biāo)記或者CLONE標(biāo)記是否被設(shè)置為圖16的步驟14004中獲取的克隆父差異文件6010的文件元數(shù)據(jù)3008的標(biāo)記3010或者克隆子差異文件6012的文件元數(shù)據(jù)3008的標(biāo)記3010 (步驟17002、步驟17003)。
      [0173]如果標(biāo)記沒有被設(shè)置,則因?yàn)樵撐募c文件克隆功能不相關(guān),將該文件作為常規(guī)文件來處理(步驟17004)。另ー方面,如果標(biāo)記中的任何一個(gè)被設(shè)置(步驟17003 是”),則文件系統(tǒng)程序3004將該文件作為克隆文件來處理?,F(xiàn)在,該過程將被描述為用于刪除克隆子差異文件的過程。將以類似的方式進(jìn)行處理克隆父差異文件。
      [0174]文件系統(tǒng)程序3004基于被設(shè)置為標(biāo)記3010的標(biāo)記來確定該文件是否是克隆子差異文件或者克隆源文件。如果GI標(biāo)記被設(shè)置為標(biāo)記3010(步驟17005 否”),則文件系統(tǒng)程序3004刪除克隆父差異文件6010,并且將克隆源文件6011的名稱改變?yōu)椴豢梢姷奈募Q(步驟17010)。
      [0175]為了將文件改變?yōu)椴豢梢娢募?,例如,文件系統(tǒng)程序3004將克隆源文件6011的文件名稱的開始數(shù)據(jù)改變?yōu)椤被蛘逳ULL (空)。通過這ー改變,在客戶端看來好像文件已經(jīng)被刪除。然而,因?yàn)榭寺∽游募?003使用克隆源文件6011,所以無法刪除克隆源文件6011。可以通過使用不可見文件來解決這ー問題。
      [0176]另ー方面,如果CLONE標(biāo)記被設(shè)置為標(biāo)記3010 (步驟17005 是”),則文件系統(tǒng)程序3004刪除克隆子差異文件6012。繼而,文件系統(tǒng)程序3004減少克隆源文件6011的參考計(jì)數(shù)3013 (步驟17006)。
      [0177]文件系統(tǒng)程序3004確定參考計(jì)數(shù)器3013是否是“O”。如果參考計(jì)數(shù)器3013不是“0”(步驟17007:“否”),則文件系統(tǒng)程序3004結(jié)束該刪除過程。另ー方面,如果參考計(jì)數(shù)器3013是“0”(步驟17007 是”),則文件系統(tǒng)程序3004檢查克隆源文件6011是否是不可見文件(步驟17008)。
      [0178]如果克隆源文件6011不是不可見文件(步驟17008 否”),則文件系統(tǒng)程序3004結(jié)束該刪除過程。另ー方面,如果克隆源文件6011是不可見文件(步驟17008 是”),則文件系統(tǒng)程序3004刪除克隆源文件6011 (步驟17009),并且結(jié)束文件刪除過程。
      [0179]如上所述,通過使用參考計(jì)數(shù)器3013和不可見文件,文件系統(tǒng)程序3004可以刪除克隆子文件6003或者克隆父文件6004,同時(shí)維持圖6中所示的克隆文件的文件之間的關(guān)系。
      [0180]圖18是管理終端1005的管理程序5002向管理員和終端用戶提供的管理⑶I (圖形用戶接ロ)18001的示例。管理⑶118001具有克隆管理視圖18002和克隆創(chuàng)建視圖18011。
      [0181]克隆管理視圖18002具有錄入框18003和提交按鈕,該錄入框18003用于錄入管理員或者終端用戶希望顯示的克隆文件的路徑,提交按鈕用于提交所錄入的信息。當(dāng)管理員或者終端用戶向錄入框18003錄入克隆文件的路徑并且按下提交按鈕時(shí),文件的克隆關(guān)系在克隆樹18004上顯示。圖7中描述的克隆文件的文件關(guān)系在克隆樹18004上顯示。
      [0182]在克隆樹中,顯示了如下內(nèi)容:框18005,示出克隆源文件6011的文件名稱;框18008,示出克隆父差異文件的文件名稱;以及框18006和18007,示出克隆子差異文件的文件名稱。另外,字段18009和18010在框18006和18007的右側(cè)顯示,其用于示出指示克隆子差異文件6012中寫入的差異比率的差異比率。圖18示出了創(chuàng)建兩個(gè)克隆子文件6012的示例,但是文件的數(shù)目可以是I個(gè)或者不止3個(gè)。
      [0183]當(dāng)管理員或者終端用戶創(chuàng)建克隆時(shí),管理員或者終端用戶向克隆創(chuàng)建視圖18011的錄入框18012和18013錄入要被設(shè)置為克隆源文件6011的文件的路徑以及要被創(chuàng)建的文件的數(shù)目。之后,當(dāng)管理員或者終端用戶按下提交按鈕時(shí),執(zhí)行克隆文件的創(chuàng)建。最后,在框18014上顯示執(zhí)行結(jié)果。
      [0184]根據(jù)上述第一實(shí)施方式,當(dāng)文件系統(tǒng)程序創(chuàng)建克隆文件時(shí),應(yīng)當(dāng)僅創(chuàng)建文件元數(shù)據(jù)3008。因此,因?yàn)椴恍枰獎(jiǎng)?chuàng)建和初始化用于管理盤塊的數(shù)據(jù)管理表,可以快速地創(chuàng)建克隆文件。
      [0185]〈實(shí)施方式2>
      [0186]根據(jù)第二實(shí)施方式,將克隆子文件6003創(chuàng)建為克隆源文件6011。換言之,本實(shí)施方式示出了將克隆子文件6003創(chuàng)建為嵌套結(jié)構(gòu)的情況。根據(jù)本實(shí)施方式,可以在任意定時(shí)自由地創(chuàng)建克隆子文件。
      [0187]圖19示出了克隆文件的層級(jí)結(jié)構(gòu)的一個(gè)示例。圖19的克隆源文件6011等效于圖6的克隆源文件??寺∽硬町愇募蘒 19002指定克隆源文件6011。如先前所述,在已經(jīng)創(chuàng)建了克隆子差異文件119002之后針對(duì)克隆子文件的更新數(shù)據(jù)存儲(chǔ)在克隆子差異文件119002中。
      [0188]另一方面,針對(duì)克隆父文件的更新數(shù)據(jù)存儲(chǔ)在克隆父差異文件119004中。根據(jù)本實(shí)施方式的克隆源文件6011將指定克隆父差異文件的最后信息存儲(chǔ)在文件元數(shù)據(jù)中。例如,終端用戶此時(shí)創(chuàng)建針對(duì)克隆子文件的克隆子文件。在這種情況下,克隆子差異文件I19002成為克隆源文件。繼而,在創(chuàng)建克隆子差異文件2 19003的同時(shí),創(chuàng)建克隆父差異文件 2 19005。
      [0189]當(dāng)在已經(jīng)創(chuàng)建了克隆子文件的克隆之后發(fā)生對(duì)克隆子文件的數(shù)據(jù)寫入操作時(shí),差異數(shù)據(jù)存儲(chǔ)在克隆子差異文件2 19003中。另一方面,在對(duì)克隆父文件發(fā)生數(shù)據(jù)寫入操作時(shí),差異數(shù)據(jù)被存儲(chǔ)在克隆父差異文件2 19005中??寺≡次募?011可以基于存儲(chǔ)在索引節(jié)點(diǎn)3009中的源指針3020和父差異指針3021來指定與作為最后一個(gè)克隆父差異文件的克隆父差異文件2 19005的關(guān)系。
      [0190]如上所述,如果克隆子文件采用層級(jí)嵌套結(jié)構(gòu),則克隆父文件也采用嵌套結(jié)構(gòu)。根據(jù)此系統(tǒng),保留對(duì)克隆子文件的寫入差異數(shù)據(jù)并且寫入克隆父文件的寫入差異數(shù)據(jù)成為可倉泛。
      [0191]在圖19中,僅示出了與克隆子文件相關(guān)的一個(gè)克隆子文件,但是克隆子文件可以保留兩個(gè)或者更多個(gè)克隆子文件。換言之,克隆子差異文件I 19002在克隆子差異文件219003之外還可以具有克隆子差異文件3。本實(shí)施方式不限制克隆子差異文件的數(shù)目或者類型。
      [0192]圖20是示出根據(jù)克隆文件的層級(jí)結(jié)構(gòu)的克隆文件的讀取操作的流程圖。已經(jīng)參考圖10描述了克隆文件的讀取操作的基本流程?,F(xiàn)在,將描述克隆文件的層級(jí)結(jié)構(gòu)的操作流程的特性特征。
      [0193]由應(yīng)用程序2003對(duì)克隆子文件6003和克隆父文件6004的讀取操作類似于圖10,從過程10001到過程10003。在過程10003中,如果讀取目標(biāo)文件是克隆源文件(步驟10003:是),則文件系統(tǒng)程序3004獲取與讀取目標(biāo)文件相關(guān)的最后一個(gè)克隆父差異文件的文件元數(shù)據(jù)3008。
      [0194]另ー方面,文件系統(tǒng)程序3004使用克隆父差異文件的元數(shù)據(jù)和趄讀取操作的目標(biāo)的克隆源文件的文件元數(shù)據(jù)來執(zhí)行過程21000。換言之,在圖19的情況下,應(yīng)用程序2003獲取由克隆源文件6011的文件元數(shù)據(jù)3008指定的克隆父差異文件2 19005 (最后ー個(gè)克隆父差異文件)的文件元數(shù)據(jù)3008,以便讀取克隆父文件。
      [0195]另ー方面,如果讀取目標(biāo)文件不是克隆源文件(步驟10003:否),則文件系統(tǒng)程序3004執(zhí)行步驟20005和步驟20006,以獲取原始(GI)克隆源文件(在下文中稱為根克隆源文件)的文件元數(shù)據(jù)。
      [0196]如果可以獲取根克隆源文件的文件元數(shù)據(jù)(步驟20006:是),則文件系統(tǒng)程序3004使用讀取目標(biāo)文件的文件元數(shù)據(jù)和根克隆源文件的文件元數(shù)據(jù)來執(zhí)行圖21的過程21000。
      [0197]在圖19的情況下,文件系統(tǒng)程序3004獲取與包括在克隆子差異文件2 19003中的克隆源文件的信息有關(guān)的克隆子差異文件119002的文件元數(shù)據(jù)。另外,文件系統(tǒng)程序3004從克隆子差異文件I 19002的文件元數(shù)據(jù)獲取克隆源文件6011的文件元數(shù)據(jù)。繼而,文件系統(tǒng)程序3004使用要被讀取的目標(biāo)文件的克隆父差異文件的文件元數(shù)據(jù)和克隆源文件的文件元數(shù)據(jù),來執(zhí)行圖21的過程21000。
      [0198]如上所述,根據(jù)克隆文件的層級(jí)結(jié)構(gòu),文件系統(tǒng)程序3004使用最后ー個(gè)克隆父差異文件或者最后ー個(gè)克隆子差異文件的文件元數(shù)據(jù)來執(zhí)行讀取過程。因此,文件系統(tǒng)程序3004必須遵循采用嵌套結(jié)構(gòu)的克隆子差異文件。
      [0199]圖21示出了采用層級(jí)結(jié)構(gòu)的克隆文件的讀取文件過程的流程圖。與采用層級(jí)結(jié)構(gòu)的克隆文件有關(guān),文件讀取過程遵循嵌套結(jié)構(gòu)。例如,在圖19的示例中,在讀取克隆子差異文件2 19003時(shí),文件系統(tǒng)程序3004檢查克隆子差異文件2 19003是否具有更新差異數(shù)據(jù)。當(dāng)不存在更新差異數(shù)據(jù)時(shí),文件系統(tǒng)程序3004檢查克隆子差異文件I 19002的更新差異數(shù)據(jù)。
      [0200]如果沒有對(duì)根克隆源文件的更新差異數(shù)據(jù),則文件系統(tǒng)程序3004向應(yīng)用程序發(fā)送“O”。如果在到達(dá)根克隆源文件之前存在更新差異數(shù)據(jù),則文件系統(tǒng)程序3004向應(yīng)用程序發(fā)送更新差異數(shù)據(jù)。
      [0201]根據(jù)圖21,在步驟21010中,文件系統(tǒng)程序3004檢查最后一個(gè)克隆父差異文件或者最后ー個(gè)克隆子差異文件的標(biāo)記3010。如果該文件與克隆文件相關(guān)(步驟1103 是”),則文件系統(tǒng)程序3004檢查該文件是否具有數(shù)據(jù)塊(步驟11005和步驟11006)。
      [0202]如果該文件沒有數(shù)據(jù)塊(步驟11006 否”),則文件系統(tǒng)程序3004獲取克隆源文件的文件元數(shù)據(jù),并且檢查克隆源文件是否具有數(shù)據(jù)塊(步驟21001)。[0203]如果該文件具有數(shù)據(jù)塊(步驟21002 是”),則文件系統(tǒng)程序3004讀取數(shù)據(jù)塊,并且向應(yīng)用程序發(fā)送數(shù)據(jù)塊(步驟11007)。另一方面,如果該文件沒有數(shù)據(jù)塊(步驟21001:“否”),則文件系統(tǒng)程序3004基于標(biāo)記3010來確定該文件是否是根克隆源文件(步驟21003)。
      [0204]如果該文件是根克隆源文件,則文件系統(tǒng)程序3004執(zhí)行步驟11012和后續(xù)步驟的過程。另一方面,如果該文件不是根克隆源文件(步驟21003 否”),則文件系統(tǒng)程序3004返回步驟21001,并且繼續(xù)該過程,以遵循嵌套結(jié)構(gòu)。
      [0205]如上所述,文件系統(tǒng)程序3004遵循克隆文件的層級(jí)結(jié)構(gòu),并且如果存在數(shù)據(jù)塊,則向應(yīng)用程序2003發(fā)送數(shù)據(jù),如果不存在數(shù)據(jù)塊,則向應(yīng)用程序2003返回“O”。
      [0206]圖22是示出根據(jù)克隆文件的層級(jí)結(jié)構(gòu)向克隆文件寫入數(shù)據(jù)的操作的流程圖。已經(jīng)參考圖12描述了向克隆文件寫入數(shù)據(jù)的基本流程。此處,將描述與克隆文件的層級(jí)結(jié)構(gòu)有關(guān)的操作流程的差異。
      [0207]當(dāng)應(yīng)用程序2003向克隆子文件6003或者克隆父文件6004寫入數(shù)據(jù)時(shí),所執(zhí)行的過程與圖12中的步驟1201至步驟1202等效。在步驟1202中,如果寫入目標(biāo)文件是克隆源文件(步驟1203 是”),則文件系統(tǒng)程序3004獲取與寫入目標(biāo)文件有關(guān)的最后一個(gè)克隆父差異文件的文件元數(shù)據(jù)3008。
      [0208]文件系統(tǒng)程序3004使用克隆父差異文件的文件元數(shù)據(jù)3008和作為寫入目標(biāo)的克隆源文件的文件元數(shù)據(jù)3008來執(zhí)行過程23000。在圖19的示例中,應(yīng)用程序2003獲取由克隆源源文件6011的文件元數(shù)據(jù)3008指定的克隆父差異文件2 19005 (最后一個(gè)克隆父差異文件)的文件元數(shù)據(jù)3008。
      [0209]另一方面,如果寫入目標(biāo)文件不是克隆源文件(步驟1203 否”),則文件系統(tǒng)程序3004執(zhí)行步驟22001和步驟22001,以便獲取根克隆源文件的文件元數(shù)據(jù)。
      [0210]如果可以獲取根克隆源文件的文件元數(shù)據(jù)(步驟22002:是),則文件系統(tǒng)程序3004使用讀取目標(biāo)文件的文件元數(shù)據(jù)和根克隆源文件的文件元數(shù)據(jù),來執(zhí)行步驟21000。
      [0211]換言之,根據(jù)圖19的示例,文件系統(tǒng)程序3004通過遵循存儲(chǔ)在克隆子差異文件219003中的克隆源文件的信息來獲取克隆子差異文件I 19002的文件元數(shù)據(jù)。另外,文件系統(tǒng)程序3004從克隆子差異文件I 19002的文件元數(shù)據(jù)獲取克隆源文件6011的文件元數(shù)據(jù)。繼而,文件系統(tǒng)程序3004使用克隆父差異文件的文件元數(shù)據(jù)和作為寫入目標(biāo)的克隆源文件的文件元數(shù)據(jù)來執(zhí)行步驟23000。
      [0212]如上所述,與克隆文件的層級(jí)結(jié)構(gòu)有關(guān),文件系統(tǒng)程序3004使用最后一個(gè)克隆父差異文件或者最后克隆子差異文件來執(zhí)行過程。因此,文件系統(tǒng)程序3004必須遵循采用嵌套結(jié)構(gòu)的克隆子差異文件。
      [0213]圖23示出了向采用層級(jí)結(jié)構(gòu)的克隆文件的文件寫入數(shù)據(jù)的過程的流程圖。在采用層級(jí)結(jié)構(gòu)的克隆文件中遵循嵌套結(jié)構(gòu)。例如,在圖19的示例中,為了向克隆子差異文件2 19003寫入數(shù)據(jù),文件系統(tǒng)程序3004檢查克隆子差異文件2 19003是否具有更新差異數(shù)據(jù)。在沒有更新差異文件時(shí),文件系統(tǒng)程序3004檢查克隆子差異文件119002的更新差異數(shù)據(jù)。
      [0214]如果不存在對(duì)根克隆源文件的更新差異數(shù)據(jù),則文件系統(tǒng)程序3004對(duì)沒有向其中寫入數(shù)據(jù)的數(shù)據(jù)塊執(zhí)行數(shù)據(jù)寫入過程。如果在到達(dá)根克隆源文件之前,存在更新差異數(shù)據(jù),則文件系統(tǒng)程序3004執(zhí)行數(shù)據(jù)更新過程。
      [0215]在圖23中,首先,在步驟23010中,文件系統(tǒng)程序3004檢查最后一個(gè)克隆父差異文件或者最后ー個(gè)克隆子差異文件的標(biāo)記3010。如果該文件與克隆文件相關(guān)(步驟13003:“是”),則文件系統(tǒng)程序3004檢查該文件是否具有數(shù)據(jù)塊(步驟13005)。
      [0216]如果該文件沒有數(shù)據(jù)塊(步驟13005 否”),則文件系統(tǒng)程序3004獲取克隆源文件的文件元數(shù)據(jù),并且檢查克隆源文件是否是根克隆源文件(步驟23001)。
      [0217]如果該文件是根克隆源文件(步驟23001 是”),則文件系統(tǒng)程序3004向最后ー個(gè)克隆父差異文件或者最后ー個(gè)克隆子差異文件指派新的數(shù)據(jù)塊,并且執(zhí)行寫入過程(步驟13006和后續(xù)步驟)。
      [0218]另ー方面,如果克隆源文件不是根克隆源文件(步驟23001 否”),則文件系統(tǒng)程序3004獲取該文件的克隆源文件的文件元數(shù)據(jù),并且檢查該文件是否具有數(shù)據(jù)塊(步驟23002和步驟13005)。如果該文件具有數(shù)據(jù)塊(步驟13005:“是”),則文件系統(tǒng)程序3004執(zhí)行步驟13009和后續(xù)步驟的過程。
      [0219]如上所述,文件系統(tǒng)程序3004遵循克隆文件的層級(jí)結(jié)構(gòu),并且如果該文件具有數(shù)據(jù)塊則更新數(shù)據(jù)。另ー方面,如果該文件沒有數(shù)據(jù)塊,則文件系統(tǒng)程序3004指派新的數(shù)據(jù)塊。
      [0220]根據(jù)上述實(shí)施方式,克隆文件可以在任意時(shí)間被層級(jí)地創(chuàng)建。
      [0221]〈實(shí)施方式3>
      [0222]第三實(shí)施方式涉及在已經(jīng)從客戶端發(fā)布復(fù)制過程(整個(gè)文件的復(fù)制)時(shí),文件克隆功能創(chuàng)建克隆文件而不是復(fù)制數(shù)據(jù)的示例。通過經(jīng)由文件克隆功能來創(chuàng)建克隆文件可以顯著地減少復(fù)制過程所需的時(shí)間。復(fù)制過程例如經(jīng)由CIFS (公共因特網(wǎng)文件系統(tǒng))和NFS (網(wǎng)絡(luò)文件系統(tǒng))來支持。
      [0223]圖24示出了管理終端1005的管理程序5002向管理員提供的管理⑶I 18001的示例。圖24 (當(dāng)前實(shí)施方式)與圖18 (第二實(shí)施方式)之間的差別在于提供了框24001用于指定復(fù)制模式。
      [0224]在管理員使用管理⑶I 18001在復(fù)制模式24001的復(fù)選框24002中錄入勾選時(shí),在經(jīng)由復(fù)制過程來復(fù)制文件時(shí),文件系統(tǒng)程序3004創(chuàng)建克隆文件。在復(fù)制模式的復(fù)選框24001被設(shè)置吋,管理終端1005的管理程序5002通知文件服務(wù)器1003的文件系統(tǒng)程序3004:復(fù)制模式已經(jīng)設(shè)置。將參考圖25來描述實(shí)際過程。
      [0225]圖25是示出文件程序3004如何處理復(fù)制過程的流程圖。終端用戶(客戶端)所使用的應(yīng)用程序2003經(jīng)由復(fù)制過程來復(fù)制文件服務(wù)器1003中的文件。繼而,文件訪問程序2004經(jīng)由復(fù)制過程向文件服務(wù)器發(fā)送復(fù)制請(qǐng)求(步驟25001)。
      [0226]復(fù)制過程包括復(fù)制源文件名稱和復(fù)制目的地文件名稱,并且文件服務(wù)器程序3003基于這些文件名稱來執(zhí)行文件復(fù)制過程。已經(jīng)接收到復(fù)制請(qǐng)求的文件服務(wù)器程序3003檢查復(fù)制模式(步驟25002)。
      [0227]如果復(fù)制模式是“0”(意味著復(fù)制模式?jīng)]有被設(shè)置)(步驟25003:0),則文件服務(wù)器程序3003執(zhí)行常規(guī)復(fù)制過程(步驟25006)。
      [0228]另ー方面,如果復(fù)制模式是“I”(意味著復(fù)制模式被設(shè)置)(步驟25003:1),則文件服務(wù)器程序3003請(qǐng)求文件克隆程序3005創(chuàng)建克隆子文件(步驟25004)。[0229]文件克隆程序3005創(chuàng)建用于克隆子文件的元數(shù)據(jù)(步驟9006),將標(biāo)記設(shè)置為克隆源文件,并且增加參考計(jì)數(shù)器(步驟9007)。步驟9006和步驟9007的過程與圖9中描述的過程相同。
      [0230]最后,在步驟25005中,文件克隆程序3005向文件服務(wù)器程序3003通知?jiǎng)?chuàng)建克隆文件的結(jié)果。繼而,文件服務(wù)器程序3003向客戶端通知?jiǎng)?chuàng)建結(jié)果(步驟25005)。
      [0231]如上所述,在客戶端經(jīng)由復(fù)制過程來請(qǐng)求文件復(fù)制過程時(shí),因?yàn)槲募?wù)器創(chuàng)建僅包括部分?jǐn)?shù)據(jù)的克隆文件從而不需要復(fù)制全部數(shù)據(jù),可以顯著地減少復(fù)制過程所需的時(shí)間。
      [0232]行業(yè)可應(yīng)用性
      [0233]本發(fā)明可以應(yīng)用于信息處理裝置(諸如大型計(jì)算機(jī)、服務(wù)器和個(gè)人計(jì)算機(jī)),信息/圖像存儲(chǔ)裝置(諸如存儲(chǔ)系統(tǒng)和HDD記錄器)以及通信裝置(諸如蜂窩電話)。
      [0234]參考附圖列表
      [0235]
      【權(quán)利要求】
      1.一種連接至客戶端終端和存儲(chǔ)系統(tǒng)的文件服務(wù)器,所述文件服務(wù)器包括: 處理器;以及 存儲(chǔ)器,所述存儲(chǔ)器存儲(chǔ)用于管理文件的文件系統(tǒng)程序; 其中所述文件系統(tǒng)程序 在接收到用于創(chuàng)建所述文件的克隆的請(qǐng)求之后,創(chuàng)建第一差異文件,并禁止所述文件的更新;并且 在接收到用于訪問所述克隆的請(qǐng)求時(shí),訪問所述第一差異文件; 其中當(dāng)所述訪問是(I)更新請(qǐng)求時(shí): (Ia)如果經(jīng)由所述更新請(qǐng)求而指定的所述第一差異文件的文件塊沒有被指派到所述存儲(chǔ)系統(tǒng)的盤塊,則向所述文件塊指派所述存儲(chǔ)系統(tǒng)的盤塊,并且將更新數(shù)據(jù)寫入其中;(Ib)如果所述文件塊被指派到所述存儲(chǔ)系統(tǒng)的盤塊,則將更新數(shù)據(jù)寫入其中; 其中當(dāng)所述訪問是(2)讀取請(qǐng)求時(shí): (2a)如果經(jīng)由所述讀取請(qǐng)求而指定的所述第一差異文件的所述文件塊中存在數(shù)據(jù),則從其中讀取所述數(shù)據(jù); (2b)如果所述文件塊中 沒有數(shù)據(jù),并且如果與所述文件相對(duì)應(yīng)的所述文件塊中存在數(shù)據(jù),則從其中讀取所述數(shù)據(jù),以及在所述文件的更新請(qǐng)求發(fā)生時(shí),創(chuàng)建第二差異文件,并且向經(jīng)由所述更新請(qǐng)求而指定的所述第二差異文件的所述文件塊指派所述存儲(chǔ)系統(tǒng)的盤塊,并且將更新數(shù)據(jù)寫入其中。
      2.根據(jù)權(quán)利要求1所述的文件服務(wù)器,其中在接收到所述文件的復(fù)制文件創(chuàng)建請(qǐng)求時(shí),所述文件系統(tǒng)程序?qū)⒌诙町愇募B同所述第一差異文件一起創(chuàng)建,而不考慮所述文件的更新請(qǐng)求是否發(fā)生,并且在接收到對(duì)所述文件的訪問請(qǐng)求時(shí),訪問所述第二差異文件; 其中當(dāng)所述訪問是(I)更新請(qǐng)求時(shí): (Ia)如果經(jīng)由所述更新請(qǐng)求而指定的所述第二差異文件的文件塊沒有被指派到所述存儲(chǔ)系統(tǒng)的盤塊,則指派所述存儲(chǔ)系統(tǒng)的盤塊,并且將更新數(shù)據(jù)寫入其中; (Ib)如果所述文件塊被指派了盤塊,則將更新數(shù)據(jù)寫入其中; 其中當(dāng)所述訪問是(2)讀取請(qǐng)求時(shí): (2a)如果經(jīng)由所述讀取請(qǐng)求而指定的所述第二差異文件的所述文件塊中存在數(shù)據(jù),則從其中讀取所述數(shù)據(jù);并且 (2b)如果所述文件塊中沒有數(shù)據(jù),并且如果與所述文件相對(duì)應(yīng)的所述文件塊中存在數(shù)據(jù),則從其中讀取所述數(shù)據(jù)。
      3.根據(jù)權(quán)利要求1所述的文件服務(wù)器,其中在創(chuàng)建所述第一差異文件之后接收到對(duì)所述第一差異文件的第一更新請(qǐng)求時(shí),所述文件系統(tǒng)程序創(chuàng)建第一數(shù)據(jù)管理表;并且 在所述第一數(shù)據(jù)管理表中存儲(chǔ)包括所述更新數(shù)據(jù)的文件數(shù)據(jù)的偏移、所述存儲(chǔ)系統(tǒng)的向經(jīng)由所述更新請(qǐng)求而指定的所述第一差異文件的所述文件塊指派的盤塊的開始?jí)K位置、以及所述文件的數(shù)據(jù)塊長度。
      4.根據(jù)權(quán)利要求1所述的文件服務(wù)器,其中在創(chuàng)建所述第二差異文件之后接收到對(duì)所述第二差異文件的第一更新請(qǐng)求時(shí),所述文件系統(tǒng)程序創(chuàng)建第二數(shù)據(jù)管理表;并且 在所述第二數(shù)據(jù)管理表中存儲(chǔ)包括所述更新數(shù)據(jù)的文件數(shù)據(jù)的偏移、所述存儲(chǔ)系統(tǒng)的向經(jīng)由所述更新請(qǐng)求而指定的所述第二差異文件的所述文件塊指派的盤塊的開始?jí)K位置、以及所述文件的數(shù)據(jù)塊長度。
      5.根據(jù)權(quán)利要求2所述的文件服務(wù)器,其中在創(chuàng)建所述第二差異文件之后接收到對(duì)所述第二差異文件的第一更新請(qǐng)求時(shí),所述文件系統(tǒng)程序創(chuàng)建第二數(shù)據(jù)管理表;并且 在所述第二數(shù)據(jù)管理表中存儲(chǔ)包括所述更新數(shù)據(jù)的文件數(shù)據(jù)的偏移、所述存儲(chǔ)系統(tǒng)的向經(jīng)由所述更新請(qǐng)求而指定的所述第二差異文件的所述文件塊指派的盤塊的開始?jí)K位置、以及所述文件的數(shù)據(jù)塊長度。
      6.根據(jù)權(quán)利要求1所述的文件服務(wù)器,其中所述第一差異文件具有元數(shù)據(jù),并且所述元數(shù)據(jù)包括指示所述第一差異文件是克隆的信息。
      7.根據(jù)權(quán)利要求2所述的文件服務(wù)器,其中所述第一差異文件具有元數(shù)據(jù),并且所述元數(shù)據(jù)包括指示所述第一差異文件是克隆的信息。
      8.根據(jù)權(quán)利要求1所述的文件服務(wù)器,其中所述文件系統(tǒng)程序被設(shè)計(jì)成在毎次接收到用于創(chuàng)建所述文件的克隆的請(qǐng)求時(shí)創(chuàng)建所述第一差異文件;并且 其中所述文件具有元數(shù)據(jù),并且所述元數(shù)據(jù)包括指示所述文件是克隆的源的信息以及所述第一差異文件的文件數(shù)目。
      9.根據(jù)權(quán)利要求1所述的文件服務(wù)器,其中所述文件系統(tǒng)程序 (1)在接收到所述文件的刪除請(qǐng)求時(shí),刪除所述第二差異文件,并且設(shè)置所述文件以使得其從所述客戶端終端不可見;并且 (2)在接收到所述第一差異文件的刪除請(qǐng)求時(shí),刪除所述第一差異文件。
      10.根據(jù)權(quán)利要求2所述·的文件服務(wù)器,其中所述文件系統(tǒng)程序 (1)在接收到所述文件的刪除請(qǐng)求時(shí)刪除所述第二差異文件,并且設(shè)置所述文件以使得其從所述客戶端終端不可見;并且 (2)在接收到所述第一差異文件的刪除請(qǐng)求時(shí),刪除所述第一差異文件。
      11.一種計(jì)算機(jī)系統(tǒng),包括: 文件服務(wù)器; 連接至所述文件服務(wù)器的管理終端;以及 連接至所述文件服務(wù)器的存儲(chǔ)系統(tǒng); 其中所述文件服務(wù)器包括: 處理器;以及 存儲(chǔ)器,所述存儲(chǔ)器存儲(chǔ)管理文件的文件系統(tǒng)程序; 其中所述文件系統(tǒng)程序 在接收到用于創(chuàng)建所述文件的克隆的請(qǐng)求時(shí),創(chuàng)建第一差異文件,并禁止所述文件的更新;并且 在接收到訪問所述克隆的請(qǐng)求時(shí),訪問所述第一差異文件; 其中當(dāng)所述訪問是(I)更新請(qǐng)求時(shí): (Ia)如果經(jīng)由所述更新請(qǐng)求而指定的所述第一差異文件的文件塊沒有被指派到所述存儲(chǔ)系統(tǒng)的盤塊,則向所述文件塊指派所述存儲(chǔ)系統(tǒng)的盤塊,并且將更新數(shù)據(jù)寫入其中;(Ib)如果所述文件塊被指派到所述存儲(chǔ)系統(tǒng)的盤塊,則將更新數(shù)據(jù)寫入其中; 其中當(dāng)所述訪問是(2)讀取請(qǐng)求時(shí):(2a)如果經(jīng)由所述讀取請(qǐng)求而指定的所述第一差異文件的所述文件塊中存在數(shù)據(jù),則從其中讀取所述數(shù)據(jù); (2b)如果所述文件塊中沒有數(shù)據(jù),并且如果與所述文件相對(duì)應(yīng)的所述文件塊中存在數(shù)據(jù),則從其中讀取所述數(shù)據(jù),并且在所述文件的更新請(qǐng)求發(fā)生時(shí),創(chuàng)建第二差異文件,以及向經(jīng)由所述更新請(qǐng)求而指定的所述第二差異文件的所述文件塊指派所述存儲(chǔ)系統(tǒng)的盤塊,并且將更新數(shù)據(jù)寫入其中。
      12.根據(jù)權(quán)利要求11所述的計(jì)算機(jī)系統(tǒng),其中所述文件系統(tǒng)程序在接收到所述文件的復(fù)制文件創(chuàng)建請(qǐng)求時(shí),將第二差異文件連同所述第一差異文件一起創(chuàng)建,而不考慮所述文件的更新請(qǐng)求是否發(fā)生;并且 在接收到對(duì)所述文件的訪問請(qǐng)求時(shí),訪問所述第二差異文件; 其中當(dāng)所述訪問是(I)更新請(qǐng)求時(shí): (Ia)如果經(jīng)由所述更新請(qǐng)求而指定的所述第二差異文件的文件塊沒有被指派到所述存儲(chǔ)系統(tǒng)的盤塊,則指派所述存儲(chǔ)系統(tǒng)的盤塊,并且將更新數(shù)據(jù)寫入其中; (Ib)如果所述文件塊被指派到盤塊,則將更新數(shù)據(jù)寫入其中; 其中當(dāng)所述訪問是(2)讀取請(qǐng)求時(shí): (2a)如果經(jīng)由所述讀取請(qǐng)求而指定的所述第二差異文件的所述文件塊中存在數(shù)據(jù),則從其中讀取所述數(shù)據(jù);并且 (2b)如果所述文件塊中沒有數(shù)據(jù),并且如果與所述文件相對(duì)應(yīng)的所述文件塊中存在數(shù)據(jù),則從其中讀取所 述數(shù)據(jù)。
      【文檔編號(hào)】G06F3/06GK103597440SQ201180071508
      【公開日】2014年2月19日 申請(qǐng)日期:2011年9月14日 優(yōu)先權(quán)日:2011年9月14日
      【發(fā)明者】龜井仁志, 中村隆喜 申請(qǐng)人:株式會(huì)社日立制作所
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1