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

帶有快照功能的分布式文件系統(tǒng)中的數(shù)據(jù)讀與數(shù)據(jù)寫方法

文檔序號:6353687閱讀:172來源:國知局
專利名稱:帶有快照功能的分布式文件系統(tǒng)中的數(shù)據(jù)讀與數(shù)據(jù)寫方法
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)安全領(lǐng)域,特別涉及帶有快照功能的分布式文件系統(tǒng)中的數(shù)據(jù)讀 寫方法。
背景技術(shù)
快照是指一個數(shù)據(jù)集在其被創(chuàng)建時的完整、可用的映像的拷貝,可以作為實現(xiàn)數(shù) 據(jù)在線備份,保護數(shù)據(jù)的重要手段。分布式文件系統(tǒng)(Distributed File System)是一種能 夠讓多個主機通過網(wǎng)路共享訪問文件數(shù)據(jù)的文件系統(tǒng)。由于分布式文件系統(tǒng)本身的特點, 使得對分布式文件系統(tǒng)的數(shù)據(jù)備份有特殊的要求,例如,分布式文件系統(tǒng)擁有海量數(shù)據(jù),這 就要求其備份所占用的空間要少;用戶要求分布式文件系統(tǒng)所提供的服務連續(xù)不斷,因此 在備份過程中,文件系統(tǒng)上的服務不能中斷。快照作為數(shù)據(jù)備份的一種重要手段應用于分 布式文件系統(tǒng)上時也應當滿足上述要求。具體的說,與現(xiàn)有的文件系統(tǒng)和虛擬塊設(shè)備的快 照不同,分布式文件系統(tǒng)快照的不同點在于第一、在采用帶外模式的分布式文件系統(tǒng)中, 在帶外模式下,客戶端可以直接對設(shè)備進行讀寫,因此快照的創(chuàng)建與維護需要客戶端與服 務器的共同配合才能完成;第二、由于機器失效或是網(wǎng)絡分割等異常情況的存在,在分布式 文件系統(tǒng)中獲得一致狀態(tài)變得更為困難,在創(chuàng)建快照時要考慮如何解決這一問題;第三、由 于分布式文件系統(tǒng)通常要提供不間斷的數(shù)據(jù)服務,因此需要在保證快照一致性的前提下減 小對系統(tǒng)性能的負面影響。要實現(xiàn)滿足上述要求的分布式文件系統(tǒng)的快照可以歸結(jié)為下面兩個問題,一是在 創(chuàng)建快照時如何獲取當前分布式文件系統(tǒng)的一致性狀態(tài);二是分布式快照文件系統(tǒng)的客戶 端與服務器端之間如何實現(xiàn)讀或?qū)憽,F(xiàn)有技術(shù)中對上述兩個問題有相應的解決方法,這些 方法歸根結(jié)底都和文件數(shù)據(jù)讀寫緊密,但現(xiàn)有的方法都存在一定的缺陷。對于一致性狀態(tài)的獲取,現(xiàn)有的方法如下第一種方法是freeze-sync-snapshot-unfreeze方法。這種方法常見于與設(shè)備 級快照結(jié)合的快照系統(tǒng)之中,比如利用LVM的快照機制來創(chuàng)建文件系統(tǒng)的快照,就需要先 將文件系統(tǒng)凍結(jié),接著再將數(shù)據(jù)回刷到磁盤,然后創(chuàng)建磁盤的快照,最后恢復文件系統(tǒng)的操 作。這種方法并不適合分布式文件系統(tǒng)服務連續(xù)性的要求。第二種方法是一種盡力而為的方法。這種方法是在文件系統(tǒng)中運行一個狀態(tài)管理 進程,此進程用以跟蹤服務器IO狀態(tài),如果當前IO不破壞當前一致性狀態(tài),則創(chuàng)建快照,反 之,不創(chuàng)建。這種方法以簡單的方式保證了創(chuàng)建快照的一致性,但是并不能保證快照總是可 以創(chuàng)建成功,而當文件系統(tǒng)十分繁忙時,沖突甚至會導致根本無法成功創(chuàng)建快照。第三種方法是日志結(jié)構(gòu)的文件系統(tǒng)所采用的方法,文件系統(tǒng)利用日志技術(shù)來保證 異常斷電之后再恢復的時候,文件系統(tǒng)不會處于操作的中間狀態(tài)。而日志文件系統(tǒng)就采用 了一種隔幾秒就將文件系統(tǒng)的一個一致的狀態(tài)寫入磁盤的技術(shù)。日志結(jié)構(gòu)文件系統(tǒng)適合用 于單機環(huán)境或是帶內(nèi)數(shù)據(jù)的分布式環(huán)境,并不適合用于數(shù)據(jù)帶外訪問的分布式文件系統(tǒng)。 因為在這種情況下,數(shù)據(jù)是由客戶端寫入到存儲設(shè)備的,而元數(shù)據(jù)信息是由服務器寫入存儲設(shè)備的,它們分布在不同的機器上,難以獲得一致狀態(tài)。對于讀寫流程來說,現(xiàn)有分布式文件系統(tǒng)主要有以下兩種結(jié)構(gòu)一.典型結(jié)構(gòu)。在這一結(jié)構(gòu)中,客戶端一請求,服務器端就為其分配空間,其存儲 空間分配太早,如果是修改操作,則應該應用C0W(Copy On Write,寫時復制)機制,但此時 有可能是客戶端請求較大空間,這樣返回之后客戶端必須將舊數(shù)據(jù)全部拷貝到新數(shù)據(jù)中, 一方面會導致大量的數(shù)據(jù)拷貝操作,另一方面如果此時客戶端失效,則文件數(shù)據(jù)就有可能 變成無效數(shù)據(jù)。由于效率問題,上述結(jié)構(gòu)并不適用于帶快照的分布式文件系統(tǒng)。二 .延遲分配結(jié)構(gòu)。這種結(jié)構(gòu)類似于ext4和btrfs等本地文件系統(tǒng)中的延遲分 配特性,它雖然在本地文件系統(tǒng)中被廣泛使用,這并不適用于帶外的分布式文件系統(tǒng)。其原 因在于,一方面元數(shù)據(jù)與數(shù)據(jù)分離的結(jié)構(gòu)使得客戶端并不能為寫操作預留空間,而另一方 面延遲分配有可能會把寫操作延遲到文件關(guān)閉之后,這并不符合一般分布式文件系統(tǒng)中文 件關(guān)閉到打開的數(shù)據(jù)一致性要求。

