用於優化對虛擬盤映像的至少一個塊進行歸檔的過程的方法和系統的製作方法
2023-05-31 08:05:36 1
專利名稱::用於優化對虛擬盤映像的至少一個塊進行歸檔的過程的方法和系統的製作方法
技術領域:
:本公開總的涉及用於歸檔數據的方法和系統。本申請尤其涉及用於優化對虛擬盤映像的至少一個塊進行歸檔的過程的方法和系統。
背景技術:
:在用於在客戶機器上執行虛擬機的典型環境中,客戶機訪問虛擬盤映像文件以便執行該虛擬機。通常,當客戶機的用戶試圖做出將導致修改虛擬盤映像文件的修改時(例如,通過試圖修改作業系統數據、創建新的文件或修改現有文件),該修改轉而是對與該虛擬盤映像文件關聯的差異盤進行修改。在一些環境中,在差異盤中存儲該修改的標識的過程也被稱為生成快照。在對虛擬盤映像文件和任何關聯的差異盤進行歸檔的典型環境中,對所有的文件進行歸檔。然而,生成虛擬盤映像文件和差異盤的備份副本可能是計算密集或資源密集型的。例如,這些文件可能要求幾個GB的存儲空間並且為了製作文件副本將會消耗計算資源和存儲裝置資源。此外,在通過網絡將歸檔副本傳輸到遠程機器的一些環境中,虛擬盤映像文件和差異盤的歸檔副本的生成和傳輸可能是低效的,或者消耗比傳統用戶可能會要求的更多的客戶機上的計算資源。
發明內容在一個方面,用於優化對虛擬盤映像的至少一個塊進行歸檔的過程的方法包括由在第一物理計算裝置上執行的文件系統分析組件識別虛擬盤映像文件中存儲包含文件的數據的多個塊。該方法包括由在第一物理計算裝置上執行的歸檔組件識別差異盤文件,所述差異盤文件存儲對所識別的存儲包含該文件的數據的多個塊中的至少一個的修改的標識。該方法包括由歸檔組件確定是否對該文件進行歸檔。該方法包括由歸檔組件向第二物理計算裝置傳輸存儲包含該文件的數據的多個塊。在一些實施例中,該方法包括由歸檔組件確定不對該文件進行歸檔。在一個實施例中,該方法包括由文件系統分析組件識別所述虛擬盤映像文件中存儲包含第二文件的數據的第二多個塊;由歸檔組件識別第二差異盤文件,所述第二差異盤文件存儲對所識別的存儲包含該第二文件的數據的第二多個塊的修改的標識;由歸檔組件確定是否對該第二文件進行歸檔;以及由歸檔組件確定不向第二物理計算裝置傳輸第二多個塊。在又一個實施例中,響應於對所述文件應用過濾器來確定是否對所述文件進行歸檔。在又一個實施例中,從虛擬盤映像文件的扇區提取標識所述文件和所述多個塊間的映射的位置的數據並且訪問該映射以識別所述多個塊。在又一個方面,用於優化對虛擬盤映像的至少一個塊進行歸檔的過程的系統包括文件系統分析組件和歸檔組件。文件系統分析組件在第一物理計算裝置上執行並且識別虛擬盤映像文件中存儲包含文件的數據的多個塊。歸檔組件在第一物理計算裝置上執行,識別差異盤文件,確定是否對所述文件進行歸檔以及向第二物理計算裝置傳輸存儲包含所述文件的數據的多個塊,所述差異盤文件存儲對所識別的存儲包含所述文件的數據的多個塊的修改的標識。通過參考下述結合附圖的描述,本公開的前述和其它目的、方面、特徵和優點將會更加明顯並更易於理解,其中圖IA是描述包括與遠程機器通信的本地機器的網絡環境的實施例的框圖;圖1B-1E是描述有益於此處所描述的方法和系統的計算機的實施例的框圖;圖IF是描述虛擬化環境的一個實施例的框圖;圖2是描述用於優化對虛擬盤映像的至少一個塊進行歸檔的過程的系統的一個實施例的框圖;圖3是描述用於優化對虛擬盤映像的至少一個塊進行歸檔的過程的方法的一個實施例的流程圖。具體實施例方式現參考圖1A,描述了網絡環境的實施例。總的來說,網絡環境包括經由一個或者多個網絡104與一個或者多個遠程機器106a-106n(總的還稱為伺服器106或者遠程機器106)通信的一個或者多個本地機器102a-102n(總的還稱為本地機器102、客戶機102、客戶節點102、客戶機器102、客戶計算機102、客戶裝置102、端點102或端點節點102)。在一些實施例中,本地機器102既有作為客戶節點尋求訪問伺服器所提供資源的能力,也有作為伺服器向其他客戶機102a-102n提供對所寄載的資源的訪問的能力。雖然圖IA示出了在本地機器102和遠程機器106之間的網絡104,本地機器102和遠程機器106可以位於相同的網絡104上。網絡104可為區域網(LAN)(例如公司內網),城域網(MAN),或者廣域網(WAN)(例如網際網路或全球資訊網)。在一些實施例中,在本地機器102和遠程機器106之間可以有多個網絡104。在這些實施例的一個中,網絡104』(未示出)可為專用網並且網絡104可為公網。在這些實施例的另一個中,網絡104』可為專用網並且網絡104』可為公網。在又一個實施例中,網絡104和104』可都為專用網。而在另一個實施例中,網絡104和104』可都為公網。網絡104可以是任何類型和/或形式的網絡,並且可包括任意下述網絡點對點網絡,廣播網絡,廣域網,區域網,電信網絡,數據通信網絡,計算機網絡,ATM(異步傳輸模式)網絡,SONET(同步光纖網絡)網絡,SDH(同步數字體系)網絡,無線網絡和有線網絡。在一些實施例中,網絡104可以包括無線鏈路,諸如紅外信道或者衛星頻帶。網絡104的拓撲可為總線型、星型或環型網絡拓撲。網絡104可以具有對於本領域普通技術人員所熟知的、能夠支持此處描述的操作的任何這樣的網絡拓撲。網絡可包括利用用於移動裝置間通信的任一或一些協議的行動電話網絡,這些協議包括AMPS、TDMA,CDMA、GSM、GPRS或UMTS。在一些實施例中,不同類型的數據可以通過不同協議傳輸。在其他實施例中,同一類型的數據可通過不同協議傳輸。在一些實施例中,系統可包括多個邏輯分組的遠程機器106。在這些實施例的一個中,伺服器的邏輯分組可以被稱為伺服器群38。在這些實施例的又一個中,遠程機器106可為地理上分散的。在其他實施例中,伺服器群38可以作為單個實體被管理。仍在其他實施例中,伺服器群38包括多個伺服器群38。每個伺服器群38內的遠程機器106可能是異構的一一個或多個遠程機器106可根據一種類型的作業系統平臺(例如,WINDOWSNT、WINDOWS2003或WINDOWS2008,所有這些都是由華盛頓州Redmond的Microsoft公司出品的)操作,而一個或多個其它遠程機器106可根據另一類型的作業系統平臺(例如,Unix或Linux)操作。每個伺服器群38的遠程機器106不必與同一伺服器群38中的另一個遠程機器106在物理上接近。因此,邏輯上分組為伺服器群38的遠程機器106組可以是使用廣域網(WAN)連接或城域網(MAN)連接來互聯的。例如,伺服器群38可包括物理上位於不同大陸或大陸、國家、州、城市、校園或房間的不同區域的遠程機器106。如果遠程機器106使用區域網(LAN)連接或一些直連形式進行連接,則可增加伺服器群38中的遠程機器106間的數據傳送速度。遠程機器106可以是文件伺服器、應用伺服器、web伺服器、代理伺服器、設備、網絡設備、網關、應用網關、網關伺服器、虛擬化伺服器、部署伺服器、SSLVPN伺服器,或防火牆。在一些實施例中,遠程機器106提供遠程認證撥入用戶服務,並且可被稱為RADIUS伺服器。在其他實施例中,遠程機器106可以有作為應用伺服器或者作為主應用伺服器工作的能力。仍在其他實施例中,遠程機器106是刀片伺服器。在其他實施例中,遠程機器106執行向用戶或客戶計算機102提供對計算環境訪問的虛擬機。在一個實施例中,遠程機器106可包括活動目錄。遠程機器106可以是應用加速設備。對於其中遠程機器106是應用加速設備的實施例,遠程機器106可提供包括防火牆功能、應用防火牆功能,或負載平衡功能的功能。在一些實施例中,遠程機器106包括諸如由位於美國加州SanJose的Citrix應用網絡組、位於美國加州MountainView,的SilverPeakSystems公司、位於美國加州SanFrancisco的RiverbedTechnology公司、位於美國華盛頓州Seattle的F5Networks公司或位於美國加州Sunnyvale的JuniperNetworks公司製造的設備系列中的一個的設備。在一些實施例中,遠程機器106代表本地機器102的用戶執行應用。在其他實施例中,遠程機器106執行虛擬機,該虛擬機提供執行會話,在該執行會話中應用代表本地機器102的用戶來執行。在這些實施例的一個中,該執行會話是所寄載的桌面會話。在這些實施例的另一個中,該執行會話提供對計算環境的訪問,該計算環境包括如下的一個或多個應用、多個應用、桌面應用、以及在其中可執行一個或多個應用的桌面會話。在一些實施例中,本地機器102與遠程機器106通信。在一個實施例中,本地機器102與伺服器群38中的遠程機器106之一直接通信。在又一個實施例中,本地機器102執行程序鄰近應用(aprogramneighborhoodapplication)以與伺服器群38內的遠程機器106通信。在又一個實施例中,遠程機器106提供主節點的功能。在一些實施例中,本地機器102通過網絡104與伺服器群38中的遠程機器106通信。例如通過網絡104,本地機器102可以請求執行伺服器群38中的遠程機器106a-106n所寄載的各種應用,並接收應用執行結果的輸出進行顯示。在一些實施例中,只有主節點提供這樣的功能,即識別和提供與遠程機器106b相關的地址信息所需的功能,所述遠程機器106b寄載所請求的應用。在一個實施例中,遠程機器106提供web伺服器的功能。在又一個實施例中,遠程機器106a接收來自本地機器102的請求,將該請求轉發到第二遠程機器106b,並用遠程機器106b對該請求的響應來對本地機器102的請求進行響應。在又一個實施例中,遠程機器106a獲得對本地機器102可用的應用的列舉,以及與寄載由該應用的列舉所識別的應用的遠程機器106b相關聯的地址信息。在又一個實施例中,遠程機器106使用web接口提供對本地機器102的請求的響應。在一個實施例中,本地機器102直接與遠程機器106通信以訪問所識別的應用。在又一個實施例中,本地機器102接收通過執行遠程機器106上所識別的應用而產生的輸出數據,例如顯示數據。在一些實施例中,遠程機器106或伺服器群38可運行一個或多個應用,例如提供瘦客戶端計算的應用或遠程顯示表示應用。在一個實施例中,遠程機器106或伺服器群38作為應用來執行CitrixSystems有限公司的CITRIXACCESSSMTE的任一部分(例如產品METAFRAME或CITRIXPRESENTATIONSERVER),由CitrixSystems有限公司出品的任何下列產品CITRIXXENAPP、CITRIXXENDESKTOP、CITRIXACCESSGATEWAY,和/或微軟公司出品的MICROSOFTWINDOWS終端服務中的任意一個。在又一個實施例中,該應用是由位於美國佛羅裡達州FortLauderdale的CitrixSystems有限公司開發的ICA客戶機。仍在又一個實施例中,遠程機器106可以運行應用,例如,該應用可以是提供諸如由位於美國華盛頓州Redmond的微軟公司製造的MICROSOFTEXCHANGE的電子郵件服務的應用伺服器、web或Internet伺服器,或桌面共享伺服器,或協同伺服器。在又一個實施例中,任何應用可以包括任何類型的所寄載的服務或產品,例如位於美國加利福尼亞州SantaBarbara的CitrixOnlineDivision公司提供的G0T0MEETING,位於美國加利福尼亞州SantaClara的WebEx有限公司提供的WEBEX,或者位於美國華盛頓州Redmond的微軟公司提供的MicrosoftOfficeLIVEMEETING。本地機器102可以執行、操作或者以其它方式提供應用,應用可為任何類型和/或形式的軟體、程序或者可執行指令,例如任何類型和/或形式的web瀏覽器、基於web的客戶機、客戶機一伺服器應用、瘦客戶端計算客戶機、ActiveX控制項、或者Java小應用程式、或者可以在本地機器102上執行的任意其它類型和/或形式的可執行指令。在一些實施例中,該應用可以是代表本地機器102在遠程機器106上執行的基於伺服器或者基於遠程的應用。在其他實施例中,遠程機器106可以使用任意瘦-客戶端協議、表示層協議或遠程顯示協議來顯示輸出到本地機器102,所述協議例如由位於美國佛羅裡達州Ft.Lauderdale的CitrixSystems有限公司出品的獨立計算架構(ICA)協議;由位於美國華盛頓州Redmond的微軟公司出品的遠程桌面協議(RDP)5Xll協議;由AT&T貝爾實驗室出品的虛擬網絡計算(VNC)協議;由位於美國加裡福尼亞州Sunnyvale和位於以色列Raanana的Qumranet有限公司出品的SPICE協議;由加裡福尼亞州Milpitas的VESA公司出品的Net2Display協議;由位於加拿大卑詩省的Burnaby的Teradici公司出品的PC-over-IP協議;由加裡福尼亞州SanJose的WyseTechnology有限公司出品的TCX協議;由紐約州紐約市的哥倫比亞大學開發的THINC協議;或由麻薩諸塞州Chelmsford的Desktone有限公司開發的Virtual-D協議。該應用可使用任何類型的協議,並且它可為,例如,HTTP客戶端、FTP客戶端、Oscar客戶端或Telnet客戶端。在其它實施例中,該應用包括與網際網路協議電話(VoIP)通信相關的任何類型的軟體,例如軟IP電話。在進一步的實施例中,該應用包括與實時數據通信相關的任一應用,例如用於流式傳輸視頻和/或音頻的應用。本地機器102和遠程機器106可以被部署為任意類型和形式的計算裝置和/或在其上執行,例如能夠與任意類型和形式的網絡通信並且執行此處所描述的操作的計算機、網絡裝置或設備。圖IB和IC描述了用於實施本地機器102或遠程機器106的實施例的計算裝置100的框圖。如圖IB和IC所示,每個計算裝置100包括中央處理單元121和主存儲器單元122。如圖IB所示,計算裝置100可包括存儲裝置128、安裝裝置116、網絡接口118、1/0控制器123、顯示裝置124a-124n、鍵盤126和諸如滑鼠的指示裝置127。存儲裝置128可包括但不限於作業系統、軟體和客戶機代理120。如圖IC所示,每個計算裝置100也可包括另外的可選部件,例如存儲器埠103、橋170、一個或多個輸入/輸出裝置130a—130n(總的使用標號130表示)以及與中央處理單元121通信的高速緩存存儲器140。中央處理單元121是響應並處理從主存儲器單元122取出的指令的任意邏輯電路。在一些實施例中,中央處理單元121由微處理器單元提供,例如由位於美國加利福尼亞州MountainView的Intel公司製造的微處理器單元;由位於美國伊利諾州Schaumburg的Motorola公司製造的微處理器單元;由位於美國加利福尼亞州SantaClara的Transmeta公司製造的微處理器單元;RS/6000處理器,由位於美國紐約州WhitePlains的InternationalBusinessMachines公司製造的微處理器單元;或者由位於美國加利福尼亞州Sunnyvale的AdvancedMicroDevices公司製造的微處理器單元。計算裝置100可以基於這些處理器中的任意一種,或者能夠如此處所述方式運行的任意其它處理器。主存儲器單元122可以是能夠存儲數據並允許微處理器121直接訪問任意存儲位置的一個或多個存儲器晶片,例如靜態隨機存取存儲器(SRAM)、突發SRAM或同步突發SRAM(BSRAM)、動態隨機存取存儲器(DRAM)、快速頁模式DRAM(FPMDRAM)、增強DRAM(EDRAM)、擴展數據輸出RAM(EDORAM)、擴展數據輸出DRAM(EDODRAM)、突發擴展數據輸出DRAM(BED0DRAM)、增強DRAM(EDRAM)、同步DRAM(SDRAM)、JEDECSRAM、PClOOSDRAM、雙倍數據速率SDRAM(DDRSDRAM)、增強SDRAM(ESDRAM)、同步鏈路DRAM(SLDRAM)、直接內存總線DRAM(DRDRAM)或鐵電RAM(FRAM)0主存儲器122可以基於上述存儲器晶片的任意一種,或者能夠如此處所述方式運行的任意其它可用存儲器晶片。在圖IB所示的實施例中處理器121通過系統總線150(在下面進行更詳細的描述)與主存儲器122進行通信。圖IC描述了在其中處理器通過存儲器埠103直接與主存儲器122通信的計算裝置100的實施例。例如,在圖IC中主存儲器122可以是DRDRAM。圖IC描述在其中主處理器121通過有時被稱為後端總線的次級總線直接與高速緩存存儲器140通信的實施例。其他實施例中,主處理器121使用系統總線150與高速緩存存儲器140通信。高速緩存存儲器140通常有比主存儲器122更快的響應時間,並且通常由SRAM、BSRAM或EDRAM提供。在圖IB所示的實施例中,處理器121通過本地系統總線150與各種I/O裝置130進行通信。可以使用各種不同的總線將中央處理單元121連接到任意I/O裝置130,包括VESAVL總線、ISA總線、EISA總線、微通道體系結構(MCA)總線、PCI總線、PCI-X總線、PCI-Express總線或NuBus。對於I/O裝置是視頻顯示器124的實施例,處理器121可以使用高級圖形埠(AGP)與顯示器124通信。圖IC描述了在其中主處理器121通過HYPERTRANSPORT、RAPIDIO、或INFINIBAND通信技術直接與I/O裝置130b通信的計算機100的實施例。圖IC也描述了在其中本地總線和直接通信相混合的實施例處理器121使用本地互連總線與I/O裝置130a通信同時直接與I/O裝置130b通信。計算裝置100中可以有多種I/O裝置130a_130n。輸入裝置包括鍵盤、滑鼠、觸控板、軌跡球、麥克風和繪圖板。輸出裝置包括視頻顯示器、揚聲器、噴墨印表機、雷射印表機和熱升華印表機。如圖IB所示,I/O裝置可以由I/O控制器123控制。I/O控制器可以控制一個或多個I/O裝置,例如鍵盤126和指示裝置127(如滑鼠或光筆)。此外,I/O裝置還可以為計算裝置100提供存儲和/或安裝介質116。在其它實施例中,計算裝置100可以提供USB連接(未示出)以接納手持USB存儲裝置,例如由位於美國加利福尼亞州LosAlamitos的TwintechIndustry有限公司生產的USB快閃記憶體驅動系列裝置。再次參考圖1B,計算裝置100可以支持任意適當的安裝裝置116,例如用於接納諸如3.5英寸、5.25英寸磁碟或ZIP磁碟的軟盤的軟盤驅動器、⑶-ROM驅動器、⑶-R/RW驅動器、DVD-ROM驅動器、各種格式的磁帶驅動器、USB裝置、硬碟驅動器或適於安裝軟體和程序的任意其它裝置。計算裝置100還可以包括存儲裝置,諸如一個或者多個硬碟驅動器或者獨立磁碟冗餘陣列,用於存儲作業系統和其它相關軟體,以及用於存儲諸如涉及客戶機代理120的任意程序的應用軟體程序。或者,可以使用安裝裝置116的任意一種作為存儲裝置。此外,作業系統和軟體可從可引導介質運行,可引導介質例如是可引導CD,諸如KN0PPIX,其為一種用於GNU/Linux的可引導CD,可自knoppix.net作為GNU/Linux—個發行版獲得。此外,計算裝置100可以包括網絡接口118以通過多種連接來與網絡104對接,所述連接包括但不限於標準電話線路、LAN或WAN鏈路(例如802.11、Tl、T3、56kb、X.25、SNA、DECNET)、寬帶連接(如ISDN、幀中繼、ATM、千兆乙太網、基於SONET的乙太網(Ethernet-over-SONET))、無線連接、或上述任意或全部的某種組合。可使用多種通信協議(例如TCP/IP、IPX、SPX、NetBI0S、Ethernet、ARCNET、S0NET、SDH、光纖分布數據接口(FDDI)、RS232、IEEE802.11、IEEE802.11a、IEEE802.lib、IEEE802.llg、CDMA、GSM、WiMax和直接異步連接)來建立連接。在一個實施例中,計算裝置100可以通過任意類型和/或形式的網關或諸如安全套接字層(SSL)或傳輸層安全(TLS),或由位於美國佛羅裡達州Ft.Lauderdale的CitrixSystems公司製造的Citrix網關協議的隧道協議來與其他計算裝置100』通信。網絡接口118可以包括內置網絡適配器、網絡接口卡、PCMCIA網絡卡、卡總線網絡適配器、無線網絡適配器、USB網絡適配器、數據機或適用於將計算裝置100對接到能夠通信並執行這裡所說明的操作的任意類型的網絡的任意其它裝置。在一些實施例中,計算裝置100可以包括多個顯示裝置124a_124n或與其相連,這些顯示裝置各自可以是相同或不同的類型和/或形式。因而,任意一種1/0裝置130a-130n和/或1/0控制器123可以包括任何類型和/或形式的適當的硬體、軟體或硬體和軟體的組合,以支持、允許或提供通過計算裝置100連接和使用多個顯示裝置124a-124n。例如,計算裝置100可以包括任意類型和/或形式的視頻適配器、視頻卡、驅動器和/或庫,以與顯示裝置124a-124n對接、通信、連接或以其他方式使用顯示裝置124a_124n。在一個實施例中,視頻適配器可以包括多個連接器以與多個顯示裝置124a-124n對接。在其它實施例中,計算裝置100可以包括多個視頻適配器,每個視頻適配器與顯示裝置124a-124n中的一個或多個連接。在一些實施例中,計算裝置100的作業系統的任一部分都可以被配置用於使用多個顯示器124a-124n。在其它實施例中,顯示裝置124a_124n中的一個或多個可以由一個或多個其它計算裝置提供,諸如(例如通過網絡)與計算裝置100連接的計算裝置IOOa和100b。這些實施例可以包括被設計和構造來使用另一個計算機的顯示裝置作為計算裝置100的第二顯示裝置124a的任何類型的軟體。本領域的普通技術人員應認識和意識到可以將計算裝置100配置成擁有多個顯示裝置124a-124n的各種方式和實施例。在進一步的實施例中,I/O裝置130可以是系統總線150和外部通信總線之間的橋,所述外部通信總線如USB總線、Apple桌面總線、RS-232串行連接、SCSI總線、FireWire總線、Fireffire800總線、乙太網總線、AppleTalk總線、千兆位乙太網總線、異步傳輸模式總線、HIPPI總線、超級HIPPI總線、SerialPlus總線、SCI/LAMP總線、光纖信道總線、串行SCSI總線。圖IB和IC中所描述類型的計算裝置100通常地在作業系統的控制下運行,所述作業系統控制任務的調度和對系統資源的訪問。計算裝置100可運行任何作業系統,諸如任意版本的MICROSOFTWINDOWS作業系統;不同發行版本的Unix和Linux作業系統;用於Macintosh計算機的MACOS的任意版本;任意嵌入式作業系統;任意實時作業系統;任意開源作業系統;任意專有作業系統;任意用於移動計算裝置的作業系統,或者能夠在計算裝置上運行且執行此處所描述的操作的任意其它作業系統。典型的作業系統包括但不限於WINDOWS3.x,WINDOWS95,WINDOWS98,WINDOWS2000,WINDOWSNT3.51、WINDOWSNT4.0、WINDOWS7、WINDOWSCE、WINDOWSXP和WINDOWSVISTA,所有這些均由位於美國華盛頓州Redmond的微軟公司出品;由位於美國加利福尼亞州Cupertino的蘋果計算機公司出品的MACOS;由位於美國紐約州Armonk的國際商業機器公司出品的OS/2;以及由位於美國猶他州SaltLakeCity的Caldera公司發布的可免費使用的Linux作業系統或者任意類型和/或形式的Unix作業系統,以及其它。計算裝置100可以是任意工作站、電話、臺式計算機、膝上型或筆記本電腦、伺服器、掌上電腦、行動電話或其他便攜電信裝置、媒體播放裝置、遊戲系統、移動計算裝置,或能夠通信並有足夠的處理器能力和存儲容量以執行此處所述的操作的任意其它類型和/或形式的計算、電信或者媒體裝置。例如,計算機裝置100可包括由位於美國加利福尼亞州Cupertino的蘋果計算機公司出品的IPOD系列裝置、由位於日本東京的索尼公司出品的PLAYSTATI0N2、PLAYSTATI0N3或PERSONALPLAYSTATIONPORTABLE(PSP)裝置,由位於日本京都的Nintendo有限公司出品的NINTEND0DS、NINTENDOGAMEB0Y,NINTENDOGAMEB0YADVANCED或NINTENDOREVOLUTION裝置,或者由位於美國華盛頓州Redmond的微軟公司出品的XBOX或XBOX360裝置。在一些實施例中,計算裝置100可以有不同的處理器、作業系統以及符合該裝置的輸入裝置。例如,在一個實施例中,計算裝置100是由Palm有限公司出品的TRE0180、270、600、650、680、700p、700w/wx、750、755p、800w、Centro或Pro智慧型電話。在這些實施例的一些中,TERO智慧型電話是在PalmOS作業系統的控制下操作並且包括筆輸入裝置以及五嚮導航裝置。在其他實施例中,計算裝置100是移動裝置,例如,JAVA使能蜂窩電話或個人數字助理(PDA),諸如i55sr、i58sr、i85s、i88s、i90c、i95cl、i335、i365、i570、1576、i580、i615、i760、i836、i850、i870、i880、i920、i930、ic502、ic602、ic902、i776或imllOO,以上這些均由位於美國伊利諾州Schaumburg的摩託羅拉公司製造;由位於日本京都的Kyocera公司製造的6035或7135;或者由位於韓國首爾的Samsung電子有限公司製造的i300或i330。在一些實施例中,計算裝置100是由位於芬蘭的諾基亞公司製造或由位於瑞典Lund的SonyEricssonMobileCommunicationsAB公司製造的移動裝置。在其他實施例中,計算裝置100是黑莓(Blackberry)手持或智慧型電話,諸如由ResearchInMotion有限公司製造的裝置,包括黑莓7100系列、8700系列、7700系列、7200系列、黑莓7520、黑莓PEARL8100,8700系列、8800系列、黑莓Storm、黑莓Bold、黑莓Curve8900、黑莓PearlFlip。在其他實施例中,計算裝置100是智慧型電話、PocketPC、PocketPC電話,或支持MicrosoftWindowsMobileSoftware的其它手持移動裝置。此外,計算裝置100可以是任意工作站、臺式計算機、膝上型或筆記本電腦、伺服器、掌上電腦、行動電話、任意其它計算機、或能夠通信並有足夠的處理器能力和存儲容量以執行此處所述操作的其它形式的計算或者電信裝置。在一些實施例中,計算裝置100是數字音頻播放器。在這些實施例的一個中,計算裝置100是諸如由位於美國加利福尼亞州Cupertino的蘋果計算機公司製造的AppleIPOD、IPODTouch、IPODNANO和IPODSHUFFLE系列裝置的數字音頻播放器。在這些實施例的另一個中,數字音頻播放器可作為便攜媒體播放器和作為大容量存儲裝置來工作。在其他實施例中,計算裝置100是諸如由位於美國新澤西州RidgefieldPark的SamsungElectronicsAmerica公司製造的DigitalAudioPlayerSelectMP3播放器,或由位於美國伊利諾州Schaumburg的Motorola公司製造的Motorolam500或m25的數字音頻播放器。在其他實施例中,計算裝置100是便攜媒體播放器,諸如由CreativeTechnologies有限公司製造的ZenVisionW、ZenVision系列、ZenPortableMediaCenter裝置或DigitalMP3系列的MP3播放器。仍在其他實施例中,計算裝置100是支持以下文件格式的便攜媒體播放器或數字音頻播放器,這些文件格式包括但不限於MP3、WAV、M4A/AAC、WMAProtectedAAC、AIFF、Audible有聲讀物、AppleLossless音頻文件格式和mov、.m4v以及mp4MPEG_4(H.264/MPEG-4AVC)視頻文件格式。在一些實施例中,計算裝置100包括裝置的組合,例如與數字音頻播放器或便攜媒體播放器相組合的行動電話。在這些實施例的一個中,計算裝置100是組合數字音頻播放器和行動電話的MotorolaRAZR或MotorolaROKR系列。在這些實施例的又一個中,計算裝置100是由位於加利福尼亞州Cupertino的蘋果公司製造的iPhone系列智慧型電話中的裝置。在一個實施例中,計算裝置102a可從遠程機器106請求資源,同時向客戶機102b提供遠程機器106的功能。在這樣的實施例中,就從遠程機器106(其可以被稱為伺服器)接收數據而言,計算裝置102a可以被稱為客戶機,而就第二客戶機102b而言,計算裝置102a可以被稱為伺服器。在又一個實施例中,客戶機102可代表客戶機102上的用戶從遠程機器106請求資源。如圖ID所示,計算裝置100可以包括多個處理器,並且可以提供用於對不只一個數據片同時執行多個指令或者同時執行一個指令的功能。在一些實施例中,計算裝置100可包括具有一個或多個核的並行處理器。在這些實施例的一個中,計算裝置100是共享內存並行裝置,具有多個處理器和/或多個處理器核,將所有可用內存作為一個全局地址空間進行訪問。在這些實施例的又一個中,計算裝置100是分布式存儲器並行裝置,具有多個處理器,每個處理器僅訪問本地存儲器。在這些實施例的又一個中,計算裝置100既有共享的存儲器又有僅由特定處理器或處理器子集訪問的存儲器。在這些實施例的又一個中,如多核微處理器的計算裝置100將兩個或多個獨立處理器組合在一個封裝中,通常在一個集成電路(IC)中。在這些實施例的又一個中,計算裝置100包括具有單元寬帶引擎(CELLBROADBANDENGINE)架構的晶片,並包括高能處理器單元以及多個協同處理單元,高能處理器單元和多個協同處理單元通過內部高速總線連接在一起,可以將內部高速總線稱為單元互連總線。在一些實施例中,處理器提供用於對多個數據片同時執行單個指令(SMD)的功能。其他實施例中,處理器提供用於對多個數據片同時執行多個指令(MMD)的功能。又一個實施例中,處理器可以在單個裝置中使用SMD和MMD核的任意組合。在一些實施例中,計算裝置100可包括圖形處理單元。圖IE所示的這些實施例的一個中,計算裝置100包括至少一個中央處理單元121和至少一個圖形處理單元。在這些實施例的又一個中,計算裝置100包括至少一個並行處理單元和至少一個圖形處理單元。在這些實施例的又一個中,計算裝置100包括任意類型的多個處理單元,多個處理單元中的一個包括圖形處理單元。現參考圖1F,該框圖描述虛擬化環境400的一個實施例。總體而言,計算裝置100包括管理程序層、虛擬化層和硬體層。管理程序層包括管理程序161(也稱為虛擬化管理器),其通過在虛擬化層中執行的至少一個虛擬機來分配和管理對硬體層中的多個物理資源(例如處理器221和盤228)的訪問。虛擬化層包括至少一個作業系統171和分配給至少一個作業系統171的多個虛擬資源。虛擬資源可包括而不限於多個虛擬處理器132a、132b、132c(總稱為132)和虛擬盤142a、142b、142c(總稱為142),以及如虛擬存儲器和虛擬網絡接口的虛擬資源。可將多個虛擬資源和作業系統稱為虛擬機166。虛擬機166可包括控制作業系統165,該控制作業系統165與管理程序161通信,並用於執行應用以管理並配置計算裝置100上的其他虛擬機。現參考圖1F,更具體地,管理程序161可以以模擬可訪問物理設備的作業系統的任何方式向作業系統提供虛擬資源。管理程序161可以向任一數量客戶作業系統171a、171b(總稱為171)提供虛擬資源。一些實施例中,計算裝置100執行一種或多種管理程序。這些實施例中,管理程序可用於模擬虛擬硬體、劃分物理硬體、虛擬化物理硬體並執行提供對計算環境的訪問的虛擬機。管理程序可包括由位於美國加州的PaloAlto的VMWare製造的這些程序;XEN管理程序(一種開源產品,其開發由開源Xen.org協會監管);由微軟公司提供的HyperV、VirtualServer或虛擬PC管理程序,或其他。一些實施例中,計算裝置100執行創建客戶作業系統可在其上執行虛擬機平臺的管理程序,該計算裝置100被稱為宿主伺服器。在這些實施例的一個中,例如,計算裝置100是由位於美國佛羅裡達州FortLauderdale的CitrixSystems有限公司提供的XENSERVER。一些實施例中,管理程序161在計算裝置上執行的作業系統之內執行。在這些實施例的一個中,執行作業系統和管理程序161的計算裝置可被視為具有宿主作業系統(執行在計算裝置上的作業系統),和客戶作業系統(在由管理程序161提供的計算資源分區內執行的作業系統)。其他實施例中,管理程序161和計算裝置上的硬體直接交互而不是在宿主作業系統上執行。在這些實施例的一個中,管理程序161可被視為在「裸金屬(baremetal)」上執行,所述「裸金屬」指包括計算裝置的硬體。一些實施例中,管理程序161可以產生作業系統171在其中執行的虛擬機166a_c(總稱為166)。在這些實施例的一個中,管理程序161加載虛擬機映像以創建虛擬機166。在這些實施例的又一個中,管理程序161在虛擬機166內執行作業系統171。仍在這些實施例的又一個中,虛擬機166執行作業系統171。一些實施例中,管理程序161控制在計算裝置100上執行的虛擬機166的處理器調度和內存劃分。在這些實施例的一個中,管理程序161控制至少一個虛擬機166的執行。在這些實施例的又一個中,管理程序161向至少一個虛擬機166呈現由計算裝置100提供的至少一個硬體資源的抽象。其他實施例中,管理程序161控制是否以及如何將物理處理器能力呈現給虛擬機166。控制作業系統165可以執行用於管理和配置客戶作業系統的至少一個應用。一個實施例中,控制作業系統165可以執行管理應用,如包括如下用戶接口的應用,該用戶接口為管理員提供對用於管理虛擬機執行的功能的訪問,這些功能包括用於執行虛擬機、中止虛擬機執行或者識別要分配給虛擬機的物理資源類型的功能。又一個實施例中,管理程序161在由管理程序161創建的虛擬機166內執行控制作業系統165。又一個實施例中,控制作業系統165在被授權直接訪問計算裝置100上的物理資源的虛擬機166上執行。一些實施例中,計算裝置IOOa上的控制作業系統165a可以通過管理程序161a和管理程序161b之間的通信與計算裝置IOOb上的控制作業系統165b交換數據。這樣,一個或多個計算裝置100可以和一個或多個其他計算裝置100交換有關處理器或資源池中可用的其他物理資源的數據。在這些實施例的一個中,這種功能允許管理程序管理分布在多個物理計算裝置上的資源池。在這些實施例的又一個中,多個管理程序管理在一個計算裝置100上執行的一個或多個客戶作業系統。一個實施例中,控制作業系統165在被授權與至少一個客戶作業系統171交互的虛擬機166上執行。又一個實施例中,客戶作業系統171通過管理程序161和控制作業系統165通信,以請求訪問盤或網絡。仍在又一個實施例中,客戶作業系統171和控制作業系統165可通過由管理程序161建立的通信信道通信,例如,通過由管理程序161提供的多個共享存儲器頁面。一些實施例中,控制作業系統165包括用於直接與由計算裝置100提供的網絡硬體通信的網絡後端驅動器。在這些實施例的一個中,網絡後端驅動器處理來自至少一個客戶作業系統110的至少一個虛擬機請求。其他實施例中,控制作業系統165包括用於與計算裝置100上的存儲元件通信的塊後端驅動器。在這些實施例的一個中,塊後端驅動器基於從客戶作業系統171接收的至少一個請求從存儲元件讀寫數據。一個實施例,控制作業系統165包括工具堆棧164。其他實施例中,工具堆棧164提供如下功能和管理程序161交互、和其他控制作業系統165(例如位於第二計算裝置IOOb上)通信,或者管理計算裝置100上的虛擬機166b、166c。又一個實施例中,工具堆棧164包括自定義應用,其用於向虛擬機群的管理員提供改進的管理功能。一些實施例中,工具堆棧164和控制作業系統165中的至少一個包括管理API,其提供用於遠程配置並控制計算裝置100上運行的虛擬機166的接口。其他實施例中,控制作業系統165通過工具堆棧164和管理程序161通信。一個實施例中,管理程序161在由管理程序161創建的虛擬機166內執行客戶作業系統171。又一個實施例中,客戶作業系統171為計算裝置100的用戶提供對計算環境中的資源的訪問。又一個實施例中,資源包括程序、應用、文檔、文件、多個應用、多個文件、可執行程序文件、桌面環境、計算環境或對計算裝置100的用戶可用的其他資源。又一個實施例中,可通過多個訪問方法將資源傳送給計算裝置100,這些方法包括但不限於常規的直接在計算裝置100上安裝、通過應用流的方法傳送給計算裝置100、將由在第二計算裝置100』上執行資源產生的並通過表示層協議傳送給計算裝置100的輸出數據傳送給計算裝置100、將通過在第二計算裝置100』上執行的虛擬機執行資源所產生的輸出數據傳送給計算裝置100、或者從連接到計算裝置100的移動存儲裝置(例如USB設備)執行或者通過在計算裝置100上執行的虛擬機執行並且產生輸出數據。一些實施例中,計算裝置100將執行資源所產生的輸出數據傳輸給另一個計算裝置100』。一個實施例中,客戶作業系統171和該客戶作業系統171在其上執行的虛擬機結合形成完全虛擬化虛擬機,該完全虛擬化虛擬機並不知道自己是虛擬機,這樣的機器可稱為「DomainUHVM(硬體虛擬機)虛擬機」。又一個實施例中,完全虛擬化機包括模擬基本輸入/輸出系統(BIOS)的軟體以便在完全虛擬化機中執行作業系統。在又一個實施例中,完全虛擬化機可包括驅動器,其通過和管理程序161通信提供功能。這樣的實施例中,驅動器可意識到自己在虛擬化環境中執行。又一個實施例中,客戶作業系統171和該客戶作業系統171在其上執行的虛擬機結合形成超虛擬化(paravirtualized)虛擬機,該超虛擬化虛擬機意識到自己是虛擬機,這樣的機器可稱為「DomainUPV虛擬機」。又一個實施例中,超虛擬化機包括完全虛擬化機不包括的額外驅動器。又一個實施例中,超虛擬化機包括如上所述的被包含在控制作業系統165中的網絡後端驅動器和塊後端驅動器。現參考圖2,該框圖描述用於優化對虛擬盤映像的至少一個塊進行歸檔的過程的系統的一個實施例。總的來說,該系統包括文件系統分析組件202和歸檔組件210。文件系統分析組件202在第一物理計算裝置IOOa上執行。文件系統分析組件202識別虛擬盤映像文件204中存儲包含文件208的數據的多個塊206。歸檔組件210在第一物理計算裝置IOOa上執行。歸檔組件210識別差異盤文件212,所述差異盤文件212存儲對所識別的存儲包含文件208的數據的多個塊206的修改的標識214。歸檔組件210確定是否對文件208進行歸檔。歸檔組件210向第二物理計算裝置IOOn傳輸存儲包含文件208的數據的多個塊206。在一些實施例中,響應於對下述中的至少一個應用過濾器該文件的標識和對存儲與該文件有關的或形成該文件的數據的塊的修改的標識,歸檔組件210確定不對該文件進行歸檔。在一些實施例中,系統分析虛擬盤映像文件內的文件以確定是否對該文件進行歸檔。在這些實施例的一個中,分析指示文件已經被修改、被刪除或者已經過時。在這些實施例的又一個中,對文件名、文件類型或文件的其他標識符的分析的結果是確定不應該對該文件進行歸檔。在此處所述的方法和系統的一些實施例中,通過分析虛擬磁碟映像文件中包含文件的塊並且做出對於所有文件是否歸檔所有塊的確定,此處所述的方法和系統提供數據備份功能和對相關數據塊的有效歸檔。在一個實施例中,該系統包括在對文件進行歸檔之前從虛擬盤映像文件識別和移除未使用的塊。在又一個實施例中,該系統包括在對文件進行歸檔之前從虛擬盤映像文件識別和移除不需要被歸檔的塊的組件;例如,該系統可以訪問不需要被歸檔的文件名或文件類型的列舉並且移除存儲在列舉中所識別的文件的數據的塊。在又一個實施例中,該系統包括在對該虛擬盤映像文件進行歸檔之前壓縮剩餘的數據的組件。現參考圖2,更具體地,該文件系統分析組件202包括解析器,所述解析器用於分析虛擬盤映像文件204並且識別存儲包含文件208的數據的多個塊206。在一個實施例中,文件系統分析組件202包括用於識別虛擬盤映像文件204中存儲包含第二文件208b的數據的第二多個塊206b的功能。在一個實施例中,多個塊206被稱為簇(cluster)。在又一個實施例中,多個塊206中的塊206a被稱為扇區(sector)。然而,在又一個實施例中,一個塊包括多個扇區。在又一個實施例中,一個塊為2MB大小。在又一個實施例中,虛擬盤映像文件204具有諸如下面列出的文件格式之一例如由美國華盛頓州Redmond的微軟公司發布的虛擬硬碟文件(VHD)格式,或者由美國加利福尼亞州PaloAlto的VMware有限公司發布的虛擬機盤(VMDK)文件格式。在一些實施例中,歸檔組件210包括策略引擎218。在這些實施例的一個中,歸檔組件210執行策略引擎218以做出關於是否對文件進行歸檔的確定。在這些實施例的又一個中,策略引擎218包括用於確定是否對文件進行歸檔的至少一個過濾器。在其他實施例中,歸檔組件210訪問在資料庫中存儲的數據以確定是否對文件進行歸檔。在其他實施例中,歸檔組件210訪問正則表達分析組件以過濾掉不需要被歸檔的文件。在這些實施例的一個中,歸檔組件210包括該正則表達分析組件的功能。儘管在圖2中被描述為分開的組件,但在一些實施例中,單個組件提供歸檔組件210和文件系統分析組件202的功能。現參考圖3,該流程圖描述用於優化對虛擬盤映像的至少一個塊進行歸檔的過程的方法的一個實施例。總的來說,該方法300包括由在第一物理計算裝置上執行的文件系統分析組件識別虛擬盤映像文件中存儲包含文件的數據的多個塊(302)。該方法包括由在第一物理計算裝置上執行的歸檔組件識別差異盤文件,所述差異盤文件存儲對所識別的存儲包含該文件的數據的多個塊中的至少一個的修改的標識(304)。該方法包括由歸檔組件確定是否對該文件進行歸檔(306)。該方法包括由歸檔組件向第二物理計算裝置傳輸存儲包含該文件的數據的多個塊(308)。在一些實施例中,該方法包括由歸檔組件確定不對該多個塊進行歸檔。現參考圖3,更具體地,在第一物理計算裝置上執行的文件系統分析組件識別虛擬盤映像文件中存儲包含文件的數據的多個塊(302)。在一些實施例中,文件系統分析組件202從虛擬盤映像文件204的塊提取通過該虛擬盤映像文件204可訪問的邏輯驅動器(其也可以被稱為卷)的列表。在這些實施例的一個中,邏輯驅動器的列表識別對於一個或多個邏輯驅動器的啟動扇區的位置;所述啟動扇區可以是存儲可執行數據的扇區,通過該扇區使邏輯驅動器對第一物理計算裝置IOOa的用戶可用。在這些實施例的又一個中,文件系統分析組件202從所識別的啟動扇區提取標識文件208和存儲包含文件208的數據的多個塊206之間的映射220的位置的數據;該映射220可以被稱為主文件表。在又一個實施例中,文件系統分析組件202存儲該映射220的副本。在又一個實施例中,文件系統分析組件202訪問該映射220以識別存儲文件208的多個塊206。在一些實施例中,文件系統分析組件202向歸檔組件210傳輸映射220的位置的標識。在其他實施例中,文件系統分析組件202基於對映射220中數據的分析生成第二映射222。在這些實施例的一個中,文件系統分析組件202生成將多個塊206與文件208關聯的第二映射222。在這些實施例的又一個中,第二映射222是映射220的逆映射,其提供用於根據一個或多個數據塊的標識來識別文件名的功能。在第一物理計算裝置上執行的歸檔組件識別差異盤文件,所述差異盤文件存儲對所識別的存儲包含該文件的數據的多個塊中的至少一個的修改的標識(304)。在一個實施例中,差異盤文件212包括對虛擬盤映像文件204的引用。在一個實施例中,歸檔組件210從文件系統分析組件202接收映射222的副本。在又一個實施例中,歸檔組件210接收存儲映射222的塊的位置的標識。在又一個實施例中,歸檔組件210從文件系統分析組件202接收多個塊206的標識和文件208的標識(例如,文件名),所述多個塊206存儲包含文件208的數據。在一個實施例中,歸檔組件210分析由差異盤212存儲的數據以確定該差異盤文件212是否存儲對文件系統分析組件202所識別的多個塊206的修改的標識214。在又一個實施例中,歸檔組件210從差異盤文件212提取數據並且確定該數據是否包括匹配所述標識214的標識。在又一個實施例中,歸檔組件210確定差異盤212存儲對多個塊206的修改的標識。在又一個實施例中,歸檔組件210檢索文件208的標識(例如,從文件系統分析組件202接收的文件名)。在一些實施例中,文件系統分析組件202和歸檔組件210—起提供通常由文件系統驅動程序和其他組件提供的功能。因此,在這些實施例的一個中,歸檔組件210可以確定差異盤文件212是否包括對最初存儲在虛擬盤映像文件205中的文件的修改,而不必掛載差異盤文件212或虛擬盤映像文件204。在一些實施例中,歸檔組件210訪問存儲對在給定時間內已經發生變化的每個文件208的指示的數據結構。在其他實施例中,歸檔組件210訪問存儲對文件208在給定時間內是否已經發生變化的指示的數據結構。在其他實施例中,差異盤文件212存儲這樣的數據結構。然而,在其他實施例中,虛擬盤映像文件204存儲該數據結構。在這些實施例的一個中,歸檔組件210不需要分析差異盤212,而是可以訪問由虛擬盤映像文件204所存儲的該數據結構。在另外的實施例中,這樣的數據結構可以作為例如被稱為更新序列號(UpdateSequenceNumber,USN)或變化日誌(ChangeJournal)的結構而被提供。在這些實施例的一個中,該數據結構是通過記錄功能生成的,所述記錄功能在該數據結構中記錄在虛擬盤映像文件204中發生的每次變化。歸檔組件確定是否對文件進行歸檔(306)。在一個實施例中,歸檔組件210響應於對文件208的標識應用過濾器來確定是否對文件208進行歸檔;例如,歸檔組件210可確定是否基於文件名的全部或部分來對文件208進行歸檔。在又一個實施例中,歸檔組件210響應於對差異盤212的標識應用過濾器來確定是否對文件208進行歸檔;例如,歸檔組件210可確定是否基於差異盤212的創建時間來對文件208進行歸檔。在又一個實施例中,響應於對由差異盤212存儲的對多個塊206的修改的標識214應用過濾器,歸檔組件210確定是否對文件208進行歸檔;例如,歸檔組件210可確定是否基於對該文件所做的修改的類型來對文件208進行歸檔。在又一個實施例中,歸檔組件210確定對於標識214指示其是將要被刪除的文件不進行歸檔。在又一個實施例中,響應於策略引擎218關於是否對文件208進行歸檔的確定,歸檔組件210確定是否對文件208進行歸檔。在一些實施例中,歸檔組件210確定不對被識別為具有特定文件類型的文件進行歸檔。在這些實施例的一個中,例如,歸檔組件208可以應用策略並確定不對模板文件或臨時文件進行歸檔。在這些實施例的又一個中,歸檔組件208可以應用策略並確定不對頁面文件進行歸檔。在這些實施例的又一個中,歸檔組件208可以應用策略並確定不對休眠文件進行歸檔。在這些實施例的又一個中,歸檔組件208可以應用策略並確定不對特定於在第一物理計算裝置IOOa上虛擬盤映像文件204的執行的文件進行歸檔。在其他實施例中,歸檔組件208訪問不需要被歸檔的文件類型的列舉。在其他實施例中,歸檔組件208訪問不需要被歸檔的關聯文件的文件名的列舉。在另外的實施例中,例如,在由虛擬盤映像文件204存儲的註冊表內存儲的數據包括不需要被歸檔的文件的列舉。在一些實施例中,歸檔組件210確定不對文件208進行歸檔,因為對塊206的修改的標識的分析指示該修改已經使原始文件過時。在這些實施例的一個中,歸檔組件210確定對由差異盤212存儲的第二多個塊進行歸檔,而不是對由虛擬盤映像文件214存儲的多個塊206進行歸檔。在這些實施例的又一個中,歸檔組件210確定對由虛擬盤映像文件214存儲的第二多個塊206b進行歸檔,而不是對最初識別的多個塊206a進行歸檔。歸檔組件向第二物理計算裝置傳輸存儲包含該文件的數據的多個塊(308)。在一個實施例中,歸檔組件210響應於確定對文件208進行歸檔來向第二物理計算裝置IOOb傳輸多個塊206。在又一個實施例中,歸檔組件210響應於確定不對文件208進行歸檔,不傳輸多個塊206。在又一個實施例中,歸檔組件210傳輸存儲包含對文件208的修改的數據的多個塊,所述多個塊由標識214來進行識別。在一些實施例中,歸檔組件210將該多個塊206作為具有與虛擬盤映像文件204的格式大體上相似的格式的虛擬盤映像文件來進行傳輸。在這些實施例的一個中,通過傳輸具有與原始虛擬盤映像文件204的格式大體上相似格式的文件,而不是例如傳輸具有顯著不同格式的文件,歸檔組件210為請求訪問所傳輸的多個塊的用戶消除了重新格式化該所傳輸的多個塊以便訪問所傳輸的多個塊的需要。在此處所述的方法和系統的一些實施例中,通過分析虛擬盤映像文件204中包含文件的塊並做出是否對它們全部進行歸檔的確定,所述的方法和系統提供了數據備份功能和對相關數據塊的有效歸檔。應該理解,上文描述的系統可提供這些組件的任意多個或每一個並且這些組件可以在獨立機器上提供,或者在一些實施例中,可在分布式系統的多個機器上提供。可以使用編程和/或工程技術將上文所描述的系統和方法實現為方法、裝置或產品以提供軟體、固件、硬體或上述的任何組合。此外,上述系統和方法可作為在一件或多件製造產品上實現或在其中實現的一個或多個計算機可讀程序而被提供。此處使用的術語「製造產品」旨在包括從一個或多個計算機可讀的裝置、固件、可編程邏輯、存儲器裝置(例如,EEPROM、ROM、PROM、RAM、SRAM等)、硬體(例如,集成電路晶片、現場可編程門陣列(FPGA)、應用專用集成電路(ASIC)等)、電子裝置、計算機可讀的非易失存儲單元(例如,⑶-ROM、軟盤、硬碟等)可訪問的並嵌入其中的代碼或邏輯。所述製造產品可以是從經由網絡傳輸線、無線傳輸介質、通過空間傳播的信號、無線電波、紅外信號等提供對計算機可讀程序的訪問的文件伺服器可訪問的。所述製造產品可以是快閃記憶體卡或磁帶。所述製造產品包括硬體邏輯以及嵌入在計算機可讀介質中由處理器執行的軟體或可編程代碼。通常,計算機可讀程序可以任何程式語言來實現,如LISP、PERL、C、C++、C#、PROLOG,或者諸如JAVA的任何字節碼語言。軟體程序可以作為目標代碼被存儲在一件或多件製造產品上或其中。已經描述了用於優化對虛擬磁碟映像的至少一個塊進行歸檔的過程的方法和系統的某些實施例,對本領域技術人員而言,顯而易見可以使用包含本發明的概念的其他實施例。因此,本發明的公開內容不應當受限於某些實施例,而僅僅有所附的權利要求的精神與範圍所限制。權利要求1.一種用於優化對虛擬盤映像的至少一個塊進行歸檔的過程的方法,所述方法包括由在第一物理計算裝置上執行的文件系統分析組件識別虛擬盤映像文件中存儲包含文件的數據的多個塊;由在第一物理計算裝置上執行的歸檔組件識別差異盤文件,所述差異盤文件存儲對所識別的存儲包含所述文件的數據的多個塊中的至少一個的修改的標識;由歸檔組件確定是否對所述文件進行歸檔;由歸檔組件向第二物理計算裝置傳輸存儲包含所述文件的數據的多個塊。2.根據權利要求I所述的方法,還包括由文件系統分析組件識別所述虛擬盤映像文件中存儲包含第二文件的數據的第二多個塊;由歸檔組件識別第二差異盤文件,所述第二差異盤文件存儲對所識別的存儲包含第二文件的數據的第二多個塊的修改的標識;由歸檔組件確定是否對第二文件進行歸檔;由歸檔組件確定不向第二物理計算裝置傳輸第二多個塊。3.根據權利要求I所述的方法,其中確定還包括響應於對所述文件應用過濾器來確定是否對所述文件進行歸檔。4.根據權利要求I所述的方法,其中確定還包括響應於識別所述差異盤文件來確定是否對所述文件進行歸檔。5.根據權利要求I所述的方法,還包括從虛擬盤映像文件的扇區提取標識所述文件和所述多個塊之間的映射的位置的數據。6.根據權利要求5所述的方法,還包括訪問所述映射以識別所述多個塊。7.一種用於優化對虛擬盤映像的至少一個塊進行歸檔的過程的系統,所述系統包括文件系統分析組件,其在第一物理計算裝置上執行並且識別虛擬盤映像文件中存儲包含文件的數據的多個塊;和歸檔組件,其在第一物理計算裝置上執行,識別差異盤文件,確定是否對所述文件進行歸檔以及向第二物理計算裝置傳輸存儲包含所述文件的數據的多個塊,所述差異盤文件存儲對所識別的存儲包含所述文件的數據的多個塊的修改的標識。8.根據權利要求7所述的系統,其中文件系統分析組件還包括用於識別虛擬盤映像文件中存儲包含第二文件的數據的第二多個塊的裝置。9.根據權利要求7所述的系統,其中歸檔組件還包括用於識別第二差異盤文件的裝置,所述第二差異盤文件存儲對所識別的存儲包含第二文件的數據的第二多個塊的修改的標識;用於確定是否對第二文件進行歸檔的裝置;以及用於確定不向第二物理計算裝置傳輸第二多個塊的裝置。10.一種用於優化對虛擬盤映像的至少一個塊進行歸檔的過程的系統,所述系統包括用於由在第一物理計算裝置上執行的文件系統分析組件識別虛擬盤映像文件中存儲包含文件的數據的多個塊的裝置;用於由在第一物理計算裝置上執行的歸檔組件識別差異盤文件的裝置,所述差異盤文件存儲對所識別的存儲包含所述文件的數據的多個塊中的至少一個的修改的標識;用於由歸檔組件確定是否對所述文件進行歸檔的裝置;以及用於由歸檔組件向第二物理計算裝置傳輸存儲包含所述文件的數據的多個塊的裝置。11.根據權利要求10所述的系統,還包括用於由文件系統分析組件識別虛擬盤映像文件中存儲包含第二文件的數據的第二多個塊的裝置;用於由歸檔組件識別第二差異盤文件的裝置,所述第二差異盤文件存儲對所識別的存儲包含第二文件的數據的第二多個塊的修改的標識;用於由歸檔組件確定是否對第二文件進行歸檔的裝置;以及用於由歸檔組件確定不向第二物理計算裝置傳輸第二多個塊的裝置。12.根據權利要求10所述的系統,還包括用於響應於對所述文件應用過濾器來確定是否對所述文件進行歸檔的裝置。13.根據權利要求10所述的系統,還包括用於響應於識別所述差異盤文件來確定是否對所述文件進行歸檔的裝置。14.根據權利要求10所述的系統,還包括用於從虛擬盤映像文件的扇區提取標識所述文件和所述多個塊之間的映射的位置的數據的裝置。15.根據權利要求14所述的系統,還包括用於訪問所述映射以識別所述多個塊的裝置。全文摘要用於優化對虛擬盤映像的至少一個塊進行歸檔的過程的系統包括文件系統分析組件和歸檔組件。文件系統分析組件在第一物理計算裝置上執行並且識別虛擬盤映像文件中存儲包含文件的數據的多個塊。歸檔組件在第一物理計算裝置上執行,識別差異盤文件,確定是否對所述文件進行歸檔以及向第二物理計算裝置傳輸存儲包含所述文件的數據的多個塊,所述差異盤文件存儲對所識別的存儲包含所述文件的數據的多個塊的修改的標識。文檔編號G06F15/16GK102754092SQ201080063607公開日2012年10月24日申請日期2010年12月14日優先權日2009年12月14日發明者I·普拉特,J·米爾申請人:思傑系統有限公司