專(zhuān)利名稱(chēng):數(shù)據(jù)備份方法、系統(tǒng)和服務(wù)器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明實(shí)施例涉及通信技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)備份方法、系統(tǒng)和服務(wù)器。
背景技術(shù):
網(wǎng)絡(luò)附加存儲(chǔ)(Network Attached Storage ;以下簡(jiǎn)稱(chēng)NAS)文件系統(tǒng)由NAS客戶(hù) 端和NAS服務(wù)器組成。一個(gè)NAS服務(wù)器包括處理器、文件服務(wù)管理模塊和多個(gè)用于數(shù)據(jù)存 儲(chǔ)硬盤(pán)驅(qū)動(dòng)器。NAS客戶(hù)端可以安裝到應(yīng)用服務(wù)器上;NAS服務(wù)器可以應(yīng)用在任何的網(wǎng)絡(luò)環(huán) 境中??蛻?hù)端可以通過(guò)網(wǎng)絡(luò)文件系統(tǒng)(Network File System;以下簡(jiǎn)稱(chēng)NFS)協(xié)議、通用因 特網(wǎng)文件系統(tǒng)(Common Internet File System ;以下簡(jiǎn)稱(chēng)CIFS)協(xié)議等等非常方便地在 NAS服務(wù)器上存取任意格式的文件。NAS服務(wù)器可以根據(jù)NAS客戶(hù)端發(fā)出的指令完成對(duì)內(nèi) 在文件的管理?,F(xiàn)有技術(shù)提供的一種基于數(shù)據(jù)塊鏡像的實(shí)現(xiàn)方法中,NAS服務(wù)器采用通用高可靠 性(High Availability ;以下簡(jiǎn)稱(chēng)HA)軟件與通用鏡像軟件結(jié)合實(shí)現(xiàn)數(shù)據(jù)備份,并提供高 可靠性存儲(chǔ)。但是這種方法中,需要部署HA軟件與通用鏡像軟件,因此增加了軟件部署的 復(fù)雜度;并且,這種方法中,在NAS服務(wù)器的塊設(shè)備層實(shí)現(xiàn)數(shù)據(jù)同步,數(shù)據(jù)處理的層數(shù)較多, 因此實(shí)現(xiàn)較復(fù)雜,數(shù)據(jù)同步的性能較低;另外,上述方法在異步時(shí)容易丟失數(shù)據(jù)。此外,還可 以采用NAS客戶(hù)端同時(shí)向兩個(gè)NAS服務(wù)器并發(fā)地寫(xiě)數(shù)據(jù),從而達(dá)到數(shù)據(jù)備份的效果。但是 這種方法的開(kāi)發(fā)量大,開(kāi)發(fā)實(shí)現(xiàn)的成本較高。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種數(shù)據(jù)備份方法、系統(tǒng)和服務(wù)器,以簡(jiǎn)化軟件部署,提高數(shù)據(jù) 同步性能。本發(fā)明實(shí)施例提供一種數(shù)據(jù)備份方法,包括接收客戶(hù)端發(fā)送的寫(xiě)操作指令;將所述寫(xiě)操作指令中的待寫(xiě)入數(shù)據(jù)寫(xiě)入第一服務(wù)器的文件接口層緩存;將所述待寫(xiě)入數(shù)據(jù)發(fā)送至第二服務(wù)器,以便所述第二服務(wù)器將所述待寫(xiě)入數(shù)據(jù)寫(xiě) 入所述第二服務(wù)器的文件接口層緩存。本發(fā)明實(shí)施例還提供一種第一服務(wù)器,包括接收模塊,用于接收客戶(hù)端發(fā)送的寫(xiě)操作指令;寫(xiě)入模塊,用于將所述接收模塊接收的寫(xiě)操作指令中的待寫(xiě)入數(shù)據(jù)寫(xiě)入所述第一 服務(wù)器的文件接口層緩存;發(fā)送模塊,用于將所述待寫(xiě)入數(shù)據(jù)發(fā)送至第二服務(wù)器,以便所述第二服務(wù)器將所 述待寫(xiě)入數(shù)據(jù)寫(xiě)入所述第二服務(wù)器的文件接口層緩存。本發(fā)明實(shí)施例還提供一種數(shù)據(jù)備份系統(tǒng),包括客戶(hù)端、第一服務(wù)器和第二服務(wù) 器,所述第一服務(wù)器,用于接收所述客戶(hù)端發(fā)送的寫(xiě)操作指令,將所述寫(xiě)操作指令中的待寫(xiě)入數(shù)據(jù)寫(xiě)入所述第一服務(wù)器的文件接口層緩存,并將所述待寫(xiě)入數(shù)據(jù)發(fā)送至所述第二服務(wù)器,以便所述第二服務(wù)器將所述待寫(xiě)入數(shù)據(jù)寫(xiě)入所述第二服務(wù)器的文件接口層緩存。通過(guò)本發(fā)明實(shí)施例,第一服務(wù)器接收到寫(xiě)操作指令之后,將該寫(xiě)操作指令中的待 寫(xiě)入數(shù)據(jù)寫(xiě)入第一服務(wù)器的文件接口層緩存,并將該待寫(xiě)入數(shù)據(jù)發(fā)送至第二服務(wù)器,以便 第二服務(wù)器將該待寫(xiě)入數(shù)據(jù)寫(xiě)入第二服務(wù)器的文件接口層緩存。本發(fā)明實(shí)施例在文件接口 層進(jìn)行數(shù)據(jù)同步,與現(xiàn)有的在塊設(shè)備層進(jìn)行數(shù)據(jù)同步的方案相比,減少了數(shù)據(jù)處理的層數(shù), 節(jié)約了處理時(shí)間,因此可以方便地實(shí)現(xiàn)數(shù)據(jù)備份,提高了數(shù)據(jù)同步的性能;并且在文件接口 層進(jìn)行數(shù)據(jù)同步,不要求兩個(gè)服務(wù)器的塊設(shè)備層完全一致,甚至兩個(gè)服務(wù)器的文件系統(tǒng)可 以采用不同的本地文件系統(tǒng),適用性較高;另外,本發(fā)明實(shí)施例不需修改客戶(hù)端,不影響客 戶(hù)端已有的部署,也不需要第三方鏡像軟件,簡(jiǎn)化了軟件部署,降低了實(shí)現(xiàn)成本。
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作一簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖是本發(fā) 明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根 據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明數(shù)據(jù)備份方法一個(gè)實(shí)施例的流程圖;圖2為本發(fā)明實(shí)施例服務(wù)器的邏輯結(jié)構(gòu)示意圖;圖3為本發(fā)明數(shù)據(jù)備份方法另一個(gè)實(shí)施例的流程圖;圖4為本發(fā)明數(shù)據(jù)備份方法再一個(gè)實(shí)施例的流程圖;圖5為本發(fā)明第一服務(wù)器一個(gè)實(shí)施例的結(jié)構(gòu)示意圖;圖6為本發(fā)明第一服務(wù)器另一個(gè)實(shí)施例的結(jié)構(gòu)示意圖;圖7為本發(fā)明數(shù)據(jù)備份系統(tǒng)一個(gè)實(shí)施例的結(jié)構(gòu)示意圖;圖8為本發(fā)明NAS集群一個(gè)實(shí)施例的結(jié)構(gòu)示意圖;圖9為本發(fā)明NAS集群另一個(gè)實(shí)施例的結(jié)構(gòu)示意圖;圖10為本發(fā)明NAS集群再一個(gè)實(shí)施例的結(jié)構(gòu)示意圖;圖11為本發(fā)明分布式文件系統(tǒng)一個(gè)實(shí)施例的結(jié)構(gòu)示意圖;圖12為本發(fā)明分布式文件系統(tǒng)另一個(gè)實(shí)施例的結(jié)構(gòu)示意圖;圖13為本發(fā)明分布式文件系統(tǒng)再一個(gè)實(shí)施例的結(jié)構(gòu)示意圖;圖14為本發(fā)明分布式文件系統(tǒng)又一個(gè)實(shí)施例的結(jié)構(gòu)示意圖。
具體實(shí)施例方式為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例 中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是 本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員 在沒(méi)有做出創(chuàng)造性勞動(dòng)的前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。圖1為本發(fā)明數(shù)據(jù)備份方法一個(gè)實(shí)施例的流程圖,如圖1所示,該實(shí)施例可以包 括
步驟101,接收客戶(hù)端發(fā)送的寫(xiě)操作指令。步驟102,將寫(xiě)操作指令中的待寫(xiě)入數(shù)據(jù)寫(xiě)入第一服務(wù)器的文件接口層緩存。圖2為本發(fā)明實(shí)施例服務(wù)器的邏輯結(jié)構(gòu)示意圖,如圖2所示,本發(fā)明實(shí)施例中,月艮 務(wù)器的邏輯結(jié)構(gòu)包括應(yīng)用層、文件接口層、文件系統(tǒng)、塊設(shè)備層和硬盤(pán)驅(qū)動(dòng),在服務(wù)器接收 到一個(gè)指令之后,應(yīng)用層、文件接口層、文件系統(tǒng)、塊設(shè)備層和硬盤(pán)驅(qū)動(dòng)依次對(duì)該指令進(jìn)行處理。本實(shí)施例中,數(shù)據(jù)備份可以由服務(wù)器來(lái)執(zhí)行,在本實(shí)施例中可以為第一服務(wù)器,在 第一服務(wù)器和第二服務(wù)器的文件接口層設(shè)置緩存,在第一服務(wù)器接收到寫(xiě)操作指令之后, 第一服務(wù)器將該寫(xiě)操作指令中的待寫(xiě)入數(shù)據(jù)寫(xiě)入該第一服務(wù)器的文件接口層緩存。步驟103,將待寫(xiě)入數(shù)據(jù)發(fā)送至第二服務(wù)器,以便第二服務(wù)器將待寫(xiě)入數(shù)據(jù)寫(xiě)入第 二服務(wù)器的文件接口層緩存。本實(shí)施例中,第一服務(wù)器可以在將寫(xiě)操作指令中的待寫(xiě)入數(shù)據(jù)寫(xiě)入第一服務(wù)器的 文件接口層緩存的同時(shí)或之后,將該待寫(xiě)入數(shù)據(jù)發(fā)送至第二服務(wù)器;即步驟102和步驟103 可以并行執(zhí)行,也可以先執(zhí)行步驟102,再執(zhí)行步驟103。在第二服務(wù)器接收到第一服務(wù)器發(fā)送的待寫(xiě)入數(shù)據(jù)之后,第二服務(wù)器將該待寫(xiě)入 數(shù)據(jù)寫(xiě)入第二服務(wù)器的文件接口層緩存。本實(shí)施例中,步驟102 步驟103實(shí)現(xiàn)了第一服務(wù)器和第二服務(wù)器在文件接口層 進(jìn)行數(shù)據(jù)同步,提高了數(shù)據(jù)同步的性能。上述實(shí)施例在文件接口層進(jìn)行數(shù)據(jù)同步,與現(xiàn)有的在塊設(shè)備層進(jìn)行數(shù)據(jù)同步的方 案相比,減少了數(shù)據(jù)處理的層數(shù),節(jié)約了處理時(shí)間,因此可以方便地實(shí)現(xiàn)數(shù)據(jù)備份,提高了 數(shù)據(jù)同步的性能,并且在文件接口層進(jìn)行數(shù)據(jù)同步,不要求兩個(gè)服務(wù)器的塊設(shè)備層完全一 致,甚至兩個(gè)服務(wù)器的文件系統(tǒng)可以采用不同的本地文件系統(tǒng),適用性較高;另外,本實(shí)施 例不需修改客戶(hù)端,不影響客戶(hù)端已有的部署,也不需要第三方鏡像軟件,簡(jiǎn)化了軟件部 署,降低了實(shí)現(xiàn)成本。圖3為本發(fā)明數(shù)據(jù)備份方法另一個(gè)實(shí)施例的流程圖,如圖3所示,該實(shí)施例可以包 括步驟301,第一服務(wù)器接收客戶(hù)端發(fā)送的寫(xiě)操作指令。步驟302,第一服務(wù)器將該寫(xiě)操作指令中的待寫(xiě)入數(shù)據(jù)寫(xiě)入第一服務(wù)器的文件接
口層緩存。本實(shí)施例中,第一服務(wù)器的邏輯結(jié)構(gòu)如圖2所示,在第一服務(wù)器的文件接口層設(shè) 置緩存,第一服務(wù)器接收到寫(xiě)操作指令之后,第一服務(wù)器將該寫(xiě)操作指令中的待寫(xiě)入數(shù)據(jù) 寫(xiě)入該第一服務(wù)器的文件接口層緩存。步驟303,第一服務(wù)器將該待寫(xiě)入數(shù)據(jù)發(fā)送至第二服務(wù)器。本實(shí)施例中,第一服務(wù)器可以在將寫(xiě)操作指令中的待寫(xiě)入數(shù)據(jù)寫(xiě)入第一服務(wù)器的 文件接口層緩存的同時(shí)或之后,將該待寫(xiě)入數(shù)據(jù)發(fā)送至第二服務(wù)器;即步驟302和步驟303 可以并行執(zhí)行,也可以先執(zhí)行步驟302,再執(zhí)行步驟303。步驟304,第二服務(wù)器將該待寫(xiě)入數(shù)據(jù)寫(xiě)入第二服務(wù)器的文件接口層緩存。本實(shí)施例中,步驟302 步驟304實(shí)現(xiàn)了第一服務(wù)器和第二服務(wù)器在文件接口層 進(jìn)行數(shù)據(jù)同步,與現(xiàn)有的在塊設(shè)備層進(jìn)行數(shù)據(jù)同步的方案相比,減少了數(shù)據(jù)處理的層數(shù),節(jié)約了處理時(shí)間,提高了數(shù)據(jù)同步的性能;并且在文件接口層進(jìn)行數(shù)據(jù)同步,不要求第一服務(wù)器與第二服務(wù)器的塊設(shè)備層完全一致,甚至第一服務(wù)器與第二服務(wù)器的文件系統(tǒng)可以采用 不同的本地文件系統(tǒng),適用性較高。步驟305,第一服務(wù)器接收第二服務(wù)器在將上述待寫(xiě)入數(shù)據(jù)寫(xiě)入該第二服務(wù)器的文件接口層緩存之后發(fā)送的第一響應(yīng)消息。本實(shí)施例中,第二服務(wù)器在將上述待寫(xiě)入數(shù)據(jù)寫(xiě)入該第二服務(wù)器的文件接口層緩存之后,向第一服務(wù)器發(fā)送第一響應(yīng)消息,接收到該第一響應(yīng)消息之后,第一服務(wù)器可以確 定第二服務(wù)器將待寫(xiě)入數(shù)據(jù)寫(xiě)入文件接口層緩存的操作已完成。步驟306,第一服務(wù)器向客戶(hù)端發(fā)送第二響應(yīng)消息,該第二響應(yīng)消息是對(duì)寫(xiě)操作指令的響應(yīng)。本實(shí)施例中,在第一服務(wù)器和第二服務(wù)器將待寫(xiě)入數(shù)據(jù)寫(xiě)入各自的文件接口層緩 存的操作完成,且第一服務(wù)器接收到上述第一響應(yīng)消息之后,第一服務(wù)器即可向客戶(hù)端發(fā) 送第二響應(yīng)消息,而不必等到第一服務(wù)器和第二服務(wù)器各自的塊設(shè)備層寫(xiě)硬盤(pán)時(shí),再向客 戶(hù)端發(fā)送響應(yīng)消息,從而提高了寫(xiě)操作的響應(yīng)速度。步驟307,第一服務(wù)器將寫(xiě)入第一服務(wù)器的文件接口層緩存中的待寫(xiě)入數(shù)據(jù)存儲(chǔ) 至第一服務(wù)器的硬盤(pán)。步驟308,第二服務(wù)器將寫(xiě)入第二服務(wù)器的文件接口層緩存中的待寫(xiě)入數(shù)據(jù)存儲(chǔ) 至第二服務(wù)器的硬盤(pán)。本實(shí)施例中,第一服務(wù)器和第二服務(wù)器可以異步或同步地將各自的文件接口層緩 存中的待寫(xiě)入數(shù)據(jù)存儲(chǔ)至各自的硬盤(pán)中,即步驟307與步驟308可以并行執(zhí)行,也可以先后 執(zhí)行,本發(fā)明實(shí)施例對(duì)步驟307與步驟308的執(zhí)行順序不作限定。下面對(duì)本實(shí)施例中可能出現(xiàn)的異常情況的處理方式進(jìn)行介紹。(1)第一服務(wù)器將該寫(xiě)操作指令中的待寫(xiě)入數(shù)據(jù)寫(xiě)入第一服務(wù)器的文件接口層緩 存的操作失敗,因此在預(yù)定的時(shí)間間隔,例如5分鐘內(nèi),客戶(hù)端未接收到第一服務(wù)器發(fā)送 的第二響應(yīng)消息;這時(shí),客戶(hù)端會(huì)重發(fā)寫(xiě)操作指令,重復(fù)預(yù)置次數(shù)后,例如3次后,均未收 到第二響應(yīng)消息時(shí),客戶(hù)端向上層返回失敗響應(yīng)。(2)第一服務(wù)器將寫(xiě)入第一服務(wù)器的文件接口層緩存中的待寫(xiě)入數(shù)據(jù)存儲(chǔ)至第一 服務(wù)器的硬盤(pán)的操作失敗,這時(shí)第一服務(wù)器會(huì)在本地硬盤(pán)中申請(qǐng)新的存儲(chǔ)空間,再次執(zhí)行 將寫(xiě)入第一服務(wù)器的文件接口層緩存中的待寫(xiě)入數(shù)據(jù)存儲(chǔ)至第一服務(wù)器的硬盤(pán)的操作。(3)當(dāng)?shù)谝环?wù)器在將待寫(xiě)入數(shù)據(jù)存儲(chǔ)至第一服務(wù)器的硬盤(pán)的過(guò)程中發(fā)生故障, 例如第一服務(wù)器掉電,未能將該待寫(xiě)入數(shù)據(jù)存儲(chǔ)至第一服務(wù)器的硬盤(pán)時(shí),該第一服務(wù)器的 文件接口層緩存中的數(shù)據(jù)丟失;但是由于第二服務(wù)器未發(fā)生故障,因此第二服務(wù)器成功將 上述待寫(xiě)入數(shù)據(jù)存儲(chǔ)至第二服務(wù)器的硬盤(pán),并且第二服務(wù)器在第一服務(wù)器發(fā)生故障期間接 管第一服務(wù)器的工作,因此第一服務(wù)器在恢復(fù)正常工作之后,首先根據(jù)第一服務(wù)器中文件 系統(tǒng)的事務(wù)日志,從第二服務(wù)器獲取待寫(xiě)入數(shù)據(jù),并將獲取的待寫(xiě)入數(shù)據(jù)寫(xiě)入第一服務(wù)器 的文件接口層緩存;然后,第一服務(wù)器根據(jù)第二服務(wù)器在第一服務(wù)器發(fā)生故障期間記錄的 同步日志(SYNC-LOG),同步第一服務(wù)器的文件接口層緩存中的數(shù)據(jù)與第二服務(wù)器的文件接 口層緩存中的數(shù)據(jù)。在第一服務(wù)器與第二服務(wù)器的文件接口層緩存中的數(shù)據(jù)達(dá)到一致之 后,再將文件接口層緩存中的數(shù)據(jù)存儲(chǔ)至硬盤(pán)。
(4)當(dāng)?shù)诙?wù)器在將待寫(xiě)入數(shù)據(jù)存儲(chǔ)第二服務(wù)器的硬盤(pán)的過(guò)程中發(fā)生故障,例 如第二服務(wù)器掉電,未能將該待寫(xiě)入數(shù)據(jù)存儲(chǔ)至第二服務(wù)器的硬盤(pán)時(shí),第二服務(wù)器參照 (3)中的處理方式進(jìn)行處理,在此不再贅述。上述實(shí)施例可以方便地實(shí)現(xiàn)數(shù)據(jù)備份,提高了寫(xiě)操作的響應(yīng)速度;在文件接口層 進(jìn)行數(shù)據(jù)同步,提高了數(shù)據(jù)同步的性能;并且在文件接口層進(jìn)行數(shù)據(jù)同步,不要求兩個(gè)服 務(wù)器的塊設(shè)備層完全一致,甚至兩個(gè)服務(wù)器的文件系統(tǒng)可以采用不同的本地文件系統(tǒng),適 用性較高;并且在一個(gè)服務(wù)器發(fā)生故障之后,另一服務(wù)器記錄同步日志,在發(fā)生故障的服務(wù) 器恢復(fù)正常工作之后,可以根據(jù)同步日志同步兩個(gè)服務(wù)器中的數(shù)據(jù),可靠性高;另外,本實(shí) 施例不需修改客戶(hù)端,不影響客戶(hù)端已有的部署,也不需要第三方鏡像軟件,簡(jiǎn)化了軟件部 署, 降低了實(shí)現(xiàn)成本。圖4為本發(fā)明數(shù)據(jù)備份方法再一個(gè)實(shí)施例的流程圖,如圖4所示,該實(shí)施例可以包 括步驟401,第一服務(wù)器接收客戶(hù)端發(fā)送的寫(xiě)操作指令。步驟402,第一服務(wù)器將該寫(xiě)操作指令中的待寫(xiě)入數(shù)據(jù)寫(xiě)入第一服務(wù)器的文件接
口層緩存。本實(shí)施例中,第一服務(wù)器的邏輯結(jié)構(gòu)如圖2所示,在第一服務(wù)器的文件接口層設(shè) 置緩存,第一服務(wù)器接收到寫(xiě)操作指令之后,第一服務(wù)器將該寫(xiě)操作指令中的待寫(xiě)入數(shù)據(jù) 寫(xiě)入該第一服務(wù)器的文件接口層緩存。步驟403,在預(yù)設(shè)的緩存同步條件被滿(mǎn)足之后,第一服務(wù)器將待寫(xiě)入數(shù)據(jù)發(fā)送至第 二服務(wù)器。本實(shí)施例中,當(dāng)?shù)谝环?wù)器與第二服務(wù)器之間的網(wǎng)絡(luò)連接帶寬有限時(shí),可以預(yù)先 設(shè)置緩存同步條件,只有在預(yù)設(shè)的緩存同步條件被滿(mǎn)足之后,第一服務(wù)器才將待寫(xiě)入數(shù)據(jù) 發(fā)送至第二服務(wù)器。該緩存同步條件可以為第一服務(wù)器當(dāng)前的業(yè)務(wù)量低于預(yù)設(shè)的閾值,該閾值可以根 據(jù)第一服務(wù)器的性能,以及第一服務(wù)器與第二服務(wù)器之間的網(wǎng)絡(luò)連接帶寬設(shè)置;即在第一 服務(wù)器當(dāng)前的業(yè)務(wù)量大于預(yù)設(shè)的閾值,即第一服務(wù)器比較繁忙時(shí),可以先將待寫(xiě)入數(shù)據(jù)存 放在該第一服務(wù)器的文件接口層緩存中,在第一服務(wù)器當(dāng)前的業(yè)務(wù)量低于上述預(yù)設(shè)的閾值 之后,第一服務(wù)器再將該待寫(xiě)入數(shù)據(jù)發(fā)送至第二服務(wù)器。從而第一服務(wù)器將該待寫(xiě)入數(shù)據(jù) 發(fā)送至第二服務(wù)器的操作,不會(huì)影響第一服務(wù)器自身業(yè)務(wù)的處理。當(dāng)然,本發(fā)明實(shí)施例并不僅限于此,緩存同步條件也可采用其他的設(shè)置方式,只要 可以實(shí)現(xiàn)第一服務(wù)器將該待寫(xiě)入數(shù)據(jù)發(fā)送至第二服務(wù)器的操作,不影響第一服務(wù)器自身業(yè) 務(wù)的處理即可。步驟404,第二服務(wù)器將該待寫(xiě)入數(shù)據(jù)寫(xiě)入第二服務(wù)器的文件接口層緩存。本實(shí)施例中,步驟402 步驟404實(shí)現(xiàn)了第一服務(wù)器和第二服務(wù)器在文件接口層 進(jìn)行數(shù)據(jù)同步,與現(xiàn)有的在塊設(shè)備層進(jìn)行數(shù)據(jù)同步的方案相比,減少了數(shù)據(jù)處理的層數(shù),節(jié) 約了處理時(shí)間,提高了數(shù)據(jù)同步的性能;并且在文件接口層進(jìn)行數(shù)據(jù)同步,不要求第一服務(wù) 器與第二服務(wù)器的塊設(shè)備層完全一致,甚至第一服務(wù)器與第二服務(wù)器的文件系統(tǒng)可以采用 不同的本地文件系統(tǒng),適用性較高。步驟405,第一服務(wù)器接收第二服務(wù)器在將上述待寫(xiě)入數(shù)據(jù)寫(xiě)入該第二服務(wù)器的文件接口層緩存之后發(fā)送的第一響應(yīng)消息。
本實(shí)施例中,第二服務(wù)器在將上述待寫(xiě)入數(shù)據(jù)寫(xiě)入該第二服務(wù)器的文件接口層緩 存之后,向第一服務(wù)器發(fā)送第一響應(yīng)消息,接收到該第一響應(yīng)消息之后,第一服務(wù)器可以確 定第二服務(wù)器將待寫(xiě)入數(shù)據(jù)寫(xiě)入文件接口層緩存的操作已完成。步驟406,第一服務(wù)器向客戶(hù)端發(fā)送第二響應(yīng)消息,該第二響應(yīng)消息是對(duì)寫(xiě)操作指 令的響應(yīng)。本實(shí)施例中,在第一服務(wù)器和第二服務(wù)器將待寫(xiě)入數(shù)據(jù)寫(xiě)入各自的文件接口層緩 存的操作完成,且第一服務(wù)器接收到第一響應(yīng)消息之后,第一服務(wù)器即可向客戶(hù)端發(fā)送第 二響應(yīng)消息,而不必等到第一服務(wù)器和第二服務(wù)器各自的塊設(shè)備層寫(xiě)硬盤(pán)時(shí),再向客戶(hù)端 發(fā)送響應(yīng)消息,從而提高了寫(xiě)操作的響應(yīng)速度。步驟407,第一服務(wù)器將寫(xiě)入第一服務(wù)器的文件接口層緩存中的待寫(xiě)入數(shù)據(jù)存儲(chǔ) 至第一服務(wù)器的硬盤(pán)。步驟408,第二服務(wù)器將寫(xiě)入第二服務(wù)器的文件接口層緩存中的待寫(xiě)入數(shù)據(jù)存儲(chǔ) 至第二服務(wù)器的硬盤(pán)。本實(shí)施例中,第一服務(wù)器和第二服務(wù)器可以異步或同步地將各自的文件接口層緩 存中的待寫(xiě)入數(shù)據(jù)存儲(chǔ)至各自的硬盤(pán)中,即步驟407與步驟408可以并行執(zhí)行,也可以先后 執(zhí)行,本發(fā)明實(shí)施例對(duì)步驟407與步驟408的執(zhí)行順序不作限定。本實(shí)施例中異常情況的處理方式與本發(fā)明圖3所示實(shí)施例相同,在此不再贅述。上述實(shí)施例可以方便地實(shí)現(xiàn)數(shù)據(jù)備份,提高了寫(xiě)操作的響應(yīng)速度;在文件接口層 進(jìn)行數(shù)據(jù)同步,提高了數(shù)據(jù)同步的性能;并且在文件接口層進(jìn)行數(shù)據(jù)同步,不要求兩個(gè)服務(wù) 器的塊設(shè)備層完全一致,甚至兩個(gè)服務(wù)器的文件系統(tǒng)可以采用不同的本地文件系統(tǒng),適用 性較高;并且在一個(gè)服務(wù)器發(fā)生故障時(shí),另一服務(wù)器記錄同步日志,在發(fā)生故障的服務(wù)器恢 復(fù)正常工作之后,可以根據(jù)同步日志同步兩個(gè)服務(wù)器中的數(shù)據(jù),可靠性高;另外,本實(shí)施例 不需修改客戶(hù)端,不影響客戶(hù)端已有的部署,也不需要第三方鏡像軟件,簡(jiǎn)化了軟件部署, 降低了實(shí)現(xiàn)成本。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過(guò) 程序指令相關(guān)的硬件來(lái)完成,前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序 在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括R0M、RAM、磁碟或者 光盤(pán)等各種可以存儲(chǔ)程序代碼的介質(zhì)。圖5為本發(fā)明第一服務(wù)器一個(gè)實(shí)施例的結(jié)構(gòu)示意圖,本實(shí)施例中的第一服務(wù)器可 以實(shí)現(xiàn)本發(fā)明圖1所示實(shí)施例的流程,如圖5所示,該第一服務(wù)器可以包括接收模塊51、 寫(xiě)入模塊52和發(fā)送模塊53。其中,接收模塊51,用于接收客戶(hù)端發(fā)送的寫(xiě)操作指令。寫(xiě)入模塊52,用于將接收模塊51接收的寫(xiě)操作指令中的待寫(xiě)入數(shù)據(jù)寫(xiě)入第一服 務(wù)器的文件接口層緩存;本實(shí)施例中,第一服務(wù)器的邏輯結(jié)構(gòu)可以如圖2所示,在第一服務(wù)器的文件接口 層設(shè)置緩存,在接收模塊51接收到寫(xiě)操作指令之后,寫(xiě)入模塊52將該寫(xiě)操作指令中的待寫(xiě) 入數(shù)據(jù)寫(xiě)入該第一服務(wù)器的文件接口層緩存。發(fā)送模塊53,用于將上述待寫(xiě)入數(shù)據(jù)發(fā)送至第二服務(wù)器,以便第二服務(wù)器將待寫(xiě)入數(shù)據(jù)寫(xiě)入第二服務(wù)器的文件接口層緩存;本實(shí)施例中,發(fā)送模塊53可以在寫(xiě)入模塊52將 寫(xiě)操作指令中的待寫(xiě)入數(shù)據(jù)寫(xiě)入第一服務(wù)器的文件接口層緩存的同時(shí)或之后,將該待寫(xiě)入 數(shù)據(jù)發(fā)送至第二服務(wù)器。具體地,發(fā)送模塊53可以在預(yù)設(shè)的緩存同步條件被滿(mǎn)足之后,將該待寫(xiě)入數(shù)據(jù)發(fā) 送至第二服務(wù)器,以便第二服務(wù)器將待寫(xiě)入數(shù)據(jù)寫(xiě)入該第二服務(wù)器的文件接口層緩存。本實(shí)施例中,寫(xiě)入模塊52和發(fā)送模塊53實(shí)現(xiàn)了第一服務(wù)器與第二服務(wù)器在文件 接口層進(jìn)行數(shù)據(jù)同步,與現(xiàn)有的在塊設(shè)備層進(jìn)行數(shù)據(jù)同步的方案相比,減少了數(shù)據(jù)處理的 層數(shù),節(jié)約了處理時(shí)間,提高了數(shù)據(jù)同步的性能;并且在文件接口層進(jìn)行數(shù)據(jù)同步,不要求 第一服務(wù)器與第二服務(wù)器的塊設(shè)備層完全一致,甚至第一服務(wù)器與第二服務(wù)器的文件系統(tǒng) 可以采用不同的本地文件系統(tǒng),適用性較高。本實(shí)施例中,接收模塊51還可以接收第二服務(wù)器在將待寫(xiě)入數(shù)據(jù)寫(xiě)入第二服務(wù) 器的文件接口層緩存之后發(fā)送的第一響應(yīng)消息,該第一響應(yīng)消息用于表示第二服務(wù)器將待 寫(xiě)入數(shù)據(jù)寫(xiě)入第二服務(wù)器的文件接口層緩存的操作已完成。這時(shí),發(fā)送模塊53還用于在接 收模塊51接收到第一響應(yīng)消息,并且寫(xiě)入模塊52將待寫(xiě)入數(shù)據(jù)寫(xiě)入第一服務(wù)器的文件接 口層緩存之后,向客戶(hù)端發(fā)送第二響應(yīng)消息,該第二響應(yīng)消息是對(duì)寫(xiě)操作指令的響應(yīng)。本實(shí)施例中,在第一服務(wù)器和第二服務(wù)器將待寫(xiě)入數(shù)據(jù)寫(xiě)入各自的文件接口層緩 存的操作完成之后,發(fā)送模塊53即可向客戶(hù)端發(fā)送第二響應(yīng)消息,而不必等到第一服務(wù)器 和第二服務(wù)器各自的塊設(shè)備層寫(xiě)硬盤(pán)時(shí),再向客戶(hù)端發(fā)送響應(yīng)消息,從而提高了寫(xiě)操作的 響應(yīng)速度。上述第一服務(wù)器可以方便地與第二服務(wù)器實(shí)現(xiàn)數(shù)據(jù)備份,提高了寫(xiě)操作的響應(yīng)速 度;在文件接口層進(jìn)行數(shù)據(jù)同步,提高了數(shù)據(jù)同步的性能;并且在文件接口層進(jìn)行數(shù)據(jù)同 步,不要求兩個(gè)服務(wù)器的塊設(shè)備層完全一致,甚至兩個(gè)服務(wù)器的文件系統(tǒng)可以采用不同的 本地文件系統(tǒng),適用性較高;另外,本實(shí)施例不需修改客戶(hù)端,不影響客戶(hù)端已有的部署,也 不需要第三方鏡像軟件,簡(jiǎn)化了軟件部署,降低了實(shí)現(xiàn)成本。圖6為本發(fā)明第一服務(wù)器另一個(gè)實(shí)施例的結(jié)構(gòu)示意圖,本實(shí)施例中的第一服務(wù)器 可以實(shí)現(xiàn)本發(fā)明圖1、圖3或圖4所示實(shí)施例的流程,如圖6所示,該第一服務(wù)器可以包括 接收模塊61、寫(xiě)入模塊62、發(fā)送模塊63、存儲(chǔ)模塊64、獲取模塊65和同步模塊66。其中,接收模塊61,用于接收客戶(hù)端發(fā)送的寫(xiě)操作指令。寫(xiě)入模塊62,用于將接收模塊61接收的寫(xiě)操作指令中的待寫(xiě)入數(shù)據(jù)寫(xiě)入第一服 務(wù)器的文件接口層緩存;本實(shí)施例中,第一服務(wù)器的邏輯結(jié)構(gòu)可以如圖2所示,在第一服務(wù)器的文件接口 層設(shè)置緩存,在接收模塊61接收到寫(xiě)操作指令之后,寫(xiě)入模塊62將該寫(xiě)操作指令中的待寫(xiě) 入數(shù)據(jù)寫(xiě)入該第一服務(wù)器的文件接口層緩存。發(fā)送模塊63,用于將上述待寫(xiě)入數(shù)據(jù)發(fā)送至第二服務(wù)器,以便第二服務(wù)器將待寫(xiě) 入數(shù)據(jù)寫(xiě)入第二服務(wù)器的文件接口層緩存;本實(shí)施例中,發(fā)送模塊63可以在寫(xiě)入模塊62將 寫(xiě)操作指令中的待寫(xiě)入數(shù)據(jù)寫(xiě)入第一服務(wù)器的文件接口層緩存的同時(shí)或之后,將該待寫(xiě)入 數(shù)據(jù)發(fā)送至第二服務(wù)器。具體地,發(fā)送模塊63可以在預(yù)設(shè)的緩存同步條件被滿(mǎn)足之后,將該待寫(xiě)入數(shù)據(jù)發(fā) 送至第二服務(wù)器。
本實(shí)施例中,寫(xiě)入模塊62和發(fā)送模塊63實(shí)現(xiàn)了第一服務(wù)器與第二服務(wù)器在文件 接口層進(jìn)行數(shù)據(jù)同步,與現(xiàn)有的在塊設(shè)備層進(jìn)行數(shù)據(jù)同步的方案相比,減少了數(shù)據(jù)處理的 層數(shù),節(jié)約了處理時(shí)間,提高了數(shù)據(jù)同步的性能;并且在文件接口層進(jìn)行數(shù)據(jù)同步,不要求 第一服務(wù)器與第二服務(wù)器的塊設(shè)備層完全一致,甚至第一服務(wù)器與第二服務(wù)器的文件系統(tǒng) 可以采用不同的本地文件系統(tǒng),適用性較高。本實(shí)施例中,接收模塊61還可以接收第二服務(wù)器在將待寫(xiě)入數(shù)據(jù)寫(xiě)入第二服務(wù) 器的文件接口層緩存之后發(fā)送的第一響應(yīng)消息,該第一響應(yīng)消息用于表示第二服務(wù)器將待 寫(xiě)入數(shù)據(jù)寫(xiě)入第二服務(wù)器的文件接口層緩存的操作已完成。這時(shí),發(fā)送模塊63還用于在接 收模塊61接收到第一響應(yīng)消息,并且寫(xiě)入模塊62將待寫(xiě)入數(shù)據(jù)寫(xiě)入第一服務(wù)器的文件接 口層緩存之后,向客戶(hù)端發(fā)送第二響應(yīng)消息,該第二響應(yīng)消息是對(duì)寫(xiě)操作指令的響應(yīng)。本實(shí)施例中,在第一服務(wù)器和第二服務(wù)器將待寫(xiě)入數(shù)據(jù)寫(xiě)入各自的文件接口層緩 存的操作完成之后,發(fā)送模塊63即可向客戶(hù)端發(fā)送第二響應(yīng)消息,而不必等到第一服務(wù)器 和第二服務(wù)器各自的塊設(shè)備層寫(xiě)硬盤(pán)時(shí),再向客戶(hù)端發(fā)送響應(yīng)消息,從而提高了寫(xiě)操作的 響應(yīng)速度。本實(shí)施例中,存儲(chǔ)模塊64,用于將寫(xiě)入模塊62寫(xiě)入第一服務(wù)器的文件接口層緩存中的待寫(xiě)入數(shù)據(jù)存儲(chǔ)至第一服務(wù)器的硬盤(pán)。當(dāng)存儲(chǔ)模塊64在將待寫(xiě)入數(shù)據(jù)存儲(chǔ)至第一服務(wù)器的硬盤(pán)的過(guò)程中發(fā)生故障,未 能將上述待寫(xiě)入數(shù)據(jù)存儲(chǔ)至第一服務(wù)器的硬盤(pán)時(shí),在第一服務(wù)器恢復(fù)正常工作之后,獲取 模塊65根據(jù)第一服務(wù)器中文件系統(tǒng)的事務(wù)日志,從第二服務(wù)器獲取上述待寫(xiě)入數(shù)據(jù);這 時(shí),寫(xiě)入模塊62還用于將獲取模塊65獲取的待寫(xiě)入數(shù)據(jù)寫(xiě)入第一服務(wù)器的文件接口層緩存。然后,同步模塊66可以根據(jù)第二服務(wù)器在第一服務(wù)器發(fā)生故障期間記錄的同步 日志,同步第一服務(wù)器的文件接口層緩存中的數(shù)據(jù)與第二服務(wù)器的文件接口層緩存中的數(shù) 據(jù)。上述第一服務(wù)器可以方便地與第二服務(wù)器實(shí)現(xiàn)數(shù)據(jù)備份,提高了寫(xiě)操作的響應(yīng)速 度;在文件接口層進(jìn)行數(shù)據(jù)同步,提高了數(shù)據(jù)同步的性能;并且在文件接口層進(jìn)行數(shù)據(jù)同 步,不要求兩個(gè)服務(wù)器的塊設(shè)備層完全一致,甚至兩個(gè)服務(wù)器的文件系統(tǒng)可以采用不同的 本地文件系統(tǒng),適用性較高;并且在第一服務(wù)器發(fā)生故障之后,第二服務(wù)器記錄同步日志, 在第一服務(wù)器恢復(fù)正常工作之后,同步模塊66可以根據(jù)同步日志同步兩個(gè)服務(wù)器中的數(shù) 據(jù),可靠性高;另外,本實(shí)施例不需修改客戶(hù)端,不影響客戶(hù)端已有的部署,也不需要第三方 鏡像軟件,簡(jiǎn)化了軟件部署,降低了實(shí)現(xiàn)成本。圖7為本發(fā)明數(shù)據(jù)備份系統(tǒng)一個(gè)實(shí)施例的結(jié)構(gòu)示意圖,如圖7所示,該數(shù)據(jù)備份系 統(tǒng)可以包括客戶(hù)端71、第一服務(wù)器72和第二服務(wù)器73。其中,第一服務(wù)器72,用于接收客戶(hù)端71發(fā)送的寫(xiě)操作指令,將該寫(xiě)操作指令中 的待寫(xiě)入數(shù)據(jù)寫(xiě)入第一服務(wù)器72的文件接口層緩存,并將待寫(xiě)入數(shù)據(jù)發(fā)送至第二服務(wù)器 73,以便第二服務(wù)器73將待寫(xiě)入數(shù)據(jù)寫(xiě)入第二服務(wù)器73的文件接口層緩存。具體地,第一 服務(wù)器72可以采用本發(fā)明圖5或圖6所示的第一服務(wù)器實(shí)現(xiàn);本發(fā)明實(shí)施例對(duì)第二服務(wù)器 73的結(jié)構(gòu)不作限定,第二服務(wù)器73可以采用與第一服務(wù)器72相同或不同的結(jié)構(gòu)。本實(shí)施例中的數(shù)據(jù)備份系統(tǒng)可以應(yīng)用于NAS集群或分布式文件系統(tǒng)。
下面介紹上述數(shù)據(jù)備份系統(tǒng)應(yīng)用于NAS集群時(shí)的部署方式。NAS集群的實(shí)現(xiàn)方式包括(1)集群式NAS設(shè)備企業(yè)可以購(gòu)買(mǎi)現(xiàn)成的NAS集群設(shè)備,這些NAS集群設(shè)備一般 是廠(chǎng)商預(yù)先配置好的,可以很輕松的插入和部署。直接購(gòu)買(mǎi)NAS集群設(shè)備是最簡(jiǎn)單、部署最 快的一種方法。(2) NAS機(jī)頭(NAS head)在存儲(chǔ)設(shè)備之前部署一個(gè)NAS機(jī)頭。NAS機(jī)頭包括集群 文件系統(tǒng),通過(guò)集群文件系統(tǒng),可以把網(wǎng)絡(luò)文件系統(tǒng)統(tǒng)一管理起來(lái)。(3)NAS集群軟件企業(yè)購(gòu)買(mǎi)軟件和集群文件系統(tǒng),然后在該企業(yè)的服務(wù)器上運(yùn) 行,連接到該企業(yè)的存儲(chǔ)設(shè)備和網(wǎng)絡(luò)。NAS集群軟件會(huì)便宜一些,但是部署的工作量較大,另 夕卜,企業(yè)還需要單獨(dú)購(gòu)買(mǎi)服務(wù)器和存儲(chǔ)設(shè)備,部署成本較高。本發(fā)明實(shí)施例以NAS集群采用NAS機(jī)頭的方式實(shí)現(xiàn)為例進(jìn)行說(shuō)明。圖8為本發(fā)明NAS集群一個(gè)實(shí)施例的結(jié)構(gòu)示意圖,該NAS集群采用NAS機(jī)頭的方 式實(shí)現(xiàn)。如圖8所示,在該NAS集群中,客戶(hù)端與主NAS機(jī)頭連接,主NAS機(jī)頭和備用NAS 機(jī)頭分別負(fù)責(zé)不同的NAS節(jié)點(diǎn)。主NAS機(jī)頭與備用NAS機(jī)頭負(fù)責(zé)操作中轉(zhuǎn)和數(shù)據(jù)緩沖,完 成整個(gè)NAS集群的數(shù)據(jù)備份。在主NAS機(jī)頭與備用NAS機(jī)頭進(jìn)行數(shù)據(jù)備份時(shí),可以采用本 發(fā)明圖1、圖3或圖4所示實(shí)施例提供的數(shù)據(jù)備份方法。圖9為本發(fā)明NAS集群另一個(gè)實(shí)施例的結(jié)構(gòu)示意圖,該NAS集群采用NAS機(jī)頭的 方式實(shí)現(xiàn)。如圖9所示,客戶(hù)端與主NAS機(jī)頭連接,主NAS機(jī)頭與備用NAS機(jī)頭之間只負(fù)責(zé) 主備切換,接管下面的NAS節(jié)點(diǎn),由NAS節(jié)點(diǎn)實(shí)現(xiàn)數(shù)據(jù)備份。NAS節(jié)點(diǎn)實(shí)現(xiàn)數(shù)據(jù)備份時(shí),可以 采用本發(fā)明圖1、圖3或圖4所示實(shí)施例提供的數(shù)據(jù)備份方法。本實(shí)施例中,在NAS機(jī)頭上可以維護(hù)備份信息,該備份信息可以分為目錄級(jí)別和 文件級(jí)別的備份信息。該備份信息的格式如下目錄路徑/dirl/dir2/------> NAS 節(jié)點(diǎn) 1,NAS 節(jié)點(diǎn) 2 ;文件路徑/dirl/dir2/largefiel------> NAS 節(jié)點(diǎn) 3,NAS 節(jié)點(diǎn) 4 ;在操作某個(gè)文件或目錄時(shí),選擇一條最長(zhǎng)匹配路徑,那么該最長(zhǎng)匹配路徑描述的 信息,就是此文件或目錄所在的節(jié)點(diǎn)信息。以上述目錄路徑和文件路徑為例,文件/dirl/ dir2/largefiel存放在NAS節(jié)點(diǎn)3與NAS節(jié)點(diǎn)4上;目錄/dirl/dir2/下除文件/dirl/ dir2/largefiel之外的其它文件則存放在NAS節(jié)點(diǎn)1與NAS節(jié)點(diǎn)2上。圖10為本發(fā)明NAS集群再一個(gè)實(shí)施例的結(jié)構(gòu)示意圖,該實(shí)施例綜合本發(fā)明圖8與 圖9所示NAS集群的結(jié)構(gòu),同樣采用NAS機(jī)頭的方式實(shí)現(xiàn)。如圖10所示,主NAS機(jī)頭與備 用NAS機(jī)頭正常工作時(shí),主NAS機(jī)頭和備用NAS機(jī)頭分別負(fù)責(zé)不同的NAS節(jié)點(diǎn),例如主NAS 機(jī)頭負(fù)責(zé)NAS節(jié)點(diǎn)1和NAS節(jié)點(diǎn)2,備用NAS機(jī)頭負(fù)責(zé)NAS節(jié)點(diǎn)3和NAS節(jié)點(diǎn)4。主NAS機(jī) 頭和備用NAS機(jī)頭用于進(jìn)行操作中轉(zhuǎn)和數(shù)據(jù)緩沖,完成整個(gè)NAS集群的數(shù)據(jù)備份。在主NAS 機(jī)頭與備用NAS機(jī)頭進(jìn)行數(shù)據(jù)備份時(shí),可以采用本發(fā)明圖1、圖3或圖4所示實(shí)施例提供的 數(shù)據(jù)備份方法,實(shí)現(xiàn)機(jī)頭級(jí)別的數(shù)據(jù)備份。當(dāng)主NAS機(jī)頭或者備用NAS機(jī)頭發(fā)生故障,例如主NAS機(jī)頭或者備用NAS機(jī)頭掉 線(xiàn)時(shí),由未發(fā)生故障的NAS機(jī)頭全面接管下面所有NAS節(jié)點(diǎn)的操作。在上述圖8、圖9或圖10所示的NAS集群中,還可以將備份的節(jié)點(diǎn)例如備用NAS 機(jī)頭或NAS節(jié)點(diǎn)部署在遠(yuǎn)端,實(shí)現(xiàn)NAS集群遠(yuǎn)程鏡像。
下面介紹上述數(shù)據(jù)備份系統(tǒng)應(yīng)用于分布式文件系統(tǒng)時(shí)的部署方式。圖11為本發(fā)明分布式文件系統(tǒng)一個(gè)實(shí)施例的結(jié)構(gòu)示意圖,本實(shí)施例實(shí)現(xiàn)元數(shù)據(jù) 服務(wù)器備份。在圖11所示分布式文件系統(tǒng)中,客戶(hù)端為應(yīng)用程序提供訪(fǎng)問(wèn)分布式文件系統(tǒng)的 用戶(hù)開(kāi)發(fā)接口,可以部署到多個(gè)應(yīng)用服務(wù)器。元數(shù)據(jù)服務(wù)器負(fù)責(zé)向客戶(hù)端提供整個(gè)分布式文件系統(tǒng)的元數(shù)據(jù),管理整個(gè)分布式 文件系統(tǒng)的命名空間,維護(hù)整個(gè)分布式文件系統(tǒng)的目錄結(jié)構(gòu)和用戶(hù)權(quán)限,并維護(hù)分布式文 件系統(tǒng)的數(shù)據(jù)的一致性。同時(shí)元數(shù)據(jù)服務(wù)器維護(hù)數(shù)據(jù)服務(wù)器的部署信息,為客戶(hù)端提供文 件部署方案。備用元數(shù)據(jù)服務(wù)器,是元數(shù)據(jù)服務(wù)器的備份,在元數(shù)據(jù)服務(wù)器發(fā)生故障時(shí),接管元 數(shù)據(jù)服務(wù)器的工作。本實(shí)施例中,元數(shù)據(jù)服務(wù)器與備用元數(shù)據(jù)服務(wù)器在進(jìn)行數(shù)據(jù)備份時(shí),可 以采用本發(fā)明圖1、圖3或圖4所示實(shí)施例提供的數(shù)據(jù)備份方法。數(shù)據(jù)服務(wù)器為對(duì)象存儲(chǔ)節(jié)點(diǎn),以對(duì)象形式存儲(chǔ)數(shù)據(jù)。分布式文件系統(tǒng)中的文件以 條帶的形式分布到各個(gè)數(shù)據(jù)服務(wù)器上。分布式文件系統(tǒng)通過(guò)元數(shù)據(jù)與數(shù)據(jù)的存儲(chǔ)分離,提高了存儲(chǔ)系統(tǒng)的整體性能。圖12為本發(fā)明分布式文件系統(tǒng)另一個(gè)實(shí)施例的結(jié)構(gòu)示意圖,本實(shí)施例實(shí)現(xiàn)數(shù)據(jù) 服務(wù)器備份。圖12所示分布式文件系統(tǒng)中,客戶(hù)端、元數(shù)據(jù)服務(wù)器和數(shù)據(jù)服務(wù)器的功能,與圖 11所示分布式文件系統(tǒng)中對(duì)應(yīng)網(wǎng)元的功能相同,在此不再贅述。與圖11所示分布式文件系統(tǒng)不同的是,圖12所示分布式文件系統(tǒng)中,為數(shù)據(jù)服務(wù) 器設(shè)置備用數(shù)據(jù)服務(wù)器,實(shí)現(xiàn)數(shù)據(jù)服務(wù)器備份。數(shù)據(jù)服務(wù)器與備用數(shù)據(jù)服務(wù)器在進(jìn)行數(shù)據(jù) 備份時(shí),可以采用本發(fā)明圖1、圖3或圖4所示實(shí)施例提供的數(shù)據(jù)備份方法。圖13為本發(fā)明分布式文件系統(tǒng)再一個(gè)實(shí)施例的結(jié)構(gòu)示意圖,本實(shí)施例實(shí)現(xiàn)元數(shù) 據(jù)服務(wù)器和數(shù)據(jù)服務(wù)器備份。圖13所示分布式文件系統(tǒng)中,客戶(hù)端、元數(shù)據(jù)服務(wù)器和數(shù)據(jù)服務(wù)器的功能,與圖 11所示分布式文件系統(tǒng)中對(duì)應(yīng)網(wǎng)元的功能相同,在此不再贅述。與圖11所示分布式文件系統(tǒng)不同的是,圖13所示分布式文件系統(tǒng)中,不僅設(shè)置備 用元數(shù)據(jù)服務(wù)器,還設(shè)置備用數(shù)據(jù)服務(wù)器,實(shí)現(xiàn)元數(shù)據(jù)服務(wù)器和數(shù)據(jù)服務(wù)器的備份。數(shù)據(jù)服 務(wù)器與備用數(shù)據(jù)服務(wù)器,以及元數(shù)據(jù)服務(wù)器與備用元數(shù)據(jù)服務(wù)器在進(jìn)行數(shù)據(jù)備份時(shí),可以 采用本發(fā)明圖1、圖3或圖4所示實(shí)施例提供的數(shù)據(jù)備份方法。圖14為本發(fā)明分布式文件系統(tǒng)又一個(gè)實(shí)施例的結(jié)構(gòu)示意圖,本實(shí)施例實(shí)現(xiàn)分布 式文件系統(tǒng)的遠(yuǎn)程備份。圖14所示分布式文件系統(tǒng)中,客戶(hù)端、元數(shù)據(jù)服務(wù)器和數(shù)據(jù)服務(wù)器的功能,與圖 11所示分布式文件系統(tǒng)中對(duì)應(yīng)網(wǎng)元的功能相同,在此不再贅述。 與圖11所示分布式文件系統(tǒng)不同的是,圖14所示分布式文件系統(tǒng)中,在本地與遠(yuǎn) 端各部署一個(gè)操作代理,用于同步各種文件接口級(jí)別的操作,實(shí)現(xiàn)數(shù)據(jù)備份。本地與遠(yuǎn)端的 操作代理在進(jìn)行數(shù)據(jù)備份時(shí),可以采用本發(fā)明圖1、圖3或圖4所示實(shí)施例提供的數(shù)據(jù)備份 方法。本發(fā)明實(shí)施例提供的數(shù)據(jù)備份系統(tǒng),可以方便地實(shí)現(xiàn)數(shù)據(jù)備份,提高了寫(xiě)操作的響應(yīng)速度;在文件接口層進(jìn)行數(shù)據(jù)同步,與現(xiàn)有的在塊設(shè)備層進(jìn)行數(shù)據(jù)同步的方案相比,減 少了數(shù)據(jù)處理的層數(shù),節(jié)約了處理時(shí)間,提高了數(shù)據(jù)同步的性能;并且在文件接口層進(jìn)行數(shù) 據(jù)同步,不要求第一服務(wù)器72與第二服務(wù)器73的塊設(shè)備層完全一致,甚至第一服務(wù)器72 與第二服務(wù)器73的文件系統(tǒng)可以采用不同的本地文件系統(tǒng),適用性較高;并且在一個(gè)服務(wù) 器發(fā)生故障之后,另一服務(wù)器記錄同步日志,在發(fā)生故障的服務(wù)器恢復(fù)正常工作之后,可以 根據(jù)同步日志同步兩個(gè)服務(wù)器中的數(shù)據(jù),可靠性高;另外,本實(shí)施例不需修改客戶(hù)端,不影 響客戶(hù)端已有的部署,也不需要第三方鏡像軟件,節(jié)省了部署成本。本領(lǐng)域技術(shù)人員可以理解附圖只是一個(gè)優(yōu)選實(shí)施例的示意圖,附圖中的模塊或流 程并不一定是實(shí)施本發(fā)明所必須的。本領(lǐng)域技術(shù)人員可以理解實(shí)施例中的裝置中的模塊可以按照實(shí)施例描述進(jìn)行分 布于實(shí)施例的裝置中,也可以進(jìn)行相應(yīng)變化位于不同于本實(shí)施例的一個(gè)或多個(gè)裝置中。上 述實(shí)施例的模塊可以合并為一個(gè)模塊,也可以進(jìn)一步拆分成多個(gè)子模塊。最后應(yīng)說(shuō)明的是以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解其依然 可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替 換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精 神和范圍。
權(quán)利要求
一種數(shù)據(jù)備份方法,其特征在于,包括接收客戶(hù)端發(fā)送的寫(xiě)操作指令;將所述寫(xiě)操作指令中的待寫(xiě)入數(shù)據(jù)寫(xiě)入第一服務(wù)器的文件接口層緩存;將所述待寫(xiě)入數(shù)據(jù)發(fā)送至第二服務(wù)器,以便所述第二服務(wù)器將所述待寫(xiě)入數(shù)據(jù)寫(xiě)入所述第二服務(wù)器的文件接口層緩存。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將所述待寫(xiě)入數(shù)據(jù)發(fā)送至第二服務(wù) 器包括在預(yù)設(shè)的緩存同步條件被滿(mǎn)足之后,將所述待寫(xiě)入數(shù)據(jù)發(fā)送至所述第二服務(wù)器。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,還包括將所述寫(xiě)操作指令中的待寫(xiě)入數(shù)據(jù)寫(xiě)入第一服務(wù)器的文件接口層緩存,且接收到所述 第二服務(wù)器在將所述待寫(xiě)入數(shù)據(jù)寫(xiě)入所述第二服務(wù)器的文件接口層緩存之后發(fā)送的第一 響應(yīng)消息之后,向所述客戶(hù)端發(fā)送第二響應(yīng)消息;所述第二響應(yīng)消息是對(duì)所述寫(xiě)操作指令 的響應(yīng)。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,還包括將寫(xiě)入所述第一服務(wù)器的文件接口層緩存中的待寫(xiě)入數(shù)據(jù)存儲(chǔ)至所述第一服務(wù)器的 硬盤(pán)。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,還包括當(dāng)在將所述待寫(xiě)入數(shù)據(jù)存儲(chǔ)至所述第一服務(wù)器的硬盤(pán)的過(guò)程中發(fā)生故障,未能將所述 待寫(xiě)入數(shù)據(jù)存儲(chǔ)至所述第一服務(wù)器的硬盤(pán)時(shí),在所述第一服務(wù)器恢復(fù)正常工作之后,根據(jù) 所述第一服務(wù)器中文件系統(tǒng)的事務(wù)日志,從所述第二服務(wù)器獲取所述待寫(xiě)入數(shù)據(jù),將獲取 的待寫(xiě)入數(shù)據(jù)寫(xiě)入所述第一服務(wù)器的文件接口層緩存;并根據(jù)所述第二服務(wù)器在所述第一 服務(wù)器發(fā)生故障期間記錄的同步日志,將所述第一服務(wù)器的文件接口層緩存中的數(shù)據(jù)與所 述第二服務(wù)器的文件接口層緩存中的數(shù)據(jù)同步。
6.一種第一服務(wù)器,其特征在于,包括接收模塊,用于接收客戶(hù)端發(fā)送的寫(xiě)操作指令;寫(xiě)入模塊,用于將所述接收模塊接收的寫(xiě)操作指令中的待寫(xiě)入數(shù)據(jù)寫(xiě)入所述第一服務(wù) 器的文件接口層緩存;發(fā)送模塊,用于將所述待寫(xiě)入數(shù)據(jù)發(fā)送至第二服務(wù)器,以便所述第二服務(wù)器將所述待 寫(xiě)入數(shù)據(jù)寫(xiě)入所述第二服務(wù)器的文件接口層緩存。
7.根據(jù)權(quán)利要求6所述的第一服務(wù)器,其特征在于,所述發(fā)送模塊具體用于在預(yù)設(shè)的 緩存同步條件被滿(mǎn)足之后,將所述待寫(xiě)入數(shù)據(jù)發(fā)送至所述第二服務(wù)器,以便所述第二服務(wù) 器將所述待寫(xiě)入數(shù)據(jù)寫(xiě)入所述第二服務(wù)器的文件接口層緩存。
8.根據(jù)權(quán)利要求6或7所述的第一服務(wù)器,其特征在于,所述接收模塊還用于接收所述 第二服務(wù)器在將所述待寫(xiě)入數(shù)據(jù)寫(xiě)入所述第二服務(wù)器的文件接口層緩存之后發(fā)送的第一 響應(yīng)消息;所述發(fā)送模塊還用于在所述接收模塊接收到所述第一響應(yīng)消息,并且所述寫(xiě)入模塊將 所述待寫(xiě)入數(shù)據(jù)寫(xiě)入所述第一服務(wù)器的文件接口層緩存之后,向所述客戶(hù)端發(fā)送第二響應(yīng) 消息,所述第二響應(yīng)消息是對(duì)所述寫(xiě)操作指令的響應(yīng)。
9.根據(jù)權(quán)利要求8所述的第一服務(wù)器,其特征在于,還包括存儲(chǔ)模塊,用于將所述寫(xiě)入模塊寫(xiě)入所述第一服務(wù)器的文件接口層緩存中的待寫(xiě)入數(shù) 據(jù)存儲(chǔ)至所述第一服務(wù)器的硬盤(pán)。
10.根據(jù)權(quán)利要求9所述的第一服務(wù)器,其特征在于,還包括獲取模塊和同步模塊, 所述獲取模塊,用于當(dāng)所述第一服務(wù)器在將所述待寫(xiě)入數(shù)據(jù)存儲(chǔ)至所述第一服務(wù)器的硬盤(pán)的過(guò)程中發(fā)生故障,未能將所述待寫(xiě)入數(shù)據(jù)存儲(chǔ)至所述第一服務(wù)器的硬盤(pán)時(shí),在所述 第一服務(wù)器恢復(fù)正常工作之后,根據(jù)所述第一服務(wù)器中文件系統(tǒng)的事務(wù)日志,從所述第二 服務(wù)器獲取所述待寫(xiě)入數(shù)據(jù);所述寫(xiě)入模塊還用于將所述獲取模塊獲取的待寫(xiě)入數(shù)據(jù)寫(xiě)入所述第一服務(wù)器的文件 接口層緩存;所述同步模塊,用于根據(jù)所述第二服務(wù)器在所述第一服務(wù)器發(fā)生故障期間記錄的同步 日志,同步所述第一服務(wù)器的文件接口層緩存中的數(shù)據(jù)與所述第二服務(wù)器的文件接口層緩 存中的數(shù)據(jù)。
11.一種數(shù)據(jù)備份系統(tǒng),其特征在于,包括客戶(hù)端、第一服務(wù)器和第二服務(wù)器,所述第一服務(wù)器,用于接收所述客戶(hù)端發(fā)送的寫(xiě)操作指令,將所述寫(xiě)操作指令中的待 寫(xiě)入數(shù)據(jù)寫(xiě)入所述第一服務(wù)器的文件接口層緩存,并將所述待寫(xiě)入數(shù)據(jù)發(fā)送至所述第二服 務(wù)器,以便所述第二服務(wù)器將所述待寫(xiě)入數(shù)據(jù)寫(xiě)入所述第二服務(wù)器的文件接口層緩存。
全文摘要
本發(fā)明實(shí)施例提供一種數(shù)據(jù)備份方法、系統(tǒng)和服務(wù)器,所述數(shù)據(jù)備份方法包括接收客戶(hù)端發(fā)送的寫(xiě)操作指令;將所述寫(xiě)操作指令中的待寫(xiě)入數(shù)據(jù)寫(xiě)入第一服務(wù)器的文件接口層緩存;將所述待寫(xiě)入數(shù)據(jù)發(fā)送至第二服務(wù)器,以便所述第二服務(wù)器將所述待寫(xiě)入數(shù)據(jù)寫(xiě)入所述第二服務(wù)器的文件接口層緩存。本發(fā)明實(shí)施例可以方便地實(shí)現(xiàn)數(shù)據(jù)備份,由于在文件接口層進(jìn)行數(shù)據(jù)同步,因此提高了數(shù)據(jù)同步的性能,并且在文件接口層進(jìn)行數(shù)據(jù)同步,不要求兩個(gè)服務(wù)器的塊設(shè)備層完全一致,甚至兩個(gè)服務(wù)器的文件系統(tǒng)可以采用不同的本地文件系統(tǒng),適用性較高;另外,本發(fā)明實(shí)施例不需修改客戶(hù)端,不影響客戶(hù)端已有的部署,也不需要第三方鏡像軟件,節(jié)省了部署成本。
文檔編號(hào)H04L29/08GK101808127SQ201010126099
公開(kāi)日2010年8月18日 申請(qǐng)日期2010年3月15日 優(yōu)先權(quán)日2010年3月15日
發(fā)明者徐濤, 楊定國(guó), 胡波 申請(qǐng)人:成都市華為賽門(mén)鐵克科技有限公司