發(fā)明內(nèi)容
本發(fā)明的目的是克服現(xiàn)有的帶快照文件系統(tǒng)中的讀寫方法不適用于以COW的方 式創(chuàng)建快照的分布式文件系統(tǒng)的缺陷,從而提供一種能夠維護快照一致性和增強分布式文 件系統(tǒng)穩(wěn)健性的一種數(shù)據(jù)讀寫方法。為了實現(xiàn)上述目的,本發(fā)明提供了一種帶有快照功能的分布式文件系統(tǒng)中的數(shù)據(jù) 寫方法,包括步驟1)、分布式文件系統(tǒng)中的一客戶端要完成對一文件的寫操作,向該分布式文 件系統(tǒng)的服務器端請求與該操作有關(guān)的布局;步驟2)、所述服務器端查詢元數(shù)據(jù),得到所述文件的映射關(guān)系,并在所述分布式文 件系統(tǒng)的存儲設(shè)備中為所述文件預留存儲空間,生成與所述操作有關(guān)的布局;步驟3)、所述客戶端根據(jù)所述布局在所述存儲設(shè)備上實現(xiàn)對所述文件的寫操作, 并將所述寫操作的數(shù)據(jù)寫入所述預留的存儲空間;步驟4)、所述客戶端 完成所述寫操作后,由所述服務器端實現(xiàn)對與所述文件有關(guān) 的元數(shù)據(jù)的修改。上述技術(shù)方案中,在所述的步驟2)中,所述的生成與所述操作有關(guān)的布局包括 根據(jù)元數(shù)據(jù)查詢結(jié)果判斷所要請求的布局是否被其他快照引用,若已經(jīng)被其他快照引用, 生成一份只讀的布局和一份可寫的布局,若未被其他快照引用,則只生成一份可讀可寫的布局。上述技術(shù)方案中,在所述的步驟3)中,將所述寫操作的數(shù)據(jù)寫入所述預留的存儲 空間包括將所述寫操作的數(shù)據(jù)寫入所述可寫的布局或?qū)懭胨隹勺x可寫的布局中。上述技術(shù)方案中,在所述的步驟2)中,預留的存儲空間的信息保存在內(nèi)存中。上述技術(shù)方案中,所述的步驟4)包括步驟4-1)、所述客戶端在完成寫存儲設(shè)備的操作后,向服務器端發(fā)送布局提交修 改信息;所述的布局提交修改信息中包括有與寫操作有關(guān)的文件的屬性信息;步驟4-2)、所述服務器端接收到所述布局提交修改信息后,根據(jù)該信息更新元數(shù) 據(jù)。
上述技術(shù)方案中,所述的步驟4-2)包括步驟4-2-1)、將所述的預留的存儲空間加入或者替換與所述寫操作有關(guān)的文件的 原有部分,以寫時拷貝的方式修改文件映射,生成一個新的文件系統(tǒng)樹;步驟4-2-2)、所述分布式文件系統(tǒng)執(zhí)行一個原子切換,將該文件系統(tǒng)的根切換到 新的文件系統(tǒng)樹。本發(fā)明還提供了一種帶有快照功能的分布式文件系統(tǒng)中的數(shù)據(jù)讀方法,包括步驟1)、分布式文件系統(tǒng)中的一客戶端要完成對一文件的讀操作,向該分布式文 件系統(tǒng)的服務器端請求與該操作有關(guān)的布局;步驟2)、所述服務器端查詢元數(shù)據(jù),得到所述文件的映射關(guān)系,生成與所述操作有 關(guān)的布局;

