苦惱有妙招 使用開源Xen部署災(zāi)難恢復(fù)策略
在使用VMware vSphere或Citrix XenServer這樣的企業(yè)級(jí)虛擬化平臺(tái)時(shí),災(zāi)難恢復(fù)策略的執(zhí)行是非常簡(jiǎn)單的。但是如果您運(yùn)行了開源Xen hypervisor,情況會(huì)復(fù)雜得多。
企業(yè)級(jí)平臺(tái)的默認(rèn)管理工具中已經(jīng)包含了完整的備份和災(zāi)難恢復(fù)方案。而開源Xen平臺(tái)下就需要自己來(lái)組合所需工具。開源方案缺少自動(dòng)備份工具,管理員需要手動(dòng)完成關(guān)鍵部分的備份。
為保障在災(zāi)難發(fā)生后可以快速重建虛擬架構(gòu),對(duì)于開源Xen平臺(tái)有兩個(gè)可以借鑒的操作實(shí)踐:備份虛擬機(jī)配置文件和后端磁盤存儲(chǔ)。通過(guò)Linux命令行可以協(xié)助過(guò)程的執(zhí)行和故障診斷。
備份后端磁盤存儲(chǔ)
對(duì)于災(zāi)備策略而言,備份后端磁盤存儲(chǔ)是一個(gè)不錯(cuò)的開始,通常都是基于SAN存儲(chǔ)進(jìn)行的。
后端存儲(chǔ)有兩種不同的形式:磁盤鏡像文件或裸設(shè)備。我們不需要對(duì)所有的這些虛擬機(jī)及虛擬設(shè)備做保護(hù),只要在整個(gè)后端磁盤陣列上完成備份就可以了。但是您需要確保鏡像文件是靜態(tài)的,換句話說(shuō)就是要先通過(guò)快照技術(shù)凍結(jié)磁盤狀態(tài),然后再對(duì)快照做備份。
通過(guò)基于SAN的快照技術(shù)可以創(chuàng)建快照。如果您把邏輯卷作為后端磁盤存儲(chǔ),可以使用如Logical Volume Manager這樣的開源快照軟件。只要后端存儲(chǔ)沒(méi)有被破壞,就可以在災(zāi)難發(fā)生后通過(guò)它來(lái)啟動(dòng)故障虛擬機(jī)。
備份配置文件
開源Xen平臺(tái)另一個(gè)***實(shí)踐就是:備份虛擬機(jī)配置文件。只需拷貝這個(gè)文件就可以很好地改善災(zāi)備策略。保存好拷貝的文件,在發(fā)生災(zāi)難后可以借助它們來(lái)恢復(fù)。
災(zāi)難發(fā)生后,我們需要盡快登錄到受影響的虛擬機(jī)。如果磁盤文件和配置文件都沒(méi)有被破壞,只需把它們拷貝出來(lái),在新主機(jī)或容災(zāi)站點(diǎn)上就可以進(jìn)行重建。如果配置文件跟后端存儲(chǔ)的位置相關(guān)聯(lián),也可以對(duì)訪問(wèn)連接進(jìn)行重新設(shè)置。
災(zāi)難恢復(fù)中的障礙
不過(guò),開源Xen平臺(tái)中依然會(huì)存在一些影響災(zāi)難恢復(fù)策略成功實(shí)施的因素。例如,如果配置文件丟失,我們就需要重建該文件。
Virt-manager工具可以通過(guò)導(dǎo)入一個(gè)現(xiàn)有的虛擬機(jī)來(lái)重建配置文件。導(dǎo)入虛擬機(jī)的過(guò)程類似于創(chuàng)建一個(gè)新的VM。區(qū)別之處在于不需要啟動(dòng)安裝,只打開虛擬機(jī)本身就可以了。Virt-manager還允許客戶定制包括希望使用的虛擬磁盤等硬件配置信息。
當(dāng)磁盤文件被破壞時(shí)恢復(fù)過(guò)程要復(fù)雜得多。這種情況下,雖然災(zāi)難恢復(fù)策略會(huì)很復(fù)雜,但通過(guò)Linux命令行還是可以恢復(fù)文件的。掛載磁盤文件然后把所有相關(guān)內(nèi)容都拷貝到新的臨時(shí)地址。在拷貝了所需信息之后,再?gòu)念^開始創(chuàng)建虛擬機(jī)。
恢復(fù)配置文件
首先,運(yùn)行l(wèi)osetup-a建立loop設(shè)備和希望訪問(wèn)的鏡像文件之間的連接(-a代表命令中涉及的參數(shù))。這個(gè)命令是必須的,因?yàn)樵贚inux中我們無(wú)法掛載文件,只能掛載設(shè)備。該命令顯示了當(dāng)前所分配的所有l(wèi)oop設(shè)備。
在多數(shù)情況下,現(xiàn)在還看不到loop設(shè)備,通過(guò)/dev/loop0來(lái)指定需要把鏡像文件關(guān)聯(lián)到的loop設(shè)備。例如,假設(shè)鏡像文件的名稱是/var/lib/xen/images/vm1/disk0,使用如下的命令來(lái)創(chuàng)建掛載鏡像文件用的loop文件:
losetup /dev/loop0 /var/lib/xen/images/vm1/disk0
如果您已經(jīng)使用了一些loop設(shè)備,那么確保為新設(shè)備分配了不同的名稱,例如/dev/loop1。(和其它Linux設(shè)備相同,命名排列是連續(xù)的。)
接下來(lái),再運(yùn)行l(wèi)osetup-a,會(huì)發(fā)現(xiàn)loop設(shè)備創(chuàng)建完成并已經(jīng)跟鏡像文件關(guān)聯(lián)。然后通過(guò)如下包含loop設(shè)備名稱的命令來(lái)分析鏡像文件中已經(jīng)存在的分區(qū):
fdisk -l /dev/loop0
該命令列舉出文件中所包含的所有分區(qū)及其大小等相關(guān)信息?;谶@些,您可以猜測(cè)根文件系統(tǒng)所在分區(qū)。在開始訪問(wèn)該文件系統(tǒng)前,要先確認(rèn)相關(guān)的設(shè)備文件已經(jīng)創(chuàng)建。如果您已經(jīng)安裝了multipath-tools工具包,如下命令可用于完成該任務(wù):
kpartx -a /dev/loop0
由于鏡像文件使用了loop0設(shè)備,所以新的設(shè)備文件將命名為/dev/mapper/loop0p1, /dev/mapper/loop0p2依此類推。然后借助這些文件,可以完成虛擬操作系統(tǒng)中文件系統(tǒng)的掛載。無(wú)論使用的是哪種OS,都可以從Linux主機(jī)掛載虛擬分區(qū)。
現(xiàn)在您完全可以訪問(wèn)文件,而且所有的重要數(shù)據(jù)都被拷貝到了安全的地點(diǎn)。***一步,通過(guò)如下命令清除所有臨時(shí)設(shè)備文件:
umount /mnt
kpartx -d /dev/loop0
losetup -d /dev/loop0
使用開源Xen系統(tǒng)進(jìn)行災(zāi)難恢復(fù)的***實(shí)踐完全不同于企業(yè)級(jí)平臺(tái)。數(shù)據(jù)中心通常在較小規(guī)模應(yīng)用中使用Xen,因此多數(shù)情況下,開源Xen平臺(tái)災(zāi)難恢復(fù)策略中可能遇到的種種限制都可以解決。只要您備份了虛擬機(jī)配置文件和后端磁盤存儲(chǔ),該災(zāi)難恢復(fù)策略就可以幫助我們克服各種可能遭遇的意外。
【編輯推薦】
- 虛擬機(jī)備份與恢復(fù)的難題
- 虛擬機(jī)備份問(wèn)題:緩沖區(qū)、恢復(fù)和裸機(jī)
- 細(xì)數(shù)用于虛擬機(jī)遷移的轉(zhuǎn)換工具
- 巧妙備份VMware vSphere中的虛擬機(jī)
- 推薦:新的虛擬服務(wù)器備份策略
- 專家面對(duì)面:應(yīng)對(duì)物理與虛擬備份管理挑戰(zhàn)
- 虛擬環(huán)境下備份恢復(fù)機(jī)制:向左向右?