專利名稱:一種基于偽塊設(shè)備的應(yīng)用層透明容災(zāi)備份方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種基于偽塊設(shè)備的應(yīng)用層透明容災(zāi)備份方法及系統(tǒng),屬于計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)領(lǐng)域。
背景技術(shù):
容災(zāi)備份系統(tǒng)中最重要的部分是要保證數(shù)據(jù)的冗余性。而數(shù)據(jù)的冗余是要通過(guò)數(shù)據(jù)的復(fù)制和遷移來(lái)實(shí)現(xiàn)的。在本系統(tǒng)中通過(guò)偽塊設(shè)備的方式實(shí)現(xiàn)了數(shù)據(jù)的復(fù)制和遷移。塊設(shè)備是磁盤(pán),磁帶等存儲(chǔ)設(shè)備在操作系統(tǒng)中的設(shè)備分類(lèi)表現(xiàn)形式。通過(guò)實(shí)現(xiàn)塊設(shè)備的接口形式,可以做到和操作系統(tǒng)原有的塊設(shè)備接口的一致性,應(yīng)用程序不需要修改就可以使用偽塊設(shè)備。偽塊設(shè)備和真實(shí)的塊形成一對(duì)一的映射關(guān)系,表明對(duì)偽塊設(shè)備的存取要提交到本地的哪個(gè)真實(shí)的物理塊設(shè)備。
偽塊設(shè)備是以可加載設(shè)備驅(qū)動(dòng)程序的方式實(shí)現(xiàn),保證通過(guò)應(yīng)用層的配置程序可以配置并生成偽塊設(shè)備的實(shí)例。
容災(zāi)技術(shù)的另一個(gè)關(guān)鍵部分是數(shù)據(jù)的恢復(fù)。在本系統(tǒng)中,通過(guò)以對(duì)稱的方式實(shí)現(xiàn)本地系統(tǒng)的偽塊驅(qū)動(dòng)程序和遠(yuǎn)程系統(tǒng)的偽塊驅(qū)動(dòng)程序,配置生產(chǎn)服務(wù)器和備份服務(wù)器角色的方式來(lái)決定數(shù)據(jù)流的方向;在正常工作時(shí),數(shù)據(jù)由生產(chǎn)服務(wù)器流向備份服務(wù)器;當(dāng)需要數(shù)據(jù)的恢復(fù)時(shí),倒換角色,即可實(shí)現(xiàn)備份服務(wù)器到原生產(chǎn)服務(wù)器的數(shù)據(jù)恢復(fù)。
發(fā)明內(nèi)容
為了克服現(xiàn)有的技術(shù)的不足,本發(fā)明提供一種基于偽塊設(shè)備的應(yīng)用層透明容災(zāi)備份方法及系統(tǒng)。
本發(fā)明解決其技術(shù)問(wèn)題所采用的技術(shù)方案是
一種基于偽塊設(shè)備的應(yīng)用層透明容災(zāi)備份方法,包含以下的步驟步驟1、在操作系統(tǒng)內(nèi)核中實(shí)現(xiàn)偽塊設(shè)備驅(qū)動(dòng)程序;截獲系統(tǒng)對(duì)塊設(shè)備的寫(xiě)入的數(shù)據(jù);步驟2、在驅(qū)動(dòng)程序中,通過(guò)網(wǎng)絡(luò)發(fā)送增量數(shù)據(jù)給遠(yuǎn)程的備份服務(wù)器,備份服務(wù)器將數(shù)據(jù)寫(xiě)入磁盤(pán);步驟3、在向遠(yuǎn)程服務(wù)器提交塊數(shù)據(jù)的同時(shí),將數(shù)據(jù)提交給本地的真實(shí)塊設(shè)備寫(xiě)入磁盤(pán);步驟4、在進(jìn)入同步備份狀態(tài)之前,執(zhí)行本地服務(wù)器到遠(yuǎn)程備份服務(wù)器的同步操作;而后進(jìn)入正常的同步備份狀態(tài);步驟5、在本地災(zāi)難發(fā)生時(shí),遠(yuǎn)程服務(wù)器切換為激活狀態(tài),可以代替本地服務(wù)器提供服務(wù);同時(shí)修復(fù)本地的設(shè)備,在硬件修復(fù)后,執(zhí)行從遠(yuǎn)程服務(wù)器到本地服務(wù)器的數(shù)據(jù)同步,恢復(fù)原來(lái)的數(shù)據(jù);步驟6、激活本地的服務(wù)器并提供服務(wù)器,將遠(yuǎn)程服務(wù)器切換為備份狀態(tài),恢復(fù)正常的工作狀態(tài)。
在驅(qū)動(dòng)程序中,通過(guò)網(wǎng)絡(luò)發(fā)送增量數(shù)據(jù)給遠(yuǎn)程的備份服務(wù)器,備份服務(wù)器將數(shù)據(jù)寫(xiě)入磁盤(pán)。
在向遠(yuǎn)程服務(wù)器提交塊數(shù)據(jù)的同時(shí),將數(shù)據(jù)提交給本地的真實(shí)塊設(shè)備寫(xiě)入磁盤(pán)。
在進(jìn)入同步備份狀態(tài)之前,執(zhí)行本地服務(wù)器到遠(yuǎn)程備份服務(wù)器的同步操作;而后進(jìn)入正常的同步備份狀態(tài)。
在本地災(zāi)難發(fā)生時(shí),遠(yuǎn)程服務(wù)器切換為激活狀態(tài),可以代替本地服務(wù)器提供服務(wù);同時(shí)修復(fù)本地的設(shè)備,在硬件修復(fù)后,執(zhí)行從遠(yuǎn)程服務(wù)器到本地服務(wù)器的數(shù)據(jù)同步,恢復(fù)原來(lái)的數(shù)據(jù)。
一種基于偽塊設(shè)備的應(yīng)用層透明容災(zāi)備份系統(tǒng),包括以下幾個(gè)模塊連接組成數(shù)據(jù)截獲模塊用于截獲本地的塊設(shè)備的數(shù)據(jù)寫(xiě)入。
網(wǎng)絡(luò)通訊管理模塊用來(lái)管理生產(chǎn)服務(wù)器和備份服務(wù)器之間的網(wǎng)絡(luò)連接,監(jiān)測(cè)、維護(hù)通訊的狀態(tài)。
數(shù)據(jù)發(fā)送模塊用來(lái)向接收端發(fā)送需要同步的數(shù)據(jù),并對(duì)數(shù)據(jù)的完整性進(jìn)行管理和維護(hù)。
數(shù)據(jù)接收模塊用來(lái)接收同步過(guò)來(lái)的數(shù)據(jù),并將通過(guò)數(shù)據(jù)寫(xiě)盤(pán)模塊寫(xiě)入真實(shí)塊設(shè)備,并對(duì)發(fā)送進(jìn)行確認(rèn)管理。
數(shù)據(jù)寫(xiě)盤(pán)模塊用來(lái)將同步數(shù)據(jù)寫(xiě)入磁盤(pán)設(shè)備,管理寫(xiě)入緩存,向數(shù)據(jù)接受模塊通告寫(xiě)入成功確認(rèn)。
應(yīng)用層管理接口模塊 用來(lái)接收應(yīng)用層發(fā)送來(lái)的控制信息和配置信息,并執(zhí)行相應(yīng)的控制動(dòng)作和進(jìn)行配置。
應(yīng)用層配置管理程序用來(lái)和用戶交互,對(duì)系統(tǒng)進(jìn)行控制和配置。
本發(fā)明具有以下優(yōu)點(diǎn)與具體的應(yīng)用程序無(wú)關(guān),對(duì)應(yīng)用程序的影響較小。對(duì)系統(tǒng)的性能影響較小。與系統(tǒng)的結(jié)合點(diǎn)少,容易達(dá)到較好的穩(wěn)定性??梢栽诰淼膶哟紊蠈?shí)現(xiàn)備份,恢復(fù),快照,同步及異步備份。配置簡(jiǎn)單。內(nèi)存開(kāi)銷(xiāo)小。
本方法通過(guò)在內(nèi)核空間實(shí)現(xiàn)偽塊設(shè)備驅(qū)動(dòng)程序,在操作系統(tǒng)內(nèi)核進(jìn)行數(shù)據(jù)的截獲和傳輸而實(shí)現(xiàn)數(shù)據(jù)的同步遷移備份,做到應(yīng)用層透明,通過(guò)切換角色來(lái)進(jìn)行故障/災(zāi)難切換以及數(shù)據(jù)恢復(fù)。
下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明進(jìn)一步說(shuō)明。
圖1是系統(tǒng)以偽塊設(shè)備驅(qū)動(dòng)程序的方式對(duì)數(shù)據(jù)進(jìn)行截獲和冗余備份,改圖描述了偽塊設(shè)備驅(qū)動(dòng)程序在內(nèi)核中的層次關(guān)系。
圖2是寫(xiě)盤(pán)、緩存管理、數(shù)據(jù)發(fā)送多線索異步處理機(jī)制原理圖。
圖3是鏈路狀態(tài)檢測(cè)通道示意圖。
圖4是系統(tǒng)的Qos原理流程。
圖5是位圖映射技術(shù)原理圖。
圖6是系統(tǒng)模塊連接方塊圖。
圖中英文詞匯表Qos流量的質(zhì)量控制,指能夠控制信息流的速度的技術(shù)和功能。
Buffer Cache操作系統(tǒng)中用于塊設(shè)備的一種高速緩存機(jī)制。
Block指磁盤(pán)上的一個(gè)塊,其容量大小為2K或者是512字節(jié)。
buffer cache queue用于文件系統(tǒng)的高速緩存隊(duì)列。
ping_req在本文中指通訊協(xié)議中向?qū)Ψ桨l(fā)出的要求對(duì)方確認(rèn)其存在的請(qǐng)求。
ping_ack在本文中指對(duì)對(duì)方的請(qǐng)求進(jìn)行應(yīng)答確認(rèn)。
TCP/IP標(biāo)準(zhǔn)的計(jì)算機(jī)網(wǎng)絡(luò)傳輸控制協(xié)議/互聯(lián)網(wǎng)絡(luò)協(xié)議。
mmap Unix/Linux操作系統(tǒng)的一個(gè)系統(tǒng)調(diào)用,用于文件內(nèi)存映射。
fsync Unix/Linux操作系統(tǒng)的一個(gè)系統(tǒng)調(diào)用,用于同步文件緩存。
shm Unix/Linux操作系統(tǒng)的一個(gè)系統(tǒng)調(diào)用,用于管理共享內(nèi)存。
write Unix/Linux操作系統(tǒng)的一個(gè)系統(tǒng)調(diào)用,用于文件寫(xiě)入。
exec Unix/Linux操作系統(tǒng)的一個(gè)系統(tǒng)調(diào)用,用于執(zhí)行程序。
mkdir Unix/Linux操作系統(tǒng)的一個(gè)系統(tǒng)調(diào)用,用于創(chuàng)建目錄。
Sync Unix/Linux操作系統(tǒng)的一個(gè)系統(tǒng)調(diào)用,用戶同步緩存。
Fflush Unix/Linux操作系統(tǒng)的一個(gè)系統(tǒng)調(diào)用,用于清理文件緩存。
VM虛擬內(nèi)存管理系統(tǒng)。
Sock網(wǎng)絡(luò)套接字接口。
VFS虛擬文件系統(tǒng)。
Page Cache內(nèi)存頁(yè)緩存系統(tǒng)。
Dentry Cache操作系統(tǒng)文件系統(tǒng)的目錄緩存。
Inode Cache操作系統(tǒng)文件系統(tǒng)的索引節(jié)點(diǎn)緩存。
Devfs設(shè)備文件系統(tǒng)。
Procfs進(jìn)程文件系統(tǒng)。
Ext2,Ext3,F(xiàn)AT16操作系統(tǒng)的3種不同的文件系統(tǒng)。
Bdflush對(duì)用于塊設(shè)備的高速緩存進(jìn)行清理的內(nèi)核線程。
Kupdate對(duì)用于塊設(shè)備的高速緩存進(jìn)行更新的內(nèi)核線程。
Request queue針對(duì)塊設(shè)備的請(qǐng)求隊(duì)列。
LVM MD RAID邏輯卷管理驅(qū)動(dòng),多磁盤(pán)管理驅(qū)動(dòng),磁盤(pán)陣列管理驅(qū)動(dòng)。
IDE一種用于PC的磁盤(pán)接口形式。
SCSI一種用于服務(wù)器和工作站的快速磁盤(pán)接口形式。
Block request queue塊請(qǐng)求隊(duì)列。
Buffer緩存。
具體實(shí)施例方式實(shí)施例1;一種基于偽塊設(shè)備的應(yīng)用層透明容災(zāi)備份系統(tǒng),包括以下幾個(gè)模塊連接組成如圖6所示;數(shù)據(jù)截獲模塊用于截獲本地的塊設(shè)備的數(shù)據(jù)寫(xiě)入。
網(wǎng)絡(luò)通訊管理模塊用來(lái)管理生產(chǎn)服務(wù)器和備份服務(wù)器之間的網(wǎng)絡(luò)連接,監(jiān)測(cè)、維護(hù)通訊的狀態(tài)。
數(shù)據(jù)發(fā)送模塊用來(lái)向接收端發(fā)送需要同步的數(shù)據(jù),并對(duì)數(shù)據(jù)的完整性進(jìn)行管理和維護(hù)。
數(shù)據(jù)接收模塊用來(lái)接收同步過(guò)來(lái)的數(shù)據(jù),并將數(shù)據(jù)寫(xiě)入真實(shí)塊設(shè)備,并對(duì)發(fā)送進(jìn)行確認(rèn)管理。
應(yīng)用層管理接口模塊用來(lái)接收應(yīng)用層發(fā)送來(lái)的控制信息和配置信息,并執(zhí)行相應(yīng)的控制動(dòng)作和進(jìn)行配置。
應(yīng)用層配置管理程序用來(lái)和用戶交互,對(duì)系統(tǒng)進(jìn)行控制和配置。
本系統(tǒng)工作在百兆或千兆網(wǎng)絡(luò)的以太網(wǎng)絡(luò)環(huán)境。
系統(tǒng)工作的方法;1、在操作系統(tǒng)中如附圖1的層次實(shí)現(xiàn)偽塊設(shè)備驅(qū)動(dòng)程序該圖表示的是操作系統(tǒng)內(nèi)核的層次結(jié)構(gòu),包括了系統(tǒng)調(diào)用,操作系統(tǒng)的虛擬內(nèi)存管理,文件管理,設(shè)備管理等組成部分;由該圖可以看出,本發(fā)明所實(shí)現(xiàn)的偽塊設(shè)備的驅(qū)動(dòng)程序所處的層次結(jié)構(gòu)為塊設(shè)備請(qǐng)求隊(duì)列之下,在真實(shí)塊設(shè)備驅(qū)動(dòng)程序之上。
2、使用多個(gè)內(nèi)核線程并行運(yùn)行遠(yuǎn)程備份,避免寫(xiě)卷請(qǐng)求的延遲以及網(wǎng)絡(luò)數(shù)據(jù)發(fā)送延遲,見(jiàn)附圖2。為了避免磁盤(pán)讀寫(xiě)線索,同步數(shù)據(jù)網(wǎng)絡(luò)發(fā)送線索,發(fā)送數(shù)據(jù)確認(rèn)線索的串行執(zhí)行帶來(lái)系統(tǒng)性能的下降,在容災(zāi)備份模塊中通過(guò)使用三個(gè)不同的內(nèi)核線程來(lái)完成這三種執(zhí)行線索,在三個(gè)內(nèi)核線程中使用Buffer Cache隊(duì)列進(jìn)行數(shù)據(jù)的緩沖和通訊。
在卷讀寫(xiě)內(nèi)核線程中,如果操作是讀操作,則完成磁盤(pán)讀取后,執(zhí)行正常的Buffer Cache內(nèi)存釋放;如果是寫(xiě)卷操作,則標(biāo)記該Block需要遠(yuǎn)程備份,然后進(jìn)行卷寫(xiě)操作,但該線索不負(fù)責(zé)block的內(nèi)存釋放,而是將block放到待發(fā)送的隊(duì)列緩存中,返回。
數(shù)據(jù)發(fā)送線程的任務(wù)是取等待備份發(fā)送的數(shù)據(jù),通過(guò)網(wǎng)絡(luò)發(fā)送到備份服務(wù)器端,標(biāo)記數(shù)據(jù)為已經(jīng)發(fā)送,然后將block放到等待發(fā)送確認(rèn)的buffer cache queue中。
發(fā)送數(shù)據(jù)確認(rèn)內(nèi)核線程接收備份服務(wù)器發(fā)回的的確認(rèn)命令,從buffer cachequeue中找到相應(yīng)的block釋放掉。
3、網(wǎng)絡(luò)帶寬自動(dòng)檢測(cè)與適應(yīng)技術(shù)實(shí)現(xiàn)網(wǎng)絡(luò)傳輸?shù)目煽啃浴?br>
網(wǎng)絡(luò)帶寬的自動(dòng)適應(yīng)技術(shù)包括網(wǎng)絡(luò)帶寬和連接狀態(tài)的實(shí)時(shí)檢測(cè)技術(shù),實(shí)時(shí)備份允許帶寬的限定,實(shí)時(shí)備份狀態(tài)與異步備份狀態(tài)的實(shí)時(shí)切換,網(wǎng)絡(luò)連接的可用性保證等方面。下面分別闡述。
1).網(wǎng)絡(luò)連接狀態(tài)的實(shí)時(shí)檢測(cè)技術(shù);首先在主數(shù)據(jù)器節(jié)點(diǎn)和備份服務(wù)器節(jié)點(diǎn)之間建立一個(gè)用于檢測(cè)連路連接狀態(tài)的專用通道;見(jiàn)圖3。
主服務(wù)器和備份服務(wù)器上都運(yùn)行有鏈路狀態(tài)檢測(cè)線程,對(duì)每個(gè)鏈路檢測(cè)線程而言,根據(jù)預(yù)先配置的參數(shù)設(shè)置(如50ms)一個(gè)超時(shí)定時(shí)器,然后發(fā)送ping_req命令包到對(duì)方,如果在定時(shí)器超時(shí)以前收到對(duì)方發(fā)來(lái)的ping_ack命令包,則標(biāo)記通訊鏈路的狀態(tài)為正常,否則,如果定時(shí)器超時(shí),則標(biāo)記鏈路的狀態(tài)為短開(kāi)。
2).網(wǎng)絡(luò)帶寬的實(shí)時(shí)檢測(cè),速度限定,狀態(tài)切換;見(jiàn)附圖4。
首先,數(shù)據(jù)的傳輸是通過(guò)單獨(dú)的內(nèi)核線程進(jìn)行的,該線程將以10ms為間隔計(jì)算當(dāng)前的網(wǎng)絡(luò)速度,如果當(dāng)前的傳輸?shù)乃俣鹊陀谙到y(tǒng)的配置通訊下限,則標(biāo)記網(wǎng)絡(luò)狀態(tài)為阻塞,并切換備份的狀態(tài)為異步;如果當(dāng)前傳輸?shù)乃俣却笥谙到y(tǒng)配置的上限,則對(duì)數(shù)據(jù)傳輸線程降低優(yōu)先及或并讓調(diào)度器調(diào)度其它任務(wù)執(zhí)行直到傳輸?shù)乃俣冉缬谙到y(tǒng)配置的上限和下限之間。
3).網(wǎng)絡(luò)連接可用性維護(hù);參見(jiàn)附圖4。
由于網(wǎng)絡(luò)連接可能由于線路的問(wèn)題而斷開(kāi),所以網(wǎng)絡(luò)連接斷開(kāi)時(shí)需要通過(guò)重試直到連接可用在本系統(tǒng)中,網(wǎng)絡(luò)連接的可用是由單獨(dú)的線程來(lái)維護(hù)的,當(dāng)網(wǎng)絡(luò)連接斷開(kāi)后,連接狀態(tài)的標(biāo)記為斷開(kāi),這時(shí)連接維護(hù)線程開(kāi)始不停地嘗試建立連接,當(dāng)連接建立后,標(biāo)記連接的狀態(tài)為連通狀態(tài),這時(shí)數(shù)據(jù)傳送線程開(kāi)始傳送數(shù)據(jù)測(cè)量速度。
位映像(bitmap)減少記錄增量數(shù)據(jù)的內(nèi)存占用;見(jiàn)附圖5。
通過(guò)使用位圖影射,可以達(dá)到使用非常少的內(nèi)存占用來(lái)記錄不能進(jìn)行實(shí)時(shí)同步的磁盤(pán)塊。位圖映射的原理是對(duì)一個(gè)卷的磁盤(pán)塊來(lái)說(shuō),存在兩種狀態(tài),同步的和未同步的,磁盤(pán)塊的默認(rèn)大小為4K,由于卷上磁盤(pán)塊的順序是線性的,可以用一個(gè)內(nèi)存字節(jié)的一個(gè)bit來(lái)表示一個(gè)4K磁盤(pán)塊的兩種狀態(tài),從而建立一個(gè)內(nèi)存位對(duì)應(yīng)一個(gè)4K磁盤(pán)塊的映射關(guān)系這樣記錄1T的卷上的所有磁盤(pán)塊的狀態(tài)所需要的內(nèi)存空間的大小為如果磁盤(pán)塊的大小為4k,1024*1024*1024K/4096/8=32768K,即32M的內(nèi)存空間,而實(shí)際上可能的需要記錄狀態(tài)而進(jìn)行異步的數(shù)據(jù)不會(huì)超過(guò)卷的總量的10%,那么需要的內(nèi)存空間<4M.當(dāng)備份模塊從內(nèi)存卸載時(shí),該位圖的內(nèi)容保存在宿主文件系統(tǒng)的正規(guī)文件中,不需要配置專用的日志卷或分區(qū)。
該方法包含以下的步驟在操作系統(tǒng)內(nèi)核中實(shí)現(xiàn)偽塊設(shè)備驅(qū)動(dòng)程序;截獲系統(tǒng)對(duì)塊設(shè)備的寫(xiě)入的數(shù)據(jù)。
在驅(qū)動(dòng)程序中,通過(guò)網(wǎng)絡(luò)發(fā)送增量數(shù)據(jù)給遠(yuǎn)程的備份服務(wù)器,備份服務(wù)器將數(shù)據(jù)寫(xiě)入磁盤(pán)。
在向遠(yuǎn)程服務(wù)器提交塊數(shù)據(jù)的同時(shí),將數(shù)據(jù)提交給本地的真實(shí)塊設(shè)備寫(xiě)入磁盤(pán)。
在進(jìn)入同步備份狀態(tài)之前,執(zhí)行本地服務(wù)器到遠(yuǎn)程備份服務(wù)器的同步操作;而后進(jìn)入正常的同步備份狀態(tài)。
在本地災(zāi)難發(fā)生時(shí),遠(yuǎn)程服務(wù)器切換為激活狀態(tài),可以代替本地服務(wù)器提供服務(wù);同時(shí)修復(fù)本地的設(shè)備,在硬件修復(fù)后,執(zhí)行從遠(yuǎn)程服務(wù)器到本地服務(wù)器的數(shù)據(jù)同步,恢復(fù)原來(lái)的數(shù)據(jù)。
實(shí)施例2;一種基于偽塊設(shè)備的應(yīng)用層透明容災(zāi)備份方法,包含以下的步驟步驟1、以偽塊設(shè)備驅(qū)動(dòng)程序的方式實(shí)現(xiàn)該系統(tǒng)的數(shù)據(jù)截獲和數(shù)據(jù)遷移;偽塊設(shè)備和本地真實(shí)的塊設(shè)備形成一對(duì)一映射關(guān)系,驅(qū)動(dòng)程序加載于文件系統(tǒng)實(shí)現(xiàn)層次之下,在塊設(shè)備的驅(qū)動(dòng)程序之上;完成系統(tǒng)對(duì)塊設(shè)備卷的寫(xiě)入的數(shù)據(jù)的截獲;步驟2、備份系統(tǒng)以應(yīng)用層透明的方式工作,實(shí)現(xiàn)數(shù)據(jù)的本地和遠(yuǎn)程備份主機(jī)的雙向提交數(shù)據(jù);步驟3、在本地主機(jī)和遠(yuǎn)程備份主機(jī)上安裝相同的偽塊設(shè)備驅(qū)動(dòng)程序和應(yīng)用層的控制程序;通過(guò)配置主機(jī)的角色,即生產(chǎn)服務(wù)器和備份服務(wù)器來(lái)確定數(shù)據(jù)的提交方向,即由生產(chǎn)服務(wù)器向備份服務(wù)器提交數(shù)據(jù),當(dāng)災(zāi)難發(fā)生時(shí);備份服務(wù)器變更為生產(chǎn)服務(wù)器提供服務(wù),修復(fù)的原生常服務(wù)器變更為備份服務(wù)器器,進(jìn)行數(shù)據(jù)的恢復(fù);在數(shù)據(jù)恢復(fù)后,再通過(guò)角色的切換而進(jìn)入正常的工作狀態(tài);步驟4、容災(zāi)備份系統(tǒng)能夠在同步備份模式和異步備份模式之間自動(dòng)切換,當(dāng)網(wǎng)絡(luò)帶寬滿足系統(tǒng)設(shè)置的要求時(shí),系統(tǒng)默認(rèn)工作在同步備份模式,即向本地提交數(shù)據(jù)的同時(shí)向遠(yuǎn)程提交數(shù)據(jù);當(dāng)網(wǎng)絡(luò)帶寬不滿足時(shí),或者網(wǎng)絡(luò)連接斷開(kāi)時(shí),以及在遠(yuǎn)程備份系統(tǒng)出現(xiàn)故障時(shí),容災(zāi)備份系統(tǒng)切換為異步備份方式,系統(tǒng)僅向本地提交數(shù)據(jù),但標(biāo)記未向遠(yuǎn)程備份的數(shù)據(jù),當(dāng)網(wǎng)絡(luò)帶寬滿足要求或者連接恢復(fù)時(shí),系統(tǒng)自動(dòng)同步未提交的數(shù)據(jù),并切換為同步備份模式;步驟5、容災(zāi)備份采用在TCP/IP之上構(gòu)建了可靠的傳輸協(xié)議,自動(dòng)監(jiān)測(cè)通訊連路的狀態(tài),提供Qos服務(wù)。
權(quán)利要求
1.一種基于偽塊設(shè)備的應(yīng)用層透明容災(zāi)備份方法,其特征是包含以下的步驟步驟1、在操作系統(tǒng)內(nèi)核中運(yùn)行偽塊設(shè)備驅(qū)動(dòng)程序;截獲系統(tǒng)對(duì)塊設(shè)備的寫(xiě)入的數(shù)據(jù);步驟2、在驅(qū)動(dòng)程序中,通過(guò)網(wǎng)絡(luò)發(fā)送增量數(shù)據(jù)給遠(yuǎn)程的備份服務(wù)器,備份服務(wù)器將數(shù)據(jù)寫(xiě)入磁盤(pán);步驟3、在向遠(yuǎn)程服務(wù)器提交塊數(shù)據(jù)的同時(shí),將數(shù)據(jù)提交給本地的真實(shí)塊設(shè)備寫(xiě)入磁盤(pán);步驟4、在進(jìn)入同步備份狀態(tài)之前,執(zhí)行本地服務(wù)器到遠(yuǎn)程備份服務(wù)器的同步操作;而后進(jìn)入正常的同步備份狀態(tài);步驟5、在本地災(zāi)難發(fā)生時(shí),遠(yuǎn)程服務(wù)器切換為激活狀態(tài),可以代替本地服務(wù)器提供服務(wù);同時(shí)修復(fù)本地的設(shè)備,在硬件修復(fù)后,執(zhí)行從遠(yuǎn)程服務(wù)器到本地服務(wù)器的數(shù)據(jù)同步,恢復(fù)原來(lái)的數(shù)據(jù);步驟6、激活本地的服務(wù)器并提供服務(wù)器,將遠(yuǎn)程服務(wù)器切換為備份狀態(tài),恢復(fù)正常的工作狀態(tài)。
2.根據(jù)權(quán)利要求1所述的一種基于偽塊設(shè)備的應(yīng)用層透明容災(zāi)備份方法,其特征是該方法最終以偽塊設(shè)備的方式提供給操作系統(tǒng)用戶空間,偽快設(shè)備的使用方法與操作系統(tǒng)的普通塊設(shè)備相同;應(yīng)用程序無(wú)需作任何修改即可以通過(guò)偽塊設(shè)備實(shí)現(xiàn)具備容災(zāi)能力的存儲(chǔ)。偽塊設(shè)備依賴于真實(shí)的塊設(shè)備。
3.根據(jù)權(quán)利要求1所述的一種基于偽塊設(shè)備的應(yīng)用層透明容災(zāi)備份方法,其特征是該方法在文件系統(tǒng)之下,快設(shè)備驅(qū)動(dòng)程序之上的操作系統(tǒng)層次實(shí)現(xiàn)數(shù)據(jù)的截獲,發(fā)送。并采用多線索異步處理的機(jī)制避免延遲的串行積累,具備高性能。
4.根據(jù)權(quán)利要求1所述的一種基于偽塊設(shè)備的應(yīng)用層透明容災(zāi)備份方法,其特征是該方法采用位圖影射的方法避免使用大量的內(nèi)存空間,該方法也采用了基于位圖影射的持久文件的方式來(lái)記錄不能及時(shí)同步的數(shù)據(jù)塊;實(shí)現(xiàn)了無(wú)需日志文件和日志分區(qū)也不會(huì)丟失增量備份數(shù)據(jù)。
5.一種基于偽塊設(shè)備的應(yīng)用層透明容災(zāi)備份方法,其特征是包含以下的步驟步驟1、以偽塊設(shè)備驅(qū)動(dòng)程序的方式實(shí)現(xiàn)該系統(tǒng)的數(shù)據(jù)截獲和數(shù)據(jù)遷移;偽塊設(shè)備和本地真實(shí)的塊設(shè)備形成一對(duì)一映射關(guān)系,驅(qū)動(dòng)程序加載于文件系統(tǒng)實(shí)現(xiàn)層次之下,在塊設(shè)備的驅(qū)動(dòng)程序之上;完成系統(tǒng)對(duì)塊設(shè)備卷的寫(xiě)入的數(shù)據(jù)的截獲;步驟2、備份系統(tǒng)以應(yīng)用層透明的方式工作,實(shí)現(xiàn)數(shù)據(jù)的本地和遠(yuǎn)程備份主機(jī)的雙向提交數(shù)據(jù);步驟3、在本地主機(jī)和遠(yuǎn)程備份主機(jī)上安裝相同的偽塊設(shè)備驅(qū)動(dòng)程序和應(yīng)用層的控制程序;通過(guò)配置主機(jī)的角色,即生產(chǎn)服務(wù)器和備份服務(wù)器來(lái)確定數(shù)據(jù)的提交方向,即由生產(chǎn)服務(wù)器向備份服務(wù)器提交數(shù)據(jù),當(dāng)災(zāi)難發(fā)生時(shí);備份服務(wù)器變更為生產(chǎn)服務(wù)器提供服務(wù),修復(fù)的原生常服務(wù)器變更為備份服務(wù)器器,進(jìn)行數(shù)據(jù)的恢復(fù);在數(shù)據(jù)恢復(fù)后,再通過(guò)角色的切換而進(jìn)入正常的工作狀態(tài);步驟4、容災(zāi)備份系統(tǒng)能夠在同步備份模式和異步備份模式之間自動(dòng)切換,當(dāng)網(wǎng)絡(luò)帶寬滿足系統(tǒng)設(shè)置的要求時(shí),系統(tǒng)默認(rèn)工作在同步備份模式,即向本地提交數(shù)據(jù)的同時(shí)向遠(yuǎn)程提交數(shù)據(jù);當(dāng)網(wǎng)絡(luò)帶寬不滿足時(shí),或者網(wǎng)絡(luò)連接斷開(kāi)時(shí),以及在遠(yuǎn)程備份系統(tǒng)出現(xiàn)故障時(shí),容災(zāi)備份系統(tǒng)切換為異步備份方式,系統(tǒng)僅向本地提交數(shù)據(jù),但標(biāo)記未向遠(yuǎn)程備份的數(shù)據(jù),當(dāng)網(wǎng)絡(luò)帶寬滿足要求或者連接恢復(fù)時(shí),系統(tǒng)自動(dòng)同步未提交的數(shù)據(jù),并切換為同步備份模式;步驟5、容災(zāi)備份采用在TCP/IP之上構(gòu)建了可靠的傳輸協(xié)議,自動(dòng)監(jiān)測(cè)通訊連路的狀態(tài),提供Qos服務(wù)。
6.一種基于偽塊設(shè)備的應(yīng)用層透明容災(zāi)備份系統(tǒng),其特征是包括以下幾個(gè)模塊連接組成數(shù)據(jù)截獲模塊用于截獲本地的塊設(shè)備的數(shù)據(jù)寫(xiě)入;網(wǎng)絡(luò)通訊管理模塊用來(lái)管理生產(chǎn)服務(wù)器和備份服務(wù)器之間的網(wǎng)絡(luò)連接,監(jiān)測(cè)、維護(hù)通訊的狀態(tài);數(shù)據(jù)發(fā)送模塊用來(lái)向接收端發(fā)送需要同步的數(shù)據(jù),并對(duì)數(shù)據(jù)的完整性進(jìn)行管理和維護(hù);數(shù)據(jù)接收模塊用來(lái)接收同步過(guò)來(lái)的數(shù)據(jù),并將通過(guò)數(shù)據(jù)寫(xiě)盤(pán)模塊寫(xiě)入真實(shí)塊設(shè)備,并對(duì)發(fā)送進(jìn)行確認(rèn)管理;數(shù)據(jù)寫(xiě)盤(pán)模塊用來(lái)將同步數(shù)據(jù)寫(xiě)入磁盤(pán)設(shè)備,管理寫(xiě)入緩存,向數(shù)據(jù)接受模塊通告寫(xiě)入成功確認(rèn);應(yīng)用層管理接口模塊用來(lái)接收應(yīng)用層發(fā)送來(lái)的控制信息和配置信息,并執(zhí)行相應(yīng)的控制動(dòng)作和進(jìn)行配置;應(yīng)用層配置管理程序用來(lái)和用戶交互,對(duì)系統(tǒng)進(jìn)行控制和配置。
全文摘要
一種基于偽塊設(shè)備的應(yīng)用層透明的容災(zāi)備份系統(tǒng)和方法,在操作系統(tǒng)內(nèi)核中實(shí)現(xiàn)偽塊設(shè)備驅(qū)動(dòng)程序;截獲系統(tǒng)對(duì)塊設(shè)備的寫(xiě)入的數(shù)據(jù)。在驅(qū)動(dòng)程序中,通過(guò)網(wǎng)絡(luò)發(fā)送增量數(shù)據(jù)給遠(yuǎn)程的備份服務(wù)器,備份服務(wù)器將數(shù)據(jù)寫(xiě)入磁盤(pán)。在向遠(yuǎn)程服務(wù)器提交塊數(shù)據(jù)的同時(shí),將數(shù)據(jù)提交給本地的真實(shí)塊設(shè)備寫(xiě)入磁盤(pán)。在進(jìn)入同步備份狀態(tài)之前,執(zhí)行本地服務(wù)器到遠(yuǎn)程備份服務(wù)器的同步操作;而后進(jìn)入正常的同步備份狀態(tài)。在本地災(zāi)難發(fā)生時(shí),遠(yuǎn)程服務(wù)器切換為激活狀態(tài),代替本地服務(wù)器提供服務(wù);修復(fù)本地的設(shè)備,在硬件修復(fù)后,執(zhí)行從遠(yuǎn)程服務(wù)器到本地服務(wù)器的數(shù)據(jù)同步,恢復(fù)原來(lái)的數(shù)據(jù)。激活本地的服務(wù)器并提供服務(wù)器,將遠(yuǎn)程服務(wù)器切換為備份狀態(tài),恢復(fù)正常的工作狀態(tài)。
文檔編號(hào)G06F11/20GK1746855SQ20051008671
公開(kāi)日2006年3月15日 申請(qǐng)日期2005年10月26日 優(yōu)先權(quán)日2005年10月26日
發(fā)明者嚴(yán)立, 趙海峰, 焦玉峰 申請(qǐng)人:北京啟明星辰信息技術(shù)有限公司