文件管理系統(tǒng)和文件管理方法
【專利摘要】提供一種文件管理系統(tǒng)和文件管理方法,其能夠通過同樣從備份進程側(cè)使用虛擬文件系統(tǒng)元數(shù)據(jù)庫的配置來有效地執(zhí)行備份進程。解決方案:所述文件管理系統(tǒng)具備:虛擬驅(qū)動器控制器(110),其控制虛擬驅(qū)動器(5);元數(shù)據(jù)庫(210),其包含用于使虛擬文件與保存在存儲設(shè)備(6)中的物理文件相關(guān)聯(lián)的信息;備份控制器(120),其管理文件的所述備份進程;以及在備份進程管理中使用的備份狀態(tài)管理數(shù)據(jù)庫(220)。所述虛擬驅(qū)動器控制器(110)將已更新文件信息登記在所述備份狀態(tài)管理數(shù)據(jù)庫(220)中。所述備份控制器(120)參考所述備份狀態(tài)管理數(shù)據(jù)庫(220)和所述元數(shù)據(jù)庫(210),并備份所述文件。
【專利說明】文件管理系統(tǒng)和文件管理方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及文件管理系統(tǒng)和文件管理方法,特別地,涉及其特征在于備份處理的文件管理系統(tǒng)和文件管理方法。
【背景技術(shù)】
[0002]文件服務(wù)器廣泛用于跨通信網(wǎng)絡(luò)地存儲計算機文件。文件服務(wù)器在服務(wù)器操作系統(tǒng)(OS)的文件系統(tǒng)上提供文件夾樹,從而使用戶能夠利用存取控制來共享驅(qū)動器根和特定文件夾。
[0003]共享文件和文件夾的用戶可以跨通信網(wǎng)絡(luò)從它們的終端(例如,PC和移動電話)瀏覽文件。他們也可以基于由文件服務(wù)器的系統(tǒng)管理員設(shè)定的存取授權(quán)來打開、關(guān)閉、創(chuàng)建、移動、重命名和復(fù)制任何文件。在這里,用戶可以是人或計算機系統(tǒng),諸如機器和軟件程序。
[0004]當(dāng)用戶打開存儲在服務(wù)器上的文件時,他們從用戶終端瀏覽服務(wù)器上的文件;接著,用戶終端請求文件服務(wù)器傳輸文件,從而指定這些文件;并且,文件服務(wù)器跨通信網(wǎng)絡(luò)將這些文件傳輸?shù)接脩艚K端。
[0005]存在一種稱為RAID (廉價磁盤冗余陣列)的常見技術(shù)來使文件服務(wù)器上的硬盤設(shè)備更快和/或更加冗余。
[0006]RAID是一種組合多個硬盤來使它們被識別為用于操作系統(tǒng)的一個虛擬硬盤驅(qū)動器的技術(shù)。它主要用于改善可靠性。此外,RAID和備份軟件程序常常一起使用來確保連續(xù)服務(wù)且獲得高階安全性。
[0007]現(xiàn)有技術(shù)文件
[0008]專利文件
[0009]專利文件I JP特開2011-129039號公報。
【發(fā)明內(nèi)容】
[0010]本發(fā)明將要解決的問題
[0011]然而,當(dāng)RAID和備份軟件程序一起使用時,備份軟件程序無法區(qū)分由RAID虛擬化的文件系統(tǒng)與通常的文件系統(tǒng)。即使RAID上的文件系統(tǒng)在數(shù)據(jù)庫中包含存取歷史和/或元數(shù)據(jù),備份軟件程序仍然無法使用數(shù)據(jù)庫中的信息來用于備份處理。因此,使備份軟件程序以與通常的文件系統(tǒng)一樣的方式處理RAID文件系統(tǒng),使備份處理效率低下。
[0012]因此,本發(fā)明的目的在于通過將多個存儲設(shè)備組合為RAID來構(gòu)造虛擬文件系統(tǒng),且讓備份處理器使用虛擬文件的元數(shù)據(jù)庫解決這個問題,從而提供能有效地執(zhí)行備份的文件管理系統(tǒng)和文件管理方法。
[0013]解決技術(shù)問題的手段
[0014]本發(fā)明的目的在于解決前述問題,其具有以下特征。
[0015](技術(shù)方案I)
[0016]本發(fā)明的技術(shù)方案I有以下特征。[0017]S卩,技術(shù)方案I的文件管理系統(tǒng)控制多個存儲設(shè)備,且包括:虛擬驅(qū)動器控制器,其控制由所述存儲設(shè)備的任意集合組成的虛擬驅(qū)動器;元數(shù)據(jù)庫,其包含用來使所述虛擬驅(qū)動器上的虛擬文件與存儲在所述存儲設(shè)備中的物理文件相關(guān)聯(lián)的信息;備份控制器,其管理存儲在所述虛擬驅(qū)動器中的文件的備份;以及備份狀態(tài)管理數(shù)據(jù)庫,其用來管理由所述備份控制器執(zhí)行的備份進程;其中,所述虛擬驅(qū)動器控制器將關(guān)于已更新文件的信息登記到所述備份狀態(tài)管理數(shù)據(jù)庫中;并且,參考所述備份狀態(tài)管理數(shù)據(jù)庫和所述元數(shù)據(jù)庫,所述備份控制器執(zhí)行備份。
[0018](技術(shù)方案2)
[0019]除了上文描述的技術(shù)方案I的特征之外,本發(fā)明的技術(shù)方案2具有以下特征。
[0020]S卩,所述備份控制器通過由文件更新事件觸發(fā)而執(zhí)行備份。
[0021](技術(shù)方案3)
[0022]除了上文描述的技術(shù)方案I或2的特征之外,本發(fā)明的技術(shù)方案3具有以下特征。
[0023]即,所述虛擬驅(qū)動器控制器控制由用戶操作的主虛擬驅(qū)動器和在所述主虛擬驅(qū)動器中備份數(shù)據(jù)的備份虛擬驅(qū)動器。
[0024](技術(shù)方案4)
[0025]除了上文描述的技術(shù)方案1、2或3的特征之外,本發(fā)明的技術(shù)方案4具有以下特征。
[0026]S卩,所述備份控制器監(jiān)控組成所述文件管理系統(tǒng)的文件管理服務(wù)器的負載,且當(dāng)所述負載大于預(yù)定閾值時延遲備份進程。
[0027](技術(shù)方案5)
[0028]除了上文描述的技術(shù)方案1、2、3或4的特征之外,本發(fā)明的技術(shù)方案5具有以下特征。
[0029]S卩,當(dāng)出現(xiàn)文件存取錯誤時,參考所述元數(shù)據(jù)庫,所述虛擬驅(qū)動器控制器通過獲得與有錯誤的文件相對應(yīng)的備份文件來恢復(fù)文件。
[0030](技術(shù)方案6)
[0031]除了上文描述的技術(shù)方案5的特征之外,本發(fā)明的技術(shù)方案6具有以下特征。
[0032]S卩,所述虛擬驅(qū)動器控制器的恢復(fù)包含:所述備份控制器的通過復(fù)制所述備份文件來創(chuàng)建恢復(fù)文件,以及所述虛擬備份控制器的通過重寫所述元數(shù)據(jù)庫來將到有錯誤的所述文件的鏈接更新成到所述恢復(fù)文件的鏈接。
[0033](技術(shù)方案7)
[0034]除了上文描述的技術(shù)方案1、2、3、4、5或6的特征之外,本發(fā)明的技術(shù)方案7具有以下特征。
[0035]S卩,提供存儲恢復(fù)控制器,其執(zhí)行存儲恢復(fù)來恢復(fù)在出現(xiàn)錯誤的存儲設(shè)備中管理的數(shù)據(jù),其中,在執(zhí)行存儲恢復(fù)時,所述存儲恢復(fù)控制器獲得包含在出現(xiàn)所述錯誤的所述存儲設(shè)備中的所述數(shù)據(jù)的復(fù)制數(shù)據(jù),將所述復(fù)制數(shù)據(jù)復(fù)制到另一個存儲設(shè)備,所述另一個存儲設(shè)備組成與包含具有所述錯誤的所述存儲設(shè)備的所述虛擬驅(qū)動器相同的虛擬驅(qū)動器,且將所述鏈接信息重寫在所述元數(shù)據(jù)庫中。
[0036](技術(shù)方案8)
[0037]除了上文描述的技術(shù)方案1、2、3、4、5、6或7的特征之外,本發(fā)明的技術(shù)方案8具有以下特征。
[0038]S卩,提供系統(tǒng)初始化控制器,其執(zhí)行系統(tǒng)恢復(fù)進程來從備份數(shù)據(jù)恢復(fù)系統(tǒng),其中,所述元數(shù)據(jù)庫具有主元數(shù)據(jù)庫和備份元數(shù)據(jù)庫,且在執(zhí)行所述系統(tǒng)恢復(fù)進程時,所述系統(tǒng)初始化控制器基于所述備份元數(shù)據(jù)庫獲得已備份文件來復(fù)制已備份文件。
[0039](技術(shù)方案9)
[0040]本發(fā)明的技術(shù)方案9具有以下特征。
[0041]S卩,技術(shù)方案9的文件管理方法控制多個存儲設(shè)備,且包括:用所述存儲設(shè)備的任意集合組成虛擬驅(qū)動器;將虛擬文件和存儲在所述存儲設(shè)備中的物理文件登記在元數(shù)據(jù)庫中,同時使所述虛擬文件與所述物理文件相關(guān)聯(lián);將關(guān)于已更新文件的信息登記在備份狀態(tài)管理數(shù)據(jù)庫中;以及
[0042]參考所述備份狀態(tài)管理數(shù)據(jù)庫和所述元數(shù)據(jù)庫來執(zhí)行文件備份。
[0043](技術(shù)方案10)
[0044]除了上文描述的技術(shù)方案9的特征之外,本發(fā)明的技術(shù)方案10具有以下特征。
[0045]即,通過由文件更新事件觸發(fā)而執(zhí)行文件的備份。
[0046](技術(shù)方案11)
[0047]除了上文描述的技術(shù)方案9或10的特征之外,本發(fā)明的技術(shù)方案11具有以下特征。
[0048]S卩,組成所述虛擬驅(qū)動器進一步包括:組成由用戶操作的主虛擬驅(qū)動器;以及組成在所述主虛擬驅(qū)動器中備份數(shù)據(jù)的備份虛擬驅(qū)動器。
[0049](技術(shù)方案12)
[0050]除了上文描述的技術(shù)方案9、10或11的特征之外,本發(fā)明的技術(shù)方案12具有以下特征。
[0051]S卩,當(dāng)包含文件管理系統(tǒng)的文件管理服務(wù)器的負載大于預(yù)定閾值時,延遲備份所述文件。
[0052](技術(shù)方案13)
[0053]除了上文描述的技術(shù)方案9、10、11或12的特征之外,本發(fā)明的技術(shù)方案13具有以下特征。
[0054]即,文件管理方法進一步包括當(dāng)出現(xiàn)文件存取錯誤時,參考所述元數(shù)據(jù)庫,通過獲得與有錯誤的所述文件相對應(yīng)的備份文件來恢復(fù)文件。
[0055](技術(shù)方案14)
[0056]除了上文描述的技術(shù)方案13的特征之外,本發(fā)明的技術(shù)方案14具有以下特征。
[0057]S卩,恢復(fù)所述文件進一步包括通過復(fù)制所述備份文件來創(chuàng)建恢復(fù)文件,并且,通過重寫所述元數(shù)據(jù)庫來將到有錯誤的所述文件的鏈接更新成到所述恢復(fù)文件的鏈接。
[0058](技術(shù)方案15)
[0059]除了上文描述的技術(shù)方案9、10、11、12、13或14的特征之外,本發(fā)明的技術(shù)方案15具有以下特征。
[0060]S卩,文件管理方法進一步包括:接受執(zhí)行存儲恢復(fù)進程來恢復(fù)在出現(xiàn)錯誤的存儲設(shè)備中管理的數(shù)據(jù);當(dāng)在所述存儲恢復(fù)進程中獲得在所述存儲設(shè)備中包含的數(shù)據(jù)、且將所述數(shù)據(jù)復(fù)制到組成相同虛擬驅(qū)動器的另一個存儲設(shè)備時,在所述元數(shù)據(jù)庫中更新鏈接信肩、O
[0061](技術(shù)方案16)
[0062]除了上文描述的技術(shù)方案9、10、11、12、13、14或15的特征之外,本發(fā)明的技術(shù)方案15具有以下特征。
[0063]S卩,提供主元數(shù)據(jù)庫和備份數(shù)據(jù)庫作為元數(shù)據(jù)庫,且文件管理方法進一步包括:執(zhí)行系統(tǒng)恢復(fù)進程來從備份恢復(fù)系統(tǒng);在所述系統(tǒng)恢復(fù)進程中,通過使用所述元數(shù)據(jù)庫來獲得已備份文件,復(fù)制所述已備份文件來用于恢復(fù)。
[0064]本發(fā)明的有益效果
[0065]利用如上所述的本發(fā)明的技術(shù)方案I和技術(shù)方案9,由于使用備份狀態(tài)數(shù)據(jù)庫和元數(shù)據(jù)庫來備份文件,故備份處理器能利用虛擬文件系統(tǒng)的元數(shù)據(jù)庫,從而改進備份效率。
[0066]除此之外,由于備份狀態(tài)管理數(shù)據(jù)庫實時地管理增量備份,故可僅通過檢查備份狀態(tài)數(shù)據(jù)庫來檢測已更新文件。即,由于與歷史備份數(shù)據(jù)的比較的增量更新管理是不必要的,故更迅速的進程是可能的。利用傳統(tǒng)的備份軟件程序,在前述增量更新管理進程中必須讀取所有數(shù)據(jù),那么必須通過安排時間來進行成批程序而在非高峰時段(諸如午夜十二點)進行備份。相比之下,利用本發(fā)明,可以在無需讀取所有數(shù)據(jù)的情況下檢測增量數(shù)據(jù)因此更靈活操作是可能的,例如在白天進行備份。
[0067]利用上述的本發(fā)明的技術(shù)方案2和技術(shù)方案10,將通過由文件更新事件觸發(fā)而執(zhí)行備份進程。利用此方法,能實時地執(zhí)行備份。
[0068]利用上述的本發(fā)明的技術(shù)方案3和技術(shù)方案11,提供將要由用戶操作的主虛擬驅(qū)動器和用于在主虛擬驅(qū)動器中備份數(shù)據(jù)的備份虛擬驅(qū)動器。即,由于主虛擬驅(qū)動器和備份虛擬驅(qū)動器利用相同的虛擬化方法管理,故一旦實例化(安裝)備份虛擬驅(qū)動器,就能立即向用戶提供備份數(shù)據(jù),而無需將在備份虛擬驅(qū)動器上的備份數(shù)據(jù)恢復(fù)到主虛擬驅(qū)動器。
[0069]利用上述的本發(fā)明的技術(shù)方案4和技術(shù)方案12,當(dāng)管理文件管理系統(tǒng)的文件管理服務(wù)器的負載超出預(yù)定閾值時,文件備份進程將延遲。因此,備份中的副作用(諸如錯誤和性能降低)能得到最小化。
[0070]利用上述的本發(fā)明的技術(shù)方案5和技術(shù)方案13,當(dāng)出現(xiàn)文件存取錯誤時通過參考元數(shù)據(jù)庫且獲得與有錯誤的文件相對應(yīng)的備份文件來恢復(fù)文件。即,由于是通過虛擬驅(qū)動器到物理存儲驅(qū)動器的存取的錯誤觸發(fā)的,故文件可以在沒有系統(tǒng)管理員的干預(yù)下恢復(fù)。另外,由于可以僅僅選擇有存取錯誤的文件來進行恢復(fù),故恢復(fù)時間可縮短,且用戶等待時間可得以最小化。
[0071]利用上述的本發(fā)明的技術(shù)方案6和技術(shù)方案14,前述文件恢復(fù)進程包含:通過復(fù)制備份文件來創(chuàng)建恢復(fù)文件的步驟,以及通過更新元數(shù)據(jù)庫而將到錯誤文件的鏈接更新成到恢復(fù)文件的鏈接的步驟。因此,可透明地存取虛擬驅(qū)動器,那么對不嘗試存取有錯誤的文件的最終用戶的影響可得以最小化。
[0072]利用上述的本發(fā)明的技術(shù)方案7和技術(shù)方案15,執(zhí)行存儲恢復(fù)進程以便恢復(fù)有錯誤的存儲設(shè)備上的數(shù)據(jù)。此存儲恢復(fù)進程獲得包含在存儲設(shè)備中的數(shù)據(jù)的數(shù)據(jù)副本,將該數(shù)據(jù)復(fù)制到另一個存儲器,另一個存儲器組成與有錯誤的存儲設(shè)備所屬于的虛擬驅(qū)動器相同的虛擬驅(qū)動器,且重寫元數(shù)據(jù)庫中的鏈接信息。因此,當(dāng)在包含虛擬驅(qū)動器的存儲組中的特定存儲設(shè)備上中出現(xiàn)錯誤時,無需恢復(fù)整個虛擬驅(qū)動器,通過僅僅從備份恢復(fù)有錯誤的存儲設(shè)備中的文件從而限制待備份的文件,使有效且快速恢復(fù)變得可能。因此,嘗試存取有錯誤的存儲設(shè)備的用戶的恢復(fù)等待時間變短。此外,由于在恢復(fù)期間能透明地存取虛擬驅(qū)動器,故能消除對不嘗試存取有錯誤的存儲驅(qū)動器的用戶的影響。
[0073]此外,即便當(dāng)從服務(wù)器拆離有錯誤的存儲驅(qū)動器時,文件自動地從備份數(shù)據(jù)恢復(fù)到虛擬驅(qū)動器的自由空間,因此系統(tǒng)操作員的手動恢復(fù)操作是不必要的,且無需從有錯誤的存儲驅(qū)動器挽救數(shù)據(jù),從而能夠立即分離存儲驅(qū)動器。
[0074]利用上述的本發(fā)明的技術(shù)方案8和技術(shù)方案16,提供主元數(shù)據(jù)庫和備份元數(shù)據(jù)庫作為元數(shù)據(jù)庫,且執(zhí)行系統(tǒng)恢復(fù)進程來從備份數(shù)據(jù)恢復(fù)系統(tǒng)。此處,系統(tǒng)恢復(fù)進程基于備份元數(shù)據(jù)庫獲得備份文件,且復(fù)制備份文件來用于恢復(fù)。即,不僅能從備份恢復(fù)備份文件,而且還能從備份恢復(fù)具有配置信息的主元數(shù)據(jù)庫。因此,即便當(dāng)發(fā)生無法恢復(fù)的錯誤(諸如服務(wù)器丟失)時,仍能從備份數(shù)據(jù)恢復(fù)虛擬驅(qū)動器的狀態(tài)。
[0075]另外,當(dāng)用戶向系統(tǒng)恢復(fù)進程尚未完成的數(shù)據(jù)發(fā)送讀取請求時,可對該數(shù)據(jù)的恢復(fù)進程給出高優(yōu)先權(quán),從而確保在系統(tǒng)恢復(fù)進程期間對虛擬驅(qū)動器的透明存取。
【專利附圖】
【附圖說明】
[0076][圖1]這是描繪文件管理系統(tǒng)的實施例的環(huán)境的圖。
[0077][圖2]這是描繪文件管理系統(tǒng)的實施例的功能的框圖。
[0078][圖3]這是文件更新進程的實施例的流程圖。
[0079][圖4]這是備份登記進程的實施例的流程圖。
[0080][圖5]這是備份進程的實施例的流程圖。
[0081][圖6]這是恢復(fù)進程的實施例的流程圖。
[0082][圖7]這是異步備份進程的實施例的流程圖。
[0083][圖8]這是主存儲恢復(fù)進程的實施例的流程圖。
[0084][圖9]這是備份存儲恢復(fù)進程的實施例的流程圖。
[0085][圖10]這是系統(tǒng)恢復(fù)進程的實施例的流程圖。
[0086][圖11]這是元數(shù)據(jù)庫的實例。
【具體實施方式】
[0087]將在下文參考附圖來描述本發(fā)明的實施例。
[0088]本發(fā)明的實施例中的文件管理系統(tǒng)控制多個存儲設(shè)備6。如圖1中所示的實例,這個文件管理系統(tǒng)用來經(jīng)由通信網(wǎng)絡(luò)3管理文件。在圖1中所示的實例中,至少一個服務(wù)器計算機I和至少一個用戶終端2連接到提供文件管理系統(tǒng)的文件管理服務(wù)器4。
[0089]一個以上存儲設(shè)備6連接到文件管理服務(wù)器4。文件管理服務(wù)器4格式化且安裝這些存儲設(shè)備6,從而通過使存儲設(shè)備6中的文件能夠被看成是虛擬樹結(jié)構(gòu)來提供虛擬驅(qū)動器5的功能性。
[0090]在這個實施例中,提供兩個虛擬驅(qū)動器5,即主虛擬驅(qū)動器5a和備份虛擬驅(qū)動器5b。主虛擬驅(qū)動器5a是可經(jīng)由通信網(wǎng)絡(luò)3由用戶操作的驅(qū)動器。相比之下,備份虛擬驅(qū)動器5b是主虛擬驅(qū)動器5a的備份,從而在主虛擬驅(qū)動器5a中保存數(shù)據(jù)的復(fù)制版本。總體上,這個備份虛擬驅(qū)動器5b不直接由用戶操作。[0091]利用這個文件管理系統(tǒng),存取文件管理服務(wù)器4的用戶(也就是,服務(wù)器計算機I和用戶終端2)能通過指定文件路徑來存取虛擬驅(qū)動器5 (更精確地,主虛擬驅(qū)動器5)上的文件,而無需關(guān)注物理文件存儲在哪個存儲設(shè)備6上。當(dāng)文件管理服務(wù)器4從用戶接收對虛擬驅(qū)動器5的存取請求時,文件管理服務(wù)器4使用響應(yīng)來答復(fù)用戶。
[0092]在這個實施例中,以下解釋是基于存儲設(shè)備6是硬盤驅(qū)動器的假設(shè)的。然而,存儲設(shè)備6不需要必須是硬盤驅(qū)動器。它可以是任何永久存儲器設(shè)備:諸如SSD (固態(tài)驅(qū)動器)或USB連接閃存;經(jīng)由以太網(wǎng)連接的NAS (網(wǎng)絡(luò)附加存儲器)或DAS (直接附加存儲器);經(jīng)由光纖通道連接的SAN (存儲區(qū)域網(wǎng)絡(luò));或在因特網(wǎng)上的云存儲服務(wù)器。
[0093]圖2是描繪文件管理系統(tǒng)的實施例的框圖。
[0094]如圖2所示,一個以上存儲設(shè)備6連接到文件管理服務(wù)器4。在這個實施例中,連接六個存儲設(shè)備6,即存儲設(shè)備6a、6b、6c、6d、6e和6f,其中將6a、6b、6c指派給主存儲組7且將6d、6e和6f指派給備份存儲組8。主存儲組7包括將要由用戶操作的主虛擬驅(qū)動器5a,且備份存儲組8包含備份虛擬驅(qū)動器5b,將在前述主虛擬驅(qū)動器5a中的數(shù)據(jù)備份到備份虛擬驅(qū)動器5b。下面解釋的虛擬驅(qū)動器控制器110控制這個主虛擬驅(qū)動器5a和這個備份虛擬驅(qū)動器5b。
[0095]如迄今為止所示的,在這個實施例中,主虛擬驅(qū)動器5a和虛擬驅(qū)動器5b由虛擬驅(qū)動器5利用相同的方法控制,一旦實例化(安裝)虛擬驅(qū)動器5b,就可能立即恢復(fù)備份數(shù)據(jù)且向用戶提供數(shù)據(jù)。
[0096]虛擬驅(qū)動器5的前述配置僅僅是實例;文件管理服務(wù)器4的管理員能任意地配置虛擬驅(qū)動器5。舉例來說,管理員可以配置一個以上主虛擬驅(qū)動器5a和備份虛擬驅(qū)動器5b,以及任意數(shù)目的存儲設(shè)備6。
[0097]由于存儲設(shè)備6上分配給虛擬驅(qū)動器6的區(qū)域的大小是任意的,故存儲設(shè)備6的僅僅部分區(qū)域能分配給特定虛擬驅(qū)動器5。因此,將存儲設(shè)備6的一個區(qū)域分配給主虛擬驅(qū)動器5b且將同一存儲設(shè)備6的另一區(qū)域分配給備份虛擬驅(qū)動器5b在技術(shù)上是可能的。然而,利用這種類型的分配,當(dāng)在存儲設(shè)備6上出現(xiàn)錯誤時,主虛擬驅(qū)動器和備份虛擬驅(qū)動器可能同時不可操作。因此,分配給主虛擬驅(qū)動器5a的存儲設(shè)備6和分配給備份虛擬驅(qū)動器5b的存儲設(shè)備6應(yīng)該物理上分離。
[0098]在上文描述的配置中,文件管理服務(wù)器4控制存儲設(shè)備6 ;如圖2中所示,文件管理服務(wù)器4包括虛擬驅(qū)動器控制器110、備份控制器120、系統(tǒng)初始化控制器130、存儲恢復(fù)控制器140、網(wǎng)絡(luò)控制器150、元數(shù)據(jù)庫210、備份狀態(tài)管理數(shù)據(jù)庫220和操作歷史管理數(shù)據(jù)庫 230。
[0099]在這個實施例中,假設(shè)文件管理服務(wù)器4是單個服務(wù)器。然而,虛擬驅(qū)動器控制器110、備份控制器120、系統(tǒng)初始化控制器120、存儲恢復(fù)控制器130、存儲恢復(fù)控制器140、網(wǎng)絡(luò)控制器150、元數(shù)據(jù)庫210、備份狀態(tài)管理數(shù)據(jù)庫220和操作歷史管理數(shù)據(jù)庫230可跨彼此通信的多個文件管理服務(wù)器4分布。此外,有可能做成一種配置,使得:一些文件管理服務(wù)器4管理主虛擬驅(qū)動器5a,其他文件管理服務(wù)器4管理備份這些主虛擬驅(qū)動器5a的備份虛擬驅(qū)動器5b,其中文件管理服務(wù)器4彼此通信。
[0100](虛擬驅(qū)動器控制器110)
[0101]虛擬驅(qū)動器控制器110控制前述的主虛擬驅(qū)動器5a和備份虛擬驅(qū)動器5b。[0102]虛擬驅(qū)動器控制器110檢索存儲設(shè)備6上的物理文件,且響應(yīng)于來自用戶的文件存取請求而發(fā)送這些物理文件。響應(yīng)于來自用戶的文件更新請求,虛擬驅(qū)動器控制器110也更新文件且在操作歷史管理數(shù)據(jù)庫230中登記更新歷史。另外,當(dāng)出現(xiàn)文件存取錯誤時,虛擬驅(qū)動器控制器110使用備份文件來執(zhí)行恢復(fù)進程。
[0103](備份控制器120)
[0104]備份控制器120管理存儲在前述主虛擬驅(qū)動器5a中的文件的備份。
[0105]通過定期地執(zhí)行備份進程,這個備份控制器120將存儲在主虛擬驅(qū)動器5b上的文件的備份創(chuàng)建在備份虛擬驅(qū)動器5b上。
[0106](系統(tǒng)初始化控制器130)
[0107]系統(tǒng)初始化控制器130執(zhí)行系統(tǒng)初始化進程。
[0108]當(dāng)創(chuàng)建新的文件管理系統(tǒng)時,系統(tǒng)初始化控制器130根據(jù)由系統(tǒng)管理員設(shè)置的配置來執(zhí)行系統(tǒng)初始化。另外,當(dāng)主虛擬驅(qū)動器5a發(fā)生無法恢復(fù)的錯誤(諸如服務(wù)器丟失)時,系統(tǒng)初始化控制器130執(zhí)行能從備份數(shù)據(jù)恢復(fù)系統(tǒng)的系統(tǒng)恢復(fù)進程。
[0109](存儲恢復(fù)控制器140)
[0110]存儲恢復(fù)控制器140執(zhí)行存儲恢復(fù)進程來恢復(fù)在有錯誤的存儲設(shè)備6中管理的數(shù)據(jù)。在存儲恢復(fù)進程中,當(dāng)拆離有錯誤的存儲設(shè)備6時,將與存儲在有錯誤的存儲設(shè)備6上的數(shù)據(jù)相同的對應(yīng)數(shù)據(jù)(備份數(shù)據(jù)或備份數(shù)據(jù)的原始數(shù)據(jù))復(fù)制到?jīng)]有錯誤的另一存儲設(shè)備6上。利用這個存儲恢復(fù)進程,即使當(dāng)拆離包括虛擬驅(qū)動器5的存儲設(shè)備6時,仍自動地確保數(shù)據(jù)冗余。
[0111](網(wǎng)絡(luò)控制器150)
[0112]網(wǎng)絡(luò)控制器150控制由虛擬驅(qū)動器5管理的文件的輸入和輸出。
[0113]網(wǎng)絡(luò)控制器150接收來自通信網(wǎng)絡(luò)3外部的文件存取請求,將這些文件存取請求發(fā)送到虛擬驅(qū)動器控制器110,且響應(yīng)于來自虛擬驅(qū)動器控制器110的指令而將文件發(fā)送到通信網(wǎng)絡(luò)3外部。
[0114](元數(shù)據(jù)庫210)
[0115]元數(shù)據(jù)庫210是包含用來使虛擬驅(qū)動器5上的虛擬文件與存儲在存儲設(shè)備6上的物理文件相關(guān)聯(lián)的信息的數(shù)據(jù)庫。
[0116]如圖11中所示,元數(shù)據(jù)庫210包含諸如以下各個信息:用于文件中的每一個的文件ID、虛擬路徑(虛擬驅(qū)動器5上的路徑)、物理路徑(存儲設(shè)備6上的路徑)、文件名、文件大小和更新日期。
[0117]如圖11中所示,元數(shù)據(jù)庫210由用于主虛擬驅(qū)動器5a的元數(shù)據(jù)庫210a和用于備份虛擬驅(qū)動器5b的元數(shù)據(jù)庫210b組成。
[0118]用于主虛擬驅(qū)動器5a的元數(shù)據(jù)庫2IOa管理在主虛擬驅(qū)動器5a中的文件,從而包含主虛擬驅(qū)動器5a上的路徑作為到每個文件信息的虛擬路徑。它也包含在主存儲組7上的路徑作為每個文件信息的物理路徑。
[0119]用于備份虛擬驅(qū)動器5b的元數(shù)據(jù)庫210b管理備份在虛擬驅(qū)動器5b中的文件,從而包含在備份虛擬驅(qū)動器5b上的路徑作為到每個文件信息的虛擬路徑。它也包含在備份存儲組8上的路徑作為每個文件信息的物理路徑。
[0120]用于主虛擬驅(qū)動器5a的元數(shù)據(jù)庫210a和用于主虛擬驅(qū)動器5b的元數(shù)據(jù)庫210b通過文件ID鏈接,因此使主數(shù)據(jù)與備份數(shù)據(jù)相關(guān)聯(lián)。舉例來說,如果用于主虛擬驅(qū)動器5a的元數(shù)據(jù)庫210a具有具特定文件id (例如,“I”)的文件,那么用于虛擬驅(qū)動器5b的元數(shù)據(jù)庫210b中的具有相同id (“I”)的文件是前面文件的備份數(shù)據(jù)。因此,為了找到對應(yīng)于特定主文件的備份文件,人們可以通過使用主文件的文件ID作為關(guān)鍵字來檢索用于備份虛擬驅(qū)動器5b的元數(shù)據(jù)庫210b。類似地,為了找到對應(yīng)于特定備份文件的主文件,人們可以使用特定備份文件的文件id作為關(guān)鍵字來檢索用于主虛擬驅(qū)動器5a的元數(shù)據(jù)庫210a。[0121 ] 元數(shù)據(jù)庫210可以包含除了到目前為止提到的數(shù)據(jù)之外的其他數(shù)據(jù),諸如文件創(chuàng)建日期、存取日期、文件屬性和存取權(quán)限信息。
[0122](備份狀態(tài)管理數(shù)據(jù)庫220)
[0123]備份狀態(tài)管理數(shù)據(jù)庫220是可用來管理由備份控制器120進行的備份的數(shù)據(jù)庫。
[0124]當(dāng)未備份的文件登記在備份狀態(tài)管理數(shù)據(jù)庫220中時,備份控制器120參考該登記信息,且將執(zhí)行必要的備份進程。
[0125](操作歷史管理數(shù)據(jù)庫230)
[0126]操作歷史管理數(shù)據(jù)庫230管理用戶對文件的操作的歷史。
[0127]如之前所示,當(dāng)虛擬驅(qū)動器控制器110更新文件時,將該更新歷史記錄到操作歷史管理數(shù)據(jù)庫230。接著,虛擬驅(qū)動器控制器110定期地檢查操作歷史管理數(shù)據(jù)庫230,從而記錄必須備份到備份狀態(tài)管理數(shù)據(jù)庫220中的文件。因此,僅僅記錄已更新文件作為用于備份的目標(biāo)。
[0128](每個進程的解釋)
[0129]將在下面解釋這個實施例的文件管理系統(tǒng)執(zhí)行的每個進程。
`[0130](文件存取進程)
[0131]首先,解釋這個實施例的文件存取進程。在這個解釋中,使用如下的實例,其中,圖1中的用戶終端2中的任何用戶終端存取存儲在虛擬驅(qū)動器5中的文件。
[0132]首先,文件管理服務(wù)器4跨通信網(wǎng)絡(luò)3接收來自用戶終端2的文件存取請求。此處,利用在虛擬驅(qū)動器5上的目錄路徑(例如,“V: ¥ SomeFolder ¥ file_a〃”)指定目標(biāo)文件。
[0133]虛擬驅(qū)動器控制器110經(jīng)由網(wǎng)絡(luò)控制器150接收這個文件存取請求。
[0134]虛擬驅(qū)動器控制器110使用虛擬驅(qū)動器5上的接收到的目錄路徑(“V: ¥SomeFolder ¥ file_a〃”)作為關(guān)鍵字來在用于主虛擬驅(qū)動器5a的元數(shù)據(jù)庫210a中檢索,且取回具有匹配關(guān)鍵字的文件信息。
[0135]虛擬驅(qū)動器控制器110使用包含在取回的文件信息中的物理路徑(存儲設(shè)備6上的路徑)讀取存儲在存儲設(shè)備6上的物理文件,且經(jīng)由網(wǎng)絡(luò)控制器150和通信網(wǎng)絡(luò)3將該等文件發(fā)送到用戶終端2。
[0136](文件更新進程)
[0137]下面將參考圖3解釋這個實施例中的文件更新進程。
[0138]在這個實施例中,虛擬驅(qū)動器控制器110執(zhí)行通過跨通信網(wǎng)絡(luò)3從用戶終端2接收文件更新請求而觸發(fā)的文件更新進程。
[0139]在圖3中的步驟SlOO中,文件管理服務(wù)器4經(jīng)由網(wǎng)絡(luò)控制器150接收由用戶終端2發(fā)送的數(shù)據(jù)。此數(shù)據(jù)包含已更新文件的二進制數(shù)據(jù)和虛擬驅(qū)動器5上的目錄路徑(例如,“V: ¥ SomeFolder ¥ file_a〃)。接著,執(zhí)行步驟 S101。[0140]在步驟SlOl中,虛擬驅(qū)動器控制器110使用虛擬驅(qū)動器5上的接收到的目錄路徑(“V: ¥ SomeFolder ¥ file_a〃)作為關(guān)鍵字來檢索用于主虛擬驅(qū)動器5a的元數(shù)據(jù)庫210a,且獲得匹配關(guān)鍵字的文件信息。如果包含在所獲得的文件信息中的虛擬路徑(虛擬驅(qū)動器5上的路徑)與由用戶終端2發(fā)送的路徑相同,那么虛擬驅(qū)動器控制器110解釋來自用戶終端2的請求是覆蓋更新,且利用從用戶終端發(fā)送的新的二進制數(shù)據(jù)來覆蓋存儲設(shè)備6的路徑的物理文件。接著,執(zhí)行步驟S102。
[0141]在步驟S102中,文件管理服務(wù)器4將已更新文件的文件ID記錄到操作歷史管理數(shù)據(jù)庫230中。接著,執(zhí)行步驟S103。
[0142]在步驟S103中,經(jīng)由網(wǎng)絡(luò)控制器150將文件更新完成通知發(fā)送到用戶終端2,從而讓用戶知道文件更新進程完成。接著,文件更新進程完成。
[0143](備份登記進程)
[0144]下面將參考圖4解釋這個實施例中的備份登記進程。
[0145]在這個實施例中,虛擬驅(qū)動器控制器110執(zhí)行備份登記進程,其是用來登記待備份的文件的進程。
[0146]在圖4中的步驟S200中,虛擬驅(qū)動器控制器110將由主虛擬驅(qū)動器5a管理的所有文件記錄到備份 狀態(tài)管理數(shù)據(jù)庫220中作為文件“待備份”。即,由于最初不存在備份文件,所以將所有文件登記為“待備份”來執(zhí)行完整備份。接著,執(zhí)行步驟S201。
[0147]在步驟S201中,虛擬驅(qū)動器控制器110等待直到預(yù)定等待時間期滿。接著,執(zhí)行步驟S202。
[0148]在步驟S202中,隨著預(yù)定等待時間期滿,執(zhí)行周期性備份登記進程。此處,虛擬驅(qū)動器控制器Iio獲得登記在操作歷史管理數(shù)據(jù)庫230中的文件ID,且將對應(yīng)于備份狀態(tài)管理數(shù)據(jù)庫220上的這些文件ID的數(shù)據(jù)登記或更新為〃待備份〃。接著,執(zhí)行步驟S201,且進程等待直到預(yù)定等待時間再次期滿(即,等待直到下一個周期性執(zhí)行時間)。
[0149](備份進程)
[0150]下面將參考圖5解釋這個實施例中的備份進程。
[0151]在這個實施例中的備份進程由備份控制器120以預(yù)定執(zhí)行時間窗口周期性地執(zhí)行。
[0152]這些進程時間窗口可由系統(tǒng)管理員等等任意地設(shè)定。特定日子的特定時間(例如,工作日的晚24:00到早5:00)可以針對備份執(zhí)行來指定。此執(zhí)行時間窗口可設(shè)定給所有時間槽,其意味著總是執(zhí)行備份進程,從而使實時備份是可能的。
[0153]在圖5中的步驟S300中,檢查當(dāng)前時間是否在預(yù)定執(zhí)行時間窗口內(nèi)。如果它是在執(zhí)行時間窗口內(nèi),那么執(zhí)行步驟S301,否則執(zhí)行步驟S300,進程等待直到下一個預(yù)定執(zhí)行時間窗口。
[0154]在步驟S301中,讀取備份狀態(tài)管理數(shù)據(jù)庫220且檢查是否存在登記為“待備份”的任何文件。如果存在登記為〃待備份〃的任何文件,那么執(zhí)行步驟S302。如果不存在登記為〃待備份〃的文件,那么再次執(zhí)行步驟S300。
[0155]在步驟S302中,備份控制器120監(jiān)控文件管理服務(wù)器4的負載(例如,CPU利用、存儲器使用、磁盤輸入/輸出(I/o)和/或網(wǎng)絡(luò)輸入/輸出(I/O?,且檢查其是否大于預(yù)定閾值(例如,50%的CPU利用、IGB的存儲器使用、IOMbps的磁盤I/O、IOMbps的網(wǎng)絡(luò)I/O)。如果它是大于預(yù)定閾值的,那么執(zhí)行步驟S300。如果不是大于預(yù)定閾值的,那么執(zhí)行步驟S303。
[0156]在步驟S303中,備份控制器120使用在備份狀態(tài)管理數(shù)據(jù)庫220中登記為“待備份”的文件信息(諸如文件ID)作為關(guān)鍵字檢索用于主虛擬驅(qū)動器5a的元數(shù)據(jù)庫210a,且獲得存取對應(yīng)于這些“待備份”文件的物理文件的鏈接信息(諸如URL)。接著,執(zhí)行步驟S304。
[0157]在步驟S304中,備份控制器120使用在步驟S303中獲得的鏈接信息存取物理文件,且創(chuàng)建這些物理文件的備份。備份存儲在備份存儲組8中的存儲設(shè)備6中的任一個中;虛擬驅(qū)動器控制器110基于諸如存儲設(shè)備6中每一個的使用的因素來確定使用哪個存儲設(shè)備6。接著,執(zhí)行步驟S305。
[0158]在步驟S305中,備份控制器120通知虛擬驅(qū)動器控制器110備份進程完成。此處,發(fā)送備份進程完成的文件的文件ID。虛擬驅(qū)動器控制器110在其接收此備份完成通知時獲得備份狀態(tài)管理數(shù)據(jù)庫220中關(guān)于備份完成的文件的數(shù)據(jù),且將該數(shù)據(jù)的狀態(tài)從“待備份”改變成“備份完成”。另外,虛擬驅(qū)動器控制器110更新用于備份虛擬驅(qū)動器5b的元數(shù)據(jù)庫210b以使原始文件與備份文件相關(guān)聯(lián)。
[0159]此處,如果沒有在用于備份虛擬驅(qū)動器5b的元數(shù)據(jù)庫210b中找到接收到的文件ID (亦即,首次備份),那么創(chuàng)建新的文件ID數(shù)據(jù),且將其登記在用于備份虛擬驅(qū)動器5b的元數(shù)據(jù)庫210b中。相反,如果在用于備份虛擬驅(qū)動器5b的元數(shù)據(jù)庫210b中找到接收到的文件ID(亦即,覆蓋備份),那么必要時重寫該數(shù)據(jù)的物理路徑。如果物理路徑不改變,那么
不需要重寫。
[0160]接著,執(zhí)行步驟S300 ;此進程重復(fù)直到預(yù)定執(zhí)行窗口結(jié)束。因此,在預(yù)定執(zhí)行時間窗口中,只要仍剩余“待備份”文件,那么備份進程繼續(xù)。
[0161]如上所述,這個實施例中的備份進程使用備份狀態(tài)管理數(shù)據(jù)庫220和元數(shù)據(jù)庫210來執(zhí)行備份,因此備份處理器能使用虛擬文件系統(tǒng)的元數(shù)據(jù)庫210,從而允許有效備份。
[0162]此外,由于備份狀態(tài)管理數(shù)據(jù)庫220實時地管理差異數(shù)據(jù),故可僅使用備份狀態(tài)管理數(shù)據(jù)庫220來檢測已更新文件。換句話說,與備份數(shù)據(jù)的比較是不必要的,從而減少處理時間。利用傳統(tǒng)備份程序,此差別比較進程包括讀取所有數(shù)據(jù),其使在午夜12點進行“定時成批執(zhí)行”,從而避開具有較高系統(tǒng)負載的操作時間變成必需的。相比之下,在這個實施例中,可以在無需讀取所有數(shù)據(jù)的情況下以較低系統(tǒng)負載獲得文件差別信息,從而得到靈活操作,諸如在白天執(zhí)行備份。
[0163]此外,當(dāng)文件管理服務(wù)器4的負載大于預(yù)定閾值時,保留文件備份進程,因此執(zhí)行到虛擬驅(qū)動器5的備份的副作用(諸如錯誤和性能降低)能得到最小化。
[0164](恢復(fù)進程)
[0165]在下面解釋在這個實施例中的恢復(fù)進程。這個實施例中的恢復(fù)進程由虛擬驅(qū)動器控制器110執(zhí)行,且當(dāng)出現(xiàn)文件存取錯誤時通過參考元數(shù)據(jù)庫210且獲得對應(yīng)于錯誤文件的備份文件來恢復(fù)文件。
[0166]參看圖6和圖7解釋這個恢復(fù)進程。
[0167]在圖6中的步驟S400中,文件管理服務(wù)器4經(jīng)由通信控制器150接收來自用戶終端2的文件存取請求。接著,執(zhí)行步驟S401。
[0168]在步驟S401中,虛擬驅(qū)動器控制器110使用包含在文件存取請求中的目錄路徑作為關(guān)鍵字來檢索用于主虛擬驅(qū)動器5a的元數(shù)據(jù)庫210a,且獲得匹配關(guān)鍵字的文件信息。虛擬驅(qū)動器控制器110使用包含在所獲得的文件信息中的物理路徑(存儲設(shè)備6上的路徑)存取存儲在存儲設(shè)備6上的物理文件。此處,如果出現(xiàn)文件存取錯誤,那么執(zhí)行步驟S402,在其中執(zhí)行恢復(fù)進程。反之,如果沒有文件存取錯誤,那么虛擬驅(qū)動器控制器110將所存取的物理文件發(fā)送到正請求的用戶終端2且完成執(zhí)行。
[0169]在步驟S402中,虛擬驅(qū)動器控制器110讀取備份狀態(tài)管理數(shù)據(jù)庫220且檢查是否已經(jīng)備份有錯誤的文件。如果已經(jīng)備份,那么執(zhí)行步驟S404。反之,如果沒有備份最新版本,那么執(zhí)行步驟S403,其中將錯誤消息發(fā)送到正請求的用戶終端2且完成執(zhí)行。
[0170]在步驟S404中,虛擬驅(qū)動器控制器110讀取元數(shù)據(jù)庫210且獲得關(guān)于已備份的物理文件(備份文件)的數(shù)據(jù)。具體地說,其使用出現(xiàn)文件存取錯誤的文件的文件ID作為關(guān)鍵字來檢索用于備份虛擬驅(qū)動器5b的元數(shù)據(jù)庫210b,且獲得備份文件的物理路徑。接著,執(zhí)行步驟S405。
[0171]在步驟S405中,檢查待恢復(fù)的文件的大小是否大于閾值。如果文件大小小于閾值,那么執(zhí)行步驟S406,其中同步地執(zhí)行恢復(fù)進程。如果文件大小大于或等于閾值,那么執(zhí)行步驟S408,其中異步地執(zhí)行恢復(fù)進程。
[0172]當(dāng)同步地執(zhí)行恢復(fù)進程時,在步驟S406中,通過基于在步驟S404中獲得的備份文件的物理路徑來復(fù)制備份文件而創(chuàng)建恢復(fù)文件。包括存儲組7的任何存儲設(shè)備6都可以是恢復(fù)目標(biāo);虛擬驅(qū)動器控制器110基于諸如每個存儲設(shè)備6的利用的因素來確定哪個存儲設(shè)備6存儲備份。在恢復(fù)之后,其在用于主虛擬驅(qū)動器5a的元數(shù)據(jù)庫210a中重寫鏈接信息,從而將引起文件存取錯誤的虛擬驅(qū)動器5上的目錄路徑(包含在用戶終端2在步驟S400中發(fā)送的文件存取請求中的虛擬驅(qū)動器5上的目錄路徑)鏈接到所恢復(fù)的物理文件。即,其更新關(guān)于有錯誤的文件的文件信息中的物理路徑,從而使物理路徑是所恢復(fù)的文件的物理路徑。接著,執(zhí)行步驟S407。
[0173]在步驟S407中,虛擬驅(qū)動器控制器110將所恢復(fù)的物理文件發(fā)送到正請求的用戶終端且完成執(zhí)打。
[0174]相反,當(dāng)異步地完成恢復(fù)時,在步驟S408中,將在步驟S404中獲得的物理文件數(shù)據(jù)發(fā)送到用戶終端2。此處,由于將此物理文件作為只讀發(fā)送,故如果來自用戶終端2的請求是寫入存取,那么發(fā)送一個錯誤。接著,執(zhí)行步驟S409。
[0175]在步驟S409中,在恢復(fù)隊列中登記關(guān)于文件存取錯誤的文件信息,使得其稍后由異步恢復(fù)進程處理。
[0176]圖7是描繪異步恢復(fù)進程的示意圖。提供此異步恢復(fù)進程,使得當(dāng)待恢復(fù)的文件較大時,可在稍后時間完成恢復(fù)進程,從而改進用戶響應(yīng)時間。
[0177]在異步恢復(fù)進程中,在圖7的步驟S500中確定當(dāng)前時間是否在預(yù)定執(zhí)行時間窗口內(nèi),如果它是在時間窗口內(nèi),那么執(zhí)行步驟S501。如果它不在時間窗口內(nèi),那么再次執(zhí)行步驟S500來等待下一個預(yù)定執(zhí)行時間窗口。此處,如同針對備份進程,用于異步恢復(fù)進程的執(zhí)行時間窗口可以由系統(tǒng)管理員任意地設(shè)定。接著,執(zhí)行步驟S501。
[0178]在步驟S501中,虛擬驅(qū)動器控制器110讀取恢復(fù)隊列。接著,執(zhí)行步驟S502。
[0179]在步驟S502中,檢查是否存在數(shù)據(jù)登記在恢復(fù)隊列中。如果存在數(shù)據(jù)登記在恢復(fù)隊列中,那么執(zhí)行步驟S502。如果不存在數(shù)據(jù)登記在恢復(fù)隊列中,那么再次執(zhí)行步驟S500。[0180]在步驟S503中,虛擬驅(qū)動器控制器110讀取元數(shù)據(jù)庫,且使用登記在恢復(fù)隊列中的數(shù)據(jù)獲得已備份的物理文件數(shù)據(jù)(備份文件)的物理路徑。具體地說,其使用在恢復(fù)隊列中登記的文件ID作為關(guān)鍵字來檢索用于備份虛擬驅(qū)動器5b的元數(shù)據(jù)庫210b,且獲得備份文件的物理路徑。接著,其創(chuàng)建恢復(fù)文件,從而使用所獲得的物理路徑來復(fù)制備份文件。包括存儲組7的任何存儲設(shè)備6可以是恢復(fù)目標(biāo);虛擬驅(qū)動器控制器110基于諸如每個存儲設(shè)備6的利用的因素來確定哪個存儲設(shè)備6存儲備份。在恢復(fù)之后,其在用于主虛擬驅(qū)動器5a的元數(shù)據(jù)庫210a中重寫鏈接信息,從而將引起文件存取錯誤的虛擬驅(qū)動器5的目錄路徑(包含在用戶終端2在步驟S400中發(fā)送的文件存取請求中的虛擬驅(qū)動器5上的目錄路徑)鏈接到所恢復(fù)的物理文件。即,其更新關(guān)于有錯誤的文件的文件信息中的物理路徑,從而使物理路徑是所恢復(fù)的文件的物理路徑。在針對在恢復(fù)隊列上登記的所有數(shù)據(jù)執(zhí)行此恢復(fù)創(chuàng)建步驟和鏈接更新步驟之后,再次執(zhí)行步驟S500。
[0181]如上所述,利用在這個實施例中的恢復(fù)進程,主虛擬驅(qū)動器5a由于物理存儲設(shè)備6上的文件存取錯誤的觸發(fā)而自動地恢復(fù)文件,因此文件恢復(fù)可以在沒有系統(tǒng)管理員的干預(yù)下進行。
[0182]此外,在文件恢復(fù)中,復(fù)制備份文件來創(chuàng)建恢復(fù)文件,且接著重寫元數(shù)據(jù)庫210,因此將到有錯誤的文件的鏈接更新成到恢復(fù)文件的鏈接;因此,針對錯誤恢復(fù)進程僅選擇有文件存取錯誤的文件。因此,恢復(fù)進程可以較短,從而縮短用戶嘗試使用有錯誤的文件的等待時間。此外,由于在恢復(fù)期間其他文件不受到影響,故有可能避免對除了嘗試存取有錯誤的文件的用戶之外的其他用戶的影響。
[0183]此處,在以上實施例中,僅僅恢復(fù)有錯誤的文件,但是也可以恢復(fù)其他文件。舉例來說,萬一存儲設(shè)備6本身發(fā)生故障時,可以恢復(fù)存儲有錯誤的文件的整個存儲設(shè)備6。
[0184](主存儲恢復(fù)進程)
[0185]下面將參考圖8解釋在這個實施例中的主存儲恢復(fù)進程。
[0186]當(dāng)在包括主存儲組7的存儲設(shè)備6中出現(xiàn)錯誤時,由存儲恢復(fù)控制器140執(zhí)行的在這個實施例中的主存儲恢復(fù)進程從在有錯誤的存儲設(shè)備6中管理的數(shù)據(jù)的備份數(shù)據(jù)恢復(fù)該數(shù)據(jù)。
[0187]在圖8中的步驟S600中,存儲恢復(fù)控制器140接收存儲設(shè)備6的強制移除請求。當(dāng)系統(tǒng)管理員執(zhí)行存儲設(shè)備6的移除操作時,發(fā)送此強制移除請求。接著,執(zhí)行步驟601。
[0188]在步驟S601中,更新用于主虛擬驅(qū)動器5a的元數(shù)據(jù)庫210a,從而使包含在存儲設(shè)備6中的數(shù)據(jù)的狀態(tài)成為可移去的“強制移除進程中”。此處,如果用戶嘗試存取包含在“強制移除進程中”存儲設(shè)備6中的數(shù)據(jù),那么,或者將備份數(shù)據(jù)作為僅供參考來發(fā)送,或者發(fā)送文件存取錯誤。接著,執(zhí)行步驟S602。
[0189]在步驟S602中,從用于主虛擬驅(qū)動器5a的元數(shù)據(jù)庫210a提取在存儲設(shè)備6中管理的待移除的文件的文件信息。由于此所提取的文件信息包含文件ID,故使用此文件ID獲得到備份日期的存取信息。具體地說,使用文件ID作為關(guān)鍵字來檢索用于虛擬驅(qū)動器5b的元數(shù)據(jù)庫210b,且獲得備份文件的物理路徑。接著,執(zhí)行步驟603。
[0190]在步驟S603中,將使用備份文件的物理路徑獲得的備份數(shù)據(jù)復(fù)制到另一個存儲設(shè)備6,另一個存儲設(shè)備6組成與待移除的存儲設(shè)備(即,屬于主存儲組7的存儲設(shè)備6中的一個)組成的虛擬驅(qū)動器5相同的虛擬驅(qū)動器5 (主虛擬驅(qū)動器5)。[0191]接著,重寫用于主虛擬驅(qū)動器5a的元數(shù)據(jù)庫210a中的鏈接信息,使得能存取最近復(fù)制到存儲設(shè)備6的數(shù)據(jù)。具體地說,重寫包含在所復(fù)制文件的文件信息中的物理路徑,使得其指向最近復(fù)制的數(shù)據(jù)。
[0192]在重寫用于主虛擬驅(qū)動器5a的元數(shù)據(jù)庫210a之后,關(guān)閉該數(shù)據(jù)的狀態(tài)“強制移除進程中”。接著,主存儲恢復(fù)進程完成。
[0193]如上面所解釋,利用在這個實施例中的主存儲恢復(fù)進程,獲得包含在有錯誤的存儲設(shè)備6中的數(shù)據(jù);將該數(shù)據(jù)復(fù)制到包括主虛擬驅(qū)動器5a的另一個存儲設(shè)備6 ;且更新元數(shù)據(jù)庫210的鏈接信息。因此,如果在主存儲組7內(nèi)的特定存儲設(shè)備6中出現(xiàn)錯誤,那么主虛擬驅(qū)動器5a無需整體恢復(fù),因此通過僅僅從備份恢復(fù)存儲在出現(xiàn)錯誤的存儲設(shè)備6中的文件,可有效地進行恢復(fù)(在短時間內(nèi))。這使得用戶嘗試存取有錯誤的存儲設(shè)備6的恢復(fù)等待時間變短。此外,由于在恢復(fù)進程期間其他文件不受到影響,故不影響除了嘗試存取有錯誤的存儲設(shè)備6的用戶之外的用戶。
[0194]此外,當(dāng)從服務(wù)器移除有錯誤的存儲設(shè)備6時,目標(biāo)文件自動地從備份數(shù)據(jù)恢復(fù)到主虛擬驅(qū)動器5a上的自由空間;無需從有錯誤的存儲設(shè)備6挽救數(shù)據(jù),從而使設(shè)備的瞬間移除變得可能。
[0195](備份存儲恢復(fù)進程)
[0196]下面將參考圖9解釋在這個實施例中的備份存儲恢復(fù)進程。
[0197]由存儲恢復(fù)控制器140執(zhí)行在這個實施例中的備份存儲恢復(fù)進程;當(dāng)在包括備份存儲組8的存儲設(shè)備6中出現(xiàn)錯誤時,從主數(shù)據(jù)恢復(fù)由存儲設(shè)備6管理的數(shù)據(jù)。
[0198]在圖9所示的步驟S700中,存儲恢復(fù)控制器140接收存儲設(shè)備6的強制移除請求。由于移除存儲設(shè)備6的由用戶操作的觸發(fā),發(fā)送此強制移除請求。接著,執(zhí)行步驟S701。
[0199]在步驟S701中,更新用于備份虛擬驅(qū)動器5b的元數(shù)據(jù)庫210b,因此包含在待移除的存儲設(shè)備6中的數(shù)據(jù)的狀態(tài)變成“強制移除進程中”。此處,當(dāng)有必要存取包含在“強制移除進程中”存儲設(shè)備中的數(shù)據(jù)時,那么,或者將備份數(shù)據(jù)作為僅供參考來發(fā)送,或者發(fā)送文件存取錯誤信息。接著,執(zhí)行步驟S702。
[0200]在步驟S702中,從用于備份虛擬驅(qū)動器5b的元數(shù)據(jù)庫210b提取在待移除的存儲設(shè)備6中管理的文件的文件信息。此處,由于文件ID包含在所提取的文件信息中,故可使用此文件ID獲得到主數(shù)據(jù)的存取信息。具體地說,使用文件ID作為關(guān)鍵字來檢索用于主虛擬驅(qū)動器5a的元數(shù)據(jù)庫210a,且獲得主文件的物理路徑。接著,執(zhí)行步驟S703。
[0201]在步驟S703中,將使用主文件的物理路徑獲得的主數(shù)據(jù)復(fù)制到另一個存儲設(shè)備6,另一個存儲設(shè)備6組成與待移除的存儲設(shè)備(B卩,屬于主存儲組8的存儲設(shè)備6中的一個)組成的虛擬驅(qū)動器5相同的虛擬驅(qū)動器5 (備份虛擬驅(qū)動器5b)。
[0202]接著,重寫在用于備份虛擬驅(qū)動器5b的元數(shù)據(jù)庫210b中的鏈接信息,使得能存取最近復(fù)制到存儲設(shè)備6的數(shù)據(jù)。具體地說,重寫包含在所復(fù)制文件的文件信息中的物理路徑,使得其指向最近復(fù)制的數(shù)據(jù)。
[0203]在重寫在用于備份虛擬驅(qū)動器5b的元數(shù)據(jù)庫210b之后,關(guān)閉該數(shù)據(jù)的狀態(tài)“強制移除進程中”。接著,備份存儲恢復(fù)進程完成。
[0204]如上面所解釋,利用在這個實施例中的備份存儲恢復(fù)進程,獲得在有錯誤的存儲設(shè)備6中包含的數(shù)據(jù);將該數(shù)據(jù)復(fù)制到包括備份虛擬驅(qū)動器5b的另一個存儲設(shè)備6 ;且更新元數(shù)據(jù)庫210的鏈接信息。因此,如果在備份存儲組8內(nèi)的特定存儲設(shè)備6中出現(xiàn)錯誤,那么備份虛擬驅(qū)動器5b無需整體恢復(fù),因此通過僅僅從主數(shù)據(jù)恢復(fù)存儲在出現(xiàn)錯誤的存儲設(shè)備6中的文件,可有效地進行恢復(fù)(在短時間內(nèi))。這使得用戶嘗試存取有錯誤的存儲設(shè)備6的恢復(fù)等待時間變短。此外,由于在恢復(fù)進程期間其他文件不受到影響,故不影響除了嘗試存取有錯誤的存儲設(shè)備6的用戶之外的用戶。
[0205]此外,當(dāng)從服務(wù)器移除有錯誤的存儲設(shè)備6時,目標(biāo)文件自動地從備份數(shù)據(jù)恢復(fù)到備份虛擬驅(qū)動器5b上的自由空間;無需從有錯誤的存儲設(shè)備6挽救數(shù)據(jù),從而使設(shè)備的瞬間移除變得可能。
[0206](系統(tǒng)恢復(fù)進程)
[0207]下面將參考圖10解釋這個實施例中的系統(tǒng)恢復(fù)進程。
[0208]由系統(tǒng)初始化控制器130執(zhí)行在這個實施例中的系統(tǒng)恢復(fù)進程。其是如下進程,即當(dāng)危及主虛擬驅(qū)動器5a的元數(shù)據(jù)庫210a全部丟失的錯誤(例如,無法恢復(fù)的系統(tǒng)崩潰或數(shù)據(jù)庫存儲故障)出現(xiàn)時,使用備份虛擬驅(qū)動器5b (實際上,備份存儲組8)中的數(shù)據(jù)恢復(fù)系統(tǒng)。
[0209]在圖10中的步驟S800中,系統(tǒng)初始化控制器130接收系統(tǒng)恢復(fù)請求。響應(yīng)于用戶的啟動系統(tǒng)恢復(fù)的操作,發(fā)送此系統(tǒng)恢復(fù)請求。接著,執(zhí)行步驟S801。
[0210]在步驟S801中,初始化主管理功能。具體地說,使用(例如)安裝程序重新安裝文件管理系統(tǒng)。接著,執(zhí)行步驟S802。
[0211]在步驟S802中,將包含在備份虛擬驅(qū)動器5b (備份存儲組8)中的備份數(shù)據(jù)登記到主虛擬驅(qū)動器側(cè)。具體地說,使用用于備份虛擬驅(qū)動器5b的元數(shù)據(jù)庫210b重新構(gòu)造用于主虛擬驅(qū)動器5a的元數(shù)據(jù)庫210a。更具體地,將元數(shù)據(jù)庫210b中的每個記錄(文件信息)利用相同的ID存儲在用于主虛擬驅(qū)動器5a的元數(shù)據(jù)庫210a中。接著,執(zhí)行步驟S803。
[0212]在步驟S803中,從用于虛擬驅(qū)動器5b的元數(shù)據(jù)庫210b提取在備份存儲組8中備份的所有數(shù)據(jù),且將其登記在恢復(fù)隊列中。異步地將登記數(shù)據(jù)復(fù)制到主存儲組7。此處,隨著為了恢復(fù)而復(fù)制每個文件,重寫元數(shù)據(jù)庫210a,使得該文件的文件信息中的物理路徑變得與復(fù)制目標(biāo)的物理路徑相同。接著,系統(tǒng)恢復(fù)進程完成。
[0213]如上面所解釋,這個實施例中的系統(tǒng)恢復(fù)進程使用用于備份驅(qū)動器5b的元數(shù)據(jù)庫210b獲得備份文件,且復(fù)制已備份文件來用于恢復(fù)。即,由于能從備份恢復(fù)用于主虛擬驅(qū)動器5a的元數(shù)據(jù)庫210a,故即使在主虛擬驅(qū)動器5a中出現(xiàn)無法恢復(fù)的錯誤(諸如服務(wù)器丟失),仍能從備份數(shù)據(jù)恢復(fù)主虛擬驅(qū)動器5a的狀態(tài)。
[0214](變化)
[0215]在以上實施例中,假設(shè)周期性地執(zhí)行備份進程,但備份進程能以另一種方式啟動。舉例來說,當(dāng)更新文件時,虛擬驅(qū)動器控制器Iio可請求備份控制器120開始備份進程,且備份控制器120可執(zhí)行由文件更新事件觸發(fā)的備份進程。在此種類型的配置中,實時備份將是可能的。
[0216]附圖標(biāo)記說明
[0217]I 服務(wù)器計算機
[0218]2 用戶終端
[0219]3 通信網(wǎng)絡(luò)[0220]4文件管理服務(wù)器
[0221]5虛擬驅(qū)動器
[0222]5a主虛擬驅(qū)動器
[0223]5b備份虛擬驅(qū)動器
[0224]6存儲裝置
[0225]7主存儲組
[0226]8備份存儲組
[0227]110虛擬存儲控制器
[0228]120備份存儲控制器
[0229]130系統(tǒng)初始化控制器
[0230]140存儲恢復(fù)控制器
[0231]150網(wǎng)絡(luò)控制器
[0232]210元數(shù)據(jù)庫
[0233]220備份狀態(tài)管理數(shù)據(jù)庫
[0234] 230操作歷史管理數(shù)據(jù)庫
【權(quán)利要求】
1.一種控制多個存儲設(shè)備的文件管理系統(tǒng),其中,所述文件管理系統(tǒng)包括: 虛擬驅(qū)動器控制器,其控制由所述存儲設(shè)備的任意集合組成的虛擬驅(qū)動器: 元數(shù)據(jù)庫,其包含用來使所述虛擬驅(qū)動器上的虛擬文件與存儲在所述存儲設(shè)備中的物理文件相關(guān)聯(lián)的信息; 備份控制器,其管理存儲在所述虛擬驅(qū)動器中的文件的備份;以及 備份狀態(tài)管理數(shù)據(jù)庫,其用來管理由所述備份控制器執(zhí)行的備份進程,其中: 所述虛擬驅(qū)動器控制器將關(guān)于已更新文件的信息登記到所述備份狀態(tài)管理數(shù)據(jù)庫中;且 參考所述備份狀態(tài)管理數(shù)據(jù)庫和所述元數(shù)據(jù)庫,所述備份控制器執(zhí)行備份。
2.如權(quán)利要求1所述的文件管理系統(tǒng),其中: 所述備份控制器通過由文件更新事件觸發(fā)而執(zhí)行備份。
3.如權(quán)利要求1或2所述的文件管理系統(tǒng),其中: 所述虛擬驅(qū)動器控制器控制由用戶操作的主虛擬驅(qū)動器和在所述主虛擬驅(qū)動器中備份數(shù)據(jù)的備份虛擬驅(qū)動器。
4.如權(quán)利要求1、2或3所述的`文件管理系統(tǒng),其中: 所述備份控制器監(jiān)控組成所述文件管理系統(tǒng)的文件管理服務(wù)器的負載,且當(dāng)所述負載大于預(yù)定閾值時延遲備份所述文件。
5.如權(quán)利要求1、2、3或4所述的文件管理系統(tǒng),其中: 當(dāng)出現(xiàn)文件存取錯誤時,參考所述元數(shù)據(jù)庫,所述虛擬驅(qū)動器控制器通過獲得與有錯誤的文件相對應(yīng)的備份文件來恢復(fù)文件。
6.如權(quán)利要求5所述的文件管理系統(tǒng),其中: 所述虛擬驅(qū)動器控制器的恢復(fù)包含:所述備份控制器的通過復(fù)制所述備份文件來創(chuàng)建恢復(fù)文件,以及所述虛擬驅(qū)動器控制器的通過重寫所述元數(shù)據(jù)庫來將到有錯誤的所述文件的鏈接更新成到所述恢復(fù)文件的鏈接。
7.如權(quán)利要求1、2、3、4、5或6所述的文件管理系統(tǒng),其進一步包括: 存儲恢復(fù)控制器,其執(zhí)行存儲恢復(fù)來恢復(fù)在出現(xiàn)錯誤的存儲設(shè)備中管理的數(shù)據(jù),其中在執(zhí)行存儲恢復(fù)時,所述存儲恢復(fù)控制器獲得包含在出現(xiàn)所述錯誤的所述存儲設(shè)備中的所述數(shù)據(jù)的復(fù)制數(shù)據(jù), 將所述復(fù)制數(shù)據(jù)復(fù)制到另一個存儲設(shè)備,所述另一個存儲設(shè)備組成與包含具有所述錯誤的所述存儲設(shè)備的所述虛擬驅(qū)動器相同的虛擬驅(qū)動器,且將所述鏈接信息重寫在所述元數(shù)據(jù)庫中。
8.如權(quán)利要求1、2、3、4、5、6或7所述的文件管理系統(tǒng),其進一步包括: 系統(tǒng)初始化控制器,其執(zhí)行系統(tǒng)恢復(fù)進程來從備份數(shù)據(jù)恢復(fù)系統(tǒng),其中: 所述元數(shù)據(jù)庫包括主元數(shù)據(jù)庫和備份元數(shù)據(jù)庫, 在執(zhí)行所述系統(tǒng)恢復(fù)進程時,所述系統(tǒng)初始化控制器使用所述備份元數(shù)據(jù)庫來獲得已備份文件,復(fù)制所述已備份文件來用于恢復(fù)。
9.一種控制多個存儲設(shè)備的文件管理方法,其中,所述文件管理方法包括: 用所述存儲設(shè)備的任意集合組成虛擬驅(qū)動器; 將所述虛擬驅(qū)動器上的虛擬文件和存儲在所述存儲設(shè)備中的物理文件登記在元數(shù)據(jù)庫中,使所述虛擬文件與所述物理文件相關(guān)聯(lián); 將關(guān)于已更新文件的信息登記在備份狀態(tài)管理數(shù)據(jù)庫中;以及 參考所述備份狀態(tài)管理數(shù)據(jù)庫和所述元數(shù)據(jù)庫來執(zhí)行文件備份。
10.如權(quán)利要求9所述的文件管理方法,其中: 通過由文件更新事件觸發(fā)而執(zhí)行文件備份。
11.如權(quán)利要求9或10所述的文件管理方法,其中: 組成所述虛擬驅(qū)動器進一步包括: 組成由用戶操作的主虛擬驅(qū)動器;以及 組成在所述主虛擬驅(qū)動器中備份數(shù)據(jù)的備份虛擬驅(qū)動器。
12.如權(quán)利要求9、10或11所述的文件管理方法,其中: 當(dāng)包含所述文件管理系統(tǒng)的所述文件管理服務(wù)器的負載大于預(yù)定閾值時,延遲備份所述文件。
13.如權(quán)利要求9、10、11或12所述的文件管理方法,其進一步包括: 當(dāng)出現(xiàn)文件存 取錯誤時,參考所述元數(shù)據(jù)庫,通過獲得與有錯誤的所述文件相對應(yīng)的備份文件來恢復(fù)文件。
14.如權(quán)利要求13所述的文件管理方法,其中: 恢復(fù)所述文件進一步包括:通過復(fù)制所述備份文件來創(chuàng)建恢復(fù)文件,并且,通過重寫所述元數(shù)據(jù)庫來將到有錯誤的所述文件的鏈接更新成到所述恢復(fù)文件的鏈接。
15.如權(quán)利要求9、10、11、12、13或14所述的文件管理方法,其進一步包括: 接受執(zhí)行存儲恢復(fù)進程來恢復(fù)在出現(xiàn)錯誤的存儲設(shè)備中管理的數(shù)據(jù);以及 當(dāng)在所述存儲恢復(fù)進程中獲得在有錯誤的所述存儲設(shè)備中包含的數(shù)據(jù)、并將所述數(shù)據(jù)復(fù)制到另一個存儲設(shè)備時,在所述元數(shù)據(jù)庫中重寫鏈接信息,其中,所述另一個存儲設(shè)備組成與包含具有所述錯誤的所述存儲設(shè)備的所述虛擬驅(qū)動器相同的虛擬驅(qū)動器。
16.如權(quán)利要求9、10、11、12、13、14或15所述的文件管理方法,提供主元數(shù)據(jù)庫和備份數(shù)據(jù)庫作為元數(shù)據(jù)庫,其進一步包括: 接受執(zhí)行系統(tǒng)恢復(fù)進程來從備份數(shù)據(jù)恢復(fù)系統(tǒng); 在所述系統(tǒng)恢復(fù)進程中,通過使用所述備份元數(shù)據(jù)庫來獲得已備份文件,復(fù)制所述已備份文件來用于恢復(fù)。
【文檔編號】G06F12/00GK103782279SQ201280043462
【公開日】2014年5月7日 申請日期:2012年8月20日 優(yōu)先權(quán)日:2011年9月7日
【發(fā)明者】三好修, 塩田英一郎, 藤田浩之 申請人:澳樂伽公司