通過(guò)網(wǎng)絡(luò)連接訪問(wèn)覆蓋介質(zhì)的制作方法
【專利摘要】本發(fā)明涉及通過(guò)網(wǎng)絡(luò)連接向計(jì)算設(shè)備提供覆蓋介質(zhì)。嵌入式設(shè)備/系統(tǒng)上的輸入/輸出(I/O)過(guò)濾器可通過(guò)存儲(chǔ)服務(wù)向覆蓋介質(zhì)發(fā)送數(shù)據(jù)。I/O過(guò)濾器驅(qū)動(dòng)器可使用通用標(biāo)識(shí)符連接到存儲(chǔ)服務(wù)。當(dāng)應(yīng)用向本地存儲(chǔ)介質(zhì)發(fā)出讀操作和/或?qū)懖僮鲿r(shí),I/O過(guò)濾器驅(qū)動(dòng)器通過(guò)網(wǎng)絡(luò)連接將讀操作和/或?qū)懖僮髦囟ㄏ虻酱鎯?chǔ)服務(wù)。
【專利說(shuō)明】通過(guò)網(wǎng)絡(luò)連接訪問(wèn)覆蓋介質(zhì)
[0001]背景
[0002]各種設(shè)備/系統(tǒng)可包括嵌入式平臺(tái),該平臺(tái)包括操作系統(tǒng)、應(yīng)用和各種其它文件。例如,各種設(shè)備/系統(tǒng)可包括便攜式超頻率音響機(jī)、全球定位系統(tǒng)(GPS)設(shè)備、自動(dòng)提款機(jī)(ATM),給大型施工機(jī)械供電的設(shè)備等等。操作系統(tǒng),應(yīng)用和重要用戶數(shù)據(jù)可被配置到運(yùn)行時(shí)映像中,設(shè)備/系統(tǒng)在其上引導(dǎo)并運(yùn)行。例如,包括嵌入式視窗操作系統(tǒng)的視窗嵌入技術(shù)集成現(xiàn)有信息技術(shù)(IT)基礎(chǔ)結(jié)構(gòu)并允許各種服務(wù)(諸如管理、安全、與網(wǎng)絡(luò)或另一設(shè)備/系統(tǒng)數(shù)據(jù)同步、使用簡(jiǎn)檔、位置服務(wù)、廣告服務(wù)、業(yè)務(wù)智能和業(yè)務(wù)線應(yīng)用)訪問(wèn)關(guān)于設(shè)備能力和服務(wù)等的數(shù)據(jù)。
[0003]嵌入式視窗操作系統(tǒng)包括被稱為過(guò)濾器(例如,寫(xiě)過(guò)濾器)的可任選特征,其將用戶在操作系統(tǒng)上作出的改變重定向到一覆蓋,而不是在硬盤(pán)上作出修改。作為結(jié)果,保護(hù)操作系統(tǒng)防止被惡意/無(wú)意修改,并通過(guò)設(shè)備/系統(tǒng)重新引導(dǎo)來(lái)維持在相同的狀態(tài)。寫(xiě)過(guò)濾器的當(dāng)前設(shè)計(jì)可采用基于RAM的或基于盤(pán)的覆蓋(例如硬盤(pán))作為覆蓋類型。覆蓋介質(zhì)的大小限制是預(yù)先定義的,使得過(guò)濾器可訪問(wèn)物理RAM或硬盤(pán)的一部分而不影響用戶的正?;顒?dòng)。隨著對(duì)操作系統(tǒng)作出更多改變,覆蓋在大小(例如,字節(jié)數(shù))方面增加。最后,覆蓋介質(zhì)超過(guò)了大小限制,導(dǎo)致崩潰、非預(yù)期的重新引導(dǎo)和其它有害影響。
【發(fā)明內(nèi)容】
[0004]提供本
【發(fā)明內(nèi)容】
以便以簡(jiǎn)化形式介紹將在以下的【具體實(shí)施方式】中進(jìn)一步描述的一些代表性概念。本
【發(fā)明內(nèi)容】
不旨在標(biāo)識(shí)出所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不旨在以限制所要求保護(hù)的主題的范圍的任何方式來(lái)使用。
[0005]簡(jiǎn)而言之,本文所公開(kāi)的主題的各方面針對(duì)通過(guò)網(wǎng)絡(luò)連接來(lái)傳遞數(shù)據(jù)用于存儲(chǔ)在覆蓋介質(zhì)上。在一個(gè)方面中,網(wǎng)絡(luò)連接指的是到因特網(wǎng)的連接,其中覆蓋介質(zhì)包括由云計(jì)算服務(wù)主控的共享存儲(chǔ)資源。在另一方面中,網(wǎng)絡(luò)連接指的是局域網(wǎng)(LAN)連接,其中覆蓋介質(zhì)包括由可以模擬或可以不模擬云計(jì)算服務(wù)的LAN服務(wù)主控的共享存儲(chǔ)資源。共享存儲(chǔ)資源可以是文件夾、目錄或用于存儲(chǔ)文件的任何其他文件系統(tǒng)對(duì)象。
[0006]在一個(gè)方面中,諸如寫(xiě)過(guò)濾器驅(qū)動(dòng)器之類的輸入/輸出(I/O)過(guò)濾器提供經(jīng)存儲(chǔ)服務(wù)對(duì)覆蓋介質(zhì)的訪問(wèn)。在建立了與存儲(chǔ)服務(wù)的網(wǎng)絡(luò)連接之后,I/o過(guò)濾器驅(qū)動(dòng)器截取針對(duì)受保護(hù)存儲(chǔ)介質(zhì)(如本地或網(wǎng)絡(luò)分區(qū)/驅(qū)動(dòng)器)的讀操作和寫(xiě)操作,并將與具有覆蓋保護(hù)的文件/扇區(qū)相關(guān)聯(lián)的讀操作和寫(xiě)操作重定向到覆蓋介質(zhì)。在一個(gè)方面中,存儲(chǔ)服務(wù)返回對(duì)應(yīng)于讀操作的數(shù)據(jù),并將寫(xiě)操作提供的數(shù)據(jù)存儲(chǔ)在覆蓋介質(zhì)上。在一個(gè)方面中,寫(xiě)操作被應(yīng)用于映像,如快照(層)。在另一方面中,寫(xiě)操作被應(yīng)用于覆蓋高速緩存(如RAM)并響應(yīng)于諸如設(shè)備/系統(tǒng)關(guān)閉之類的各種事件而轉(zhuǎn)移到覆蓋介質(zhì)。
[0007]結(jié)合附圖閱讀以下【具體實(shí)施方式】,本發(fā)明的其他優(yōu)點(diǎn)會(huì)變得顯而易見(jiàn)。
【專利附圖】
【附圖說(shuō)明】
[0008]作為示例而非限制,在附圖中示出了本發(fā)明,附圖中相同的附圖標(biāo)記指示相同或相似的元素,附圖中:
[0009]圖1是根據(jù)一個(gè)示例實(shí)現(xiàn)的示出用于通過(guò)網(wǎng)絡(luò)連接與覆蓋介質(zhì)通信的示例系統(tǒng)的框圖。
[0010]圖2是根據(jù)一個(gè)示例實(shí)現(xiàn)的示出用于通過(guò)網(wǎng)絡(luò)連接與覆蓋介質(zhì)通信的示例步驟的流程圖。
[0011]圖3是根據(jù)一個(gè)示例實(shí)現(xiàn)的示出用于對(duì)本地存儲(chǔ)介質(zhì)上的卷在覆蓋介質(zhì)上維護(hù)一映像的示例步驟的流程圖。
[0012]圖4是根據(jù)一個(gè)示例實(shí)現(xiàn)的示出用于在覆蓋高速緩存和覆蓋介質(zhì)之間轉(zhuǎn)移數(shù)據(jù)的示例步驟的流程圖。
[0013]圖5是表示示例性非限制聯(lián)網(wǎng)環(huán)境的框圖,其中可實(shí)現(xiàn)本文所描述的各種實(shí)施例。
[0014]圖6是表示示例性非限制計(jì)算系統(tǒng)或運(yùn)行環(huán)境的框圖,其中可實(shí)現(xiàn)本文所描述各種實(shí)施例的一個(gè)或多個(gè)方面。
【具體實(shí)施方式】
[0015]本文公開(kāi)的技術(shù)的各種方面一般涉及提供通過(guò)網(wǎng)絡(luò)連接對(duì)覆蓋介質(zhì)(overlaymedia)的利用的輸入/輸出(I/O)過(guò)濾器驅(qū)動(dòng)器。該I/O過(guò)濾器驅(qū)動(dòng)器可通過(guò)因特網(wǎng)或局域網(wǎng)將針對(duì)受保護(hù)卷的輸入/輸出操作重定向到稱為覆蓋高速緩存的本地易失性RAM和/或網(wǎng)絡(luò)基于盤(pán)的覆蓋介質(zhì)。在一個(gè)實(shí)現(xiàn)中,當(dāng)某一應(yīng)用發(fā)出針對(duì)本地存儲(chǔ)介質(zhì)(如硬盤(pán))的讀操作或?qū)懖僮鲿r(shí),替代于提交給受保護(hù)卷,I/O過(guò)濾器驅(qū)動(dòng)器截取讀操作和寫(xiě)操作。該I/O過(guò)濾器驅(qū)動(dòng)器連接到與覆蓋介質(zhì)相關(guān)聯(lián)的存儲(chǔ)服務(wù),并將讀操作和寫(xiě)操作傳遞到該覆蓋介質(zhì)。
[0016]在一個(gè)實(shí)現(xiàn)中,該I/O過(guò)濾器驅(qū)動(dòng)器指示存儲(chǔ)服務(wù)將寫(xiě)操作存儲(chǔ)在覆蓋介質(zhì)中,以及從覆蓋介質(zhì)返回對(duì)應(yīng)于對(duì)本地存儲(chǔ)介質(zhì)的讀操作的數(shù)據(jù)。如果寫(xiě)操作要被提交,則I/O過(guò)濾器驅(qū)動(dòng)器指示存儲(chǔ)服務(wù)返回寫(xiě)操作,寫(xiě)操作的I/O過(guò)濾器驅(qū)動(dòng)器應(yīng)用于本地存儲(chǔ)介質(zhì)。在一個(gè)實(shí)現(xiàn)中,I/o過(guò)濾器驅(qū)動(dòng)器維護(hù)本地存儲(chǔ)介質(zhì)上的包括來(lái)自寫(xiě)操作的文件數(shù)據(jù)的卷的快照。在這樣的實(shí)現(xiàn)中,I/o過(guò)濾器驅(qū)動(dòng)器在本地存儲(chǔ)介質(zhì)上的相應(yīng)物理文件地址處存儲(chǔ)文件數(shù)據(jù)。
[0017]應(yīng)當(dāng)理解的是,此處的任何示例均是非限制的。因此,本發(fā)明不限制于在此描述的任何具體的實(shí)施例、方面、概念、結(jié)構(gòu)、功能或示例。相反,在此所描述的實(shí)施例、方面、概念、結(jié)構(gòu)、功能或示例中的任何一個(gè)都是非限制性的,并且本發(fā)明可以按一般在計(jì)算和數(shù)據(jù)存儲(chǔ)系統(tǒng)中提供益處和優(yōu)點(diǎn)的各種方式來(lái)使用。
[0018]圖1是根據(jù)一個(gè)示例實(shí)現(xiàn)的示出用于通過(guò)網(wǎng)絡(luò)連接與覆蓋介質(zhì)通信的示例系統(tǒng)的框圖。示例系統(tǒng)的組件可包括存儲(chǔ)服務(wù)102、覆蓋介質(zhì)104、以及網(wǎng)絡(luò)104和網(wǎng)絡(luò)106,網(wǎng)絡(luò)104和106被表示為分別耦合于過(guò)濾器驅(qū)動(dòng)器108和過(guò)濾器驅(qū)動(dòng)器110。要理解,盡管圖1描繪了兩個(gè)網(wǎng)絡(luò)來(lái)例示出存儲(chǔ)服務(wù)102可支持具有覆蓋介質(zhì)104的多個(gè)計(jì)算設(shè)備(如嵌入式設(shè)備/系統(tǒng)),但是可采用到一個(gè)或多個(gè)計(jì)算設(shè)備的一個(gè)網(wǎng)絡(luò)連接來(lái)實(shí)施本公開(kāi)的實(shí)現(xiàn)。在一個(gè)實(shí)現(xiàn)中,分別運(yùn)行過(guò)濾器驅(qū)動(dòng)器108和110的第一嵌入式設(shè)備/系統(tǒng)(對(duì)應(yīng)于示例程序112)和第二嵌入式設(shè)備/系統(tǒng)(對(duì)應(yīng)于示例程序122)可構(gòu)成用戶的聯(lián)網(wǎng)社區(qū)的一部分。
[0019]在一個(gè)實(shí)現(xiàn)中,存儲(chǔ)服務(wù)102可包括提供通過(guò)諸如因特網(wǎng)之類的網(wǎng)絡(luò)連接對(duì)覆蓋介質(zhì)104的訪問(wèn)的托管服務(wù)(稱為云計(jì)算服務(wù))。因此,覆蓋介質(zhì)104可包括共享的、可配置的存儲(chǔ)資源的一部分。存儲(chǔ)服務(wù)102可被分配一公共ID(即云ID)和統(tǒng)一資源定位器(URL)(即云URL),過(guò)濾器驅(qū)動(dòng)器108和/或過(guò)濾器驅(qū)動(dòng)器110可使用它們來(lái)與覆蓋介質(zhì)104通信數(shù)據(jù)。公共ID可包括與公共網(wǎng)絡(luò)上的托管服務(wù)(hosted service)相關(guān)聯(lián)的微軟Windows? Live ID或Hotmail? ID。作為替代,可對(duì)特定社區(qū)的用戶的專屬平臺(tái)上的私有托管服務(wù)配置該公共ID和URL。替代地,存儲(chǔ)服務(wù)102可以是包括諸如如執(zhí)行過(guò)濾器驅(qū)動(dòng)器108或過(guò)濾器驅(qū)動(dòng)器110的嵌入式設(shè)備/系統(tǒng)之類的嵌入式設(shè)備/系統(tǒng)的共享局域網(wǎng)上的托管服務(wù)。
[0020]在一個(gè)示例實(shí)現(xiàn)中,過(guò)濾器驅(qū)動(dòng)器108和過(guò)濾器驅(qū)動(dòng)器110可包括內(nèi)核模式驅(qū)動(dòng)器,如分層驅(qū)動(dòng)器棧中的特定類型的輸入/輸出(I/o)驅(qū)動(dòng)器(如寫(xiě)過(guò)濾器驅(qū)動(dòng)器)。過(guò)濾器驅(qū)動(dòng)器108和110可耦合于相同的分層I/O驅(qū)動(dòng)器或不同的分層I/O驅(qū)動(dòng)器,并截取針對(duì)與較低層/底層分層I/o驅(qū)動(dòng)器相關(guān)聯(lián)的存儲(chǔ)設(shè)備/介質(zhì)上的文件系統(tǒng)對(duì)象(如文件和/或目錄)的I/o操作/請(qǐng)求。過(guò)濾器驅(qū)動(dòng)器108和110 —般允許關(guān)于存儲(chǔ)設(shè)備/介質(zhì)的附加功能。
[0021]當(dāng)程序112 (如操作系統(tǒng)組件或用戶模式應(yīng)用)發(fā)起了針對(duì)本地和/或網(wǎng)絡(luò)存儲(chǔ)介質(zhì)上的受覆蓋保護(hù)的卷的輸入/輸出操作114時(shí),替代于由底層輸入/輸出驅(qū)動(dòng)器(如文件系統(tǒng)驅(qū)動(dòng)器、盤(pán)驅(qū)動(dòng)器等等)處理,輸入/輸出操作114可由過(guò)濾器驅(qū)動(dòng)器108截取并重定向到覆蓋介質(zhì)104。在一個(gè)示例實(shí)現(xiàn)中,過(guò)濾器驅(qū)動(dòng)器108可使用標(biāo)識(shí)符116(如統(tǒng)一標(biāo)識(shí)符、系統(tǒng)級(jí)唯一標(biāo)識(shí)符等等)訪問(wèn)與存儲(chǔ)服務(wù)102的網(wǎng)絡(luò)連接,并可指示存儲(chǔ)服務(wù)102將對(duì)應(yīng)于寫(xiě)操作的數(shù)據(jù)存儲(chǔ)在覆蓋介質(zhì)108上。
[0022]例如當(dāng)寫(xiě)操作要被提交給盤(pán)118時(shí),過(guò)濾器驅(qū)動(dòng)器108可向存儲(chǔ)服務(wù)102請(qǐng)求對(duì)應(yīng)于寫(xiě)操作的數(shù)據(jù),并將數(shù)據(jù)寫(xiě)入受保護(hù)卷。作為替代,過(guò)濾器驅(qū)動(dòng)器108可在數(shù)據(jù)被轉(zhuǎn)移到覆蓋介質(zhì)104之前從覆蓋高速緩存120中取回?cái)?shù)據(jù)。替代于提交給盤(pán)118或在提交給盤(pán)118之后,過(guò)濾器驅(qū)動(dòng)器108可從覆蓋介質(zhì)104和/或覆蓋高速緩存120刪除該數(shù)據(jù)。為了說(shuō)明該示例,在對(duì)計(jì)算機(jī)設(shè)備執(zhí)行了必要的改變之后,如安裝/更新其他程序(如操作系統(tǒng))、修改系統(tǒng)設(shè)置等等,程序112可調(diào)用一(提交)命令來(lái)安排在下一次系統(tǒng)重新引導(dǎo)/重啟之后盤(pán)118上的提交過(guò)程。
[0023]在一個(gè)實(shí)現(xiàn)中,存儲(chǔ)服務(wù)102可以范圍(extent)和/或范圍信息(extentinformat1n)的形式用一個(gè)或多個(gè)文件的部分來(lái)響應(yīng)于來(lái)自過(guò)濾器驅(qū)動(dòng)器108的請(qǐng)求。這些范圍可包括在更新/安裝其他程序、修改系統(tǒng)設(shè)置等時(shí)程序112作出的改變的數(shù)據(jù)塊。一般來(lái)說(shuō),范圍信息可包括各種文件系統(tǒng)、卷和/或存儲(chǔ)介質(zhì)(即盤(pán)118)元數(shù)據(jù)和/或文件偏移映射信息。對(duì)于每個(gè)文件,文件偏移映射信息指不出表不范圍(如包括某一文件的數(shù)據(jù)的存儲(chǔ)器的連續(xù)區(qū)域)的偏移量的值。偏移量被用于以文件級(jí)或盤(pán)/扇區(qū)級(jí)來(lái)定位每個(gè)范圍。偏移量可以是第一地址(如與文件的開(kāi)始相關(guān)聯(lián)的地址、與文件所駐留的卷的開(kāi)始相關(guān)聯(lián)的地址、與卷或文件等相關(guān)聯(lián)的扇區(qū)位置)和該范圍之間的字節(jié)數(shù)。作為替代,范圍信息可被與I/o驅(qū)動(dòng)器棧相關(guān)聯(lián)的其他內(nèi)核模式驅(qū)動(dòng)器和/或1/0系統(tǒng)服務(wù)本地地維護(hù)。
[0024]在一個(gè)示例實(shí)現(xiàn)中,程序122可發(fā)出計(jì)劃給受保護(hù)卷但被過(guò)濾器驅(qū)動(dòng)器110截取的輸入/輸出(I/O)操作124,過(guò)濾器驅(qū)動(dòng)器110可使用可使用各種服務(wù)(如諸如I/O之類的系統(tǒng)服務(wù)、存儲(chǔ)和/或網(wǎng)絡(luò)服務(wù))和/或一個(gè)或多個(gè)內(nèi)核模式驅(qū)動(dòng)器來(lái)將I/O操作124應(yīng)用于覆蓋介質(zhì)104。在由與目標(biāo)存儲(chǔ)設(shè)備相關(guān)聯(lián)的底層輸入/輸出驅(qū)動(dòng)器一文件系統(tǒng)驅(qū)動(dòng)器中在文件級(jí)或盤(pán)或設(shè)備驅(qū)動(dòng)器中在盤(pán)扇區(qū)級(jí)一處理之前,過(guò)濾器驅(qū)動(dòng)器110可截取I/O操作124。
[0025]在一個(gè)實(shí)現(xiàn)中,過(guò)濾器驅(qū)動(dòng)器110可連接到存儲(chǔ)服務(wù)102并利用標(biāo)識(shí)符126將I/O操作124傳遞給覆蓋介質(zhì)104,該標(biāo)識(shí)符126引用特定的存儲(chǔ)位置(如分區(qū)或文件夾)。作為一示例,I/O操作124可包括盤(pán)寫(xiě)入或盤(pán)讀取I/O請(qǐng)求分組(IRP)。IRP包括充分地描述對(duì)配置成處理該IRP的可兼容的I/O系統(tǒng)服務(wù)和/或內(nèi)核模式驅(qū)動(dòng)器的I/O操作/請(qǐng)求(如創(chuàng)建或打開(kāi)文件、寫(xiě)數(shù)據(jù)、讀數(shù)據(jù)等等)所需的信息。存儲(chǔ)設(shè)備102包括這些I/O系統(tǒng)服務(wù)和/或內(nèi)核模式驅(qū)動(dòng)器的實(shí)現(xiàn)。每個(gè)IRP包括分層驅(qū)動(dòng)器棧(如I/O驅(qū)動(dòng)器棧)中的每個(gè)驅(qū)動(dòng)器的特定信息,包括要由該驅(qū)動(dòng)器執(zhí)行的一個(gè)或多個(gè)功能。在完成這些功能之后,每個(gè)驅(qū)動(dòng)器將結(jié)果數(shù)據(jù)和/或元數(shù)據(jù)存儲(chǔ)在IRP中,并將經(jīng)更新的IRP傳遞給下一驅(qū)動(dòng)器,直到完成或出錯(cuò)。
[0026]當(dāng)程序122發(fā)出對(duì)讀取盤(pán)128上存儲(chǔ)的受保護(hù)卷的某一文件的當(dāng)前復(fù)制的數(shù)據(jù)(即讀操作)的請(qǐng)求時(shí),過(guò)濾器驅(qū)動(dòng)器I1可指示存儲(chǔ)服務(wù)102從該特定存儲(chǔ)位置取回對(duì)應(yīng)于更新的和/或新的范圍的文件部分。存儲(chǔ)服務(wù)102可使用合適的I/O系統(tǒng)服務(wù)和/或內(nèi)核模式驅(qū)動(dòng)器來(lái)訪問(wèn)這些部分并滿足該請(qǐng)求。連同存儲(chǔ)在盤(pán)128上的任何其他文件數(shù)據(jù),過(guò)濾器驅(qū)動(dòng)器110可將來(lái)自存儲(chǔ)服務(wù)102的數(shù)據(jù)提供給程序122。過(guò)濾器驅(qū)動(dòng)器110不向程序122提供文件的任何刪除的部分,因?yàn)檫@些部分對(duì)應(yīng)于非當(dāng)前時(shí)間點(diǎn)。作為替代,在如本文所述的數(shù)據(jù)被轉(zhuǎn)移到覆蓋介質(zhì)104之前,過(guò)濾器驅(qū)動(dòng)器110可從覆蓋高速緩存130取回?cái)?shù)據(jù)。
[0027]當(dāng)程序122發(fā)出對(duì)盤(pán)128上的受保護(hù)卷的文件寫(xiě)數(shù)據(jù)(即寫(xiě)操作)的請(qǐng)求時(shí),過(guò)濾器驅(qū)動(dòng)器110可指示存儲(chǔ)服務(wù)102訪問(wèn)合適的I/O系統(tǒng)服務(wù)和/或內(nèi)核模式驅(qū)動(dòng)器,并執(zhí)行必要的操作來(lái)滿足該請(qǐng)求。在一個(gè)實(shí)現(xiàn)中,存儲(chǔ)服務(wù)102在僅包括被寫(xiě)入的數(shù)據(jù)的文件副本中存儲(chǔ)數(shù)據(jù)。在另一實(shí)現(xiàn)中,如本文所述,存儲(chǔ)服務(wù)102在覆蓋介質(zhì)104中維護(hù)的用于受保護(hù)卷的當(dāng)前快照層中存儲(chǔ)數(shù)據(jù)。
[0028]作為替代,過(guò)濾器驅(qū)動(dòng)器110可使用本地I/O系統(tǒng)服務(wù)和內(nèi)核模式驅(qū)動(dòng)器來(lái)將數(shù)據(jù)存儲(chǔ)在文件和/或受保護(hù)卷的(經(jīng)高速緩存)的版本中。例如,過(guò)濾器驅(qū)動(dòng)器110可將數(shù)據(jù)寫(xiě)入體現(xiàn)盤(pán)128上、但在稍后/當(dāng)前時(shí)間點(diǎn)的(即更新的)文件的物理版本的邏輯或虛擬文件副本。這種文件副本可包括含寫(xiě)入的數(shù)據(jù)的范圍以及表示盤(pán)上的文件的未改變的物理范圍的邏輯或虛擬范圍(如諸如指針、引用等之類的占位符)的范圍。過(guò)濾器驅(qū)動(dòng)器110可將文件副本存儲(chǔ)在覆蓋高速緩存130上。覆蓋高速緩存130可例如駐留在RAM上或過(guò)濾器驅(qū)動(dòng)器110所使用的另一卷上。在一個(gè)實(shí)現(xiàn)中,過(guò)濾器驅(qū)動(dòng)器110可將文件副本轉(zhuǎn)移到覆蓋介質(zhì)104以用于存儲(chǔ)在對(duì)應(yīng)于某一時(shí)間點(diǎn)處的受保護(hù)卷的快照層上或不與該快照層相關(guān)聯(lián)的分開(kāi)的位置中。
[0029]類似于過(guò)濾器驅(qū)動(dòng)器108,過(guò)濾器驅(qū)動(dòng)器110可提交對(duì)應(yīng)于對(duì)本地和/或網(wǎng)絡(luò)受覆蓋保護(hù)的存儲(chǔ)介質(zhì)(如盤(pán)128)上的受保護(hù)卷的寫(xiě)操作的數(shù)據(jù),從而文件(如操作系統(tǒng)或應(yīng)用文件)改變可在設(shè)備或系統(tǒng)重啟之后持續(xù)。作為另一示例,過(guò)濾器驅(qū)動(dòng)器110可將寫(xiě)操作重定向到覆蓋高速緩存130,覆蓋高速緩存可存儲(chǔ)對(duì)文件系統(tǒng)作出的改變,這些改變可在設(shè)備或系統(tǒng)重啟和恢復(fù)受保護(hù)/原始狀態(tài)時(shí)被刪除。
[0030]各種程序?qū)κ芨采w保護(hù)的存儲(chǔ)介質(zhì)上的受保護(hù)卷作出的改變可用稱為快照的映像類型來(lái)被體現(xiàn),并存儲(chǔ)在覆蓋介質(zhì)104的快照132中。快照132中的每個(gè)快照可包括對(duì)應(yīng)于某一時(shí)間點(diǎn)的卷狀態(tài)的一個(gè)或多個(gè)快照層。例如,添加到現(xiàn)有快照中的每個(gè)快照層創(chuàng)建了對(duì)應(yīng)于稍后時(shí)間點(diǎn)的一新的、更新的快照。
[0031]當(dāng)當(dāng)前時(shí)間點(diǎn)的快照層被添加到現(xiàn)有快照時(shí),所產(chǎn)生的快照層的組結(jié)合受保護(hù)卷上的未改變數(shù)據(jù)可表示一運(yùn)行時(shí)映像,在該運(yùn)行時(shí)映像上,操作系統(tǒng)可裝載文件系統(tǒng)以及運(yùn)行各種程序。因此,快照132可形成卷從原始狀態(tài)到當(dāng)前狀態(tài)的編年史。在一個(gè)示例實(shí)現(xiàn)中,用快照132中的任何一個(gè)快照更新受覆蓋保護(hù)的存儲(chǔ)介質(zhì)上的受保護(hù)卷造成與每個(gè)包括在內(nèi)的快照層相關(guān)聯(lián)的所有寫(xiě)操作都被應(yīng)用來(lái)創(chuàng)建時(shí)間點(diǎn)一致的卷狀態(tài)。
[0032]在一個(gè)示例實(shí)現(xiàn)中,標(biāo)識(shí)符116和126可包括分別由寫(xiě)過(guò)濾器驅(qū)動(dòng)器108和110生成的系統(tǒng)特定的唯一標(biāo)識(shí)符,或可從本地硬件信息生成的通用唯一 ID(UUID)。一示例性通用唯一 ID可包括CPU序列號(hào)、主板序列號(hào)和/或網(wǎng)卡MAC地址或它們的組合。該示例性通用唯一 ID可被用作(云)文件夾的名稱,其中所有數(shù)據(jù)塊是為某一設(shè)備存儲(chǔ)的。
[0033]圖2是根據(jù)一個(gè)示例實(shí)現(xiàn)的示出用于通過(guò)網(wǎng)絡(luò)連接與覆蓋介質(zhì)通信的示例步驟的流程圖。圖2中所描繪的步驟可由諸如過(guò)濾器驅(qū)動(dòng)器108或過(guò)濾器驅(qū)動(dòng)器110之類的I/O過(guò)濾器驅(qū)動(dòng)器執(zhí)行。這些步驟在步驟202開(kāi)始并進(jìn)行到步驟204,在步驟204中建立與存儲(chǔ)服務(wù)和覆蓋介質(zhì)的網(wǎng)絡(luò)連接。如本文所述,在一個(gè)實(shí)現(xiàn)中,可使用公共云ID和URL來(lái)定位存儲(chǔ)服務(wù),覆蓋介質(zhì)可以是采用諸如文件夾之類的數(shù)據(jù)存儲(chǔ)的形式的共享存儲(chǔ)資源的一部分。
[0034]步驟206表示處理來(lái)自應(yīng)用的針對(duì)諸如盤(pán)之類的本地存儲(chǔ)介質(zhì)的I/O操作。在分層I/o驅(qū)動(dòng)器棧中,在到達(dá)較低分層內(nèi)核模式驅(qū)動(dòng)器之前,I/O過(guò)濾器驅(qū)動(dòng)器截取該I/O操作。步驟208示出經(jīng)存儲(chǔ)服務(wù)將該I/O操作重定向到覆蓋介質(zhì)。步驟210指的是關(guān)于該I/O操作是讀操作還是寫(xiě)操作的確定。讀操作一般涉及請(qǐng)求文件數(shù)據(jù)的應(yīng)用作出的各種“讀取文件”(ReadFile)功能調(diào)用中的任何一個(gè)。寫(xiě)操作一般涉及各種“寫(xiě)文件”(WriteFile)功能調(diào)用中的任何一個(gè)。如果該I/O操作是讀操作,則步驟210進(jìn)行到步驟212。步驟212描繪從覆蓋介質(zhì)將數(shù)據(jù)返回到作出請(qǐng)求的應(yīng)用。在一個(gè)實(shí)現(xiàn)中,I/O過(guò)濾器驅(qū)動(dòng)器指示存儲(chǔ)服務(wù)定位與對(duì)應(yīng)于該讀操作的文件相關(guān)聯(lián)的當(dāng)前數(shù)據(jù)(塊)。該I/O過(guò)濾器驅(qū)動(dòng)器向作出請(qǐng)求的應(yīng)用提供當(dāng)前數(shù)據(jù),就好像數(shù)據(jù)實(shí)際上存儲(chǔ)在本地存儲(chǔ)介質(zhì)中。在執(zhí)行了步驟212之后,圖2所示出的示例方法進(jìn)行到步驟220,在步驟220該方法結(jié)束。
[0035]如果該I/O操作是寫(xiě)操作,則步驟210進(jìn)行到步驟214。步驟214涉及從存儲(chǔ)服務(wù)將各種元數(shù)據(jù)返回到I/O驅(qū)動(dòng)器棧中的內(nèi)核模式驅(qū)動(dòng)器。在一個(gè)實(shí)現(xiàn)中,I/O過(guò)濾器驅(qū)動(dòng)器向I/O管理器驅(qū)動(dòng)器、文件系統(tǒng)驅(qū)動(dòng)器和/或設(shè)備驅(qū)動(dòng)器提供與當(dāng)前存儲(chǔ)在覆蓋介質(zhì)中的新的和/或更新的數(shù)據(jù)塊有關(guān)的范圍信息。這些驅(qū)動(dòng)器可使用該信息來(lái)維護(hù)時(shí)間點(diǎn)一致的文件系統(tǒng)信息,并創(chuàng)建表示覆蓋介質(zhì)中用于一個(gè)或多個(gè)新的和/或更新數(shù)據(jù)塊的存儲(chǔ)位置的覆蓋指針。當(dāng)某一程序發(fā)出讀取這樣的數(shù)據(jù)的請(qǐng)求時(shí),替代于提供指向盤(pán)上的扇區(qū)或文件地址的指針,I/o過(guò)濾器驅(qū)動(dòng)器使用該覆蓋指針來(lái)請(qǐng)求和/或定位對(duì)應(yīng)的數(shù)據(jù)塊。
[0036]步驟216涉及確定是否要向本地和/或網(wǎng)絡(luò)受覆蓋保護(hù)的存儲(chǔ)介質(zhì)提交一個(gè)或多個(gè)累積的寫(xiě)操作。在一個(gè)實(shí)現(xiàn)中,步驟216確定是否要提交對(duì)應(yīng)于一個(gè)或多個(gè)快照層的數(shù)據(jù)。用戶可發(fā)出提交命令,該提交命令將數(shù)據(jù)存儲(chǔ)(如轉(zhuǎn)儲(chǔ)清除所有寫(xiě)操作)到受覆蓋保護(hù)的存儲(chǔ)介質(zhì)上的受保護(hù)卷。如果該寫(xiě)操作要被提交,則步驟214進(jìn)行到步驟218。如果寫(xiě)操作不要被提交,則步驟216返回到步驟206并處理另一 I/O操作。
[0037]步驟216針對(duì)向存儲(chǔ)服務(wù)請(qǐng)求與該寫(xiě)操作相關(guān)聯(lián)的數(shù)據(jù)。在一個(gè)實(shí)現(xiàn)中,具有該數(shù)據(jù)的文件的(經(jīng)高速緩存的)版本被發(fā)送。步驟220涉及用所請(qǐng)求的數(shù)據(jù)來(lái)更新本地和/或網(wǎng)絡(luò)受覆蓋保護(hù)的存儲(chǔ)介質(zhì)上的文件。步驟222結(jié)束圖2中所描繪的示例步驟。
[0038]圖3是根據(jù)一個(gè)示例實(shí)現(xiàn)的示出用于對(duì)本地存儲(chǔ)介質(zhì)上的卷在覆蓋介質(zhì)上維護(hù)一映像的示例步驟的流程圖。圖3中所描繪的步驟可由諸如過(guò)濾器驅(qū)動(dòng)器108或過(guò)濾器驅(qū)動(dòng)器110之類的I/O過(guò)濾器驅(qū)動(dòng)器執(zhí)行。這些步驟在步驟302開(kāi)始,并進(jìn)行到步驟304,在步驟304訪問(wèn)覆蓋介質(zhì)上對(duì)于本地存儲(chǔ)介質(zhì)上的卷的快照。如本文所述,快照層是表示某一時(shí)間點(diǎn)受保護(hù)卷的狀態(tài)的一種類型的映像(文件)。當(dāng)快照和受保護(hù)卷被聚集時(shí),所產(chǎn)生的映像構(gòu)成了一更新的運(yùn)行時(shí)映像,該更新的運(yùn)行時(shí)映像可由嵌入式設(shè)備/系統(tǒng)引導(dǎo)和/或裝載且與該時(shí)間點(diǎn)一致。在一個(gè)實(shí)現(xiàn)中,步驟304期間被訪問(wèn)的快照與最后一次恢復(fù)的時(shí)間點(diǎn)(即原始狀態(tài))之后的一時(shí)間點(diǎn)相關(guān)聯(lián)。
[0039]步驟306針對(duì)截取對(duì)文件的寫(xiě)操作并經(jīng)存儲(chǔ)服務(wù)將寫(xiě)操作重定向到覆蓋介質(zhì)。步驟308表示對(duì)當(dāng)前時(shí)間點(diǎn)創(chuàng)建快照層。在一個(gè)實(shí)現(xiàn)中,I/O過(guò)濾器驅(qū)動(dòng)器指示存儲(chǔ)服務(wù)創(chuàng)建當(dāng)前快照層。步驟310涉及將寫(xiě)操作應(yīng)用于當(dāng)前快照層上的文件的相應(yīng)版本。相應(yīng)文件版本可以是包括表示文件系統(tǒng)級(jí)或扇區(qū)級(jí)的物理地址的邏輯地址的經(jīng)高速緩存的文件副本。例如,某些文件部分(如范圍)可映射到盤(pán)上不同的和/或非相鄰的扇區(qū),但是文件系統(tǒng)可將該文件表示為具有一系列物理地址的連續(xù)的存儲(chǔ)器區(qū)域。作為替代,覆蓋介質(zhì)可將盤(pán)的表示(如映像)維護(hù)為受保護(hù)卷的當(dāng)前狀態(tài)的體現(xiàn),并指示出那些扇區(qū)存儲(chǔ)文件的新的/更新的版本。因此,可在扇區(qū)級(jí)應(yīng)用寫(xiě)操作。
[0040]在一個(gè)實(shí)現(xiàn)中,在當(dāng)前快照層內(nèi),對(duì)應(yīng)于將不被改變的物理(盤(pán)上)地址的邏輯文件(即字節(jié))地址被留為空,而要用新的/更新的數(shù)據(jù)更新的物理對(duì)應(yīng)物的邏輯地址被標(biāo)記為“改變的”并嵌有對(duì)該新的/更新的數(shù)據(jù)的引用。因此,當(dāng)前快照層僅包括如果被提交則可被寫(xiě)入卷的新的/更新的數(shù)據(jù)。步驟312涉及確定是否有更多的寫(xiě)操作要截取。如果有更多的寫(xiě)操作,則步驟312返回步驟306,在步驟306當(dāng)前快照層被加到步驟304期間訪問(wèn)的快照。如果沒(méi)有更多的寫(xiě)操作要截取和重定向,則步驟312進(jìn)行到步驟314,在步驟314示例步驟終止。
[0041]圖4是根據(jù)一個(gè)示例實(shí)現(xiàn)的示出用于在覆蓋高速緩存和覆蓋介質(zhì)之間轉(zhuǎn)移數(shù)據(jù)的示例步驟的流程圖。圖4中所描繪的步驟可由諸如過(guò)濾器驅(qū)動(dòng)器108或過(guò)濾器驅(qū)動(dòng)器110之類的I/O過(guò)濾器驅(qū)動(dòng)器執(zhí)行。這些步驟在步驟402開(kāi)始并進(jìn)行到步驟404,在步驟404用對(duì)應(yīng)于寫(xiě)操作的數(shù)據(jù)來(lái)維護(hù)覆蓋高速緩存。在一個(gè)實(shí)現(xiàn)中,覆蓋高速緩存是基于RAM的覆蓋,該基于RAM的覆蓋在數(shù)據(jù)被通過(guò)網(wǎng)絡(luò)連接轉(zhuǎn)移到覆蓋介質(zhì)之前存儲(chǔ)該數(shù)據(jù)。步驟406確定是否觀察到觸發(fā)數(shù)據(jù)轉(zhuǎn)移的事件。示例事件包括嵌入式設(shè)備/系統(tǒng)關(guān)閉。另一示例事件包括超過(guò)了覆蓋高速緩存的大小限制。又一示例事件是定時(shí)轉(zhuǎn)儲(chǔ)清除或手動(dòng)轉(zhuǎn)儲(chǔ)清除事件。如果沒(méi)有觀察到事件,則步驟406返回到步驟404,在步驟404在覆蓋高速緩存中存儲(chǔ)和/或維護(hù)更多的寫(xiě)操作。[0042]如果事件被觀察到,步驟406進(jìn)行到步驟408。步驟408涉及經(jīng)諸如因特網(wǎng)或局域網(wǎng)之類的網(wǎng)絡(luò)連接到覆蓋介質(zhì)。步驟410涉及將對(duì)應(yīng)于寫(xiě)操作的經(jīng)高速緩存的數(shù)據(jù)轉(zhuǎn)儲(chǔ)清除到覆蓋介質(zhì)中。步驟412針對(duì)指示覆蓋介質(zhì)的存儲(chǔ)服務(wù)存儲(chǔ)經(jīng)高速緩存的數(shù)據(jù)。步驟414確定嵌入式設(shè)備/系統(tǒng)是否正在重新引導(dǎo)/重啟。在一個(gè)實(shí)現(xiàn)中,如果事件是未決的關(guān)閉,則嵌入式設(shè)備/系統(tǒng)要被重新引導(dǎo)。如果嵌入式設(shè)備/系統(tǒng)正被重新引導(dǎo)/重啟,則步驟414進(jìn)行到步驟416。如果嵌入式設(shè)備/系統(tǒng)不要被重新引導(dǎo)/重啟,則步驟414進(jìn)行到步驟420,在步驟420,圖4中描述的示例性步驟結(jié)束。步驟416涉及在重新引導(dǎo)期間重新連接到覆蓋介質(zhì)以及請(qǐng)求對(duì)應(yīng)于寫(xiě)操作的經(jīng)高速緩存的數(shù)據(jù)。步驟418涉及將經(jīng)高速緩存的數(shù)據(jù)存儲(chǔ)在受覆蓋保護(hù)的存儲(chǔ)介質(zhì)和更新的受保護(hù)卷中。作為替代,在重新引導(dǎo)之后,經(jīng)高速緩存的數(shù)據(jù)可被存儲(chǔ)在覆蓋高速緩存或另一卷中,以確保保留受保護(hù)卷的前一狀態(tài)。步驟420結(jié)束圖4中所描繪的示例步驟。
[0043]示例性聯(lián)網(wǎng)以及分布式環(huán)境
[0044]本領(lǐng)域技術(shù)人員可以理解,此處描述的各實(shí)施例和方法可結(jié)合任何計(jì)算機(jī)或其它客戶機(jī)或服務(wù)器設(shè)備來(lái)實(shí)現(xiàn),其可被部署為計(jì)算機(jī)網(wǎng)絡(luò)的部分或在分布式計(jì)算環(huán)境中,并且可以被連接到任何類型一個(gè)或多個(gè)數(shù)據(jù)存儲(chǔ)。在這一點(diǎn)上,此處描述的各實(shí)施例可在具有任何數(shù)量的存儲(chǔ)器或存儲(chǔ)單元的、并且任何數(shù)量的應(yīng)用和進(jìn)程跨任何數(shù)量的存儲(chǔ)單元發(fā)生的任何計(jì)算機(jī)系統(tǒng)或環(huán)境中實(shí)現(xiàn)。這包括但不限于具有部署在具有遠(yuǎn)程或本地存儲(chǔ)的網(wǎng)絡(luò)環(huán)境或分布式計(jì)算環(huán)境中的服務(wù)器計(jì)算機(jī)和客戶計(jì)算機(jī)的環(huán)境。
[0045]分布式計(jì)算通過(guò)計(jì)算設(shè)備和系統(tǒng)之間的通信交換來(lái)提供計(jì)算機(jī)資源和服務(wù)的共享。這些資源和服務(wù)包括信息的交換、對(duì)于諸如文件之類的對(duì)象的高速緩存存儲(chǔ)和盤(pán)存儲(chǔ)。這些資源和服務(wù)還包括多個(gè)處理單元之間的處理能力共享以便進(jìn)行負(fù)載平衡、資源擴(kuò)展、處理專門化等等。分布式計(jì)算利用網(wǎng)絡(luò)連接,從而允許客戶機(jī)利用其集體力量來(lái)使整個(gè)企業(yè)受益。就此,各種設(shè)備可具有可如參考本發(fā)明的各實(shí)施例描述地參與資源管理機(jī)制的應(yīng)用、對(duì)象或資源。
[0046]圖5提供了示例性的聯(lián)網(wǎng)或分布式計(jì)算環(huán)境的示意圖。該分布式計(jì)算環(huán)境包括計(jì)算對(duì)象510、512等以及計(jì)算對(duì)象或設(shè)備520、522、524、526、528等,這些計(jì)算對(duì)象或設(shè)備可包括如由示例應(yīng)用530、532、534、536、538表示的程序、方法、數(shù)據(jù)存儲(chǔ)、可編程邏輯等。可以理解,計(jì)算對(duì)象510、512等以及計(jì)算對(duì)象或設(shè)備520、522、524、526、528等可包括不同的設(shè)備,諸如個(gè)人數(shù)字助理(PDA)、音頻/視頻設(shè)備、移動(dòng)電話、MP3播放器、個(gè)人計(jì)算機(jī)、膝上型計(jì)算機(jī)等。
[0047]每個(gè)計(jì)算對(duì)象510、512等以及計(jì)算對(duì)象或設(shè)備520、522、524、526、528等可經(jīng)由通信網(wǎng)絡(luò)540直接或間接地與一個(gè)或多個(gè)其他計(jì)算對(duì)象510、512等以及計(jì)算對(duì)象或設(shè)備520、522、524、526、528等通信。盡管在圖5中被示為單個(gè)元件,但通信網(wǎng)絡(luò)540可包括向圖5的系統(tǒng)提供服務(wù)的其他計(jì)算對(duì)象和計(jì)算設(shè)備和/或可表示未示出的多個(gè)互連網(wǎng)絡(luò)。每個(gè)計(jì)算對(duì)象510、512等或計(jì)算對(duì)象或設(shè)備520、522、524、526、528等還可以包含應(yīng)用,諸如可以利用API或其他對(duì)象、軟件、固件和/或硬件的、適于根據(jù)本發(fā)明的各實(shí)施例所提供的應(yīng)用實(shí)現(xiàn)與其進(jìn)行通信的應(yīng)用530、532、534、536、538。
[0048]存在支持分布式計(jì)算環(huán)境的各種系統(tǒng)、組件和網(wǎng)絡(luò)配置。例如,計(jì)算系統(tǒng)可由有線或無(wú)線系統(tǒng)、本地網(wǎng)絡(luò)或廣泛分布的網(wǎng)絡(luò)連接在一起。當(dāng)前,許多網(wǎng)絡(luò)被耦合至因特網(wǎng),后者為廣泛分布的計(jì)算提供了基礎(chǔ)結(jié)構(gòu)并包含許多不同的網(wǎng)絡(luò),但任何網(wǎng)絡(luò)基礎(chǔ)結(jié)構(gòu)都可用于便于與如各實(shí)施例中所描述的系統(tǒng)的示例性通信。
[0049]由此,可使用諸如客戶機(jī)/服務(wù)器、對(duì)等、或混合體系結(jié)構(gòu)之類的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)和網(wǎng)絡(luò)基礎(chǔ)結(jié)構(gòu)的主機(jī)?!翱蛻魴C(jī)”是使用與其無(wú)關(guān)的另一類或組的服務(wù)的一類或組中的成員??蛻魴C(jī)可以是進(jìn)程,例如,大致上是請(qǐng)求另一程序或進(jìn)程所提供的服務(wù)的一組指令或任務(wù)??蛻魴C(jī)進(jìn)程使用所請(qǐng)求的服務(wù),而無(wú)需“知道”關(guān)于其他程序或服務(wù)本身的任何工作細(xì)節(jié)。
[0050]在客戶機(jī)/服務(wù)器體系結(jié)構(gòu)中,尤其在聯(lián)網(wǎng)系統(tǒng)中,客戶機(jī)通常是訪問(wèn)另一計(jì)算機(jī)(例如,服務(wù)器)所提供的共享網(wǎng)絡(luò)資源的計(jì)算機(jī)。在圖5的圖示中,作為非限制性示例,計(jì)算對(duì)象或設(shè)備520、522、524、526、528等可被認(rèn)為是客戶機(jī)而計(jì)算對(duì)象510、512等可被認(rèn)為是服務(wù)器,其中計(jì)算對(duì)象510、512等作為提供數(shù)據(jù)服務(wù)的服務(wù)器,諸如從客戶機(jī)計(jì)算對(duì)象或設(shè)備520、522、524、526、528等接收數(shù)據(jù)、存儲(chǔ)數(shù)據(jù)、處理數(shù)據(jù)、向客戶機(jī)計(jì)算對(duì)象或設(shè)備520、522、524、526、528等發(fā)送數(shù)據(jù),但任何計(jì)算機(jī)都可取決于環(huán)境而被認(rèn)為是客戶機(jī)、服務(wù)器、或兩者。
[0051]服務(wù)器通常是可通過(guò)諸如因特網(wǎng)或無(wú)線網(wǎng)絡(luò)基礎(chǔ)架構(gòu)之類的遠(yuǎn)程網(wǎng)絡(luò)或本地網(wǎng)絡(luò)訪問(wèn)的遠(yuǎn)程計(jì)算機(jī)系統(tǒng)??蛻魴C(jī)進(jìn)程可在第一計(jì)算機(jī)系統(tǒng)中活動(dòng),而服務(wù)器進(jìn)程可在第二計(jì)算機(jī)系統(tǒng)中活動(dòng),它們通過(guò)通信介質(zhì)相互通信,由此提供分布式功能并允許多個(gè)客戶機(jī)利用服務(wù)器的信息收集能力。
[0052]在通信網(wǎng)絡(luò)540或總線是因特網(wǎng)的網(wǎng)絡(luò)環(huán)境中,例如,計(jì)算對(duì)象510、512等可以是其他計(jì)算對(duì)象或設(shè)備520、522、524、526、528等經(jīng)由諸如超文本傳輸協(xié)議(HTTP)之類的多種已知協(xié)議中的任一種與其通信的Web服務(wù)器。計(jì)算對(duì)象510、512等作為服務(wù)器還可用作例如計(jì)算對(duì)象或設(shè)備520、522、524、526、528等的客戶機(jī),這可以是如分布式計(jì)算環(huán)境的特性。
[0053]示例計(jì)算設(shè)備
[0054]如上所述,有利地,本文所描述的技術(shù)可應(yīng)用于任何設(shè)備。因此,應(yīng)當(dāng)理解,構(gòu)想了結(jié)合各實(shí)施例使用的所有種類的手持式、便攜式和其它計(jì)算設(shè)備和計(jì)算對(duì)象。因此,以下在圖6中所述的通用遠(yuǎn)程計(jì)算機(jī)只是計(jì)算設(shè)備的一個(gè)示例。
[0055]各實(shí)施例可部分地經(jīng)由操作系統(tǒng)來(lái)實(shí)現(xiàn),以供設(shè)備或?qū)ο蟮姆?wù)開(kāi)發(fā)者使用和/或被包括在用于執(zhí)行此處所述的各實(shí)施例的一個(gè)或多個(gè)功能方面的應(yīng)用軟件內(nèi)。軟件可以在由諸如客戶機(jī)工作站、服務(wù)器或其它設(shè)備等一個(gè)或多個(gè)計(jì)算機(jī)執(zhí)行的諸如程序模塊等計(jì)算機(jī)可執(zhí)行指令的通用上下文中描述。本領(lǐng)域的技術(shù)人員可以理解,計(jì)算機(jī)系統(tǒng)具有可用于傳遞數(shù)據(jù)的各種配置和協(xié)議,并且由此沒(méi)有特定配置或協(xié)議應(yīng)當(dāng)被認(rèn)為是限制性的。
[0056]圖6由此示出了其中可實(shí)現(xiàn)本文所述的各實(shí)施例的一個(gè)或多個(gè)方面的合適的計(jì)算系統(tǒng)環(huán)境600的一個(gè)示例,盡管如上所述,計(jì)算系統(tǒng)環(huán)境600僅為合適的計(jì)算環(huán)境的一個(gè)示例,并非對(duì)使用范圍或功能提出任何限制。此外,也不應(yīng)當(dāng)將計(jì)算系統(tǒng)環(huán)境600解釋為對(duì)在示例性計(jì)算系統(tǒng)環(huán)境600中所示的組件中的任何一個(gè)或其組合有任何依賴。
[0057]參考圖6,用于實(shí)現(xiàn)一個(gè)或多個(gè)實(shí)施例的示例性遠(yuǎn)程設(shè)備包括計(jì)算機(jī)610形式的通用計(jì)算設(shè)備。計(jì)算機(jī)610的組件可包括,但不限于,處理單元620、系統(tǒng)存儲(chǔ)器630、以及將包括系統(tǒng)存儲(chǔ)器的各種系統(tǒng)組件耦合到處理單元620的系統(tǒng)總線622。[0058]計(jì)算機(jī)610通常包括各種計(jì)算機(jī)可讀介質(zhì),并且可以是可由計(jì)算機(jī)610訪問(wèn)的任何可用介質(zhì)。系統(tǒng)存儲(chǔ)器630可包括諸如只讀存儲(chǔ)器(ROM)和/或隨機(jī)存取存儲(chǔ)器(RAM)之類的易失性和/或非易失性存儲(chǔ)器形式的計(jì)算機(jī)存儲(chǔ)介質(zhì)。作為示例而非限制,系統(tǒng)存儲(chǔ)器630還可包括操作系統(tǒng)、應(yīng)用程序、其他程序模塊、以及程序數(shù)據(jù)。
[0059]用戶可通過(guò)輸入設(shè)備640向計(jì)算機(jī)610輸入命令和信息。監(jiān)視器或其他類型的顯示設(shè)備也經(jīng)由諸如輸出接口 650之類的接口連接到系統(tǒng)總線622。除監(jiān)視器以外,計(jì)算機(jī)還可包括諸如揚(yáng)聲器和打印機(jī)之類的其他外圍輸出設(shè)備,它們可通過(guò)輸出接口 650連接。
[0060]計(jì)算機(jī)610可使用到一個(gè)或多個(gè)其他遠(yuǎn)程計(jì)算機(jī)(諸如遠(yuǎn)程計(jì)算機(jī)670)的邏輯連接在聯(lián)網(wǎng)或分布式環(huán)境中操作。遠(yuǎn)程計(jì)算機(jī)670可以是個(gè)人計(jì)算機(jī)、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對(duì)等設(shè)備或其他常見(jiàn)網(wǎng)絡(luò)節(jié)點(diǎn)、或者任何其他遠(yuǎn)程媒體消費(fèi)或傳輸設(shè)備,并且可包括以上關(guān)于計(jì)算機(jī)610所述的任何或全部元件。圖6所示的邏輯連接包括諸如局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)之類的網(wǎng)絡(luò)672,但也可包括其他網(wǎng)絡(luò)/總線。這些聯(lián)網(wǎng)環(huán)境在家庭、辦公室、企業(yè)范圍的計(jì)算機(jī)網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)和因特網(wǎng)中是常見(jiàn)的。
[0061]如上所述,盡管結(jié)合各種計(jì)算設(shè)備和網(wǎng)絡(luò)體系結(jié)構(gòu)描述了各示例性實(shí)施例,但基本概念可被應(yīng)用于其中期望改進(jìn)資源使用的效率的任何網(wǎng)絡(luò)系統(tǒng)和任何計(jì)算設(shè)備或系統(tǒng)。
[0062]而且,存在實(shí)現(xiàn)相同或相似功能的多種方法,例如適當(dāng)?shù)腁P1、工具箱、驅(qū)動(dòng)程序代碼、操作系統(tǒng)、控件、獨(dú)立或可下載軟件對(duì)象等,它們使得應(yīng)用和服務(wù)能夠使用此處提供的技術(shù)。由此,此處的各實(shí)施例從API (或其他軟件對(duì)象)的觀點(diǎn)以及從實(shí)現(xiàn)如此處描述的一個(gè)或多個(gè)實(shí)施例的軟件或硬件對(duì)象構(gòu)想。由此,此處所述的各實(shí)施例可具有完全采用硬件、部分采用硬件并且部分采用軟件、以及采用軟件的方面。
[0063]本文中所使用的詞語(yǔ)“示例”意味著用作示例、實(shí)例、或說(shuō)明。為避免疑惑,本文所公開(kāi)的主題不限于這些示例。另外,本文中作為“示例”所述的任何方面或設(shè)計(jì)不一定被解釋為比其他方面或設(shè)計(jì)更優(yōu)選或有利,它也不意味著排除本領(lǐng)域普通技術(shù)人員已知的等效示例性結(jié)構(gòu)和技術(shù)。此外,在使用術(shù)語(yǔ)“包括”、“具有”、“包含”和其他類似詞語(yǔ)的程度上,為避免疑惑,這些術(shù)語(yǔ)旨在以類似于術(shù)語(yǔ)“包括”作為開(kāi)放的過(guò)渡詞的方式是包含性的而在用于權(quán)利要求時(shí)不排除任何附加或其他元素。
[0064]如所述的,此處所述的各種技術(shù)可結(jié)合硬件或軟件或,在適當(dāng)時(shí),以兩者的組合來(lái)實(shí)現(xiàn)。如此處所使用的,術(shù)語(yǔ)“組件”、“模塊”、“系統(tǒng)”等同樣旨在指計(jì)算機(jī)相關(guān)實(shí)體,或者是硬件、硬件和軟件的組合、軟件或者是執(zhí)行中的軟件。例如,組件可以是,但不限于,在處理器上運(yùn)行的進(jìn)程、處理器、對(duì)象、可執(zhí)行碼、執(zhí)行的線程、程序和/或計(jì)算機(jī)。作為說(shuō)明,在計(jì)算機(jī)上運(yùn)行的應(yīng)用和計(jì)算機(jī)都可以是組件。一個(gè)或多個(gè)組件可駐留在進(jìn)程和/或執(zhí)行的線程內(nèi),并且組件可位于一個(gè)計(jì)算機(jī)上和/或分布在兩個(gè)或更多的計(jì)算機(jī)之間。
[0065]如前所述的系統(tǒng)已經(jīng)參考若干組件之間的交互來(lái)描述??梢岳斫?,這些系統(tǒng)和組件可包括組件或指定的子組件、某些指定的組件或子組件和/或附加的組件,并且根據(jù)上述內(nèi)容的各種置換和組合。子組件還可作為通信地耦合到其他組件的組件來(lái)實(shí)現(xiàn),而不是被包括在父組件內(nèi)(層次性)。另外,應(yīng)注意到一個(gè)或多個(gè)組件可被組合成提供聚集功能的單個(gè)組件,或被分成若干單獨(dú)的子組件,且諸如管理層等任何一個(gè)或多個(gè)中間層可被設(shè)置成通信耦合到這樣的子組件以便提供集成功能。此處所述的任何組件也可與一個(gè)或多個(gè)此處未專門描述的但本領(lǐng)域技術(shù)人員一般已知的其他組件進(jìn)行交互。[0066]鑒于本文所述的示例系統(tǒng),可根據(jù)參考各附圖的流程圖還可理解根據(jù)所述的主題來(lái)實(shí)現(xiàn)方法。盡管為了說(shuō)明簡(jiǎn)潔起見(jiàn),作為一系列框示出和描述的方法,但是應(yīng)當(dāng)理解,各實(shí)施例不僅僅限于框的次序,因?yàn)橐恍┛蚩梢耘c此處所描繪和描述的框不同的次序發(fā)生和/或與其他框并發(fā)地發(fā)生。盡管經(jīng)由流程圖示出了非順序或分支的流程,但可以理解,可實(shí)現(xiàn)達(dá)到相同或類似結(jié)果的各種其他分支、流程路徑和框的次序。此外,某些示出的框在實(shí)現(xiàn)下文所述的方法中是可選的。
[0067]結(jié)論
[0068]盡管本發(fā)明易于作出各種修改和替換構(gòu)造,但其某些說(shuō)明性實(shí)施例在附圖中示出并在上面被詳細(xì)地描述。然而應(yīng)當(dāng)了解,這不旨在將本發(fā)明限于所公開(kāi)的具體形式,而是相反地,旨在覆蓋落入本發(fā)明的精神和范圍之內(nèi)的所有修改、替換構(gòu)造和等效方案。
[0069]除此處所述的各實(shí)施例以外,應(yīng)當(dāng)理解,可使用其他類似實(shí)施例,或者可對(duì)所述實(shí)施例作出修改和添加以便執(zhí)行對(duì)應(yīng)實(shí)施例的相同或等效功能而不背離這些實(shí)施例。此外,多個(gè)處理芯片或多個(gè)設(shè)備可共享此處所述的一個(gè)或多個(gè)功能的性能,并且類似地,存儲(chǔ)可跨多個(gè)設(shè)備實(shí)現(xiàn)。因此,本發(fā)明不應(yīng)限于任何單個(gè)實(shí)施例,而是應(yīng)當(dāng)根據(jù)所附權(quán)利要求書(shū)的廣度、精神和范圍來(lái)解釋。
【權(quán)利要求】
1.一種在計(jì)算環(huán)境中的、至少部分地在至少一個(gè)處理器上執(zhí)行的方法,包括,經(jīng)由存儲(chǔ)服務(wù)通過(guò)網(wǎng)絡(luò)連接提供覆蓋介質(zhì),包括使用標(biāo)識(shí)符與所述存儲(chǔ)服務(wù)通信,處理定向到受覆蓋保護(hù)的存儲(chǔ)介質(zhì)的輸入/輸出操作,并通過(guò)所述網(wǎng)絡(luò)連接將輸入/輸出操作重定向到所述存儲(chǔ)服務(wù)。
2.如權(quán)利要求1所述的方法,其特征在于,處理所述輸入/輸出操作還包括截取針對(duì)文件的寫(xiě)操作并將對(duì)應(yīng)于所述寫(xiě)操作的數(shù)據(jù)存儲(chǔ)在覆蓋介質(zhì)上。
3.如權(quán)利要求2所述的方法,其特征在于,還包括將所述寫(xiě)操作施加到所述覆蓋介質(zhì)上的快照層上的所述文件的一個(gè)版本、將所述數(shù)據(jù)提交到本地存儲(chǔ)介質(zhì),或?qū)⑺鰯?shù)據(jù)存儲(chǔ)在覆蓋高速緩存中的所述文件的一個(gè)版本中的至少一個(gè)。
4.一種在計(jì)算環(huán)境中的系統(tǒng),包括,過(guò)濾器驅(qū)動(dòng)器,配置用于截取定向到受覆蓋保護(hù)的存儲(chǔ)介質(zhì)的輸入/輸出操作,其中所述過(guò)濾器驅(qū)動(dòng)器還被配置來(lái)通過(guò)網(wǎng)絡(luò)連接在覆蓋介質(zhì)上維護(hù)對(duì)應(yīng)于寫(xiě)操作的數(shù)據(jù),從所述覆蓋介質(zhì)取回對(duì)應(yīng)于對(duì)所述本地存儲(chǔ)介質(zhì)的讀操作的數(shù)據(jù),并響應(yīng)于提交命令將對(duì)應(yīng)于所述寫(xiě)操作的數(shù)據(jù)存儲(chǔ)在所述本地存儲(chǔ)介質(zhì)中。
5.如權(quán)利要求4所述的系統(tǒng),其特征在于,還包括存儲(chǔ)服務(wù),所述存儲(chǔ)服務(wù)被配置來(lái)將寫(xiě)操作施加到所述覆蓋介質(zhì)上的快照層,并將對(duì)應(yīng)于所述讀操作的數(shù)據(jù)發(fā)送到所述過(guò)濾器驅(qū)動(dòng)器,其中所述存儲(chǔ)服務(wù)包括云計(jì)算服務(wù)和局域網(wǎng)服務(wù)的至少一個(gè)。
6.如權(quán)利要求4所述的系統(tǒng),其特征在于,所述過(guò)濾器驅(qū)動(dòng)器還被配置來(lái)在所述覆蓋介質(zhì)上創(chuàng)建快照層,所述快照層對(duì)應(yīng)于至少部分位于所述受覆蓋保護(hù)的存儲(chǔ)介質(zhì)上的卷,其中所述過(guò)濾器驅(qū)動(dòng)器還被配置來(lái)維護(hù)對(duì)應(yīng)于所述卷的按時(shí)間排序的時(shí)間點(diǎn)的多個(gè)快照層。
7.如權(quán)利要求4所述的系統(tǒng),其特征在于,所述過(guò)濾器驅(qū)動(dòng)器還被配置來(lái),響應(yīng)于未決的系統(tǒng)關(guān)閉,將對(duì)應(yīng)于所述寫(xiě)操作的數(shù)據(jù)從所述覆蓋高速緩存轉(zhuǎn)移到所述覆蓋介質(zhì)。
8.—個(gè)或多個(gè)具有計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),所述計(jì)算機(jī)可執(zhí)行指令在被執(zhí)行時(shí)執(zhí)行以下步驟,包括: 截取定向到本地存儲(chǔ)介質(zhì)上的受覆蓋保護(hù)的卷的寫(xiě)操作; 使用與覆蓋介質(zhì)的部分相關(guān)聯(lián)的標(biāo)識(shí)符,訪問(wèn)到存儲(chǔ)服務(wù)的網(wǎng)絡(luò)連接,所述存儲(chǔ)服務(wù)控制所述覆蓋介質(zhì);以及 指示所述存儲(chǔ)服務(wù)將所述寫(xiě)操作施加到所述覆蓋介質(zhì)。
9.如權(quán)利要求8所述的一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì),其特征在于,具有包括執(zhí)行下列各步驟的進(jìn)一步的計(jì)算機(jī)可執(zhí)行指令: 響應(yīng)于提交命令,向所述存儲(chǔ)服務(wù)請(qǐng)求與所述寫(xiě)操作相關(guān)聯(lián)的文件的對(duì)應(yīng)版本,并將所述本地存儲(chǔ)介質(zhì)更新為時(shí)間點(diǎn)一致。
10.如權(quán)利要求8所述的一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì),其特征在于,具有包括執(zhí)行下列各步驟的進(jìn)一步的計(jì)算機(jī)可執(zhí)行指令: 在系統(tǒng)重新引導(dǎo)期間,將與所述寫(xiě)操作相關(guān)聯(lián)的數(shù)據(jù)從所述覆蓋介質(zhì)轉(zhuǎn)移到受覆蓋保護(hù)的卷。
【文檔編號(hào)】G06F3/06GK104040525SQ201380004727
【公開(kāi)日】2014年9月10日 申請(qǐng)日期:2013年1月3日 優(yōu)先權(quán)日:2012年1月3日
【發(fā)明者】H·興隆, Y·柯南, K·叢 申請(qǐng)人:微軟公司