專利名稱:掛載文件或目錄到本地或遠(yuǎn)程主機(jī)的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及帶有網(wǎng)絡(luò)存儲(chǔ)的遠(yuǎn)程系統(tǒng)管理,更具體地,涉及利用設(shè)備鏡像進(jìn)行文 件或目錄的掛載以及讀取的裝置和方法。
背景技術(shù):
遠(yuǎn)程驅(qū)動(dòng)裝置(Remote Drive)具有將本地計(jì)算機(jī)的存儲(chǔ)設(shè)備(諸如軟盤驅(qū)動(dòng)器、 ⑶-ROM驅(qū)動(dòng)器、USB驅(qū)動(dòng)器、設(shè)備鏡像文件)提供給遠(yuǎn)程主機(jī)、并作為與遠(yuǎn)程主機(jī)直接連接 的物理設(shè)備的功能。遠(yuǎn)程驅(qū)動(dòng)裝置的硬件設(shè)備通過遠(yuǎn)程主機(jī)的USB接口連接到遠(yuǎn)程主機(jī)。 在本地計(jì)算機(jī)上的遠(yuǎn)程驅(qū)動(dòng)裝置的客戶端軟件通過在遠(yuǎn)程主機(jī)上的該遠(yuǎn)程驅(qū)動(dòng)裝置的硬 件及其相關(guān)軟件,將本地計(jì)算機(jī)的設(shè)備或設(shè)備鏡像提供給遠(yuǎn)程主機(jī),并在本地計(jì)算機(jī)和遠(yuǎn) 程主機(jī)之間傳輸命令和數(shù)據(jù)。遠(yuǎn)程主機(jī)將通過遠(yuǎn)程驅(qū)動(dòng)裝置加載的存儲(chǔ)設(shè)備視為本地物理 設(shè)備,并遠(yuǎn)程驅(qū)動(dòng)裝置將本地計(jì)算機(jī)的存儲(chǔ)設(shè)備或鏡像提供為遠(yuǎn)程主機(jī)的本地物理設(shè)備來(lái) 使用。遠(yuǎn)程驅(qū)動(dòng)裝置可被用于安裝操作系統(tǒng)、更新固件和互換文件,其在用于系統(tǒng)管理 的很多產(chǎn)品中均有應(yīng)用。圖1示出了利用遠(yuǎn)程驅(qū)動(dòng)裝置掛載本地驅(qū)動(dòng)器到遠(yuǎn)程主機(jī)的情形。例如,本地計(jì) 算機(jī)101中含有⑶-ROM驅(qū)動(dòng)器、軟盤驅(qū)動(dòng)器、USB驅(qū)動(dòng)器、以及設(shè)備鏡像文件,遠(yuǎn)程主機(jī)103 中包括遠(yuǎn)程驅(qū)動(dòng)裝置(未示出),并且通過網(wǎng)絡(luò)102與本地計(jì)算機(jī)101連接,本地計(jì)算機(jī)101 中運(yùn)行有遠(yuǎn)程驅(qū)動(dòng)裝置的客戶端軟件(未示出)。本地計(jì)算機(jī)101通過運(yùn)行遠(yuǎn)程驅(qū)動(dòng)裝置 的客戶端軟件,可以將本地計(jì)算機(jī)中使用的設(shè)備驅(qū)動(dòng)器或者設(shè)備鏡像文件掛載到遠(yuǎn)程主機(jī) 103中,在遠(yuǎn)程主機(jī)103中作為例如磁盤驅(qū)動(dòng)器(E:),(F:)等來(lái)使用。遠(yuǎn)程主機(jī)可以直接訪問經(jīng)遠(yuǎn)程驅(qū)動(dòng)裝置提供給遠(yuǎn)程主機(jī)的本地計(jì)算機(jī)的存儲(chǔ)設(shè) 備上的文件,對(duì)于不在上述存儲(chǔ)設(shè)備上的文件,例如,該本地存儲(chǔ)器沒有提供給遠(yuǎn)程主機(jī), 可以通過將該文件在本地存儲(chǔ)器上封裝成IS09660鏡像文件,從而使遠(yuǎn)程主機(jī)可以訪問 IS09660鏡像文件。IS09660是被廣泛支持的鏡像文件格式。IS09660規(guī)范定義了針對(duì) ⑶-ROM介質(zhì)的文件系統(tǒng),并支持不同的計(jì)算機(jī)操作系統(tǒng),如UNIX,Windows和Mac OS,以便 數(shù)據(jù)可以在不同平臺(tái)間相互交換。圖2示出了 IS09660文件系統(tǒng)的主要結(jié)構(gòu),即邏輯扇區(qū)。邏輯扇區(qū)在邏輯上被分 為若干邏輯部分。第一部分是在最開始的保留字段。雖然在IS09600規(guī)范中沒有明確的定 義,但是保留字段被普遍應(yīng)用于存儲(chǔ)引導(dǎo)信息。第二部分是包含IS09660文件系統(tǒng)信息的 卷描述符。其他一些種類的描述符也可以選擇性地用于在卷描述符后面記錄非ISO信息內(nèi) 容。在非ISO部分后面是包含目錄信息的卷內(nèi)容部分,例如根目錄、根目錄文件、子目錄、子 目錄文件等。圖3示出了 IS09660文件系統(tǒng)的目錄結(jié)構(gòu)。目錄記錄是描述文件或目錄特征的數(shù) 據(jù)結(jié)構(gòu)。目錄記錄本身具有可變長(zhǎng)度。通過目錄記錄描述的文件屬性被存儲(chǔ)在目錄記錄本 身。下面為了簡(jiǎn)化,在某些位置使用術(shù)語(yǔ)“ISO鏡像文件”來(lái)代替“ISO 9660鏡像文件”。
雖然遠(yuǎn)程驅(qū)動(dòng)裝置技術(shù)允許本地計(jì)算機(jī)向遠(yuǎn)程主機(jī)共享設(shè)備鏡像,但對(duì)于目前的 遠(yuǎn)程驅(qū)動(dòng)裝置技術(shù)來(lái)說依然有很多限制。首先,遠(yuǎn)程驅(qū)動(dòng)裝置不可以直接掛載本地計(jì)算機(jī)中的任意文件或目錄到主機(jī),因 為遠(yuǎn)程驅(qū)動(dòng)裝置只能將諸如軟盤驅(qū)動(dòng)器、⑶-ROM驅(qū)動(dòng)器、USB驅(qū)動(dòng)器等物理設(shè)備或設(shè)備鏡 像文件掛載到遠(yuǎn)程主機(jī),如果要共享本地計(jì)算機(jī)的任意文件和目錄,一種方式是將欲共享 的文件拷貝到經(jīng)遠(yuǎn)程驅(qū)動(dòng)裝置提供給遠(yuǎn)程主機(jī)的本地計(jì)算機(jī)的物理存儲(chǔ)設(shè)備上,另外一種 方式就是將這些文件封裝在設(shè)備鏡像文件中,并在設(shè)備鏡像文件通過遠(yuǎn)程驅(qū)動(dòng)裝置被掛載 后被遠(yuǎn)程主機(jī)使用。其次,如果使用第二種方式,即把所需掛載文件封裝在設(shè)備鏡像文件中,為了通過 遠(yuǎn)程驅(qū)動(dòng)裝置共享上述文件或目錄到主機(jī),即使只是一個(gè)文件,也必須手動(dòng)創(chuàng)建和掛載包 含指定文件的新軟盤/ISO鏡像文件。如果沒有可使用的ISO/軟盤鏡像制作工具,通過遠(yuǎn) 程驅(qū)動(dòng)裝置的操作來(lái)實(shí)現(xiàn)上述共享是不可能的。并且一些用戶甚至不知道如何制作鏡像文 件,因?yàn)檫@需要ISO鏡像的特別知識(shí)和相關(guān)的工具軟件。最后,制作大的設(shè)備鏡像文件需要花費(fèi)很多時(shí)間,且多占用一倍大小的磁盤空間 用于復(fù)制同樣的文件內(nèi)容。例如,共享4GB文件需要至少4GB的額外空間,用于生成包含該 文件的ISO鏡像文件。并且制作4GB的ISO鏡像文件也需要很多時(shí)間。此外,除了遠(yuǎn)程共享,在本地封裝ISO鏡像文件也很有必要,例如某些軟件要求使 用⑶-ROM啟動(dòng),而本地計(jì)算機(jī)沒有光驅(qū),這時(shí)也需要制作ISO鏡像文件。創(chuàng)建上述鏡像文件的傳統(tǒng)方法需要將所有被選擇文件和目錄的內(nèi)容復(fù)制到鏡像 文件中,顯然這將花費(fèi)很多時(shí)間來(lái)復(fù)制文件,并導(dǎo)致在存儲(chǔ)系統(tǒng)上為所選文件多占用一倍 的存儲(chǔ)空間。創(chuàng)建副本內(nèi)容也是時(shí)間和存儲(chǔ)空間的浪費(fèi)。如果目的只是在于臨時(shí)掛載一些 文件到主機(jī),那么建立真正ISO鏡像文件確實(shí)非常不方便。
發(fā)明內(nèi)容
根據(jù)本發(fā)明的一個(gè)方面,提供一種用于掛載至少一個(gè)文件到本地或遠(yuǎn)程主機(jī)的方 法,包括創(chuàng)建虛擬設(shè)備鏡像,所述虛擬設(shè)備鏡像包含邏輯塊地址表;將按照標(biāo)準(zhǔn)的設(shè)備鏡 像文件系統(tǒng)格式計(jì)算出的所述至少一個(gè)文件的塊地址和所占用空間的大小的信息寫入所 述邏輯塊地址表中;在所述邏輯塊地址表中記錄文件地址映射關(guān)系,所述文件地址映射關(guān) 系包含從所述至少一個(gè)文件的塊地址到該至少一個(gè)文件位于所述虛擬設(shè)備鏡像的外部的 實(shí)際地址的映射;以及將所創(chuàng)建的虛擬設(shè)備鏡像掛載到本地或遠(yuǎn)程主機(jī)。根據(jù)本發(fā)明的另一個(gè)方面,提供一種用于掛載至少一個(gè)文件到本地或遠(yuǎn)程主機(jī)的 裝置,包括創(chuàng)建單元,用于創(chuàng)建虛擬設(shè)備鏡像,所述虛擬設(shè)備鏡像包含邏輯塊地址表;處 理單元,用于將按照標(biāo)準(zhǔn)的設(shè)備鏡像文件系統(tǒng)格式計(jì)算出的所述至少一個(gè)文件的塊地址和 所占用空間的大小的信息寫入所述邏輯塊地址表中,并在所述邏輯塊地址表中記錄文件地 址映射關(guān)系,所述文件地址映射關(guān)系包含從所述至少一個(gè)文件的塊地址到該至少一個(gè)文件 位于所述虛擬設(shè)備鏡像的外部的實(shí)際地址的映射;以及驅(qū)動(dòng)裝置,將所創(chuàng)建的虛擬設(shè)備鏡 像掛載到本地或遠(yuǎn)程主機(jī)。根據(jù)本發(fā)明的再一個(gè)方面,提供一種用于讀取虛擬設(shè)備鏡像的方法,所述虛擬設(shè) 備鏡像用于掛載至少一個(gè)文件到本地或遠(yuǎn)程主機(jī),所述方法包括接收讀取設(shè)備的命令;響應(yīng)于判別要被讀取的設(shè)備為虛擬設(shè)備鏡像,按照所述虛擬設(shè)備鏡像中包含的邏輯塊地址 表中記載的文件地址映射關(guān)系,獲得要被讀取的所述虛擬設(shè)備鏡像中的內(nèi)容的實(shí)際位置, 其中所述虛擬設(shè)備鏡像的邏輯地址表中包括按照標(biāo)準(zhǔn)的設(shè)備鏡像文件系統(tǒng)格式計(jì)算出的 所述至少一個(gè)文件的塊地址和所占用空間大小的信息以及所述文件地址映射關(guān)系,所述文 件地址映射關(guān)系包含從所述至少一個(gè)文件的塊地址到該至少一個(gè)文件位于所述虛擬設(shè)備 鏡像的外部的實(shí)際地址的映射;以及從所述實(shí)際位置讀取所述內(nèi)容。根據(jù)本發(fā)明的又一個(gè)方面,提供一種用于讀取虛擬設(shè)備鏡像的裝置,所述虛擬設(shè) 備鏡像用于掛載至少一個(gè)文件到本地或遠(yuǎn)程主機(jī),所述裝置包括命令接收單元,接收讀取 設(shè)備的命令,并判別要被讀取的設(shè)備是否為虛擬設(shè)備鏡像;地址轉(zhuǎn)換單元,響應(yīng)于判別要被 讀取的設(shè)備為虛擬設(shè)備鏡像,按照所述虛擬設(shè)備鏡像中包含的邏輯塊地址表中記載的地址 映射關(guān)系,獲得要被讀取的所述虛擬設(shè)備鏡像中的內(nèi)容的實(shí)際位置,其中所述虛擬設(shè)備鏡 像的邏輯地址表中包括按照標(biāo)準(zhǔn)的設(shè)備鏡像文件系統(tǒng)格式計(jì)算出的所述至少一個(gè)文件的 塊地址和所占用空間大小的信息以及所述文件地址映射關(guān)系,所述文件地址映射關(guān)系包含 從所述至少一個(gè)文件的塊地址到該至少一個(gè)文件位于所述虛擬設(shè)備鏡像的外部的實(shí)際地 址的映射;和讀取單元,從所述實(shí)際位置讀取所述內(nèi)容。通過實(shí)施本發(fā)明的各個(gè)實(shí)例,可以借助于遠(yuǎn)程驅(qū)動(dòng)裝置更方便地將一個(gè)或多個(gè)任 意文件和目錄掛載到遠(yuǎn)程主機(jī),利用虛擬鏡像文件,不必創(chuàng)建包含所選擇文件和目錄的內(nèi) 容數(shù)據(jù)的真實(shí)設(shè)備鏡像,相反,僅僅創(chuàng)建虛擬鏡像來(lái)引用所提供的內(nèi)容,而不分配真實(shí)存儲(chǔ) 空間。通過這種方法,無(wú)論上述文件和目錄有多大,掛載任意文件和目錄到遠(yuǎn)程主機(jī)都可以 節(jié)省時(shí)間和節(jié)約存儲(chǔ)空間。
從下面結(jié)合附圖對(duì)本發(fā)明各個(gè)實(shí)施例的詳細(xì)描述中,本發(fā)明的這些和/或其它方 面和優(yōu)點(diǎn)將變得更加清楚并更容易理解,其中圖1是遠(yuǎn)程掛載驅(qū)動(dòng)器到主機(jī)的系統(tǒng)的圖示;圖2是IS09660文件系統(tǒng)主要結(jié)構(gòu)的圖示;圖3是IS09660文件系統(tǒng)的目錄結(jié)構(gòu)的圖示;圖4是根據(jù)本發(fā)明實(shí)施例在虛擬設(shè)備鏡像中的目錄和文件結(jié)構(gòu)的圖示;圖5是根據(jù)本發(fā)明一個(gè)實(shí)施例的虛擬設(shè)備鏡像的結(jié)構(gòu)的圖示;圖6是根據(jù)本發(fā)明一個(gè)實(shí)施例的用于掛載至少一個(gè)文件和/或至少一個(gè)目錄到本 地或遠(yuǎn)程主機(jī)的方法的流程圖;圖7是示出ISO鏡像文件和根據(jù)本發(fā)明另一個(gè)實(shí)施例的虛擬鏡像文件頭之間的不 同的圖示;圖8是根據(jù)本發(fā)明另一個(gè)實(shí)施例的虛擬設(shè)備鏡像的結(jié)構(gòu)的圖示;圖9是根據(jù)本發(fā)明另一個(gè)實(shí)施例用于掛載文件或目錄的系統(tǒng)圖示;圖10是根據(jù)本發(fā)明一個(gè)實(shí)施例的用于掛載文件或目錄到本地或遠(yuǎn)程主機(jī)和/或 從遠(yuǎn)程主機(jī)讀取文件或目錄的內(nèi)容的裝置的結(jié)構(gòu)框圖;圖11是根據(jù)本發(fā)明一個(gè)實(shí)施例的用于讀取掛載至少一個(gè)文件和/或至少一個(gè)目 錄到本地或遠(yuǎn)程主機(jī)上的虛擬設(shè)備鏡像的流程圖;以及
圖12是根據(jù)本發(fā)明另一個(gè)實(shí)施例的用于讀取被掛載在本地或遠(yuǎn)程主機(jī)上的文件 或目錄的系統(tǒng)的圖示。
具體實(shí)施例方式下面將結(jié)合附圖詳細(xì)描述本發(fā)明的具體實(shí)施例。如果考慮到對(duì)某些相關(guān)現(xiàn)有技術(shù) 的詳細(xì)描述可能會(huì)混淆本發(fā)明的要點(diǎn),則將不會(huì)在這里提供其詳細(xì)描述。在同一個(gè)實(shí)施例 中,相同的附圖標(biāo)記用于表示執(zhí)行相同功能的相同元件或單元。本發(fā)明的技術(shù)方案將在下文中通過引用實(shí)施例進(jìn)行具體描述,但是,這些實(shí)施例 可以在很多形式上被修改,且本發(fā)明的范圍不局限于這些特定的實(shí)施例。根據(jù)本發(fā)明的一 個(gè)實(shí)施例,當(dāng)選擇至少一個(gè)文件和/或至少一個(gè)目錄掛載到主機(jī)時(shí),首先將其轉(zhuǎn)換為虛擬 設(shè)備鏡像(文件),如虛擬軟盤鏡像或虛擬ISO鏡像或任何其它格式的虛擬設(shè)備鏡像,隨后 將得到的虛擬設(shè)備鏡像通過遠(yuǎn)程驅(qū)動(dòng)裝置掛載到主機(jī)。之后,主機(jī)可以檢測(cè)到新的驅(qū)動(dòng)設(shè) 備,并在其上面找到相應(yīng)的文件和/或目錄。本發(fā)明提供的虛擬設(shè)備鏡像不同于標(biāo)準(zhǔn)(常規(guī))的設(shè)備鏡像,它只包含最少的必 要文件系統(tǒng)信息,即邏輯塊地址表,或者虛擬鏡像文件頭和邏輯塊地址表,而不包含文件的 具體內(nèi)容。不同類型的驅(qū)動(dòng)器(文件系統(tǒng))會(huì)有不同的虛擬鏡像格式。例如,虛擬ISO鏡 像文件用于模擬CD/DVD驅(qū)動(dòng)器。但是根據(jù)本發(fā)明實(shí)施例的虛擬設(shè)備鏡像可以適用于任何 格式的設(shè)備鏡像。下面對(duì)本公開中要用到的部分術(shù)語(yǔ)進(jìn)行說明。塊地址(偏移地址),是指虛擬設(shè)備鏡像中的各個(gè)部件(例如卷描述符、各個(gè)目錄、 文件等)在標(biāo)準(zhǔn)的設(shè)備鏡像中的邏輯地址,本地或者遠(yuǎn)程主機(jī)在讀取或?qū)懭肱c這些部件相 關(guān)的數(shù)據(jù)時(shí),只能識(shí)別這些部件的塊地址。上述塊地址被記錄在邏輯塊地址表和/或上述 各個(gè)部件的目錄記錄中。這里,目錄的塊地址是指目錄具體內(nèi)容的塊地址,目錄的內(nèi)容是指 目錄本身包含的信息,例如目錄的層次結(jié)構(gòu),目錄包含的哪些文件等,而不是目錄中包含的 文件的具體內(nèi)容。映射,是指例如上述卷描述符、各個(gè)目錄、文件等的塊地址到這些部件的實(shí)際位置 之間的對(duì)應(yīng)關(guān)系,其被記錄在邏輯塊地址表中的相應(yīng)位置。圖4描繪了如何在根據(jù)本發(fā)明示例性實(shí)施例的虛擬設(shè)備鏡像中組織目錄和文件。 這里,文件A1,文件B1和文件B2位于虛擬設(shè)備鏡像的外部,文件A1在虛擬設(shè)備鏡像中的記 錄(可以是目錄記錄,也可以是其它形式的記錄)402通過文件指針(虛線)401指向?qū)?yīng) 的文件A1。文件B1和B2也是如此。虛擬設(shè)備鏡像中的記錄和對(duì)應(yīng)文件內(nèi)容之間的連接可以包括文件在虛擬設(shè)備鏡 像中的第一個(gè)塊的地址(即塊地址),以及該文件占用的塊的數(shù)量。根據(jù)本發(fā)明的另一個(gè)實(shí) 施例,這種連接也可以是外部文件的全路徑,如文件A1的路徑為“/A1”,文件B1的路徑為 “/B/B1”,文件B2的路徑為“/B/B2”,這是本地計(jì)算機(jī)可以訪問的實(shí)際文件/目錄。圖5是根據(jù)本發(fā)明一個(gè)實(shí)施例的虛擬設(shè)備鏡像的結(jié)構(gòu)的圖示。如圖5所示,虛擬設(shè)備鏡像501包括邏輯塊地址表502。例如,圖4所示出的所有 的連接都被維護(hù)在邏輯塊地址表502中。邏輯塊地址表502是在塊地址和相關(guān)數(shù)據(jù)(目錄 的內(nèi)容和文件的具體內(nèi)容)的實(shí)際位置之間的映射的集合。
具體地,由于在創(chuàng)建虛擬設(shè)備鏡像501時(shí),對(duì)要被掛載的文件和/或目錄的塊地址 相對(duì)于標(biāo)準(zhǔn)設(shè)備鏡像進(jìn)行了調(diào)整,因此它們的實(shí)際位置與它們?cè)跇?biāo)準(zhǔn)的設(shè)備鏡像中的塊地 址發(fā)生了變化。因此,邏輯塊地址表502中形成有從要被掛載的文件和/或目錄在標(biāo)準(zhǔn)的 設(shè)備鏡像中的塊地址到它們?cè)谔摂M設(shè)備鏡像501中的實(shí)際位置的映射。文件A1、文件B1和文件B2的具體內(nèi)容的實(shí)際位置是它們?cè)谕獠课募到y(tǒng)512中 的地址。邏輯塊地址表502中形成有從文件A1、文件B1和文件B2的塊地址到它們?cè)谕獠?文件系統(tǒng)512中的實(shí)際地址的映射,并且該映射中具有指向外部文件系統(tǒng)512的連接路徑, 例如在邏輯塊地址表502的文件A1的塊地址YY-ZZ中具有指向文件A1的具體內(nèi)容的路徑 “/A1”,在邏輯塊地址表502的文件B1的塊地址ZZ-AA中具有指向文件B1的具體內(nèi)容的路 徑“/B/B1”,在邏輯塊地址表502的文件B2的塊地址AA-BB中具有指向文件B2的具體內(nèi)容 的路徑“/B/B2”。在外部文件系統(tǒng)512中存儲(chǔ)了目標(biāo)文件的具體內(nèi)容,如文件A1、文件B1 和文件B2的具體內(nèi)容。圖6是根據(jù)本發(fā)明一個(gè)實(shí)施例的用于掛載至少一個(gè)文件和/或至少一個(gè)目錄到本 地或遠(yuǎn)程主機(jī)的方法的流程圖。如圖6所示,根據(jù)一個(gè)示例性實(shí)施例的用于掛載至少一個(gè)文件和/或至少一個(gè)目 錄到本地或遠(yuǎn)程主機(jī)的方法按照如下方式執(zhí)行。在步驟S601,為要掛載的至少一個(gè)文件和/或至少一個(gè)目錄創(chuàng)建虛擬設(shè)備鏡像, 例如虛擬設(shè)備鏡像501,該虛擬設(shè)備鏡像501包含邏輯塊地址表502,然后處理進(jìn)行到步驟 S603。在步驟S603,將按照標(biāo)準(zhǔn)的設(shè)備鏡像文件系統(tǒng)格式計(jì)算出的該至少一個(gè)文件和/ 或至少一個(gè)目錄的具體內(nèi)容的塊地址和所占用空間的大小的信息寫入邏輯塊地址表502 中,然后處理進(jìn)行到步驟S605。在步驟S605中,在邏輯塊地址表502中記錄地址映射關(guān)系,然后處理進(jìn)行到步驟 S607。對(duì)于所述至少一個(gè)文件,上述地址映射關(guān)系包括從該至少一個(gè)文件的塊地址到該至 少一個(gè)文件的具體內(nèi)容位于虛擬設(shè)備鏡像501的外部的實(shí)際地址的映射,即為文件地址映 射關(guān)系,而對(duì)于目錄,上述地址映射關(guān)系包括從該目錄的塊地址到該目錄的具體內(nèi)容在虛 擬設(shè)備鏡像501中的實(shí)際位置的映射,即為目錄地址映射關(guān)系,對(duì)于目錄中的文件,可以認(rèn) 為也是一種文件地址映射關(guān)系。在步驟S607,將所創(chuàng)建的虛擬設(shè)備鏡像501掛載到本地或遠(yuǎn)程主機(jī),然后處理結(jié) 束。這里,該文件的具體內(nèi)容的實(shí)際位置和/或該目錄包含的文件的具體內(nèi)容的實(shí)際位置 位于虛擬設(shè)備鏡像501的外部,例如外部文件系統(tǒng)512中。通過上述方法,可以利用虛擬設(shè)備鏡像,而不必創(chuàng)建包含所選擇文件和目錄的內(nèi) 容數(shù)據(jù)的真實(shí)設(shè)備鏡像,因而不分配真實(shí)的存儲(chǔ)空間。通過這種方法,無(wú)論文件和目錄有多 大,掛載一個(gè)或多個(gè)任意文件和目錄到主機(jī)都可以節(jié)省時(shí)間和節(jié)約存儲(chǔ)空間。根據(jù)本發(fā)明另一個(gè)示例性實(shí)施例,虛擬設(shè)備鏡像還包含虛擬鏡像文件頭。圖7示出了標(biāo)準(zhǔn)的設(shè)備鏡像(例如ISO鏡像文件)與根據(jù)本發(fā)明實(shí)施例的虛擬鏡 像文件頭之間的不同。兩種結(jié)構(gòu)之間的主要區(qū)別在于,對(duì)于虛擬鏡像文件頭,僅包含卷描述 符和各個(gè)目錄等,所有文件(的具體內(nèi)容)均位于虛擬設(shè)備鏡像之外。在虛擬鏡像文件頭 中,由于只包含原來(lái)的部分部件(卷描述符、目錄等),并且這些部件在虛擬鏡像文件頭中的地址被進(jìn)行了重新排列,與標(biāo)準(zhǔn)的設(shè)備鏡像中的塊地址產(chǎn)生了變化,因此在邏輯塊地址 表中設(shè)計(jì)了將這些部件在原標(biāo)準(zhǔn)的設(shè)備鏡像中的塊地址映射到虛擬鏡像文件頭中的實(shí)際 塊地址的機(jī)制。圖8是一個(gè)虛擬設(shè)備鏡像的示例,其中示出了邏輯塊地址表和虛擬鏡像文件頭之 間的關(guān)系。如圖8所示,虛擬設(shè)備鏡像801包括邏輯塊地址表802和虛擬鏡像文件頭804。 虛擬鏡像文件頭804中包含有卷描述符(可以包括主卷描述符、補(bǔ)充卷描述符、卷分區(qū)描述 符、啟動(dòng)記錄、卷描述符終止等,這里統(tǒng)稱為卷描述符)806、根目錄808、子目錄B 810等。卷 描述符806的塊地址為16-18,表示其在標(biāo)準(zhǔn)的設(shè)備鏡像中的塊地址,該塊地址被記錄在邏 輯塊地址表802中。根目錄808中可以包括根目錄的目錄記錄、父目錄(根)的目錄記錄、 文件A1的目錄記錄和子目錄B的目錄記錄等。各個(gè)目錄或文件的目錄記錄中可以包含該 目錄或文件的塊地址,并且該塊地址也被記錄在邏輯塊地址表802中。該塊地址表示按照 標(biāo)準(zhǔn)的設(shè)備鏡像文件系統(tǒng)格式計(jì)算的該目錄或文件在標(biāo)準(zhǔn)的設(shè)備鏡像中的塊地址。子目錄 B 810中可以包括子目錄B的目錄記錄、父目錄(根)的目錄記錄、文件B1的目錄記錄和文 件B2的目錄記錄等。各個(gè)目錄或文件的目錄記錄中也可以包含該目錄或文件的塊地址,并 且該塊地址也被記錄在邏輯塊地址表802中。該塊地址表示按照標(biāo)準(zhǔn)的設(shè)備鏡像文件系統(tǒng) 格式計(jì)算的該目錄或文件在標(biāo)準(zhǔn)的設(shè)備鏡像中的塊地址。在邏輯塊地址表802中存儲(chǔ)由所記錄的多個(gè)塊地址指向卷描述符806、根目錄 808、子目錄B 810、文件A1、文件B1、文件B2等的實(shí)際位置的指針。由于在生成虛擬鏡像文 件頭804時(shí),卷描述符806、根目錄808、子目錄B 810等在虛擬鏡像文件頭804中的地址被 相對(duì)于真實(shí)設(shè)備鏡像進(jìn)行了調(diào)整,因此卷描述符806、根目錄808、子目錄B 810等在虛擬鏡 像文件頭804中的實(shí)際位置與它們?cè)跇?biāo)準(zhǔn)的設(shè)備鏡像中的塊地址發(fā)生了變化。邏輯塊地址 表802中形成有從卷描述符806、根目錄808、子目錄B 810等在標(biāo)準(zhǔn)的設(shè)備鏡像中的塊地 址到它們?cè)谔摂M鏡像文件頭804中的實(shí)際位置的映射。在虛擬設(shè)備鏡像中,卷描述符806、 根目錄808、子目錄B 810等根據(jù)對(duì)應(yīng)的地址映射關(guān)系,被放置在虛擬設(shè)備鏡像中的實(shí)際位 置,從而減小了虛擬設(shè)備鏡像的存儲(chǔ)空間。文件A1、文件B1和文件B2的具體內(nèi)容的實(shí)際位置是它們?cè)谕獠课募到y(tǒng)812中 的地址。邏輯塊地址表802中還形成有從文件A1、文件B1和文件B2的塊地址到它們?cè)谕?部文件系統(tǒng)812中的實(shí)際地址的映射,并且該映射中具有指向外部文件系統(tǒng)812的連接路 徑,例如在邏輯塊地址表802的文件A1的塊地址YY-ZZ中具有指向文件A1的路徑“/A1”, 在邏輯塊地址表802的文件B1的塊地址ZZ-AA中具有指向文件B1的路徑“/B/B1”,在邏輯 塊地址表802的文件B2的塊地址AA-BB中具有指向文件B2的路徑“/B/B2”。在外部文件 系統(tǒng)812中存儲(chǔ)了目標(biāo)文件的內(nèi)容,如文件A1、文件B1和文件B2的具體內(nèi)容。根據(jù)另一個(gè)實(shí)施例,用于掛載至少一個(gè)文件和/或至少一個(gè)目錄到本地或遠(yuǎn)程主 機(jī)的方法還可以包括步驟在虛擬鏡像文件頭804中為要掛載的至少一個(gè)文件和/或至少 一個(gè)目錄生成目錄記錄,例如是文件A1的目錄記錄,并將計(jì)算出的塊地址和所占用空間大 小的信息寫入該至少一個(gè)文件和/或至少一個(gè)目錄的目錄記錄中。由于虛擬鏡像文件頭804中包含有卷描述符806,根據(jù)另一個(gè)實(shí)施例,用于掛載至 少一個(gè)文件和/或至少一個(gè)目錄到本地或遠(yuǎn)程主機(jī)的方法還可以包括步驟調(diào)整卷描述符 806在虛擬鏡像文件頭804中的位置,卷描述符806的該位置是卷描述符806在虛擬鏡像文件頭804中的實(shí)際位置,并且,如果是至少一個(gè)目錄被掛載到本地或遠(yuǎn)程主機(jī),則調(diào)整該至 少一個(gè)目錄在虛擬鏡像文件頭804中的位置,該至少一個(gè)目錄的該位置是該至少一個(gè)目錄 在虛擬鏡像文件頭804中的實(shí)際位置。邏輯塊地址表802中也記錄有卷描述符806的塊地址和所占用空間大小的信息, 以及該塊地址到卷描述符806在虛擬鏡像文件804頭中的實(shí)際位置的映射。圖9是示出了根據(jù)本發(fā)明另一個(gè)實(shí)施例的用于掛載至少一個(gè)文件和/或至少一個(gè) 目錄到本地或遠(yuǎn)程主機(jī)的系統(tǒng)的圖示,圖10是根據(jù)本發(fā)明另一個(gè)實(shí)施例的用于掛載至少 一個(gè)文件和/或至少一個(gè)目錄到本地或遠(yuǎn)程主機(jī)的方法的流程圖。如圖9所示,例如,本地計(jì)算機(jī)901中含有各種文件及目錄,主機(jī)903中安裝有遠(yuǎn) 程驅(qū)動(dòng)裝置905,并且通過網(wǎng)絡(luò)902與計(jì)算機(jī)901連接,計(jì)算機(jī)901中運(yùn)行有遠(yuǎn)程驅(qū)動(dòng)裝置 905的客戶端軟件906。計(jì)算機(jī)901通過運(yùn)行遠(yuǎn)程驅(qū)動(dòng)裝置905的客戶端軟件906,可以將 其中的任意數(shù)量的文件或目錄掛載到主機(jī)903中,在主機(jī)903中作為例如盤驅(qū)動(dòng)器(E:), (F:)等來(lái)使用。 根據(jù)一個(gè)實(shí)施例,遠(yuǎn)程驅(qū)動(dòng)裝置905不限于被安裝在主機(jī)903中,還可以被安裝在 本地計(jì)算機(jī)901中,或者被安裝在第三方設(shè)備上。根據(jù)另一個(gè)實(shí)施例,該主機(jī)903可以與本 地計(jì)算機(jī)901集成于同一個(gè)設(shè)備中,同樣可以應(yīng)用各個(gè)實(shí)施例所描述的方法。圖10是根據(jù)本發(fā)明一個(gè)實(shí)施例的用于掛載至少一個(gè)文件和/或至少一個(gè)目錄到 本地或遠(yuǎn)程主機(jī)和/或從該主機(jī)讀取用于掛載文件或目錄的虛擬設(shè)備鏡像的內(nèi)容的裝置 的結(jié)構(gòu)框圖。如圖10所示,根據(jù)本發(fā)明一個(gè)實(shí)施例的用于掛載至少一個(gè)文件和/或至少一個(gè)目 錄到本地或遠(yuǎn)程主機(jī)和/或從該主機(jī)讀取文件或目錄的內(nèi)容的裝置(本地計(jì)算機(jī))1000能 夠與主機(jī)903通信,并能夠通過驅(qū)動(dòng)裝置1001與主機(jī)903進(jìn)行任意數(shù)量的文件或目錄的掛 載操作,以及從主機(jī)903讀取文件或目錄的內(nèi)容的操作。本地計(jì)算機(jī)1000可以包括中央處理單元(CPU) 1011,用于執(zhí)行各種系統(tǒng)軟件、 應(yīng)用軟件,以處理各種數(shù)據(jù)并控制本地計(jì)算機(jī)1000中的各個(gè)部件(單元)的操作;只讀 存儲(chǔ)器(ROM) 1012,用于存儲(chǔ)CPU 1011執(zhí)行處理和控制所需的各種程序;隨機(jī)存取存儲(chǔ)器 (肌1)1013,用于存儲(chǔ)〔 肌011在處理和控制過程中臨時(shí)產(chǎn)生的中間數(shù)據(jù);通信單元1008, 用于通過有線和/或無(wú)線網(wǎng)絡(luò)(未示出)與主機(jī)903連接,以在本地計(jì)算機(jī)1000和主機(jī)903 之間發(fā)送和接收各種數(shù)據(jù)和/或命令;以及存儲(chǔ)部件1009,用于存儲(chǔ)所接收和/或發(fā)送的 各種數(shù)據(jù)和/或命令。根據(jù)本發(fā)明實(shí)施例的本地計(jì)算機(jī)1000還可以包括創(chuàng)建單元1002, 處理單元1004,(SCSI)命令接收單元1003,地址轉(zhuǎn)換單元1005,讀取單元1007。CPU 1011 通過執(zhí)行相應(yīng)的控制程序執(zhí)行控制功能,以控制上述各個(gè)單元完成各種功能和操作。上述 各個(gè)單元之間通過總線1010相互連接。根據(jù)本發(fā)明實(shí)施例的本地計(jì)算機(jī)1000還可以包括 目錄記錄生成單元1006。根據(jù)一個(gè)實(shí)施例的上述本地計(jì)算機(jī)1000的具體結(jié)構(gòu)僅為示例性說明,不對(duì)本發(fā) 明的范圍構(gòu)成限制,其中某些單元可以被省略,并且某些單元的功能可以合并為一個(gè)單元 來(lái)執(zhí)行,或者某些單元的功能可以被分割為多個(gè)更小的單元來(lái)執(zhí)行。例如,上述創(chuàng)建單元1002、處理單元1004、目錄記錄生成單元1006等可以單獨(dú)組 成為根據(jù)本發(fā)明實(shí)施例的用于掛載至少一個(gè)文件和/或至少一個(gè)目錄到本地或遠(yuǎn)程主機(jī)的裝置,而上述命令接收單元1003、地址轉(zhuǎn)換單元1005、讀取單元1007等可以單獨(dú)組成為 根據(jù)本發(fā)明實(shí)施例的用于讀取虛擬設(shè)備鏡像的裝置。根據(jù)一個(gè)實(shí)施例的上述本地計(jì)算機(jī)1000執(zhí)行文件和/或目錄掛載的操作如下 創(chuàng)建單元1002為要掛載的至少一個(gè)文件和/或至少一個(gè)目錄創(chuàng)建虛擬設(shè)備鏡像911,該虛 擬設(shè)備鏡像911包含邏輯塊地址表912 (優(yōu)選也可以包含虛擬鏡像文件頭914)。處理單元 906用于將按照標(biāo)準(zhǔn)的設(shè)備鏡像文件系統(tǒng)格式計(jì)算出的該至少一個(gè)文件和/或至少一個(gè)目 錄的具體內(nèi)容的塊地址和所占用空間的大小的信息寫入邏輯塊地址表912中,并在邏輯塊 地址表912中記錄地址映射關(guān)系,包括文件地址映射關(guān)系和/或目錄地址映射關(guān)系。驅(qū)動(dòng) 裝置1001將所創(chuàng)建的虛擬設(shè)備鏡像911掛載到本地或遠(yuǎn)程主機(jī)903。在圖10中,被掛載的 虛擬設(shè)備鏡像911表現(xiàn)為主機(jī)903的本地驅(qū)動(dòng)器,例如是標(biāo)識(shí)符為E:,F(xiàn):,G:等的本地驅(qū)動(dòng) 器。上述文件的具體內(nèi)容或者是目錄中包含的文件的具體內(nèi)容位于虛擬設(shè)備鏡像911外部 的文件系統(tǒng)930中。根據(jù)一個(gè)實(shí)施例,主機(jī)903將虛擬設(shè)備鏡像911識(shí)別為本地驅(qū)動(dòng)器,主機(jī)903進(jìn)行 檢測(cè)和識(shí)別的方式與掛載標(biāo)準(zhǔn)的設(shè)備鏡像的方式相同。根據(jù)本發(fā)明的另一個(gè)實(shí)施例,驅(qū)動(dòng)裝置1001可以位于本地計(jì)算機(jī)1000的內(nèi)部作 為一個(gè)單元進(jìn)行操作,也可以位于本地計(jì)算機(jī)1000的外部,即安裝在主機(jī)903或者第三方
設(shè)備中。根據(jù)本發(fā)明的示例性實(shí)施例,文件地址映射關(guān)系包括從該文件的塊地址到該文件 的具體內(nèi)容位于虛擬設(shè)備鏡像911的外部的實(shí)際地址的映射,并且目錄地址映射關(guān)系包括 從該目錄的塊地址到該目錄的具體內(nèi)容在虛擬設(shè)備鏡像911中的實(shí)際位置的映射;對(duì)于目 錄中的文件,可以認(rèn)為是一種文件地址映射關(guān)系。根據(jù)本發(fā)明的示例性實(shí)施例,虛擬設(shè)備鏡像911還包含虛擬鏡像文件頭914,并且 本地計(jì)算機(jī)1000還包括目錄記錄生成單元,用于在虛擬鏡像文件頭914中為要掛載的至少 一個(gè)文件和/或至少一個(gè)目錄生成目錄記錄,并將計(jì)算出的塊地址和所占用空間大小的信 息寫入到該至少一個(gè)文件和/或至少一個(gè)目錄的該目錄記錄中。根據(jù)本發(fā)明的示例性實(shí)施例,虛擬鏡像文件頭914中包含卷描述符916,處理單元 1004還用于調(diào)整卷描述符916在虛擬鏡像文件頭914中的位置,卷描述符916的該位置是 卷描述符916在虛擬鏡像文件頭914中的實(shí)際位置。如果至少一個(gè)目錄被掛載到本地或遠(yuǎn) 程主機(jī)903,該處理單元1004還用于調(diào)整該至少一個(gè)目錄在虛擬鏡像文件頭914中的位置, 該至少一個(gè)目錄的這個(gè)位置是該至少一個(gè)目錄在虛擬鏡像文件頭914中的實(shí)際位置。根據(jù)本發(fā)明的示例性實(shí)施例,邏輯塊地址表912中還記錄有卷描述符916的塊地 址和所占用空間大小的信息以及該塊地址到卷描述符916在虛擬鏡像文件頭914中的實(shí)際 位置的映射。圖11是根據(jù)一個(gè)實(shí)施例的用于讀取掛載至少一個(gè)文件和/或至少一個(gè)目錄到本 地或遠(yuǎn)程主機(jī)上的虛擬設(shè)備鏡像的流程圖,其中該至少一個(gè)文件的具體內(nèi)容的實(shí)際位置和 /或該至少一個(gè)目錄包含的文件的具體內(nèi)容的實(shí)際位置位于該虛擬設(shè)備鏡像的外部。根據(jù)本發(fā)明另一個(gè)實(shí)施例,本地計(jì)算機(jī)1000執(zhí)行虛擬設(shè)備鏡像讀取的操作如下 在步驟S1101,命令接收單元1003從讀取設(shè)備(例如是主機(jī)903)接收讀取命令。在步驟 S1103,命令接收單元1003判別要被讀取的設(shè)備是否為虛擬設(shè)備鏡像。
如果在步驟S1103中的判斷為肯定,則處理進(jìn)行到步驟S1105,否則處理返回到步 驟 S1101。在步驟S1105,響應(yīng)于判別要被讀取的設(shè)備為虛擬設(shè)備鏡像,地址轉(zhuǎn)換單元1005 按照虛擬設(shè)備鏡像911中包含的邏輯塊地址表912中記錄的地址映射關(guān)系,包括文件地址 映射關(guān)系和/或目錄地址映射關(guān)系,獲得要被讀取的虛擬設(shè)備鏡像中的內(nèi)容的實(shí)際位置, 然后,處理進(jìn)行到步驟S1107。這里,按照標(biāo)準(zhǔn)的設(shè)備鏡像文件系統(tǒng)格式計(jì)算出的該至少一 個(gè)文件和/或至少一個(gè)目錄的具體內(nèi)容的塊地址和所占用空間大小的信息也被記錄在邏 輯塊地址表912中。根據(jù)一個(gè)示例性實(shí)施例,如果虛擬設(shè)備鏡像911包含了至少一個(gè)文件, 文件地址映射關(guān)系就包含從該至少一個(gè)文件的塊地址到該至少一個(gè)文件位于虛擬設(shè)備鏡 像911的外部的實(shí)際地址的映射,如果虛擬設(shè)備鏡像911包含了至少一個(gè)目錄,目錄地址映 射關(guān)系就包含從該至少一個(gè)目錄的塊地址到該至少一個(gè)目錄的具體內(nèi)容在虛擬設(shè)備鏡像 911中的實(shí)際位置的映射,如果該至少一個(gè)目錄中包含文件,可以認(rèn)為這是一種文件地址映 射關(guān)系。在步驟S1107中,讀取單元1007從所獲得的實(shí)際位置讀取上述虛擬設(shè)備鏡像911 中的內(nèi)容。根據(jù)一個(gè)示例性實(shí)施例,虛擬設(shè)備鏡像911還包含虛擬鏡像文件頭914,該虛擬鏡 像文件頭914中包含為要掛載的至少一個(gè)文件和/或至少一個(gè)目錄生成的目錄記錄,例如 是文件A1的目錄記錄922。該至少一個(gè)文件和/或至少一個(gè)目錄的目錄記錄中包含寫入的 塊地址和占用空間大小的信息。根據(jù)本一個(gè)示例性實(shí)施例,虛擬鏡像文件頭914中還包含卷描述符916,邏輯塊地 址表912中記錄有卷描述符916的塊地址和所占用空間大小的信息以及該塊地址到卷描述 符916在虛擬鏡像文件頭914中的實(shí)際位置的映射。圖12是根據(jù)另一個(gè)實(shí)施例的用于讀取掛載在本地或遠(yuǎn)程主機(jī)上的虛擬設(shè)備鏡像 中的至少一個(gè)文件和/或至少一個(gè)目錄的系統(tǒng)的圖示,其與圖9的結(jié)構(gòu)基本相同。如圖12 所示,本地設(shè)備1201與主機(jī)1203通過網(wǎng)絡(luò)1202相連,在本地設(shè)備1201上運(yùn)行有驅(qū)動(dòng)裝置 1205的客戶端軟件1206,所創(chuàng)建的文件或目錄的虛擬設(shè)備鏡像1211在主機(jī)1203上被顯示 為本地驅(qū)動(dòng)器。本地設(shè)備1201的結(jié)構(gòu)與圖10中示出的本地計(jì)算機(jī)1000的結(jié)構(gòu)相同,這里 省略對(duì)其的詳細(xì)描述。根據(jù)一個(gè)示例性實(shí)施例,本地計(jì)算機(jī)1201接收從主機(jī)1203發(fā)出的命令,該命令可 以是符合SCSI命令集規(guī)范的SCSI命令。每個(gè)讀、寫SCSI命令有兩個(gè)字段一個(gè)字段指示 主機(jī)1203打算讀取數(shù)據(jù)或者寫入數(shù)據(jù)的第一個(gè)塊的編號(hào),另一個(gè)字段指示有多少塊需要 被讀取或者被寫入。這里的塊的編號(hào)是指主機(jī)1203所知道的要讀取或?qū)懭氲臄?shù)據(jù)在標(biāo)準(zhǔn) 的設(shè)備鏡像中的塊地址。當(dāng)本地計(jì)算機(jī)1201的客戶端軟件1206從主機(jī)1203接收SCSI命 令時(shí),其根據(jù)該SCSI命令中所包含的、要讀取的塊地址,從虛擬設(shè)備鏡像1211的邏輯塊地 址表1212中獲取該文件或目錄的內(nèi)容的實(shí)際位置,并從該實(shí)際位置處獲取該文件或目錄 的內(nèi)容。這里,本地計(jì)算機(jī)1201中運(yùn)行的客戶端軟件1206的各個(gè)功能可以分別通過命令 接收單元1003、地址轉(zhuǎn)換單元1005、讀取單元1007等來(lái)實(shí)現(xiàn)。下面結(jié)合圖12,利用一個(gè)示例性的例子來(lái)說明主機(jī)1203對(duì)虛擬設(shè)備鏡像1211的
讀取操作。
首先,命令接收單元1003通過通信單元1008從主機(jī)1203接收SCSI命令,其中 包含要讀取的卷描述符1216的起始?jí)K地址(例如16-16)。當(dāng)判別要被讀取的設(shè)備為虛 擬設(shè)備鏡像后,地址轉(zhuǎn)換單元1005從邏輯塊地址表1212的地址映射中獲取該起始?jí)K地址 (16-16)在虛擬鏡像文件頭1214中的實(shí)際位置(卷描述符1216經(jīng)調(diào)整以后在虛擬鏡像文 件頭1214中的位置),例如是邏輯塊0,即虛擬鏡像文件頭1214的第一個(gè)塊。然后,讀取單 元1007讀取該位置的數(shù)據(jù),即卷描述符1216。通過通信單元1008將該卷描述符1216返回 給主機(jī)1203。主機(jī)1203接收卷描述符1216,從卷描述符1216中獲取根目錄記錄12161,從根目 錄記錄12161中提取根目錄1218的塊地址,即A-B。然后,主機(jī)1203發(fā)命令讀取塊A-B的 內(nèi)容。本地計(jì)算機(jī)1201的地址轉(zhuǎn)換單元1005通過邏輯塊地址表1212中的對(duì)應(yīng)的地址映 射,獲知塊地址A-B的內(nèi)容(即根目錄1218)在虛擬鏡像文件頭1214中的實(shí)際位置,并且 讀取單元1007從該位置讀取根目錄1218,并通過通信單元1007將根目錄1218的內(nèi)容返回 給主機(jī)1203。主機(jī)1203接收根目錄1218的內(nèi)容,從根目錄1218的內(nèi)容中獲取例如文件A1的目 錄記錄1222,從目錄記錄1222中提取文件A1的內(nèi)容的塊地址,即E-F。然后,主機(jī)1203發(fā) 命令讀取塊地址E-F的內(nèi)容。本地計(jì)算機(jī)1201中的地址轉(zhuǎn)換單元1005根據(jù)邏輯塊地址表 1212中的對(duì)應(yīng)的地址映射,獲知文件A1的塊地址E-F的內(nèi)容在外部文件系統(tǒng)1230中的實(shí) 際位置,并且讀取單元1007根據(jù)邏輯塊地址表1212中的路徑“/A1”,從虛擬設(shè)備鏡像1211 的外部讀取該文件A1的內(nèi)容,并將相應(yīng)內(nèi)容整理成一定的格式(例如符合IS09660規(guī)范的 格式)。本地計(jì)算機(jī)1201通過通信單元1007將被整理成一定格式的文件A1的內(nèi)容返回給 主機(jī)1203。這樣,主機(jī)1203能夠訪問在主機(jī)1203上被識(shí)別為本地驅(qū)動(dòng)器的虛擬設(shè)備鏡像的 文件和/或目錄的內(nèi)容。需要說明的是,上述讀取過程不對(duì)本發(fā)明的范圍構(gòu)成限制。根據(jù)其它實(shí)施例,主機(jī) 1203還可以通過其它操作來(lái)完成上述讀取操作。可見,根據(jù)各個(gè)實(shí)施例的本地計(jì)算機(jī)的客戶端軟件在讀取文件的具體內(nèi)容的數(shù)據(jù) 時(shí),不是從虛擬設(shè)備鏡像本身來(lái)讀取,并且這個(gè)操作在本地計(jì)算機(jī)的后臺(tái)即可實(shí)現(xiàn),遠(yuǎn)程主 機(jī)不會(huì)意識(shí)到它。本發(fā)明可以被應(yīng)用到具有遠(yuǎn)程驅(qū)動(dòng)功能的任何設(shè)備中。需要說明的是,本發(fā)明的實(shí)施例可以通過硬件、軟件、固件或它們結(jié)合的方式來(lái)實(shí) 現(xiàn),其實(shí)現(xiàn)方式不對(duì)本發(fā)明的范圍構(gòu)成限制。本發(fā)明實(shí)施例中的各個(gè)功能元件(單元)相 互之間的連接關(guān)系也不對(duì)本發(fā)明的范圍構(gòu)成限制,其中的一個(gè)或多個(gè)功能元件可以包括或 連接于其它任意的功能元件。根據(jù)一個(gè)實(shí)施例,虛擬設(shè)備鏡像可以是虛擬的ISO鏡像文件。但是虛擬的ISO鏡 像文件不對(duì)本發(fā)明的范圍構(gòu)成限制,根據(jù)本發(fā)明實(shí)施例的虛擬設(shè)備鏡像可以是任何其它類 型和/或格式的虛擬設(shè)備鏡像。雖然上面已經(jīng)結(jié)合附圖示出并描述了本發(fā)明的一些實(shí)施例,但是本領(lǐng)域的技術(shù)人 員應(yīng)當(dāng)理解,在不偏離本發(fā)明的原則和精神的情況下,可以對(duì)這些實(shí)施例做出變化和改變, 所做的變化和改變?nèi)匀宦湓诒景l(fā)明及其等價(jià)物的保護(hù)范圍之內(nèi)。
權(quán)利要求
一種用于掛載至少一個(gè)文件到本地或遠(yuǎn)程主機(jī)的方法,包括創(chuàng)建虛擬設(shè)備鏡像,所述虛擬設(shè)備鏡像包含邏輯塊地址表;將按照標(biāo)準(zhǔn)的設(shè)備鏡像文件系統(tǒng)格式計(jì)算出的所述至少一個(gè)文件的塊地址和所占用空間的大小的信息寫入所述邏輯塊地址表中;在所述邏輯塊地址表中記錄文件地址映射關(guān)系,所述文件地址映射關(guān)系包含從所述至少一個(gè)文件的塊地址到該至少一個(gè)文件位于所述虛擬設(shè)備鏡像的外部的實(shí)際地址的映射;以及將所創(chuàng)建的虛擬設(shè)備鏡像掛載到本地或遠(yuǎn)程主機(jī)。
2.根據(jù)權(quán)利要求1所述的方法,其中所述虛擬設(shè)備鏡像還包含虛擬鏡像文件頭,該方 法還包括在虛擬鏡像文件頭中為所述至少一個(gè)文件生成目錄記錄;以及將所述至少一個(gè)文件的塊地址和所占用空間大小的信息寫入所述至少一個(gè)文件的目錄記錄。
3.根據(jù)權(quán)利要求1或2所述的方法,該方法進(jìn)一步包括在所述寫入步驟中,將按照標(biāo)準(zhǔn)的設(shè)備鏡像文件系統(tǒng)格式計(jì)算出的要掛載的至少一個(gè) 目錄的塊地址和所占用空間的大小的信息寫入所述邏輯塊地址表中;在所述邏輯塊地址表中記錄目錄地址映射關(guān)系,所述目錄地址映射關(guān)系包含從所述至 少一個(gè)目錄的塊地址到該至少一個(gè)目錄在所述虛擬設(shè)備鏡像中的實(shí)際位置的映射。
4.根據(jù)權(quán)利要求3所述的方法,該方法還包括在虛擬鏡像文件頭中為所述至少一個(gè)目錄生成目錄記錄;以及 將所述至少一個(gè)目錄的塊地址和所占用空間大小的信息寫入所述至少一個(gè)目錄的目 錄記錄。
5.根據(jù)權(quán)利要求4所述的方法,該方法還包括按照所述邏輯塊地址表中記錄的目錄地址映射關(guān)系,將所述至少一個(gè)目錄放置到所述 至少一個(gè)目錄在所述虛擬鏡像文件頭中的實(shí)際位置。
6.根據(jù)權(quán)利要求4或5所述的方法,其中所述虛擬鏡像文件頭中還包含卷描述符,所述 方法還包括將卷描述符在虛擬鏡像文件頭中的位置從其塊地址調(diào)整到所述卷描述符在所述虛擬 鏡像文件頭中的實(shí)際位置;其中所述邏輯塊地址表中記錄有所述卷描述符的塊地址和所占用空間大小的信息以 及所述卷描述符的塊地址到所述卷描述符在所述虛擬鏡像文件頭中的實(shí)際位置的映射。
7.一種用于掛載至少一個(gè)文件到本地或遠(yuǎn)程主機(jī)的裝置,包括創(chuàng)建單元,用于創(chuàng)建虛擬設(shè)備鏡像,所述虛擬設(shè)備鏡像包含邏輯塊地址表; 處理單元,用于將按照標(biāo)準(zhǔn)的設(shè)備鏡像文件系統(tǒng)格式計(jì)算出的所述至少一個(gè)文件的塊 地址和所占用空間的大小的信息寫入所述邏輯塊地址表中,并在所述邏輯塊地址表中記錄 文件地址映射關(guān)系,所述文件地址映射關(guān)系包含從所述至少一個(gè)文件的塊地址到該至少一 個(gè)文件位于所述虛擬設(shè)備鏡像的外部的實(shí)際地址的映射;以及 驅(qū)動(dòng)裝置,將所創(chuàng)建的虛擬設(shè)備鏡像掛載到本地或遠(yuǎn)程主機(jī)。
8.根據(jù)權(quán)利要求7所述的裝置,其中所述虛擬設(shè)備鏡像還包含虛擬鏡像文件頭,該裝置還包括目錄記錄生成單元,在虛擬鏡像文件頭中為所述至少一個(gè)文件生成目錄記錄,并將所 述至少一個(gè)文件的塊地址和所占用空間大小的信息寫入所述至少一個(gè)文件的目錄記錄。
9.根據(jù)權(quán)利要求7或8所述的裝置,其中所述處理單元還將按照標(biāo)準(zhǔn)的設(shè)備鏡像文件 系統(tǒng)格式計(jì)算出的要掛載的至少一個(gè)目錄的塊地址和所占用空間的大小的信息寫入所述 邏輯塊地址表中,并在所述邏輯塊地址表中記錄目錄地址映射關(guān)系,所述目錄地址映射關(guān) 系包含從所述至少一個(gè)目錄的塊地址到該至少一個(gè)目錄在所述虛擬設(shè)備鏡像中的實(shí)際位 置的映射。
10.根據(jù)權(quán)利要求9所述的裝置,其中目錄記錄生成單元還在虛擬鏡像文件頭中為所 述至少一個(gè)目錄生成目錄記錄,并將所述至少一個(gè)目錄的塊地址和所占用空間大小的信息 寫入所述至少一個(gè)目錄的目錄記錄。
11.根據(jù)權(quán)利要求10所述的裝置,其中所述處理單元還按照所述邏輯塊地址表中記錄 的目錄地址映射關(guān)系,將所述至少一個(gè)目錄放置到所述至少一個(gè)目錄在所述虛擬鏡像文件 頭中的實(shí)際位置。
12.根據(jù)權(quán)利要求10或11所述的裝置,其中所述虛擬鏡像文件頭中還包含卷描述符, 所述處理單元還將卷描述符在虛擬鏡像文件頭中的位置從其塊地址調(diào)整為所述卷描述符 在所述虛擬鏡像文件頭中的實(shí)際位置,并且所述邏輯塊地址表中記錄有所述卷描述符的塊 地址和所占用空間大小的信息以及所述卷描述符的塊地址到所述卷描述符在所述虛擬鏡 像文件頭中的實(shí)際位置的映射。
13.一種用于讀取虛擬設(shè)備鏡像的方法,所述虛擬設(shè)備鏡像用于掛載至少一個(gè)文件到 本地或遠(yuǎn)程主機(jī),所述方法包括接收讀取設(shè)備的命令;響應(yīng)于判別要被讀取的設(shè)備為虛擬設(shè)備鏡像,按照所述虛擬設(shè)備鏡像中包含的邏輯塊 地址表中記載的文件地址映射關(guān)系,獲得要被讀取的所述虛擬設(shè)備鏡像中的內(nèi)容的實(shí)際位 置,其中所述虛擬設(shè)備鏡像的邏輯地址表中包括按照標(biāo)準(zhǔn)的設(shè)備鏡像文件系統(tǒng)格式計(jì)算出 的所述至少一個(gè)文件的塊地址和所占用空間大小的信息以及所述文件地址映射關(guān)系,所述 文件地址映射關(guān)系包含從所述至少一個(gè)文件的塊地址到該至少一個(gè)文件位于所述虛擬設(shè) 備鏡像的外部的實(shí)際地址的映射;以及從所述實(shí)際位置讀取所述內(nèi)容。
14.根據(jù)權(quán)利要求13所述的方法,其中所述虛擬設(shè)備鏡像還包含虛擬鏡像文件頭,該 虛擬鏡像文件頭中包含為所述至少一個(gè)文件生成的目錄記錄,該至少一個(gè)文件的目錄記錄 中包含寫入的所述至少一個(gè)文件的塊地址和所占用空間大小的信息。
15.根據(jù)權(quán)利要求14所述的方法,其中所述虛擬設(shè)備鏡像的邏輯地址表中還包括按照 標(biāo)準(zhǔn)的設(shè)備鏡像文件系統(tǒng)格式計(jì)算出的要掛載的至少一個(gè)目錄的塊地址和所占用空間的 大小的信息以及目錄地址映射關(guān)系,所述目錄地址映射關(guān)系包含從所述至少一個(gè)目錄的塊 地址到該至少一個(gè)目錄在所述虛擬設(shè)備鏡像中的實(shí)際位置的映射。
16.根據(jù)權(quán)利要求15所述的方法,其中所述虛擬鏡像文件頭中包含為要掛載的至少一 個(gè)目錄生成的目錄記錄,該至少一個(gè)目錄的目錄記錄中包含寫入的所述至少一個(gè)目錄的塊 地址和所占用空間大小的信息,并且所述至少一個(gè)目錄在虛擬鏡像文件頭中的位置被從其塊地址調(diào)整到該至少一個(gè)目錄在虛擬鏡像文件頭中的真實(shí)位置。
17.一種用于讀取虛擬設(shè)備鏡像的裝置,所述虛擬設(shè)備鏡像用于掛載至少一個(gè)文件到 本地或遠(yuǎn)程主機(jī),所述裝置包括命令接收單元,接收讀取設(shè)備的命令,并判別要被讀取的設(shè)備是否為虛擬設(shè)備鏡像;地址轉(zhuǎn)換單元,響應(yīng)于判別要被讀取的設(shè)備為虛擬設(shè)備鏡像,按照所述虛擬設(shè)備鏡像 中包含的邏輯塊地址表中記載的地址映射關(guān)系,獲得要被讀取的所述虛擬設(shè)備鏡像中的內(nèi) 容的實(shí)際位置,其中所述虛擬設(shè)備鏡像的邏輯地址表中包括按照標(biāo)準(zhǔn)的設(shè)備鏡像文件系統(tǒng) 格式計(jì)算出的所述至少一個(gè)文件的塊地址和所占用空間大小的信息以及所述文件地址映 射關(guān)系,所述文件地址映射關(guān)系包含從所述至少一個(gè)文件的塊地址到該至少一個(gè)文件位于 所述虛擬設(shè)備鏡像的外部的實(shí)際地址的映射;和讀取單元,從所述實(shí)際位置讀取所述內(nèi)容。
18.據(jù)權(quán)利要求17所述的裝置,其中所述虛擬設(shè)備鏡像還包含虛擬鏡像文件頭,該虛 擬鏡像文件頭中包含為所述至少一個(gè)文件生成的目錄記錄,該至少一個(gè)文件的目錄記錄中 包含寫入的所述至少一個(gè)文件的塊地址和所占用空間大小的信息。
19.根據(jù)權(quán)利要求17所述的裝置,其中所述虛擬設(shè)備鏡像的邏輯地址表中包括按照標(biāo) 準(zhǔn)的設(shè)備鏡像文件系統(tǒng)格式計(jì)算出的要掛載的至少一個(gè)目錄的塊地址和所占用空間的大 小的信息以及目錄地址映射關(guān)系,所述目錄地址映射關(guān)系包含從所述至少一個(gè)目錄的塊地 址到該至少一個(gè)目錄在所述虛擬設(shè)備鏡像中的實(shí)際位置的映射。
20.根據(jù)權(quán)利要求19所述的方法,其中所述虛擬鏡像文件頭中包含為要掛載的至少一 個(gè)目錄生成的目錄記錄,該至少一個(gè)目錄的目錄記錄中包含寫入的所述至少一個(gè)目錄的塊 地址和所占用空間大小的信息,并且所述至少一個(gè)目錄在虛擬鏡像文件頭中的位置被從其 塊地址調(diào)整到該至少一個(gè)目錄在虛擬鏡像文件頭中的真實(shí)位置。
全文摘要
掛載至少一個(gè)文件到本地或遠(yuǎn)程主機(jī)或?qū)ζ溥M(jìn)行讀取的方法和裝置。該方法包括創(chuàng)建虛擬設(shè)備鏡像,所述虛擬設(shè)備鏡像包含邏輯塊地址表;將按照標(biāo)準(zhǔn)的設(shè)備鏡像文件系統(tǒng)格式計(jì)算出的所述至少一個(gè)文件的塊地址和所占用空間的大小的信息寫入所述邏輯塊地址表中;在所述邏輯塊地址表中記錄文件地址映射關(guān)系,所述文件地址映射關(guān)系包含從所述至少一個(gè)文件的塊地址到該至少一個(gè)文件位于所述虛擬設(shè)備鏡像的外部的實(shí)際地址的映射;以及將所創(chuàng)建的虛擬設(shè)備鏡像掛載到本地或遠(yuǎn)程主機(jī)。通過這種方法,掛載文件和目錄到遠(yuǎn)程主機(jī)可以節(jié)省時(shí)間和節(jié)約存儲(chǔ)空間。
文檔編號(hào)G06F17/30GK101853254SQ200910130300
公開日2010年10月6日 申請(qǐng)日期2009年3月31日 優(yōu)先權(quán)日2009年3月31日
發(fā)明者付強(qiáng), 蘭龍文, 孟憲棟, 徐健, 諶偉 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司