步驟3)、所述客戶端根據(jù)所述布局在所述存儲設(shè)備上實現(xiàn)對所述文件的讀操作。本發(fā)明又提供了一種帶有快照功能的分布式文件系統(tǒng)中的數(shù)據(jù)寫方法,包括步驟1)、分布式文件系統(tǒng)中的一客戶端要完成對一文件的寫操作,向該分布式文 件系統(tǒng)的服務器端請求與該操作有關(guān)的布局;其中,所述的服務器端正在創(chuàng)建快照的過程 中,所述服務器端開啟全數(shù)據(jù)寫時拷貝的功能;步驟2)、所述服務器端查詢元數(shù)據(jù),得到所述文件的映射關(guān)系,并在所述分布式文 件系統(tǒng)的存儲設(shè)備中為所述文件預留存儲空間,生成與所述操作有關(guān)的布局;步驟3)、所述客戶端根據(jù)所述布局在所述存儲設(shè)備上實現(xiàn)對所述文件的寫操作, 并將所述寫操作的數(shù)據(jù)寫入所述預留的存儲空間;步驟4)、所述客戶端完成所述寫操作后,由所述服務器端實現(xiàn)對與所述文件有關(guān) 的元數(shù)據(jù)的修改。上述技術(shù)方案中,在所述的步驟2)中,所生成的布局包括一份只讀的布局和一份 可寫的布局。本發(fā)明的優(yōu)點在于1、本發(fā)明的方法使得對分布式文件系統(tǒng)的讀寫具有可靠性,且為創(chuàng)建快照創(chuàng)造了 方便。2、本發(fā)明的方法能夠使得分布式文件系統(tǒng)迅速獲得一致性狀態(tài),即使發(fā)生了頻繁 創(chuàng)建快照的情況也不會對讀寫性能造成過大的影響。


