保護(hù)被高速緩存盤的數(shù)據(jù)完整性的方法
【專利摘要】本發(fā)明提供用于在替換操作系統(tǒng)(OS)環(huán)境中保護(hù)被高速緩存存儲設(shè)備的數(shù)據(jù)完整性的發(fā)明。本發(fā)明包括,用修改后的全局唯一標(biāo)識符分區(qū)表(MGPT)來代替用于被高速緩存盤的全局唯一標(biāo)識符分區(qū)表(GPT)。當(dāng)MGPT被OS使用來訪問被高速緩存分區(qū)時,MGPT使得被高速緩存盤上的被高速緩存分區(qū)不可訪問,而當(dāng)使用MGPT時,被高速緩存盤上的未被高速緩存分區(qū)仍然是可訪問的。在正常操作中,使用基于通常經(jīng)由高速緩存軟件能夠被存儲在高速緩存盤上的GPT的信息來訪問被高速緩存盤上的數(shù)據(jù)。響應(yīng)于接收到禁用高速緩存的請求,用GPT來代替被高速緩存盤上的MGPT,因此,使得在不存在適當(dāng)?shù)母咚倬彺孳浖奶鎿QOS環(huán)境中,在正常被高速緩存盤上的所有數(shù)據(jù)是可訪問的。
【專利說明】保護(hù)被高速緩存盤的數(shù)據(jù)完整性的方法
[0001]相關(guān)申請的交叉引用
[0002]本申請是于2012年8月27日提交的題目為“在外部操作環(huán)境中用于保護(hù)存儲設(shè)備數(shù)據(jù)完整性的方法”的美國專利申請第13/595,986號的部分繼續(xù)申請,通過參照將其合并于此。
【技術(shù)領(lǐng)域】
[0003]本發(fā)明一般涉及數(shù)據(jù)完整性,更具體地說,涉及在替換操作系統(tǒng)環(huán)境中保護(hù)基于⑶ID分區(qū)表的存儲設(shè)備的數(shù)據(jù)完整性。
【背景技術(shù)】
[0004]在存儲環(huán)境中已經(jīng)長期使用高速緩存以增強(qiáng)諸如盤驅(qū)動器的更慢存儲設(shè)備的性能。在高速緩存中,更小并且更快的存儲介質(zhì)被用于臨時存儲和檢索頻繁使用的數(shù)據(jù),而更大并且通常更慢的大容量存儲介質(zhì)被用于數(shù)據(jù)的長期存儲。一種高速緩存方法是回寫(write-back)高速緩存,其中,被寫入盤的數(shù)據(jù)首先被存儲到高速緩存器中,并且之后通常當(dāng)在高速緩存器中的數(shù)據(jù)量達(dá)到一定閾值或者當(dāng)時間允許時,被寫入大容量存儲設(shè)備中。
[0005]圖1是示出具有回寫高速緩存能力的示例現(xiàn)有技術(shù)計算機(jī)系統(tǒng)100的框圖。示例現(xiàn)有技術(shù)計算機(jī)系統(tǒng)100包括與系統(tǒng)存儲器104通信的中央處理單元(CPU) 102、高速緩存器106、以及目標(biāo)存儲設(shè)備108。此外,加載到系統(tǒng)存儲器104的是其功能為促進(jìn)在計算機(jī)系統(tǒng)100上的回寫高速緩存功能性的高速緩存軟件110。
[0006]如前所提及的,高速緩存器106通常包含比被用于目標(biāo)存儲設(shè)備108更小、更快的訪問存儲。因?yàn)楦咚倬彺嫫?06的提高的速度,所以針對高速緩存器106的讀和寫比使用目標(biāo)存儲設(shè)備108所能夠得更快地被處理。通過之前將所有的寫請求發(fā)送給回寫高速緩存器106、之后將所述數(shù)據(jù)轉(zhuǎn)移到目標(biāo)存儲設(shè)備108,回寫高速緩存利用了這些差異。
[0007]例如,當(dāng)CPU102處理用于將數(shù)據(jù)寫入目標(biāo)存儲設(shè)備108的寫請求時,高速緩存軟件110解釋所述寫請求并且作為替代將數(shù)據(jù)寫入高速緩存器106。這個數(shù)據(jù)通常被稱為“臟”數(shù)據(jù),因?yàn)樗€沒有被寫入目標(biāo)存儲設(shè)備108,并且稍后當(dāng)所述數(shù)據(jù)被寫入目標(biāo)存儲設(shè)備108時,之后它成為“干凈”數(shù)據(jù)。高速緩存軟件110向用戶提供目標(biāo)存儲設(shè)備108的完全視圖。也就是說,當(dāng)CPU102處理針對相同數(shù)據(jù)的讀請求時,高速緩存軟件110再次解釋所述讀請求,并且確定所述數(shù)據(jù)是否被存儲在高速緩存存儲器中。當(dāng)數(shù)據(jù)被存儲在高速緩存存儲器中時,CPU102從高速緩存器106中讀取數(shù)據(jù),否則,CPU102從目標(biāo)存儲設(shè)備108中讀取數(shù)據(jù)。
[0008]正如能夠被領(lǐng)會的,在數(shù)據(jù)能夠被存儲在高速緩存器106中并且還沒有在目標(biāo)存儲設(shè)備108上被更新的任何時間點(diǎn),并且因此,目標(biāo)存儲設(shè)備108不會具有那時用戶相信被存儲在那里的完整和一致的拷貝。結(jié)果,如果用戶決定將目標(biāo)存儲設(shè)備108移動到其中不存在高速緩存軟件110的另一操作系統(tǒng)(OS)環(huán)境時,則在目標(biāo)存儲設(shè)備108上的數(shù)據(jù)可能被破壞并且變得無用。[0009]例如,當(dāng)文件被部分存儲在目標(biāo)存儲設(shè)備108上并且被部分存儲在高速緩存器106中時,高速緩存軟件110提供文件的完整視圖,并且用戶將所述文件看做正在被完整地存儲在目標(biāo)設(shè)備108上。然而,如果用戶將目標(biāo)存儲設(shè)備108移動到其中不存在高速緩存軟件110的另一 OS環(huán)境時,目標(biāo)存儲設(shè)備108上的文件將不完整。然而,用戶不知道文件是否是完整的,并且可能嘗試修改文件。當(dāng)目標(biāo)存儲設(shè)備108之后被返回到原始OS環(huán)境時,出現(xiàn)數(shù)據(jù)完整性問題。
[0010]傳統(tǒng)上,通過讓用戶在將目標(biāo)存儲設(shè)備108移動到另一 OS環(huán)境之前禁用高速緩存軟件Iio來解決這個數(shù)據(jù)完整性問題。當(dāng)高速緩存軟件110被禁用時,它從高速緩存器106中清空所有的臟數(shù)據(jù),以確保目標(biāo)存儲設(shè)備108上的數(shù)據(jù)是完整和干凈的。現(xiàn)在,當(dāng)目標(biāo)存儲設(shè)備108被轉(zhuǎn)到另一 OS環(huán)境時,將不會出現(xiàn)作為高速緩存結(jié)果的數(shù)據(jù)毀壞。
[0011]不幸地是,用戶并不總是記得在去除目標(biāo)存儲設(shè)備108并且將其移動到另一 OS環(huán)境之前禁用高速緩存軟件110。結(jié)果,盡管高速緩存軟件110具有高速緩存清空能力,但是健忘的用戶仍然能夠破壞目標(biāo)存儲設(shè)備108上的數(shù)據(jù),因?yàn)樗麄冊谝苿幽繕?biāo)存儲設(shè)備108之前忘記禁用高速緩存軟件110。
[0012]鑒于前述,需要在替換OS環(huán)境中用于保護(hù)存儲設(shè)備的數(shù)據(jù)完整性的系統(tǒng)和方法。理想地,即使當(dāng)用戶在將被高速緩存的存儲設(shè)備移動到替換OS環(huán)境之前忘記禁用高速緩存軟件時,所述系統(tǒng)和方法也應(yīng)當(dāng)提供一些保護(hù)。
【發(fā)明內(nèi)容】
[0013]一般來說,通過提供用于在替換OS環(huán)境中保護(hù)被高速緩存存儲設(shè)備的數(shù)據(jù)完整性的過程,本發(fā)明實(shí)施例解決了這些需要。在一個實(shí)施例中,公開了一種用于在替換操作系統(tǒng)(OS)環(huán)境中保護(hù)盤的數(shù)據(jù)完整性的方法。所述方法包括,用修改后的全局唯一標(biāo)識符分區(qū)表(MGPT)來代替用于被高速緩存盤的全局唯一標(biāo)識符分區(qū)表(GPT)。重要地,當(dāng)OS使用MGPT訪問被高速緩存分區(qū)時,MGPT使得被高速緩存盤上的被高速緩存分區(qū)不可訪問,而當(dāng)使用MGPT時,被高速緩存盤上的未被高速緩存分區(qū)仍然是可訪問的。在正常操作中,使用基于GPT的信息,通常經(jīng)由高速緩存軟件,來訪問被高速緩存盤上的數(shù)據(jù)。
[0014]為了確保被高速緩存盤上的被高速緩存分區(qū)在替換OS環(huán)境中是不可訪問的,用于被高速緩存分區(qū)的MGPT中的分區(qū)條目具有與被存儲在用于被高速緩存盤的GPT中的對應(yīng)條目中的那些不同的開始和結(jié)束位置。然而,用于未被高速緩存分區(qū)的MGPT中的分區(qū)條目與用于被高速緩存盤的GPT中的對應(yīng)條目相同,因此允許未被高速緩存分區(qū)在替換OS環(huán)境中保持可訪問。通常以MGPT將被OS利用以在替換操作系統(tǒng)(OS)環(huán)境中引導(dǎo)被高速緩存盤的方式,將MGPT存儲在被高速緩存盤上。能夠?qū)PT存儲在高速緩存盤上,該高速緩存盤用于回寫高速緩存以為被高速緩存盤存儲被高速緩存數(shù)據(jù)。此外,也將GPT存儲在被高速緩存盤上除了 MGPT位置之外的位置中,從而如果高速緩存盤以某種方式被破壞,則允許完全的GPT重建。
[0015]在本發(fā)明附加實(shí)施例中公開了一種用于在替換OS環(huán)境中用于保護(hù)盤的數(shù)據(jù)完整性的進(jìn)一步方法。類似于以上,所述方法包括,用修改后的GPT (MGPT)來代替用于被高速緩存盤的GPT,其中,當(dāng)MGPT被OS使用以訪問被高速緩存分區(qū)時,MGPT使得被高速緩存盤上的被高速緩存分區(qū)不可訪問,并且其中,當(dāng)MGPT被OS使用以訪問未被高速緩存分區(qū)時,被高速緩存盤上的未被高速緩存分區(qū)是可訪問的。在正常操作中,使用基于GPT的信息,通常經(jīng)由高速緩存軟件來訪問被高速緩存盤上的數(shù)據(jù)。然后,響應(yīng)于接收禁用高速緩存的請求,用GPT來代替被高速緩存盤上的MGPT。如上,用于被高速緩存分區(qū)的MGPT中的分區(qū)條目具有與存儲在用于被高速緩存盤的GPT中的對應(yīng)條目不同的開始和結(jié)束位置,并且用于未被高速緩存分區(qū)的分區(qū)條目與用于被高速緩存盤的GPT中的對應(yīng)條目相同。GPT被存儲在高速緩存盤和被高速緩存盤兩者上除了 MGPT的位置以外的位置中。
[0016]在本發(fā)明再一實(shí)施例中公開了被具體化在計算機(jī)可讀記錄介質(zhì)上、用于在替換OS環(huán)境中保護(hù)盤的數(shù)據(jù)完整性的計算機(jī)程序。所述計算機(jī)程序包括用修改后的GPT (MGPT)來代替用于被高速緩存盤的GPT的計算機(jī)指令,其中,當(dāng)MGPT被OS使用來訪問被高速緩存分區(qū)時,MGPT使得被高速緩存盤上的被高速緩存分區(qū)不可訪問,并且其中,當(dāng)MGPT被OS使用來訪問未被高速緩存分區(qū)時,被高速緩存盤上的未被高速緩存分區(qū)可以訪問。此外,包括使用基于GPT的信息來訪問被高速緩存盤上的數(shù)據(jù)的計算機(jī)指令。類似于以上,用于被高速緩存分區(qū)的MGPT中的分區(qū)條目具有與存儲在用于被高速緩存盤的GPT中的對應(yīng)條目不同的開始和結(jié)束位置,并且用于未被高速緩存分區(qū)的分區(qū)條目與用于被高速緩存盤的GPT中的對應(yīng)條目相同。以MGPT將被OS使用以在替換OS環(huán)境中弓丨導(dǎo)被高速緩存盤的方式,將MGPT存儲在被高速緩存盤上。響應(yīng)于接收禁用高速緩存的請求,包括使用GPT來代替被高速緩存盤上的MGPT的計算機(jī)指令。
[0017]以這種方式,當(dāng)被高速緩存盤被移動到其中不存在適當(dāng)高速緩存軟件的替換OS環(huán)境時,MGPT使得被高速緩存盤的被高速緩存分區(qū)不可訪問,同時保持未被高速緩存分區(qū)在替換OS環(huán)境中仍然可以訪問。結(jié)果,提醒用戶將被高速緩存盤返回到原始計算機(jī)系統(tǒng)并且禁用高速緩存軟件,以便使得整個被高速緩存盤在替換OS環(huán)境中可訪問。通過結(jié)合附圖以示例示出本發(fā)明原則的以下詳細(xì)描述中,本發(fā)明的其他方面和優(yōu)點(diǎn)將變得顯而易見。
【專利附圖】
【附圖說明】
[0018]通過結(jié)合附圖參照以下詳細(xì)描述,可以與其進(jìn)一步的優(yōu)點(diǎn)一起最佳地理解本發(fā)明,其中:
[0019]圖1是示出具有回寫高速緩存能力的示例現(xiàn)有技術(shù)計算機(jī)系統(tǒng)的框圖;
[0020]圖2是示出根據(jù)本發(fā)明實(shí)施例的、當(dāng)被高速緩存盤被移動到替換OS環(huán)境時帶有具有數(shù)據(jù)完整性保護(hù)的被高速緩存盤208的示例計算機(jī)系統(tǒng)的框圖;
[0021]圖3是示出根據(jù)本發(fā)明實(shí)施例的、示例⑶ID分區(qū)表(GPT)和對應(yīng)的修改后的⑶ID分區(qū)表(MGPT)的圖示;
[0022]圖4是示出根據(jù)本發(fā)明實(shí)施例的、具有在替換OS環(huán)境中正在被訪問的多個分區(qū)的被高速緩存盤的圖示,替換OS環(huán)境沒有在原始OS環(huán)境中使用的相同的高速緩存軟件;
[0023]圖5是示出根據(jù)本發(fā)明實(shí)施例的、其中被高速緩存盤已經(jīng)被完全更新并且使得自身完整以及能夠從不存在高速緩存軟件的替換OS被安全訪問的示例計算機(jī)系統(tǒng)的框圖;
[0024]圖6是示出根據(jù)本發(fā)明實(shí)施例的、當(dāng)盤被移動到替換OS環(huán)境時用于保護(hù)被高速緩存盤的數(shù)據(jù)完整性的方法的流程圖;以及
[0025]圖7是示出根據(jù)本發(fā)明實(shí)施例的、響應(yīng)于接收到禁用高速緩存的請求而用于使得在被高速緩存盤上的被高速緩存分區(qū)在替換OS環(huán)境中可訪問的方法的流程圖。【具體實(shí)施方式】
[0026]公開了一種用于在替換OS環(huán)境中使用全局唯一標(biāo)識符(⑶ID)分區(qū)表來保護(hù)被高速緩存(cached)存儲設(shè)備的數(shù)據(jù)完整性的發(fā)明。一般來說,本發(fā)明的實(shí)施例使用盤的GUID分區(qū)表以提供用于保護(hù)被高速緩存盤(cached disk)的數(shù)據(jù)完整性的機(jī)制。因?yàn)镺S試圖經(jīng)由⑶ID分區(qū)表來訪問盤,所以這個過程提供在不需要附加硬件或者物理地改變系統(tǒng)結(jié)構(gòu)的情況下,當(dāng)在替換OS環(huán)境中時,用于控制用戶在盤上所看到的內(nèi)容的機(jī)制。
[0027]在以下的描述中,闡述許多特定細(xì)節(jié)以提供對本發(fā)明的全面理解。然而,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)明白,可以在沒有一些或全部這些特定細(xì)節(jié)的情況下實(shí)踐本發(fā)明。在其他實(shí)例中,沒有詳細(xì)描述熟知的處理步驟以避免不必要地妨礙本發(fā)明。
[0028]關(guān)于現(xiàn)有技術(shù)來描述圖1。圖2是示出根據(jù)本發(fā)明實(shí)施例的、當(dāng)被高速緩存盤208被移動到替換OS環(huán)境時帶有具有數(shù)據(jù)完整性保護(hù)的被高速緩存盤208的示例計算機(jī)系統(tǒng)200的框圖。計算機(jī)系統(tǒng)200包含連接到系統(tǒng)存儲器204、高速緩存盤(caching disk)206以及被高速緩存盤208的中央處理單元(CPU)202。此外,高速緩存軟件210被加載到系統(tǒng)存儲器204中,并且其功能是促進(jìn)在計算機(jī)系統(tǒng)200上的回寫高速緩存的功能性。
[0029]高速緩存盤206通常是比被用于被高速緩存盤208更小和更快的訪問盤。例如,高速緩存盤206能夠是諸如基于NAND閃存的固態(tài)驅(qū)動器(SSD)的SSD或者相變存儲器(PCM)。因?yàn)楦咚倬彺姹P206的增加的速度,所以針對高速緩存盤206的讀和寫可以比使用被高速緩存盤208所能夠進(jìn)行得更快地處理。通過之前向高速緩存盤206發(fā)送所有的寫請求、隨后將數(shù)據(jù)轉(zhuǎn)移到被高速緩存盤208,回寫高速緩存利用了這些差異。高速緩存軟件210提供被高速緩存盤208的完整視圖,因此用戶總是看見被高速緩存盤208的完整視圖,不論是否一些數(shù)據(jù)實(shí)際上被存儲在高速緩存盤206上。
[0030]在正常操作期間,當(dāng)CPU202處理向被高速緩存盤208寫入數(shù)據(jù)的寫請求時,高速緩存軟件210解釋寫請求并且向高速緩存盤206寫入數(shù)據(jù)。這個數(shù)據(jù)經(jīng)常被稱為“臟”數(shù)據(jù),因?yàn)樗€沒有被寫入到被高速緩存盤208,并且當(dāng)它后來被寫入被高速緩存盤208時,后來成為“干凈”數(shù)據(jù)。當(dāng)CPU202處理對于相同數(shù)據(jù)的讀請求時,高速緩存軟件210再一次解釋讀請求,并且確定數(shù)據(jù)是否位于高速緩存存儲器中。當(dāng)數(shù)據(jù)被存儲在高速緩存存儲器中時,CPU202從高速緩存盤206中讀取數(shù)據(jù),否則CPU202從被高速緩存盤208中讀取數(shù)據(jù)。
[0031]如上所述,如果用戶決定將被高速緩存盤208移動到?jīng)]有相同高速緩存軟件210的另一 OS環(huán)境,則被高速緩存盤上的數(shù)據(jù)可能被破壞并且變得無用。通過用修改后的GUID分區(qū)表(MGPT) 218來代替被高速緩存盤208的實(shí)際GUID分區(qū)表,使得當(dāng)被移動到替換OS環(huán)境時被高速緩存盤208的被高速緩存內(nèi)容不可訪問,從而本發(fā)明實(shí)施例解決了此問題。
[0032]在BIOS系統(tǒng)中,在系統(tǒng)啟動期間由CPU202運(yùn)行的第一代碼是系統(tǒng)BIOS,其建立用于計算機(jī)系統(tǒng)200的硬件并加載操作系統(tǒng)。系統(tǒng)BIOS然后識別諸如被高速緩存盤208的指定引導(dǎo)設(shè)備,并且試圖加載進(jìn)一步控制計算機(jī)系統(tǒng)200的操作系統(tǒng)(OS)軟件。在利用可擴(kuò)展固件接口(UEFI)標(biāo)準(zhǔn)的更新系統(tǒng)中,使用⑶ID分區(qū)表經(jīng)由UEFI來提供此功能。
[0033]使用⑶ID分區(qū)表(GPT)的盤的第一扇區(qū)O被保留用于受保護(hù)的MBR,以支持從GPT盤引導(dǎo)基于BIOS的系統(tǒng)。用于訪問GPT盤的布局和分區(qū)信息被存儲在盤的扇區(qū)I至33中。這些起始扇區(qū)被稱為⑶ID分區(qū)表。本發(fā)明實(shí)施例使用修改后的⑶ID分區(qū)表來代替用于盤的原始⑶ID分區(qū)表。例如,在一個實(shí)施例中,使用修改后的⑶ID分區(qū)表(MGPT)214來代替用于被高速緩存盤208的原始GPT212。將原始GPT212保存到被高速緩存盤208上的、例如接近(towards)被高速緩存盤208的末端的另一位置。此外,將原始GPT212保存到高速緩存盤206上。
[0034]圖3是示出根據(jù)本發(fā)明實(shí)施例的、示例⑶ID分區(qū)表(GPT) 212和對應(yīng)的修改后的⑶ID分區(qū)表(MGPT)214的圖示。如圖3中所示,第一邏輯扇區(qū)被保留用于受保護(hù)的MBR,以支持從GPT盤引導(dǎo)基于BIOS的系統(tǒng)。在受保護(hù)的MBR扇區(qū)后面是主PGT報頭和分區(qū)表?xiàng)l目。本發(fā)明實(shí)施例修改用于被高速緩存分區(qū)的條目,同時保持未被高速緩存的條目完好無缺。例如,在圖3中,條目I 300a定義被高速緩存分區(qū),同時條目2 300b定義未被高速緩存分區(qū)。本發(fā)明實(shí)施例使用MGPT214中用于條目I 300a’的虛擬數(shù)據(jù)來代替用于被高速緩存條目I 300a的數(shù)據(jù)。也就是說,MGPT214中用于條目I 300a’的分區(qū)開始和結(jié)束位置數(shù)據(jù)與原始GPT212中用于條目I 300a的分區(qū)開始和結(jié)束位置數(shù)據(jù)不同。
[0035]然而,本發(fā)明實(shí)施例不修改用于未被高速緩存分區(qū)的條目。例如,在圖3中,條目2 300b定義未被高速緩存分區(qū)。因此,本發(fā)明實(shí)施例不替換在MGPT214中用于被高速緩存條目2 300b的數(shù)據(jù)。也就是說,MGPT214中用于條目2 300b的分區(qū)開始和結(jié)束位置數(shù)據(jù)與原始GPT212中用于條目2300b的分區(qū)開始和結(jié)束位置數(shù)據(jù)相同。因此,使用MGPT214的OS將具有對未被高速緩存分區(qū)的訪問,而沒有對被高速緩存分區(qū)的訪問。
[0036]以此方式,如果在沒有首先禁用高速緩存軟件210的情況下,將被高速緩存盤208移動到替換OS環(huán)境,則新計算機(jī)系統(tǒng)將不能訪問被高速緩存盤208上任何被高速緩存分區(qū)數(shù)據(jù),因?yàn)樗鼘⒓虞d具有虛擬分區(qū)條目數(shù)據(jù)300a’的MGPT214,該MGPT214存儲關(guān)于被高速緩存分區(qū)的不正確布局和分區(qū)信息的并且因此使得被高速緩存盤208上的被高速緩存分區(qū)在沒有適當(dāng)?shù)母咚倬彺孳浖?10的情況下是不可訪問的。
[0037]返回參照圖2,在高速緩存盤206上和被高速緩存盤208上的預(yù)定新位置兩者處存儲用于被高速緩存盤208的原始GPT212。然而,應(yīng)當(dāng)注意到,GPT212可以被存儲在除了被高速緩存盤208的LBA1-33以外的任何位置中。例如,利用被存儲在高速緩存盤206上指向GPT212的地址的指針,GPT212能夠被存儲在被高速緩存盤208的另一非引導(dǎo)扇區(qū)。原始GPT212包括關(guān)于被高速緩存盤208的所有正確分區(qū)條目數(shù)據(jù)。一般來說,高速緩存軟件210能夠在正常操作期間保持GPT212為當(dāng)前的(current)。
[0038]圖4是示出根據(jù)本發(fā)明實(shí)施例的、具有在替換OS環(huán)境中正在被訪問的多個分區(qū)400a-400n的被高速緩存盤208的圖示,替換OS環(huán)境沒有在原始OS環(huán)境中使用的相同高速緩存軟件。在圖4中示出的分區(qū)400a-400b對應(yīng)于GPT212分區(qū)條目300a_300b和MGPT214分區(qū)條目300a’ -300b。例如,分區(qū)1400a是被高速緩存分區(qū)并且對應(yīng)于分區(qū)條目300a,同時,分區(qū)2400b是未被高速緩存分區(qū)并且對應(yīng)于分區(qū)條目300b。
[0039]當(dāng)被高速緩存盤208被移動到不具有在原始OS環(huán)境中使用的相同高速緩存軟件的替換OS環(huán)境時,MGPT214允許用戶訪問被高速緩存盤208上的未被高速緩存分區(qū)2400b。然而,當(dāng)被高速緩存盤208被移動到不具有在原始OS環(huán)境中使用的相同高速緩存軟件的替換OS環(huán)境時,MGPT214使得被高速緩存盤208的被高速緩存分區(qū)1400a不可訪問。結(jié)果,提醒用戶將被高速緩存盤208返回到原始計算機(jī)系統(tǒng)并且禁用高速緩存軟件210,以便在替換OS環(huán)境中使得被高速緩存盤208上的被高速緩存分區(qū)數(shù)據(jù)是可訪問的。為了恢復(fù)被高速緩存盤208,本發(fā)明實(shí)施例清空(flush)高速緩存盤206,并且用已經(jīng)被保持為當(dāng)前的原始GPT212來代替被高速緩存盤208上的MGPT214。
[0040]圖5是示出根據(jù)本發(fā)明實(shí)施例的、其中被高速緩存盤208已經(jīng)被完全更新并且使得自身完整、以及能夠從不存在高速緩存軟件的替換OS中被安全訪問的示例計算機(jī)系統(tǒng)200的框圖。計算機(jī)系統(tǒng)200包括連接到系統(tǒng)存儲器204、高速緩存盤206以及被高速緩存盤208的CPU202。此外,高速緩存軟件210被加載到系統(tǒng)存儲器204,并且其功能是促進(jìn)計算機(jī)系統(tǒng)200上的回寫高速緩存的功能性。如上所述,高速緩存軟件210向OS提供被高速緩存盤208的完整視圖,所以用戶總是看見被高速緩存盤208的完整視圖,不管一些數(shù)據(jù)是否實(shí)際被存儲在高速緩存盤206上。
[0041]如上所述,如果所述用戶決定將被高速緩存盤208移動到其中不存在相同高速緩存軟件210的替換OS環(huán)境,則當(dāng)替換OS環(huán)境使用修改后的GUID分區(qū)表來訪問被高速緩存盤208上的數(shù)據(jù)時,修改后的GUID分區(qū)表使得被高速緩存盤208的被高速緩存分區(qū)不可訪問。
[0042]因此,為了將被高速緩存盤208移動到替換OS環(huán)境,用戶應(yīng)當(dāng)通過向高速緩存軟件210發(fā)送用于禁用高速緩存的命令來禁用用于被高速緩存盤208的盤高速緩存。響應(yīng)于接收到禁用用于被高速緩存盤208的高速緩存的請求,高速緩存軟件210準(zhǔn)備好被高速緩存盤208以安全去除和在替換OS環(huán)境中使用。
[0043]具體地說,通過確保仍然在高速緩存盤206上的用于被高速緩存盤208的所有臟數(shù)據(jù)被寫入被高速緩存盤208,高速緩存軟件210清空用于被高速緩存盤208的被高速緩存數(shù)據(jù)。此外,通過在必要時執(zhí)行對GPT212的任何更新,高速緩存軟件210確保用于被高速緩存盤208的原始GPT212對于被高速緩存盤208是一致和完整的。然后,高速緩存軟件210將更新后的GPT212寫入被高速緩存盤208。在圖5的示例中,這通過利用用于被高速緩存盤208的更新后的GPT212來代替存儲在被高速緩存盤208上的MGPT214來進(jìn)行。此后,被高速緩存盤208上的所有分區(qū)是完整的。也就是說,被高速緩存盤208自身是完整的,并且能夠從其中不存在高速緩存軟件210的替換OS安全地被訪問。
[0044]圖6是示出根據(jù)本發(fā)明實(shí)施例的、當(dāng)盤被移動到替換OS環(huán)境時用于保護(hù)被高速緩存盤的數(shù)據(jù)完整性的方法600的流程圖。在初始操作602中,執(zhí)行預(yù)處理操作。預(yù)處理操作能夠包括例如將高速緩存軟件加載到系統(tǒng)存儲器中,以及利用從本公開的仔細(xì)閱讀而獲得的認(rèn)知(hindsight)對于本領(lǐng)域技術(shù)人員將是顯而易見的其他預(yù)處理操作。
[0045]在操作604中,用于被高速緩存盤的原始GUID分區(qū)表被存儲在除了被高速緩存盤的扇區(qū)1-33以外的位置中。轉(zhuǎn)到圖2,當(dāng)首先安裝高速緩存軟件210時以及在高速緩存軟件210被最新使能以用于要被高速緩存的盤的任何時候,將用于被高速緩存盤208的原始⑶ID分區(qū)表讀取并且存儲在除了被高速緩存盤208的扇區(qū)1-33以外的位置中。本發(fā)明一個實(shí)施例讀取用于被高速緩存盤的原始GPT,并且將原始GPT存儲在除了被高速緩存盤的扇區(qū)1-33以外的位置中。例如,在圖2中,用于被高速緩存盤208的原始GPT212被存儲在高速緩存盤206上和被高速緩存盤208上除了扇區(qū)1-33以外的位置中。
[0046]返回參照圖6,在操作606中,使用修改后的GUID分區(qū)表來代替用于被高速緩存盤的原始GUID分區(qū)表。如上所提及的,當(dāng)OS使用修改后的GUID分區(qū)表訪問數(shù)據(jù)時,修改后的GUID分區(qū)表使得盤上的被高速緩存分區(qū)不可訪問。轉(zhuǎn)到圖2,本發(fā)明實(shí)施例利用MGPT214來代替被高速緩存盤上的GPT212的拷貝。這樣,當(dāng)經(jīng)由沒有相同高速緩存軟件210的替換OS環(huán)境訪問被高速緩存盤時,OS將嘗試使用MGPT214訪問被高速緩存盤。結(jié)果,被高速緩存盤208上的被高速緩存分區(qū)對于替換OS將是不可訪問的,而被高速緩存盤208上的未被高速緩存分區(qū)在替換OS環(huán)境中將保持可訪問。
[0047]在方法600的操作608中,使用基于原始GUID分區(qū)表的信息來訪問被高速緩存盤上的數(shù)據(jù)。也就是說,在正常操作期間,高速緩存軟件210解釋用于訪問被高速緩存盤206上的數(shù)據(jù)的所有請求,以使用高速緩存盤206來執(zhí)行回寫高速緩存。這通過使用基于原始GUID分區(qū)表的信息來完成,當(dāng)在高速緩存盤206和被高速緩存盤208上更新數(shù)據(jù)時能夠更新原始GUID分區(qū)表。
[0048]在操作610中執(zhí)行后處理操作。后處理操作能夠包括,例如:處理讀和寫請求;當(dāng)時間允許時將臟數(shù)據(jù)提交給被高速緩存盤,以及使用在仔細(xì)閱讀本公開之后提供的認(rèn)知對于本領(lǐng)域技術(shù)人員將是顯而易見的進(jìn)一步后處理操作。
[0049]圖7是示出根據(jù)本發(fā)明實(shí)施例的、響應(yīng)于接收到禁用高速緩存的請求而用于在替換OS環(huán)境中使得被高速緩存盤上的被高速緩存分區(qū)可訪問的方法700的流程圖。在初始操作702中,執(zhí)行預(yù)處理操作。預(yù)處理操作能夠包括,例如,提供關(guān)于被高速緩存盤的回寫高速緩存功能性,以及使用在仔細(xì)閱讀本公開之后提供的認(rèn)知對本領(lǐng)域技術(shù)人員將是顯而易見的其他預(yù)處理操作。
[0050]在操作704中,接收禁用高速緩存的請求。當(dāng)用戶想要將被高速緩存盤移動到替換OS環(huán)境時,用戶應(yīng)當(dāng)首先禁用用于被高速緩存盤的高速緩存,以便確保存儲在被高速緩存盤上的數(shù)據(jù)被完全更新并是干凈的。正如將在以下更詳細(xì)描述,禁用用于被高速緩存盤的高速緩存觸發(fā)高速緩存軟件,以確保盤被完全更新并是完整的,并且能夠從其中不存在高速緩存軟件的替換OS中被安全地訪問。
[0051]響應(yīng)于接收到禁用高速緩存的請求,在操作706中,利用已經(jīng)被保持到最新的、用于被高速緩存盤的原始分區(qū)表來代替被高速緩存盤上的修改后的GUID分區(qū)表??梢酝ㄟ^利用用于被高速緩存盤的完全更新的GPT來代替被高速緩存盤上的MGPT而執(zhí)行此操作。轉(zhuǎn)到圖5,響應(yīng)于接收到禁用用于被高速緩存盤208的高速緩存的請求,高速緩存軟件210準(zhǔn)備好被高速緩存盤208以安全去除和在替換OS環(huán)境中使用。因此,通過確保仍然在高速緩存盤206上的用于被高速緩存盤208的所有臟數(shù)據(jù)被寫入被高速緩存盤208,高速緩存軟件210清空用于被高速緩存盤208的被高速緩存數(shù)據(jù)。此外,通過在必要時對⑶ID分區(qū)表212執(zhí)行任何更新,高速緩存軟件210確保用于被高速緩存盤208的原始GUID分區(qū)表212對于被高速緩存盤208是一致和完整的。然后,高速緩存軟件210將更新后的⑶ID分區(qū)表212寫入被高速緩存盤208。在圖5的示例中,這通過利用用于被高速緩存盤208的GPT212來代替存儲在被高速緩存盤208上的MGPT214來進(jìn)行。此后,被高速緩存盤208上的數(shù)據(jù)是完整的。也就是說,被高速緩存盤208自身是完整的,并且從其中不存在高速緩存軟件210的替換OS中能夠被安全地訪問。
[0052]返回參照圖7,在操作708中禁用被高速緩存盤的高速緩存功能性。一旦高速緩存軟件準(zhǔn)備好被高速緩存盤以安全去除和在替換OS環(huán)境中使用,則用于被高速緩存盤的高速緩存功能性被禁用,并且正常被高速緩存的盤能夠被移動到替換OS環(huán)境并且被安全地訪問。在操作710中執(zhí)行后處理操作。后處理操作能夠包括,例如:使能用于其他設(shè)備的高速緩存;從系統(tǒng)去除正常被高速緩存的盤;以及使用在仔細(xì)閱讀本公開之后提供的認(rèn)知對于本領(lǐng)域技術(shù)人員將是顯而易見的其他后處理操作。
[0053]能夠在其中包含多于一個盤以提供存儲子系統(tǒng)的完整視圖的任何存儲環(huán)境中利用本發(fā)明實(shí)施例。例如,能夠在使用多個驅(qū)動來存儲數(shù)據(jù)的RAID環(huán)境中利用本發(fā)明實(shí)施例。在RAID中,能夠使用RAID軟件來提供RAID表示的邏輯設(shè)備的完整視圖。然而,RAID陣列的各盤中的每一個能夠具有使用修改后的GUID分區(qū)表代替的GUID分區(qū)表,當(dāng)盤被移動到其中不存在RAID軟件的替換OS環(huán)境時,GUID分區(qū)表使得存儲在盤上的數(shù)據(jù)不可訪問。以此方式,如果任何盤被錯誤地移動到替換OS環(huán)境,則能夠保護(hù)各個RAID盤上的數(shù)據(jù)的完整性。
[0054]雖然為了理解清晰已經(jīng)詳細(xì)描述了前述發(fā)明,但是顯然在所附權(quán)利要求書的范圍內(nèi)可以實(shí)踐某些改變和修改。因此,本實(shí)施例將被認(rèn)為是說明性的而不是限制性的,并且發(fā)明將不限于這里所給出的細(xì)節(jié),而是可以在所附權(quán)利要求的范圍和等價物之內(nèi)進(jìn)行修改。
【權(quán)利要求】
1.一種用于在替換操作系統(tǒng)(OS)環(huán)境中保護(hù)盤的數(shù)據(jù)完整性的方法,包括: 用修改后的全局唯一標(biāo)識符分區(qū)表(MGPT)來代替用于被高速緩存盤的全局唯一標(biāo)識符分區(qū)表(GPT),其中,當(dāng)MGPT被OS使用來訪問被高速緩存分區(qū)時,MGPT使得被高速緩存盤上的被高速緩存分區(qū)不可訪問,并且其中,當(dāng)MGPT被OS使用來訪問未被高速緩存分區(qū)時,被高速緩存盤上的未被高速緩存分區(qū)是可訪問的;以及使用基于GPT的信息來訪問被高速緩存盤上的數(shù)據(jù)。
2.如權(quán)利要求1所述的方法,其中,用于被高速緩存分區(qū)的MGPT中的分區(qū)條目具有與被存儲在用于被高速緩存盤的GPT中的對應(yīng)條目不同的開始和結(jié)束位置。
3.如權(quán)利要求2所述的方法,其中,用于未被高速緩存分區(qū)的MGPT中的分區(qū)條目與用于被高速緩存盤的GPT中的對應(yīng)條目相同。
4.如權(quán)利要求2所述的方法,其中,以MGPT將被OS利用以在替換操作系統(tǒng)(OS)環(huán)境中引導(dǎo)被高速緩存盤的方式,將MGPT存儲在被高速緩存盤上。
5.如權(quán)利要求1所述的方法,進(jìn)一步包括:響應(yīng)于接收到禁用高速緩存的請求,用GPT來代替被高速緩存盤上的MGPT。
6.如權(quán)利要求1所述的方法,其中,GPT被存儲在高速緩存盤上,其中所述高速緩存盤被用于回寫高速緩存以存儲用于被高速緩存盤的被高速緩存數(shù)據(jù)。
7.如權(quán)利要求6所述的方法,其中,GPT也被存儲在被高速緩存盤上除了MGPT的位置以外的位置中。
8.一種用于在替換操作系統(tǒng)(OS)環(huán)境中保護(hù)盤的數(shù)據(jù)完整性的方法,包括: 用修改后的全局唯一標(biāo)識符分區(qū)表(MGPT)來代替用于被高速緩存盤的全局唯一標(biāo)識符分區(qū)表(GPT),其中,當(dāng)MGPT被OS使用來訪問被高速緩存分區(qū)時,MGPT使得被高速緩存盤上的被高速緩存分區(qū)不可訪問,并且其中,當(dāng)MGPT被OS使用來訪問未被高速緩存分區(qū)時,被高速緩存盤上的未被高速緩存分區(qū)是可訪問的; 使用基于GPT的信息來訪問被高速緩存盤上的數(shù)據(jù);以及 響應(yīng)于接收到禁用高速緩存的請求,用GPT來代替被高速緩存盤上的MGPT。
9.如權(quán)利要求8所述的方法,其中,用于被高速緩存分區(qū)的MGPT中的分區(qū)條目具有與被存儲在用于被高速緩存盤的GPT中的對應(yīng)條目不同的開始和結(jié)束位置。
10.如權(quán)利要求9所述的方法,其中,用于未被高速緩存分區(qū)的MGPT中的分區(qū)條目與用于被高速緩存盤的GPT中的對應(yīng)條目相同。
11.如權(quán)利要求9所述的方法,其中,以MGPT將被OS利用以在替換操作系統(tǒng)(OS)環(huán)境中引導(dǎo)被高速緩存盤的方式,將MGPT存儲在被高速緩存盤上。
12.如權(quán)利要求8所述的方法,其中,GPT被存儲在高速緩存盤上,其中所述高速緩存盤被用于回寫高速緩存以存儲用于被高速緩存盤的被高速緩存數(shù)據(jù)。
13.如權(quán)利要求8所述的方法,其中,GPT也被存儲在被高速緩存盤上除了MGPT的位置以外的位置中。
14.一種具體化在計算機(jī)可讀介質(zhì)上、用于在替換操作系統(tǒng)(OS)環(huán)境中保護(hù)盤的數(shù)據(jù)完整性的計算機(jī)程序,包括: 計算機(jī)指令,用修改后的全局唯一標(biāo)識符分區(qū)表(MGPT)來代替用于被高速緩存盤的全局唯一標(biāo)識符分區(qū)表(GPT),其中,當(dāng)MGPT被OS使用來訪問被高速緩存分區(qū)時,MGPT使得被高速緩存盤上的被高速緩存分區(qū)不可訪問,并且其中,當(dāng)MGPT被OS使用來訪問未被高速緩存分區(qū)時,被高速緩存盤上的未被高速緩存分區(qū)是可訪問的;以及 計算機(jī)指令,使用基于GPT的信息來訪問被高速緩存盤上的數(shù)據(jù)。
15.如權(quán)利要求14所述的計算機(jī)程序,其中,用于被高速緩存分區(qū)的MGPT中的分區(qū)條目具有與被存儲在用于被高速緩存盤的GPT中的對應(yīng)條目中不同的開始和結(jié)束位置。
16.如權(quán)利要求15所述的計算機(jī)程序,其中,用于未被高速緩存分區(qū)的MGPT中的分區(qū)條目與用于被高速緩存盤的GPT中的對應(yīng)條目相同。
17.如權(quán)利要求14所述的計算機(jī)程序,其中,以MGPT將被OS利用以在替換操作系統(tǒng)(OS)環(huán)境中引導(dǎo)被高速緩存盤的方式,將MGPT存儲在被高速緩存盤上。
18.如權(quán)利要求14所述的計算機(jī)程序,進(jìn)一步包括計算機(jī)指令:響應(yīng)于接收到禁用高速緩存的請求,用GPT來代替被高速緩存盤上的MGPT。
19.如權(quán)利要求14所述的計算機(jī)程序,其中,GPT被存儲在高速緩存盤上,其中高速緩存盤被用于回寫高速緩存以存儲用于被高速緩存盤的被高速緩存數(shù)據(jù)。
20.如權(quán)利要求14所述的計算機(jī)程序,其中,GPT被存儲在盤上除了MGPT的位置以外的位置中。`
【文檔編號】G06F12/08GK103631564SQ201310379354
【公開日】2014年3月12日 申請日期:2013年8月27日 優(yōu)先權(quán)日:2012年8月27日
【發(fā)明者】P.比什特, K·梅蒙 申請人:三星電子株式會社