需要說(shuō)明的是,上述MBR分區(qū)表的內(nèi)容是由操作系統(tǒng)工具(如,kpartx工具)在 初始化虛擬磁盤(pán)時(shí)寫(xiě)入的。
[0054] S120,對(duì)所述分區(qū)表的內(nèi)容進(jìn)行解析,獲取所述磁盤(pán)的磁盤(pán)分區(qū)信息。
[0055] 參見(jiàn)圖2所示的虛擬磁盤(pán)的MBR分區(qū)表解析結(jié)果示意圖,圖2中,255heads表示 虛擬磁盤(pán)有255個(gè)磁面,63 sectors/track表不一個(gè)磁面有63個(gè)扇區(qū)),261 cyl inders 表示虛擬磁盤(pán)有261個(gè)磁柱,每個(gè)磁柱的容量為16065*512 (扇區(qū)個(gè)數(shù)*扇區(qū)大?。? 8225280bytes,第一個(gè)磁柱(即0號(hào)磁柱)由MBR分區(qū)表占用,從1號(hào)磁柱開(kāi)始進(jìn)行分區(qū), Start (開(kāi)始)的數(shù)值表示分區(qū)的開(kāi)始磁柱號(hào),End(結(jié)束)表示分區(qū)的結(jié)束磁柱號(hào),例如, 圖2中的"1"和"65"分別表示第一個(gè)分區(qū)從1號(hào)磁柱開(kāi)始至65號(hào)磁柱結(jié)束;Blocks的數(shù) 值表示磁盤(pán)分區(qū)的容量,其單位是K,一個(gè)分區(qū)容量的值是由下面的公式而來(lái)的:Bl 〇Cks = (相應(yīng)分區(qū)End數(shù)值-相應(yīng)分區(qū)Start數(shù)值)x單位磁柱的容量。
[0056] 如上,是對(duì)一個(gè)虛擬磁盤(pán)的MBR分區(qū)表的內(nèi)容的解析結(jié)果,即一個(gè)虛擬磁盤(pán)可以 劃分為多個(gè)磁盤(pán)分區(qū);此外,一個(gè)虛擬磁盤(pán)也可以只劃分一個(gè)磁盤(pán)分區(qū);當(dāng)虛擬磁盤(pán)的個(gè) 數(shù)為多個(gè)時(shí),則獲取多個(gè)虛擬磁盤(pán)的磁盤(pán)分區(qū)信息,其中,每個(gè)虛擬磁盤(pán)的磁盤(pán)分區(qū)個(gè)數(shù)可 以為一個(gè)或多個(gè)。
[0057] S130,根據(jù)所述磁盤(pán)分區(qū)信息,從所述磁盤(pán)的磁盤(pán)分區(qū)中選取待拷貝數(shù)據(jù)的源磁 盤(pán)分區(qū)。
[0058] 此處,磁盤(pán)分區(qū)信息可以包括磁盤(pán)分區(qū)的大小和起始位置偏移量。
[0059] 為了減少存儲(chǔ)空間的額外占用,并且縮小虛擬磁盤(pán)的數(shù)據(jù)的拷貝時(shí)間,本發(fā)明不 對(duì)整個(gè)虛擬磁盤(pán)的數(shù)據(jù)進(jìn)行拷貝,而是先選取待拷貝數(shù)據(jù)的磁盤(pán)分區(qū),即源磁盤(pán)分區(qū),只對(duì) 源磁盤(pán)分區(qū)中的數(shù)據(jù)進(jìn)行拷貝。具體地,根據(jù)磁盤(pán)分區(qū)的大小和起始位置偏移量,從磁盤(pán)的 磁盤(pán)分區(qū)中選取待拷貝數(shù)據(jù)的源磁盤(pán)分區(qū)。
[0060] 舉例來(lái)說(shuō),由同一個(gè)虛擬磁盤(pán)劃分得到磁盤(pán)分區(qū)1、磁盤(pán)分區(qū)2和磁盤(pán)分區(qū)3,且磁 盤(pán)分區(qū)1中記載了操作系統(tǒng)的數(shù)據(jù),因此,當(dāng)需要對(duì)系統(tǒng)進(jìn)行備份時(shí),則只需要拷貝磁盤(pán)分 區(qū)1的數(shù)據(jù),也即根據(jù)磁盤(pán)分區(qū)1的大小和位置偏移量,從上述三個(gè)磁盤(pán)分區(qū)中選取磁盤(pán) 分區(qū)1作為源磁盤(pán)分區(qū);而當(dāng)需要對(duì)上述三個(gè)磁盤(pán)分區(qū)的數(shù)據(jù)分別進(jìn)行單獨(dú)管理,以便單 獨(dú)進(jìn)行維護(hù)操作,且增強(qiáng)虛擬磁盤(pán)的業(yè)務(wù)靈活性時(shí),則需要將上述三個(gè)磁盤(pán)分區(qū)的數(shù)據(jù)分 別拷貝到三個(gè)獨(dú)立的目標(biāo)虛擬磁盤(pán)中,也即分別根據(jù)磁盤(pán)分區(qū)1、磁盤(pán)分區(qū)2和磁盤(pán)分區(qū)3 的大小和位置偏移量,將磁盤(pán)分區(qū)1、磁盤(pán)分區(qū)2和磁盤(pán)分區(qū)3選取為源磁盤(pán)分區(qū),其中,圖 3為源磁盤(pán)分區(qū)與目標(biāo)磁盤(pán)分區(qū)的對(duì)應(yīng)關(guān)系示意圖,虛擬磁盤(pán)1是源磁盤(pán)分區(qū)所屬的磁盤(pán), 虛擬磁盤(pán)2、虛擬磁盤(pán)3和虛擬磁盤(pán)4是三個(gè)目標(biāo)虛擬磁盤(pán),其中,每個(gè)目標(biāo)虛擬磁盤(pán)均包括 一個(gè)目標(biāo)磁盤(pán)分區(qū),且上述目標(biāo)磁盤(pán)分區(qū)已掛載在虛擬化平臺(tái)上。
[0061] 上述中,磁盤(pán)分區(qū)1、磁盤(pán)分區(qū)2和磁盤(pán)分區(qū)3也可以是由兩個(gè)或者三個(gè)虛擬磁盤(pán) 劃分得到的,當(dāng)前述三個(gè)磁盤(pán)分區(qū)是由兩個(gè)或者三個(gè)虛擬磁盤(pán)劃分得到,而需要對(duì)降低虛 擬磁盤(pán)數(shù)目,以降低維護(hù)成本時(shí),將可以將上述三個(gè)磁盤(pán)分區(qū)的數(shù)據(jù)拷貝到一個(gè)目標(biāo)虛擬 磁盤(pán)的三個(gè)磁盤(pán)分區(qū)中。
[0062] S140,掛載所述源磁盤(pán)分區(qū),將掛載的源磁盤(pán)分區(qū)的數(shù)據(jù)拷貝到已掛載的目標(biāo)磁 盤(pán)分區(qū)中。
[0063] 掛載的過(guò)程即為將源磁盤(pán)分區(qū)映射為虛擬化平臺(tái)可操作的設(shè)備。例如,在1 inux 系統(tǒng)中,可以通過(guò)命令"mount"實(shí)現(xiàn)源磁盤(pán)分區(qū)的掛載。
[0064] 參照上述例子,就可以完成對(duì)一個(gè)虛擬磁盤(pán)的多個(gè)源磁盤(pán)分區(qū),或者多個(gè)虛擬磁 盤(pán)的源磁盤(pán)分區(qū)的掛載。
[0065] 完成上述磁盤(pán)分區(qū)的掛載之后,虛擬化平臺(tái)就可以對(duì)磁盤(pán)分區(qū)的數(shù)據(jù)進(jìn)行拷貝操 作。
[0066] 可選地,所述待拷貝數(shù)據(jù)的源磁盤(pán)分區(qū)為多個(gè);
[0067] 掛載所述源磁盤(pán)分區(qū),所述將掛載的源磁盤(pán)分區(qū)的數(shù)據(jù)拷貝到已掛載的目標(biāo)磁盤(pán) 分區(qū)中包括:
[0068] 掛載所述多個(gè)源磁盤(pán)分區(qū),將所述多個(gè)源磁盤(pán)分區(qū)的數(shù)據(jù)分別拷貝到已掛載的一 個(gè)目標(biāo)磁盤(pán)的多個(gè)目標(biāo)磁盤(pán)分區(qū)中;或者,
[0069] 掛載所述多個(gè)源磁盤(pán)分區(qū),將所述多個(gè)源磁盤(pán)分區(qū)的數(shù)據(jù)分別拷貝到已掛載的多 個(gè)目標(biāo)磁盤(pán)的目標(biāo)磁盤(pán)分區(qū)中。
[0070] 優(yōu)選地,上述目標(biāo)磁盤(pán)為虛擬磁盤(pán)。需要說(shuō)明的是,前述目標(biāo)磁盤(pán)的目標(biāo)磁盤(pán)分區(qū) 的掛載方式和S140中掛載源磁盤(pán)分區(qū)的方式類(lèi)似,在此不作贅述。
[0071] 進(jìn)一步地,所述將掛載的源磁盤(pán)分區(qū)的數(shù)據(jù)拷貝到已掛載的目標(biāo)磁盤(pán)分區(qū)中包 括:
[0072] 以預(yù)設(shè)的數(shù)據(jù)塊的大小為單位,將掛載的源磁盤(pán)分區(qū)的數(shù)據(jù)拷貝到已掛載的目標(biāo) 磁盤(pán)分區(qū)中。
[0073] 如前述的例子,在將磁盤(pán)分區(qū)1作為源磁盤(pán)分區(qū),將其中的數(shù)據(jù)拷貝到目標(biāo)磁盤(pán) 分區(qū)時(shí),假設(shè)磁盤(pán)分區(qū)1的大小為522081KB,而預(yù)設(shè)的數(shù)據(jù)塊的大小為512KB時(shí),則每次從 源磁盤(pán)分區(qū)中拷貝的數(shù)據(jù)大小為512KB,總共需要拷貝(522081/512)次。
[0074] 進(jìn)一步地,S140中將掛載的源磁盤(pán)分區(qū)的數(shù)據(jù)拷貝到已掛載的目標(biāo)磁盤(pán)分區(qū)中還 可以包括:
[0075] 解析掛載所述源磁盤(pán)分區(qū)的主機(jī)的文件系統(tǒng),獲取所述主機(jī)的文件列表;
[0076] 從所述文件列表中獲取存儲(chǔ)在所述源磁盤(pán)分區(qū)的文件;
[0077] 將所述文件的內(nèi)容拷貝到已掛載的目標(biāo)磁盤(pán)分區(qū)中。
[0078] 此處,解析掛載所述源磁盤(pán)分區(qū)的主機(jī)的文件系統(tǒng)屬于現(xiàn)有技術(shù),所以在此說(shuō)明 書(shū)中不再詳述。其中,獲取到的主機(jī)的文件列表的內(nèi)容可以如下所示:
[0079]
[0080] 假設(shè)源磁盤(pán)分區(qū)中存儲(chǔ)的文件包括a和b,則將文件a和b中的內(nèi)容拷貝到目標(biāo)磁 盤(pán)的分區(qū)。其中,在1 inux系統(tǒng)中,可以使用命令"cp"完成文件內(nèi)容的拷貝。
[0081 ] 綜上,本發(fā)明實(shí)施例提供的虛擬化應(yīng)用中拷貝磁盤(pán)數(shù)據(jù)的方法,虛擬化平臺(tái)通過(guò) 對(duì)磁盤(pán)的分區(qū)表的內(nèi)容進(jìn)行解析,獲取所述磁盤(pán)的磁盤(pán)分區(qū)信息;根據(jù)所述磁盤(pán)分區(qū)信息, 從所述磁盤(pán)的磁盤(pán)分區(qū)中選取待拷貝數(shù)據(jù)的源磁盤(pán)分區(qū);掛載所述源磁盤(pán)分區(qū),將掛載的 源磁盤(pán)分區(qū)的數(shù)據(jù)拷貝到已掛載的目標(biāo)磁盤(pán)分區(qū)中。由此,可以解決現(xiàn)有技術(shù)中在拷貝磁 盤(pán)中磁盤(pán)分區(qū)的數(shù)據(jù)時(shí),需要將磁盤(pán)分區(qū)所在的整個(gè)磁盤(pán)的數(shù)據(jù)進(jìn)行拷貝,而導(dǎo)致的額外 耗費(fèi)存儲(chǔ)空間,并且消耗時(shí)間長(zhǎng)的問(wèn)題。
[0082] 圖4為本發(fā)明實(shí)施例二提供的虛擬化應(yīng)用中拷貝磁盤(pán)數(shù)據(jù)的裝置示意圖。所述裝 置可以用于執(zhí)行圖1所述的方法。圖4中,該裝置包括:讀取單元401、解析單元402、選取 單元403和拷貝單元404。
[0083] 讀取單元401,用于讀取磁盤(pán)的分區(qū)表。
[0084] 解析單元402,用于對(duì)讀取單元401讀取的所述分區(qū)表的內(nèi)容進(jìn)行解析,獲取所述 磁盤(pán)的磁盤(pán)分區(qū)信息。
[0085] 選取單元403,用于根據(jù)解析單元402解析得到的所述磁盤(pán)分區(qū)信息,從所述磁盤(pán) 的磁盤(pán)分區(qū)中選取待拷貝數(shù)據(jù)的源磁盤(pán)分區(qū)。
[0086] 拷貝單元404,用于掛載選取單元403選取的所述源磁盤(pán)分區(qū),將掛載的源磁盤(pán)分 區(qū)的數(shù)據(jù)拷貝到已掛載的目標(biāo)磁盤(pán)分區(qū)中。
[0087] 拷貝單元404具體用于:根據(jù)所述磁盤(pán)分區(qū)的大小和起始位置偏移量,從所述磁 盤(pán)的磁盤(pán)分區(qū)中選取待拷貝數(shù)據(jù)的源磁盤(pán)分區(qū)。
[0088] 可選地,所述待拷貝數(shù)據(jù)的源磁盤(pán)分區(qū)為多個(gè);
[0089] 拷貝單元404具體用于:
[0090] 掛載所述多個(gè)源磁盤(pán)分區(qū),將所述多個(gè)源磁盤(pán)分區(qū)的數(shù)據(jù)分別拷貝到已掛載的一 個(gè)目標(biāo)磁盤(pán)的多個(gè)目標(biāo)磁盤(pán)分區(qū)中;或者,
[0091] 掛載所述多個(gè)源磁盤(pán)分區(qū),將所述多個(gè)源磁盤(pán)分區(qū)的數(shù)據(jù)分別拷貝到已掛載的多 個(gè)目標(biāo)磁盤(pán)的目標(biāo)磁盤(pán)分區(qū)中。
[0092] 可選地,拷貝單元404還具體用于:
[0093] 以預(yù)設(shè)的數(shù)據(jù)塊的大小為單位,將掛載的源磁盤(pán)分區(qū)的數(shù)據(jù)拷貝到已掛載的目標(biāo) 磁盤(pán)分區(qū)中。
[0094] 可選地,拷貝單元404還具體用于:
[0095] 解析掛載所述源磁盤(pán)分區(qū)的主機(jī)的文件系統(tǒng),獲取所述主機(jī)的文件列表;
[0096] 從所述文件列表中獲取存儲(chǔ)在所述源磁盤(pán)分區(qū)的文件;
[0097] 將所述文件的內(nèi)容拷貝到已掛載的目標(biāo)磁盤(pán)分區(qū)中。
[0098] 本發(fā)明實(shí)施例提供的虛擬化應(yīng)用中拷貝磁盤(pán)數(shù)據(jù)的裝置,可以解決現(xiàn)有技術(shù)中在 拷貝磁盤(pán)的磁盤(pán)分區(qū)的數(shù)據(jù)時(shí),需要將磁盤(pán)分區(qū)所在的整個(gè)磁盤(pán)的數(shù)據(jù)進(jìn)行拷貝,而導(dǎo)致 的額外耗費(fèi)存儲(chǔ)空間,并且消耗時(shí)間長(zhǎng)的問(wèn)題。
[0099] 本發(fā)明實(shí)施例二提供的裝置植入了本發(fā)明實(shí)施例一提供的方法,因此,本發(fā)明提 供的裝置的具體工作過(guò)程,在此不復(fù)贅述。
[0100] 本發(fā)明實(shí)施例二中,讀取單元401讀取磁盤(pán)的分區(qū)