圖1為在一個實施例中,分布式文件系統(tǒng)中的客戶端與服務器端之間交互的流程 圖;圖2為在一個實施例中,創(chuàng)建快照時如何獲取當前分布式文件系統(tǒng)的一致性狀態(tài) 的示意圖;圖3為在一個實施例中,分布式文件系統(tǒng)做讀寫操作的示意圖。
具體實施例方式在對本發(fā)明進行詳細說明前,為了便于理解,對本發(fā)明中所涉及的一些概念進行 說明。
布局(layout)它定義了一個文件的數(shù)據(jù)如何分布到實際的存儲設(shè)備上。寫時拷貝(Copy On Write,COW)在數(shù)據(jù)寫入到某個存儲塊時,首先將原有的存儲 塊讀取出來并寫到另一存儲塊位置處,這一過程就被稱為寫時拷貝。分布式文件系統(tǒng)中的服務端整個文件系統(tǒng)的資源的管理者和服務提供者,它負 責管理文件系統(tǒng)資源,并且協(xié)調(diào)和處理來自不同客戶端的請求。分布式文件系統(tǒng)中的客戶端文件系統(tǒng)的服務使用者,它會向服務端請求創(chuàng)建、刪 除、修改以及讀寫文件。分布式文件系統(tǒng)中的存儲設(shè)備分布式文件系統(tǒng)中用于存儲數(shù)據(jù)的設(shè)備,該設(shè)備 由所述的服務端與客戶端共享。元數(shù)據(jù)元數(shù)據(jù)是用于管理數(shù)據(jù)的數(shù)據(jù),它主要包含文件屬性,以及用于記錄文件 所存儲的存儲設(shè)備的信息。文件系統(tǒng)的一致性狀態(tài)文件系統(tǒng)中的元數(shù)據(jù)和數(shù)據(jù)間存在對應關(guān)系。在對文件 做讀寫操作時,大多數(shù)的文件系統(tǒng)都是先將文件的數(shù)據(jù)塊從磁盤中取出并載入主存,然后 在主存中對它們進行讀寫操作,最后寫回磁盤并相應地修改該數(shù)據(jù)塊所對應的元數(shù)據(jù)。但 是如果在文件的數(shù)據(jù)塊在內(nèi)存中被修改且沒有被寫回諸如磁盤的物理存儲設(shè)備之前,系統(tǒng) 發(fā)生崩潰或者網(wǎng)絡中斷現(xiàn)象,那么該文件的數(shù)據(jù)與元數(shù)據(jù)之間的對應關(guān)系就存在不一致, 即文件系統(tǒng)處于不一致的狀態(tài)。下面結(jié)合附圖和具體實施方式
對本發(fā)明進行說明。在背景技術(shù)的描述中已經(jīng)提到,要實現(xiàn)分布式文件系統(tǒng)的快照可以歸結(jié)為兩個問 題,一是在創(chuàng)建快照時如何獲取當前分布式文件系統(tǒng)的一致性狀態(tài);二是分布式快照文件 系統(tǒng)的客戶端與服務器端之間如何實現(xiàn)讀或?qū)憽榱吮阌诶斫?,下面首先對本發(fā)明解決上 述兩個問題的方法分別加以說明。首先結(jié)合圖1,對分布式文件系統(tǒng)中的客戶端與服務器端之間交互的總體流程進 行說明。步驟1)、一客戶端要完成對某一文件的讀或?qū)懖僮?,由該客戶端向服務器端發(fā)送 對于該文件的布局獲取請求;步驟2)、服務器端接收到該布局獲取請求后,根據(jù)該請求查詢保存在服務器端中 的元數(shù)據(jù),得到相應的文件映射關(guān)系,根據(jù)這一文件映射關(guān)系將該請求解析到某一或某些 具體的存儲設(shè)備上;步驟3)、根據(jù)所述操作是讀操作還是寫操作判斷是否要預留存儲空間,如果是寫 操作,需要預留存儲空間,在諸如磁盤的存儲設(shè)備中為該文件預留一定的存儲空間,并在內(nèi) 存中保存關(guān)于預留的存儲空間的信息,然后執(zhí)行下一步,如果是讀操作,則不需要預留存儲 空間,直接執(zhí)行下一步;步驟4)、服務器端向之前發(fā)出布局獲取請求的客戶端返回布局信息,若在前一步 驟中在存儲設(shè)備中為文件預留了存儲空間,則這一布局信息中還包括有關(guān)于預留存儲空間 的信息;步驟5)、客戶端接收到布局信息后,根據(jù)該信息訪問相應的存儲設(shè)備實現(xiàn)讀寫操 作,若之前為文件預留了存儲空間,則在做寫操作時,還要將相關(guān)數(shù)據(jù)寫入所預留的存儲空 間中;
步驟6)、客戶端在完成寫存儲設(shè)備的操作后,向服務器端發(fā)送布局提交修改信息; 所述的布局提交修改信息中包括有與讀寫操作有關(guān)的文件的屬性信息,如文件的修改時 間、文件大小等。步驟7)、服務器端接收到布局提交修改信息后,根據(jù)其中的信息更新資源位圖與 文件映射、文件size等元數(shù)據(jù)。以上是對分布式文件系統(tǒng)中客戶端與服務器端之間的交互流程的總體描述,從這 些描述中可以看出,該流程有下面幾個特點A、在上述操作中,在步驟6)中先對存儲設(shè)備中的數(shù)據(jù)進行修改,然后直到步驟7) 服務器端才對元數(shù)據(jù)中的文件映射進行修改,與現(xiàn)有方法相比將這一操作做了延遲,避免 了服務器端在收到布局獲取請求時就進行寫時拷貝,使得寫時拷貝可以放心地交給客戶端
來完成。B、在步驟3)中,將預留存儲空間的信息保存在內(nèi)存中而不是寫入持久存儲,這樣 做可以應付服務器異常斷電等情況。若發(fā)生了服務器異常斷電的情況,雖然內(nèi)存保存的關(guān) 于預留存儲空間的信息會丟失,但文件系統(tǒng)中資源使用情況與文件映射關(guān)系仍然是一致 的,這樣就避免了在異常斷電恢復過程中對預留存儲資源的回收。C、將對文件映射的修改延后到服務器端接收到布局提交修改信息之后,而布局 提交修改信息是在客戶端將數(shù)據(jù)寫入存儲設(shè)備之后才被發(fā)送到服務器端的,也就是說,當 進行文件映射修改的時候,數(shù)據(jù)已經(jīng)被寫到了存儲設(shè)備上,這樣就類似ext3文件系統(tǒng)中的 data = ordered日志模式,使元數(shù)據(jù)更新發(fā)生在數(shù)據(jù)更新完成之后,可以提高文件系統(tǒng)穩(wěn) 定性。下面結(jié)合圖2,對本發(fā)明在創(chuàng)建快照時如何獲取當前分布式文件系統(tǒng)的一致性狀 態(tài)的方法進行說明。該方法對所有數(shù)據(jù)的讀寫都進行C0W,并且將其與元數(shù)據(jù)的事務機制結(jié) 合起來,可以實現(xiàn)更為迅速的快照創(chuàng)建功能。由于該方法對所有數(shù)據(jù)的修改都是以寫時拷 貝的方式進行,因此不會將可以影響一致性狀態(tài)的布局授權(quán)給客戶端,結(jié)合資源預留的讀 寫流程和服務器端事務機制保證布局提交之后的一致性,能夠確??煺談?chuàng)建之時文件系統(tǒng) 的狀態(tài)是一致的。參考圖2,該方法的具體流程如下步驟10)、在前述流程的步驟6)中,服務器端剛接收到布局提交修改信息時,由于 客戶端將數(shù)據(jù)寫入到服務器端為其預留的存儲空間,所以此時文件系統(tǒng)映像仍然是修改之 前的狀態(tài),并未反映客戶端對文件系統(tǒng)的修改。如圖2中的(1)所示。步驟20)、服務器端根據(jù)布局提交修改信息對元數(shù)據(jù)中的文件映射關(guān)系進行修改。 具體的說,用預留的存儲空間加入或者替換文件原有部分,以寫時拷貝的方式修改文件映 射,此時即建立一棵新的文件系統(tǒng)樹New/root,New/root中的對應文件的相應數(shù)據(jù)已經(jīng)被 映射到預留的存儲空間上,也就是客戶端新寫入的數(shù)據(jù)。所以從New/root看到的就是客戶 端修改后的文件系統(tǒng)樹。如圖2中的(2)所示。步驟30)、在前述的步驟7)中,當保存在服務器端的元數(shù)據(jù)被修改后,文件系統(tǒng)會 執(zhí)行一個原子切換,將文件系統(tǒng)的根從/root切換到New/root,使得客戶端的修改生效。這 樣就產(chǎn)生了一個新的checkpoint,如圖2中的(3)所示。這一系列操作都是納入在元數(shù)據(jù)事務機制中的,而采用資源預留的讀寫流程,并 結(jié)合全部數(shù)據(jù)寫時拷貝,相當于將數(shù)據(jù)也納入到元數(shù)據(jù)事務機制的保護之中,使得文件系統(tǒng)像日志文件系統(tǒng)一樣可以時刻保持有效的一致狀態(tài),同時由于預留的存儲空間可以由不 同的客戶端并發(fā)寫入,因此也避免了日志文件系統(tǒng)只可以在一個地方順序?qū)懭氲南拗?,?得可以通過并行性來提高文件系統(tǒng)數(shù)據(jù)讀寫的性能,同時通過與元數(shù)據(jù)事務機制相結(jié)合的 布局提交生效過程來獲得一致性。以上是對本發(fā)明在創(chuàng)建快照時如何實現(xiàn)分布式文件系統(tǒng)的一致性,以及如何實現(xiàn) 分布式文件系統(tǒng)中的客戶端與服務器端之間交互的說明。下面結(jié)合一個具體的實施例,就 分布式文件系統(tǒng)的讀寫過程進行說明。在本發(fā)明的一個實施例中,分布式文件系統(tǒng)包括客戶端、服務端以及存儲設(shè)備,其 中,保存在服務端中的元數(shù)據(jù)的組織方式為樹形的組織方式,并且這種組織方式能支持COW 的操作。下面以這一分布式文件系統(tǒng)為例,結(jié)合圖3,對該分布式文件系統(tǒng)在讀寫過程中對 快照的處理流程進行說明。客戶端讀文件客戶端在讀文件時,由于文件中的數(shù)據(jù)不會發(fā)生變化,因此讀文件的過程不會影 響分布式文件系統(tǒng)的一致性狀態(tài),也不會影響快照的創(chuàng)建和維護,因此客戶端讀文件的流 程較為簡單,具體如下步驟101)、客戶端向服務端請求布局;步驟102)、服務端查詢相關(guān)元數(shù)據(jù),返回相對應的布局;步驟103)、客戶端通過返回的布局讀取存儲設(shè)備上的數(shù)據(jù)。上述三個步驟分別對應圖3中的步驟1、2、3客戶端寫文件客戶端在寫文件時,會發(fā)生數(shù)據(jù)在存儲設(shè)備上的變化,因此寫文件的過程涉及到 分布式文件系統(tǒng)的一致性狀態(tài),以及快照的創(chuàng)建和維護,因此,客戶端寫文件的流程相對復 雜,結(jié)合圖3,其具體流程如下步驟201)、客戶端需要寫文件,向服務端請求布局;本步驟可參見圖3中的步驟4。步驟202)、服務端接收到客戶端所發(fā)出的請求后,若該請求合法,則查詢相關(guān)元數(shù) 據(jù),根據(jù)元數(shù)據(jù)查詢結(jié)果,如果對應的布局已經(jīng)被其他快照引用,則向客戶端返回一份對應 的只讀的布局和一份可寫的布局,并且預留存儲資源,如果對應的布局沒有被其他快照引 用,則直接返回一份可讀可寫的布局,并且預留相應的存儲資源。在本步驟中,服務端在生 成所述的可寫的布局或可讀可寫的布局時,采用預留的存儲資源來生成所述的可寫的布局 或可讀可寫的布局。圖3中的陰影部分表示了所述的預留存儲資源。本步驟可參見圖3中 的步驟5和7。步驟203)、客戶端根據(jù)返回的布局進行存儲設(shè)備的讀寫操作。前一步驟中提到,所 返回的布局有多種類型,客戶端可根據(jù)只讀布局或可讀可寫布局從存儲設(shè)備讀取相應的內(nèi) 容,客戶端所要修改的內(nèi)容可寫入可寫布局或可讀可寫布局中。本步驟可參見圖3中的步 驟6。步驟204)、客戶端在存儲設(shè)備中完成寫數(shù)據(jù)的操作后,這些數(shù)據(jù)的元數(shù)據(jù)發(fā)生了 變化,因此需要向服務端提交更新后的元數(shù)據(jù)信息,并且把預留資源信息加入到元數(shù)據(jù)組 織中。本步驟可參見圖3中的步驟8和步驟9在上述的描述中,默認服務器端已經(jīng)創(chuàng)建了快照。當服務器端正在創(chuàng)建快照時,客戶端也可能要對某一文件做讀寫操作,下面對當服務器端創(chuàng)建快照時,如何完成讀寫操作 的過程進行說明。如果服務端正在創(chuàng)建快照,開啟全部數(shù)據(jù)COW功能,也就是任何時候,客戶端寫文 件都是COW的,并且進行資源預留,而不管該布局是不是被快照引用。這種情況下,文件系 統(tǒng)元數(shù)據(jù)關(guān)系始終是一致的,此時創(chuàng)建的快照數(shù)據(jù)集也是一致和可用的。相關(guān)操作如下步驟301、服務端開啟全數(shù)據(jù)C0W,并且創(chuàng)建快照;步驟302、客戶端向服務端請求布局;該步驟對應圖3的步驟4。步驟303、服務端查詢相關(guān)元數(shù)據(jù),返回一份對應只讀的布局和一份可寫的布局, 該可寫的布局由預留的存儲資源實現(xiàn)。該步驟對應圖3的步驟7。步驟304、客戶端根據(jù)只讀的布局讀出存儲設(shè)備的內(nèi)容,而將修改的內(nèi)容寫入可寫 的布局所對應的存儲設(shè)備中。本步驟對應圖3的步驟6。步驟305、客戶端向布局提交相應的元數(shù)據(jù)信息,并且把預留資源信息加入到元數(shù) 據(jù)組織中。本步驟對應步驟圖3的步驟8。從上述描述可以看出,與服務器端已經(jīng)創(chuàng)建了快照相比,當服務器端正在創(chuàng)建快 照時,如果要做寫操作,無論與寫操作有關(guān)的布局是否被其他快照引用,都要做C0W,以保障 快照的一致性。以上是對本發(fā)明相關(guān)內(nèi)容的說明,利用本發(fā)明中的讀寫方法和一致性狀態(tài)獲取方 法可以將本地文件系統(tǒng)中的快照功能擴展到分布式系統(tǒng)中,并且能在分布式帶外的環(huán)境中 創(chuàng)建快照。具體的說,本發(fā)明的優(yōu)點在于第一、通過存儲資源預留的機制,一方面將存儲資源盡早分配給客戶端,使其可以 并行地進行IO操作,另一方面將對分布式文件系統(tǒng)持久數(shù)據(jù)的更新操作延后,將元數(shù)據(jù)更 新集中在一處,可以利用元數(shù)據(jù)的事務機制使元數(shù)據(jù)的更新串行化。數(shù)據(jù)更新在前,元數(shù)據(jù) 更新在數(shù)據(jù)更新完成之后的結(jié)構(gòu),使得文件系統(tǒng)有很好的可靠性,并且為創(chuàng)建快照創(chuàng)造了 方便。第二、為了創(chuàng)建快照,分布式文件系統(tǒng)要取得一個一致的狀態(tài),以保證數(shù)據(jù)與元數(shù) 據(jù)的一致性,使得創(chuàng)建出的快照映像是可用的。通常本地文件系統(tǒng)都是凍結(jié)本地文件系統(tǒng) 所有后續(xù)操作,然后等待現(xiàn)有操作全部完成,這樣就可以保證數(shù)據(jù)不會處于操作的中間狀 態(tài)。但是在分布式文件系統(tǒng)中,由于考慮到網(wǎng)絡失效等問題,凍結(jié)分布式文件系統(tǒng)通常需要 等待較長的時間才能生效,這樣長時間的凍結(jié)會對分布式文件系統(tǒng)性能有較大的影響。而 本發(fā)明提出了一種以全部數(shù)據(jù)寫時拷貝來避免凍結(jié)分布式文件系統(tǒng)并迅速獲得一致狀態(tài) 的方法,可使得頻繁創(chuàng)建快照也不會對讀寫性能造成過大的影響。最后所應說明的是,以上實施例僅用以說明本發(fā)明的技術(shù)方案而非限制。盡管參 照實施例對本發(fā)明進行了詳細說明,本領(lǐng)域的普通技術(shù)人員應當理解,對本發(fā)明的技術(shù)方 案進行修改或者等同替換,都不脫離本發(fā)明技術(shù)方案的精神和范圍,其均應涵蓋在本發(fā)明 的權(quán)利要求范圍當中。
10
權(quán)利要求
1.一種帶有快照功能的分布式文件系統(tǒng)中的數(shù)據(jù)寫方法,包括步驟1)、分布式文件系統(tǒng)中的一客戶端要完成對一文件的寫操作,向該分布式文件系 統(tǒng)的服務器端請求與該操作有關(guān)的布局;步驟幻、所述服務器端查詢元數(shù)據(jù),得到所述文件的映射關(guān)系,并在所述分布式文件系 統(tǒng)的存儲設(shè)備中為所述文件預留存儲空間,生成與所述操作有關(guān)的布局;步驟;3)、所述客戶端根據(jù)所述布局在所述存儲設(shè)備上實現(xiàn)對所述文件的寫操作,并將 所述寫操作的數(shù)據(jù)寫入所述預留的存儲空間;步驟4)、所述客戶端完成所述寫操作后,由所述服務器端實現(xiàn)對與所述文件有關(guān)的元 數(shù)據(jù)的修改。
2.根據(jù)權(quán)利要求1所述的帶有快照功能的分布式文件系統(tǒng)中的數(shù)據(jù)寫方法,其特征在 于,在所述的步驟幻中,所述的生成與所述操作有關(guān)的布局包括根據(jù)元數(shù)據(jù)查詢結(jié)果判 斷所要請求的布局是否被其他快照引用,若已經(jīng)被其他快照引用,生成一份只讀的布局和 一份可寫的布局,若未被其他快照引用,則只生成一份可讀可寫的布局。
3.根據(jù)權(quán)利要求2所述的帶有快照功能的分布式文件系統(tǒng)中的數(shù)據(jù)寫方法,其特征在 于,在所述的步驟3)中,將所述寫操作的數(shù)據(jù)寫入所述預留的存儲空間包括將所述寫操 作的數(shù)據(jù)寫入所述可寫的布局或?qū)懭胨隹勺x可寫的布局中。
4.根據(jù)權(quán)利要求1所述的帶有快照功能的分布式文件系統(tǒng)中的數(shù)據(jù)寫方法,其特征在 于,在所述的步驟2)中,預留的存儲空間的信息保存在內(nèi)存中。
5.根據(jù)權(quán)利要求1所述的帶有快照功能的分布式文件系統(tǒng)中的數(shù)據(jù)寫方法,其特征在 于,所述的步驟4)包括步驟4-1)、所述客戶端在完成寫存儲設(shè)備的操作后,向服務器端發(fā)送布局提交修改信 息;所述的布局提交修改信息中包括有與寫操作有關(guān)的文件的屬性信息;步驟4- 、所述服務器端接收到所述布局提交修改信息后,根據(jù)該信息更新元數(shù)據(jù)。
6.根據(jù)權(quán)利要求5所述的帶有快照功能的分布式文件系統(tǒng)中的數(shù)據(jù)寫方法,其特征在 于,所述的步驟4-2)包括步驟4-2-1)、將所述的預留的存儲空間加入或者替換與所述寫操作有關(guān)的文件的原有 部分,以寫時拷貝的方式修改文件映射,生成一個新的文件系統(tǒng)樹;步驟4-2-2)、所述分布式文件系統(tǒng)執(zhí)行一個原子切換,將該文件系統(tǒng)的根切換到新的 文件系統(tǒng)樹。
7.一種帶有快照功能的分布式文件系統(tǒng)中的數(shù)據(jù)讀方法,包括步驟1)、分布式文件系統(tǒng)中的一客戶端要完成對一文件的讀操作,向該分布式文件系 統(tǒng)的服務器端請求與該操作有關(guān)的布局;步驟幻、所述服務器端查詢元數(shù)據(jù),得到所述文件的映射關(guān)系,生成與所述操作有關(guān)的 布局;步驟幻、所述客戶端根據(jù)所述布局在所述存儲設(shè)備上實現(xiàn)對所述文件的讀操作。
8.一種帶有快照功能的分布式文件系統(tǒng)中的數(shù)據(jù)寫方法,包括步驟1)、分布式文件系統(tǒng)中的一客戶端要完成對一文件的寫操作,向該分布式文件系 統(tǒng)的服務器端請求與該操作有關(guān)的布局;其中,所述的服務器端正在創(chuàng)建快照的過程中,所 述服務器端開啟全數(shù)據(jù)寫時拷貝的功能;步驟幻、所述服務器端查詢元數(shù)據(jù),得到所述文件的映射關(guān)系,并在所述分布式文件系 統(tǒng)的存儲設(shè)備中為所述文件預留存儲空間,生成與所述操作有關(guān)的布局;步驟幻、所述客戶端根據(jù)所述布局在所述存儲設(shè)備上實現(xiàn)對所述文件的寫操作,并將 所述寫操作的數(shù)據(jù)寫入所述預留的存儲空間;步驟4)、所述客戶端完成所述寫操作后,由所述服務器端實現(xiàn)對與所述文件有關(guān)的元 數(shù)據(jù)的修改。
9.根據(jù)權(quán)利要求8所述的帶有快照功能的分布式文件系統(tǒng)中的數(shù)據(jù)寫方法,其特征在 于,在所述的步驟2~)中,所生成的布局包括一份只讀的布局和一份可寫的布局。
全文摘要
本發(fā)明提供一種帶有快照功能的分布式文件系統(tǒng)中的數(shù)據(jù)寫方法,包括分布式文件系統(tǒng)中的一客戶端要完成對一文件的寫操作,向該分布式文件系統(tǒng)的服務器端請求與該操作有關(guān)的布局;所述服務器端查詢元數(shù)據(jù),得到所述文件的映射關(guān)系,并在所述分布式文件系統(tǒng)的存儲設(shè)備中為所述文件預留存儲空間,生成與所述操作有關(guān)的布局;所述客戶端根據(jù)所述布局在所述存儲設(shè)備上實現(xiàn)對所述文件的寫操作,并將所述寫操作的數(shù)據(jù)寫入所述預留的存儲空間;所述客戶端完成所述寫操作后,由所述服務器端實現(xiàn)對與所述文件有關(guān)的元數(shù)據(jù)的修改。本發(fā)明的方法使得對分布式文件系統(tǒng)的讀寫具有可靠性,且為創(chuàng)建快照創(chuàng)造了方便。
文檔編號G06F11/14GK102073739SQ201110026999
公開日2011年5月25日 申請日期2011年1月25日 優(yōu)先權(quán)日2011年1月25日
發(fā)明者劉振軍, 劉超, 張軍偉, 張景旺, 沈玉良, 郭明陽 申請人:中國科學院計算技術(shù)研究所, 天津中科藍鯨信息技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
漠河县| 江川县| 原阳县| 天台县| 东乡族自治县| 永丰县| 松桃| 禹州市| 五台县| 镇安县| 汾西县| 大埔县| 玉田县| 嫩江县| 北京市| 新闻| 浮梁县| 浙江省| 陇南市| 梁山县| 台江县| 辽阳县| 无为县| 建宁县| 巫山县| 垦利县| 乳山市| 诏安县| 华宁县| 喀喇沁旗| 深州市| 土默特右旗| 鹤庆县| 兴文县| 文昌市| 和林格尔县| 日土县| 祁阳县| 光泽县| 新宁县| 郁南县|