本發(fā)明屬于數(shù)據(jù)通信領(lǐng)域,尤其涉及一種廣域網(wǎng)環(huán)境中的數(shù)據(jù)備份方法及裝置。
背景技術(shù):
在銀行、證券等金融項(xiàng)目中,經(jīng)常會(huì)遇到需要將全國各地的各網(wǎng)點(diǎn)的視頻監(jiān)控錄像,通過廣域網(wǎng)集中備份到某一數(shù)據(jù)中心的情況。現(xiàn)有的視頻監(jiān)控解決方案中,對(duì)視頻監(jiān)控錄像進(jìn)行備份的設(shè)計(jì)使用場(chǎng)景是針對(duì)局域網(wǎng)的,由于局域網(wǎng)中的網(wǎng)絡(luò)帶寬高,數(shù)據(jù)傳輸時(shí)的延時(shí)小,數(shù)據(jù)傳輸過程中的丟包率低,因此現(xiàn)有技術(shù)對(duì)視頻監(jiān)控錄像進(jìn)行備份時(shí)的備份失敗重試策略非常簡單,通常為簡單重試3次,而且每次重試的時(shí)間間隔固定,重試超過三次則認(rèn)為本次備份任務(wù)失??;并且現(xiàn)有技術(shù)對(duì)視頻監(jiān)控錄像進(jìn)行備份時(shí)采用固定的備份速率(例如,固定采用攝像機(jī)生成視頻監(jiān)控錄像時(shí)的實(shí)際數(shù)據(jù)傳輸速率的二倍速或四倍速),不論網(wǎng)絡(luò)質(zhì)量如何都采用該固定的備份速率進(jìn)行視頻監(jiān)控錄像的備份。
與局域網(wǎng)相比,廣域網(wǎng)存在帶寬較低,數(shù)據(jù)傳輸?shù)难訒r(shí)高,并且網(wǎng)絡(luò)中的可用帶寬變化大,穩(wěn)定性差等特點(diǎn),因此通過現(xiàn)有技術(shù)在廣域網(wǎng)中進(jìn)行視頻監(jiān)控錄像的備份時(shí),會(huì)因?yàn)楝F(xiàn)有技術(shù)中備份失敗重試策略簡單而導(dǎo)致備份任務(wù)失敗率高,并且現(xiàn)有技術(shù)采用固定的備份速率進(jìn)行視頻監(jiān)控錄像的備份,會(huì)導(dǎo)致在網(wǎng)絡(luò)擁塞較嚴(yán)重時(shí)因數(shù)據(jù)傳輸?shù)膩G包率高造成備份失敗,在網(wǎng)絡(luò)空閑時(shí)因備份速率不夠高造成無法充分利用網(wǎng)絡(luò)帶寬資源,從而導(dǎo)致備份時(shí)間延長的問題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是提供一種廣域網(wǎng)環(huán)境中的數(shù)據(jù)備份方法及裝置,通過采用一種類指數(shù)退避算法作為備份出錯(cuò)重試策略,降低備份任務(wù)的失敗率,并根據(jù)各備份任務(wù)在備份服務(wù)器中占用的總帶寬、各備份任務(wù)在數(shù)據(jù)源端占用的總帶寬、以及各備份任務(wù)的丟包率,實(shí)時(shí)調(diào)整各備份任務(wù)的備份速率,合理利用廣域網(wǎng)的網(wǎng)絡(luò)帶寬資源和備份服務(wù)器、數(shù)據(jù)源端的備份能力,使各備份任務(wù)能高效、順利地完成。
為了實(shí)現(xiàn)上述目的,本發(fā)明技術(shù)方案如下:
一種廣域網(wǎng)環(huán)境中的數(shù)據(jù)備份方法,應(yīng)用于備份服務(wù)器,預(yù)設(shè)有重傳時(shí)隙,所述廣域網(wǎng)環(huán)境中的數(shù)據(jù)備份方法,包括:
根據(jù)接收到的備份任務(wù),向數(shù)據(jù)源端發(fā)送數(shù)據(jù)備份請(qǐng)求消息;
接收到數(shù)據(jù)源端發(fā)送的數(shù)據(jù)備份拒絕消息或在設(shè)定的時(shí)間段內(nèi)沒有接收到數(shù)據(jù)源端的反饋消息時(shí),重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息;
其中,在每次重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息時(shí),根據(jù)預(yù)設(shè)的與當(dāng)前重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息的重傳次數(shù)正相關(guān)的最大重傳時(shí)隙數(shù)量,間隔小于或等于最大重傳時(shí)隙數(shù)量的重傳時(shí)隙后向數(shù)據(jù)源端重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息,直到接收到數(shù)據(jù)源端發(fā)送的數(shù)據(jù)備份確認(rèn)消息后,開始接收數(shù)據(jù)源端發(fā)送的備份數(shù)據(jù);
在接收備份數(shù)據(jù)的過程中,如果監(jiān)測(cè)到備份任務(wù)失敗,則重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息;
其中,在每次重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息時(shí),根據(jù)預(yù)設(shè)的與當(dāng)前重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息的重傳次數(shù)正相關(guān)的最大重傳時(shí)隙數(shù)量,間隔小于或等于最大重傳時(shí)隙數(shù)量的重傳時(shí)隙后向數(shù)據(jù)源端重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息,直到接收到所有備份數(shù)據(jù)并完成備份。
進(jìn)一步地,所述根據(jù)預(yù)設(shè)的與當(dāng)前重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息的重傳次數(shù)正相關(guān)的最大重傳時(shí)隙數(shù)量,間隔小于或等于最大重傳時(shí)隙數(shù)量的重傳時(shí)隙后向數(shù)據(jù)源端重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息,包括:
第一次重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息時(shí),以初始發(fā)送數(shù)據(jù)備份請(qǐng)求消息的時(shí)間為起始時(shí)間,等待a個(gè)重傳時(shí)隙后重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息;
第i次重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息時(shí)(2≤i≤K),以第i-1次重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息的時(shí)間為起始時(shí)間,隨機(jī)地選擇等待1至2i個(gè)重傳時(shí)隙后,重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息;
第K次之后重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息時(shí),以上一次重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息的時(shí)間為起始時(shí)間,隨機(jī)地選擇等待1至2k個(gè)重傳時(shí)隙后,重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息;
其中a、K為設(shè)定的參數(shù)。
進(jìn)一步地,所述廣域網(wǎng)環(huán)境中的數(shù)據(jù)備份方法,還包括:
在每次重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息時(shí),用當(dāng)前時(shí)間與初始發(fā)送數(shù)據(jù)備份請(qǐng)求的時(shí)間進(jìn)行比對(duì),如果二者之間的時(shí)間差小于設(shè)定的時(shí)間閾值,則重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息;如果二者之間的時(shí)間差大于或等于設(shè)定的時(shí)間閾值,則停止重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息,并將該備份任務(wù)失敗的消息發(fā)送給管理服務(wù)器。
進(jìn)一步地,所述廣域網(wǎng)環(huán)境中的數(shù)據(jù)備份方法,還包括:
在接收備份數(shù)據(jù)的過程中,根據(jù)當(dāng)前各備份任務(wù)在備份服務(wù)器中占用的總帶寬、當(dāng)前各備份任務(wù)在數(shù)據(jù)源端占用的總帶寬、以及各備份任務(wù)的丟包率,調(diào)整各備份任務(wù)的備份速率。
進(jìn)一步地,所述根據(jù)當(dāng)前各備份任務(wù)在備份服務(wù)器中占用的總帶寬、當(dāng)前各備份任務(wù)在數(shù)據(jù)源端占用的總帶寬、以及各備份任務(wù)的丟包率,調(diào)整各備份任務(wù)的備份速率,包括:
將各備份任務(wù)按不同的數(shù)據(jù)源端進(jìn)行分組;
如果備份任務(wù)的丟包率大于或等于設(shè)定的第一閾值,小于設(shè)定的第二閾值,則降低該備份任務(wù)的備份速率;
如果備份任務(wù)的丟包率小于設(shè)定的第一閾值,同時(shí)當(dāng)前各備份任務(wù)在備份服務(wù)器中占用的總帶寬小于設(shè)定的閾值,并且同一個(gè)組內(nèi)各備份任務(wù)在該組對(duì)應(yīng)的數(shù)據(jù)源端上占用的總帶寬小于設(shè)定的閾值,則增加該組內(nèi)備份任務(wù)的備份速率;
如果備份任務(wù)的丟包率小于設(shè)定的第一閾值,但是當(dāng)前備份任務(wù)在備份服務(wù)器中占用的總帶寬大于或等于設(shè)定的閾值,或者同一個(gè)組內(nèi)各備份任務(wù)在該組對(duì)應(yīng)的數(shù)據(jù)源端上占用的總帶寬大于或等于設(shè)定的閾值,則保持該組內(nèi)備份任務(wù)的備份速率不變;
如果備份任務(wù)的丟包率大于或等于設(shè)定的第二閾值,則停止該備份任務(wù),并以比當(dāng)前備份速率更低的備份速率向數(shù)據(jù)源端重新發(fā)送數(shù)據(jù)備份請(qǐng)求,重新執(zhí)行該備份任務(wù)。
本發(fā)明還提出了一種廣域網(wǎng)環(huán)境中的數(shù)據(jù)備份裝置,應(yīng)用于備份服務(wù)器,預(yù)設(shè)有重傳時(shí)隙,所述廣域網(wǎng)環(huán)境中的數(shù)據(jù)備份裝置,包括:
數(shù)據(jù)備份請(qǐng)求模塊,用于根據(jù)接收到的備份任務(wù),向數(shù)據(jù)源端發(fā)送數(shù)據(jù)備份請(qǐng)求消息;
第一數(shù)據(jù)備份重傳請(qǐng)求模塊,用于接收到數(shù)據(jù)源端發(fā)送的數(shù)據(jù)備份拒絕消息或在設(shè)定的時(shí)間段內(nèi)沒有接收到數(shù)據(jù)源端的反饋消息時(shí),重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息;
其中,在每次重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息時(shí),根據(jù)預(yù)設(shè)的與當(dāng)前重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息的重傳次數(shù)正相關(guān)的最大重傳時(shí)隙數(shù)量,間隔小于或等于最大重傳時(shí)隙數(shù)量的重傳時(shí)隙后向數(shù)據(jù)源端重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息,直到接收到數(shù)據(jù)源端發(fā)送的數(shù)據(jù)備份確認(rèn)消息后,開始接收數(shù)據(jù)源端發(fā)送的備份數(shù)據(jù);
第二數(shù)據(jù)重傳請(qǐng)求模塊,用于在接收備份數(shù)據(jù)的過程中,如果監(jiān)測(cè)到備份任務(wù)失敗,則重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息;
其中,在每次重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息時(shí),根據(jù)預(yù)設(shè)的與當(dāng)前重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息的重傳次數(shù)正相關(guān)的最大重傳時(shí)隙數(shù)量,間隔小于或等于最大重傳時(shí)隙數(shù)量的重傳時(shí)隙后向數(shù)據(jù)源端重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息,直到接收到所有備份數(shù)據(jù)并完成備份。
進(jìn)一步地,所述第一數(shù)據(jù)備份重傳請(qǐng)求模塊或第二數(shù)據(jù)備份重傳請(qǐng)求模塊根據(jù)預(yù)設(shè)的與當(dāng)前重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息的重傳次數(shù)正相關(guān)的最大重傳時(shí)隙數(shù)量,間隔小于或等于最大重傳時(shí)隙數(shù)量的重傳時(shí)隙后向數(shù)據(jù)源端重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息,執(zhí)行如下操作:
第一次重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息時(shí),以初始發(fā)送數(shù)據(jù)備份請(qǐng)求消息的時(shí)間為起始時(shí)間,等待a個(gè)重傳時(shí)隙后重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息;
第i次重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息時(shí)(2≤i≤K),以第i-1次重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息的時(shí)間為起始時(shí)間,隨機(jī)地選擇等待1至2i個(gè)重傳時(shí)隙后,重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息;
第K次之后重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息時(shí),以上一次重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息的時(shí)間為起始時(shí)間,隨機(jī)地選擇等待1至2k個(gè)重傳時(shí)隙后,重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息;
其中a、K為設(shè)定的參數(shù)。
進(jìn)一步地,所述第一數(shù)據(jù)備份重傳請(qǐng)求模塊和第二數(shù)據(jù)備份重傳請(qǐng)求模塊還執(zhí)行如下操作:
在每次重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息時(shí),用當(dāng)前時(shí)間與初始發(fā)送數(shù)據(jù)備份請(qǐng)求的時(shí)間進(jìn)行比對(duì),如果二者之間的時(shí)間差小于設(shè)定的時(shí)間閾值,則重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息;如果二者之間的時(shí)間差大于或等于設(shè)定的時(shí)間閾值,則停止重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息,并將該備份任務(wù)失敗的消息發(fā)送給管理服務(wù)器。
進(jìn)一步地,所述廣域網(wǎng)環(huán)境中的數(shù)據(jù)備份裝置,還包括:
速率調(diào)整模塊,用于在接收備份數(shù)據(jù)的過程中,根據(jù)當(dāng)前各備份任務(wù)在備份服務(wù)器中占用的總帶寬、當(dāng)前各備份任務(wù)在數(shù)據(jù)源端占用的總帶寬、以及各備份任務(wù)的丟包率,調(diào)整各備份任務(wù)的備份速率。
進(jìn)一步地,所述速率調(diào)整模塊根據(jù)當(dāng)前各備份任務(wù)在備份服務(wù)器中占用的總帶寬、當(dāng)前各備份任務(wù)在數(shù)據(jù)源端占用的總帶寬、以及各備份任務(wù)的丟包率,調(diào)整各備份任務(wù)的備份速率,執(zhí)行如下操作:
將各備份任務(wù)按不同的數(shù)據(jù)源端進(jìn)行分組;
如果備份任務(wù)的丟包率大于或等于設(shè)定的第一閾值,小于設(shè)定的第二閾值,則降低該備份任務(wù)的備份速率;
如果備份任務(wù)的丟包率小于設(shè)定的第一閾值,同時(shí)當(dāng)前各備份任務(wù)在備份服務(wù)器中占用的總帶寬小于設(shè)定的閾值,并且同一個(gè)組內(nèi)各備份任務(wù)在該組對(duì)應(yīng)的數(shù)據(jù)源端上占用的總帶寬小于設(shè)定的閾值,則增加該組內(nèi)備份任務(wù)的備份速率;
如果備份任務(wù)的丟包率小于設(shè)定的第一閾值,但是當(dāng)前備份任務(wù)在備份服務(wù)器中占用的總帶寬大于或等于設(shè)定的閾值,或者同一個(gè)組內(nèi)各備份任務(wù)在該組對(duì)應(yīng)的數(shù)據(jù)源端上占用的總帶寬大于或等于設(shè)定的閾值,則保持該組內(nèi)備份任務(wù)的備份速率不變;
如果備份任務(wù)的丟包率大于或等于設(shè)定的第二閾值,則停止該備份任務(wù),并以比當(dāng)前備份速率更低的備份速率向數(shù)據(jù)源端重新發(fā)送數(shù)據(jù)備份請(qǐng)求,重新執(zhí)行該備份任務(wù)。
本發(fā)明提出了一種廣域網(wǎng)環(huán)境中的數(shù)據(jù)備份方法及裝置,通過采用更加適應(yīng)廣域網(wǎng)環(huán)境的類指數(shù)退避算法作為備份出錯(cuò)重試策略,能大大降低因數(shù)據(jù)源端能力限制、廣域網(wǎng)網(wǎng)絡(luò)擁塞或異常中斷等問題導(dǎo)致備份任務(wù)失敗的概率,并根據(jù)各備份任務(wù)在備份服務(wù)器中占用的總帶寬、各備份任務(wù)在數(shù)據(jù)源端占用的總帶寬、以及各備份任務(wù)的丟包率,實(shí)時(shí)調(diào)整各備份任務(wù)的備份速率,能更加合理地利用廣域網(wǎng)的網(wǎng)絡(luò)帶寬資源和備份服務(wù)器、數(shù)據(jù)源端的備份能力,使各備份任務(wù)能更高效、順利地完成。
附圖說明
圖1為本發(fā)明廣域網(wǎng)環(huán)境中的數(shù)據(jù)備份方法的流程圖;
圖2為本實(shí)施例廣域網(wǎng)環(huán)境中對(duì)視頻監(jiān)控錄像進(jìn)行備份的網(wǎng)絡(luò)結(jié)構(gòu)示意圖;
圖3為本發(fā)明廣域網(wǎng)環(huán)境中的數(shù)據(jù)備份裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明技術(shù)方案做進(jìn)一步詳細(xì)說明,以下實(shí)施例不構(gòu)成對(duì)本發(fā)明的限定。
本實(shí)施例一種廣域網(wǎng)環(huán)境中的數(shù)據(jù)備份方法,應(yīng)用于備份服務(wù)器,如圖1所示,包括:
步驟S1、根據(jù)接收到的備份任務(wù),向數(shù)據(jù)源端發(fā)送數(shù)據(jù)備份請(qǐng)求消息。
本實(shí)施例以廣域網(wǎng)環(huán)境中視頻監(jiān)控錄像的備份為例進(jìn)行說明,如圖2所示,用于備份視頻監(jiān)控錄像的數(shù)據(jù)中心和各分支機(jī)構(gòu)通過廣域網(wǎng)進(jìn)行連接,數(shù)據(jù)中心包括管理服務(wù)器和備份服務(wù)器,各分支機(jī)構(gòu)包括攝像機(jī)和存儲(chǔ)視頻監(jiān)控錄像的數(shù)據(jù)源。數(shù)據(jù)中心的管理服務(wù)器根據(jù)視頻監(jiān)控錄像的備份要求生成備份任務(wù),并將備份任務(wù)下發(fā)給備份服務(wù)器,備份服務(wù)器根據(jù)接收到的備份任務(wù),通過廣域網(wǎng)對(duì)各分支機(jī)構(gòu)中視頻監(jiān)控錄像的數(shù)據(jù)源中的視頻監(jiān)控錄像進(jìn)行備份。本實(shí)施例視頻監(jiān)控錄像的數(shù)據(jù)源為視頻監(jiān)控系統(tǒng)中的NVR、DVR或其它視頻監(jiān)控錄像存儲(chǔ)設(shè)備,為了便于描述,本實(shí)施例以NVR作為視頻監(jiān)控錄像的數(shù)據(jù)源為例來進(jìn)行說明。
管理服務(wù)器中記錄有各分支機(jī)構(gòu)中NVR的IP地址以及接入各NVR的攝像機(jī)的ID號(hào),管理服務(wù)器根據(jù)視頻監(jiān)控錄像的備份要求生成包含需要備份視頻監(jiān)控錄像的NVR的IP地址、攝像機(jī)ID號(hào)、需要備份的視頻監(jiān)控錄像的時(shí)間段的備份任務(wù),然后將備份任務(wù)下發(fā)給備份服務(wù)器。
備份服務(wù)器接收到備份任務(wù)后,根據(jù)備份任務(wù)中NVR的IP地址向NVR發(fā)送數(shù)據(jù)備份請(qǐng)求消息,該數(shù)據(jù)備份請(qǐng)求消息中攜帶有需要進(jìn)行備份的攝像機(jī)的ID號(hào)、備份的視頻監(jiān)控錄像時(shí)間段、以及數(shù)據(jù)備份的速率,本實(shí)施例數(shù)據(jù)備份的速率以攝像機(jī)生成視頻監(jiān)控錄像時(shí)的實(shí)際數(shù)據(jù)傳輸速率為基準(zhǔn)速率,數(shù)據(jù)備份速率為該基準(zhǔn)速率的N倍,具體采用幾倍速需要根據(jù)實(shí)際的網(wǎng)絡(luò)環(huán)境進(jìn)行配置,本實(shí)施例在數(shù)據(jù)備份請(qǐng)求消息中攜帶的數(shù)據(jù)備份速率一般設(shè)置為二倍速。
步驟S2、接收到數(shù)據(jù)源端發(fā)送的數(shù)據(jù)備份拒絕消息或在設(shè)定的時(shí)間段內(nèi)沒有接收到數(shù)據(jù)源端的反饋消息時(shí),重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息,直到接收到數(shù)據(jù)源端發(fā)送的數(shù)據(jù)備份確認(rèn)消息后,開始接收數(shù)據(jù)源端發(fā)送的備份數(shù)據(jù)。
本實(shí)施例備份服務(wù)器在每次重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息時(shí),根據(jù)預(yù)設(shè)的與當(dāng)前重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息的重傳次數(shù)正相關(guān)的最大重傳時(shí)隙數(shù)量,間隔小于或等于最大重傳時(shí)隙數(shù)量的重傳時(shí)隙后向數(shù)據(jù)源端重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息。
本實(shí)施例NVR接收到備份服務(wù)器發(fā)送的數(shù)據(jù)備份請(qǐng)求消息后,查詢本NVR的當(dāng)前處理能力是否已達(dá)到上限(包括本NVR的當(dāng)前視頻連接數(shù)是否已達(dá)到上限以及當(dāng)前使用帶寬是否達(dá)到可使用帶寬的上限),如果本NVR的當(dāng)前處理能力沒有達(dá)到上限,則反饋數(shù)據(jù)備份確認(rèn)消息給備份服務(wù)器,然后NVR將備份服務(wù)器請(qǐng)求備份的視頻監(jiān)控錄像發(fā)送給備份服務(wù)器;如果本NVR的當(dāng)前處理能力達(dá)到上限,則反饋數(shù)據(jù)備份拒絕消息給備份服務(wù)器。
需要說明的是,NVR反饋給備份服務(wù)器的數(shù)據(jù)備份確認(rèn)消息中攜帶有NVR的帶寬值,備份服務(wù)器可以根據(jù)NVR的帶寬值以及該NVR上各備份任務(wù)的備份速率判斷該NVR是否達(dá)到能力上限。
如果備份服務(wù)器接收到NVR反饋的消息為數(shù)據(jù)備份確認(rèn)消息,則開始接收NVR發(fā)送的視頻監(jiān)控錄像,并將接收到的視頻監(jiān)控錄像備份到備份服務(wù)器的存儲(chǔ)單元中;如果備份服務(wù)器接收到NVR反饋的消息為數(shù)據(jù)備份拒絕消息或者備份服務(wù)器在設(shè)定的時(shí)間段內(nèi)沒有接收到NVR發(fā)送的反饋消息,則根據(jù)設(shè)定的出錯(cuò)重試策略向數(shù)據(jù)源端重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息,直到接收到NVR發(fā)送的數(shù)據(jù)備份確認(rèn)消息后,開始接收NVR發(fā)送的視頻監(jiān)控錄像,并將接收到的視頻監(jiān)控錄像備份到備份服務(wù)器的存儲(chǔ)單元中。
優(yōu)選地,本實(shí)施例設(shè)定的出錯(cuò)重試策略為一種類指數(shù)退避算法,具體為:
設(shè)置重傳時(shí)隙為重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息時(shí)等待的時(shí)間單位。本實(shí)施例重傳時(shí)隙設(shè)置為n秒鐘,n為參數(shù),可以設(shè)置為1-20秒,本實(shí)施例將n設(shè)置為10。
第一次重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息時(shí),以初始發(fā)送數(shù)據(jù)備份請(qǐng)求消息的時(shí)間為起始時(shí)間,等待a個(gè)重傳時(shí)隙(即n*a秒)后重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息。a為參數(shù),當(dāng)重傳時(shí)隙為10秒時(shí),可以取值為1,即等待1個(gè)重傳時(shí)隙后重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息。a的取值根據(jù)實(shí)際情況來設(shè)定,根據(jù)重傳時(shí)隙的大小n,a的取值隨之變化,例如當(dāng)n為5時(shí),a可以取2,當(dāng)n為2時(shí),a可以取5,這里不再贅述。
第i次重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息時(shí)(2≤i≤K),以第i-1次重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息的時(shí)間為起始時(shí)間,隨機(jī)地選擇等待1至2i個(gè)重傳時(shí)隙后,重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息。i為重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息的序號(hào)。
第K次之后重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息時(shí),以上一次重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息的時(shí)間為起始時(shí)間,隨機(jī)地選擇等待1至2k個(gè)重傳時(shí)隙后,重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息,使前后兩次重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息的最大時(shí)間間隔控制在n*2k秒內(nèi),避免重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息的等待時(shí)間太長導(dǎo)致重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息的次數(shù)太少,從而影響數(shù)據(jù)備份成功的概率。K為設(shè)定的參數(shù),其取值根據(jù)能夠容忍的重傳時(shí)間間隔來設(shè)定,例如本實(shí)施例將K設(shè)置為6,使前后兩次重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息的最大時(shí)間間隔控制在640秒內(nèi)。
本實(shí)施例設(shè)定的出錯(cuò)重試策略也可以為:
將重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息時(shí)等待的時(shí)間單位設(shè)置為10秒鐘的時(shí)隙;
每次重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息時(shí),以上一次發(fā)送數(shù)據(jù)備份請(qǐng)求消息的時(shí)間為起始時(shí)間,隨機(jī)性地選擇等待1至64個(gè)重傳時(shí)隙后,重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息。
在上述實(shí)施例中,在每次重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息時(shí),都預(yù)設(shè)與當(dāng)前重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息的重傳次數(shù)正相關(guān)的最大重傳時(shí)隙數(shù)量,例如為對(duì)第i次重傳,其與當(dāng)前重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息的重傳次數(shù)正相關(guān)的最大重傳時(shí)隙數(shù)量為2i個(gè)重傳時(shí)隙,該最大重傳時(shí)隙數(shù)量可以自定義,還可以設(shè)置為8*i等。
需要說明的是,由于備份任務(wù)具有較強(qiáng)的時(shí)限性,以備份任務(wù)開始執(zhí)行的時(shí)間為起點(diǎn),超過設(shè)定的時(shí)間閾值(例如,12小時(shí))還沒有進(jìn)行正常的數(shù)據(jù)備份是不可接受的,將當(dāng)作該備份任務(wù)失敗來處理。因此本實(shí)施例備份服務(wù)器會(huì)記錄每個(gè)備份任務(wù)初始發(fā)送數(shù)據(jù)備份請(qǐng)求的時(shí)間,并在每次重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息時(shí),用當(dāng)前時(shí)間與初始發(fā)送數(shù)據(jù)備份請(qǐng)求的時(shí)間進(jìn)行比對(duì),如果二者之間的時(shí)間差小于設(shè)定的時(shí)間閾值,則重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息;如果二者之間的時(shí)間差大于或等于設(shè)定的時(shí)間閾值,則停止重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息,并將該備份任務(wù)失敗的消息發(fā)送給管理服務(wù)器。
或者,也可以認(rèn)為重傳次數(shù)沖過設(shè)定閾值后,例如設(shè)定閾值為12次,即重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息超過12次后,則停止重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息,并將該備份任務(wù)失敗的消息發(fā)送給管理服務(wù)器。
本實(shí)施例備份服務(wù)器通過上述出錯(cuò)重試策略,能大大降低因數(shù)據(jù)源端能力限制、廣域網(wǎng)網(wǎng)絡(luò)擁塞或異常中斷等問題導(dǎo)致備份任務(wù)失敗的概率,有利于備份任務(wù)的順利完成。
步驟S3、在接收備份數(shù)據(jù)的過程中,如果監(jiān)測(cè)到備份任務(wù)失敗,則重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息,直到接收到所有備份數(shù)據(jù)并完成備份。
本實(shí)施例備份服務(wù)器在每次重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息時(shí),根據(jù)預(yù)設(shè)的與當(dāng)前重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息的重傳次數(shù)正相關(guān)的最大重傳時(shí)隙數(shù)量,間隔小于或等于最大重傳時(shí)隙數(shù)量的重傳時(shí)隙后向數(shù)據(jù)源端重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息。具體的方法與前面的重傳方法相同,這里不再贅述。
本實(shí)施例備份服務(wù)器在接收NVR發(fā)送的視頻監(jiān)控錄像的過程中,會(huì)實(shí)時(shí)監(jiān)測(cè)各備份任務(wù)的備份情況,如果備份服務(wù)器監(jiān)測(cè)到某個(gè)備份任務(wù)失敗(例如,因網(wǎng)絡(luò)擁塞或突發(fā)性中斷導(dǎo)致接收不到后續(xù)的視頻監(jiān)控錄像,因備份服務(wù)器寫入數(shù)據(jù)失敗導(dǎo)致接收到的視頻監(jiān)控錄像丟失等),則按步驟S2中所述的出錯(cuò)重試策略向NVR重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息,直到接收到該備份任務(wù)的所有視頻監(jiān)控錄像并完成備份。
本實(shí)施例備份服務(wù)器在接收NVR發(fā)送的視頻監(jiān)控錄像的過程中,還會(huì)實(shí)時(shí)統(tǒng)計(jì)當(dāng)前備份任務(wù)的信息,包括當(dāng)前備份任務(wù)在備份服務(wù)器中占用的總帶寬、當(dāng)前各備份任務(wù)的數(shù)據(jù)包丟包率、當(dāng)前各備份任務(wù)在NVR上占用的總帶寬、以及當(dāng)前各備份任務(wù)的丟包率,并根據(jù)當(dāng)前備份任務(wù)的信息調(diào)整備份任務(wù)的備份速率。
具體地,備份服務(wù)器對(duì)當(dāng)前備份任務(wù)在備份服務(wù)器中占用的總帶寬進(jìn)行實(shí)時(shí)統(tǒng)計(jì),然后計(jì)算出當(dāng)前備份任務(wù)在備份服務(wù)器中占用的總帶寬與備份服務(wù)器的帶寬的比值,如果計(jì)算出的比值大于或等于設(shè)定的閾值,則認(rèn)為備份服務(wù)器已經(jīng)達(dá)到能力上限,不能再提高備份任務(wù)的備份速率;如果計(jì)算出的比值小于設(shè)定的閾值,則認(rèn)為備份服務(wù)器沒有達(dá)到能力上限,可以提高備份任務(wù)的備份速率。
由于本實(shí)施例的備份任務(wù)針對(duì)多個(gè)不同的NVR進(jìn)行,同一個(gè)NVR上的備份任務(wù)受該NVR的處理能力的限制,因此本實(shí)施例將各備份任務(wù)按不同的NVR進(jìn)行分組。備份服務(wù)器統(tǒng)計(jì)同一個(gè)組內(nèi)各備份任務(wù)在該組對(duì)應(yīng)的NVR上占用的總帶寬,然后計(jì)算統(tǒng)計(jì)出的總帶寬與該NVR的帶寬的比值,如果計(jì)算出的比值大于或等于設(shè)定的閾值,則認(rèn)為該NVR的能力達(dá)到上限,不能增加該NVR上備份任務(wù)的傳輸速率;如果計(jì)算出的比值小于設(shè)定的閾值,則認(rèn)為該NVR的能力沒有達(dá)到上限,可以增加該NVR上備份任務(wù)的傳輸速率。
本實(shí)施例備份服務(wù)器還會(huì)統(tǒng)計(jì)各備份任務(wù)的丟包率,如果統(tǒng)計(jì)出某個(gè)備份任務(wù)的丟包率大于或等于設(shè)定的第一閾值,則認(rèn)為該備份任務(wù)發(fā)送的視頻監(jiān)控錄像所經(jīng)過的廣域網(wǎng)傳輸路徑的帶寬不夠,需要降低該備份任務(wù)的備份速率;如果統(tǒng)計(jì)出某個(gè)備份任務(wù)的丟包率小于設(shè)定的第一閾值,則認(rèn)為該備份任務(wù)發(fā)送的視頻監(jiān)控錄像所經(jīng)過的廣域網(wǎng)傳輸路徑的帶寬足夠,可以增加該備份任務(wù)的備份速率。
基于上述機(jī)制,本實(shí)施例備份服務(wù)器根據(jù)實(shí)時(shí)統(tǒng)計(jì)出的當(dāng)前各備份任務(wù)的信息,對(duì)備份任務(wù)的備份速率進(jìn)行如下調(diào)整:
如果備份任務(wù)的丟包率大于或等于設(shè)定的第一閾值,小于設(shè)定的第二閾值,則降低該備份任務(wù)的備份速率,以減小該備份任務(wù)占用的廣域網(wǎng)網(wǎng)絡(luò)帶寬,降低該備份任務(wù)的丟包率,避免因廣域網(wǎng)的網(wǎng)絡(luò)質(zhì)量進(jìn)一步惡化而導(dǎo)致該備份任務(wù)無法順利完成;
如果備份任務(wù)的丟包率小于設(shè)定的第一閾值,同時(shí)當(dāng)前各備份任務(wù)在備份服務(wù)器中占用的總帶寬小于設(shè)定的閾值,并且同一個(gè)組內(nèi)各備份任務(wù)在該組對(duì)應(yīng)的NVR上占用的總帶寬小于設(shè)定的閾值,則增加該組內(nèi)備份任務(wù)的備份速率,以充分利用廣域網(wǎng)的網(wǎng)絡(luò)帶寬和備份服務(wù)器、NVR的備份能力,縮短備份任務(wù)的完成時(shí)間;
如果備份任務(wù)的丟包率小于設(shè)定的第一閾值,但是當(dāng)前備份任務(wù)在備份服務(wù)器中占用的總帶寬大于或等于設(shè)定的閾值,或者同一個(gè)組內(nèi)各備份任務(wù)在該組對(duì)應(yīng)的NVR上占用的總帶寬大于或等于設(shè)定的閾值,則保持該組內(nèi)備份任務(wù)的備份速率不變。
需要說明的是,如果視頻監(jiān)控錄像在備份過程中出現(xiàn)丟包,會(huì)導(dǎo)致備份的視頻監(jiān)控錄像的質(zhì)量下降,當(dāng)視頻監(jiān)控錄像在備份過程中的丟包率大于一定的值后,備份的視頻監(jiān)控錄像會(huì)出現(xiàn)嚴(yán)重的花屏和卡頓,使備份的視頻監(jiān)控錄像不可用,因此本實(shí)施例備份服務(wù)器在檢測(cè)到備份任務(wù)的丟包率大于或等于設(shè)定的第二閾值后,會(huì)停止該備份任務(wù),并以比當(dāng)前備份速率更低的備份速率向NVR重新發(fā)送數(shù)據(jù)備份請(qǐng)求,重新執(zhí)行該備份任務(wù)。
通過上述方法,本實(shí)施例備份服務(wù)器能根據(jù)廣域網(wǎng)的網(wǎng)絡(luò)質(zhì)量、備份服務(wù)器的帶寬占用情況以及數(shù)據(jù)源端的帶寬占用情況,實(shí)時(shí)調(diào)整各備份任務(wù)的備份速率,合理利用廣域網(wǎng)的網(wǎng)絡(luò)帶寬資源和備份服務(wù)器、數(shù)據(jù)源端的備份能力,使各備份任務(wù)能高效、順利地完成。
本實(shí)施例還提出了一種廣域網(wǎng)環(huán)境中的數(shù)據(jù)備份裝置,應(yīng)用于備份服務(wù)器,與上述方法對(duì)應(yīng),如圖3所示,包括:
數(shù)據(jù)備份請(qǐng)求模塊,用于根據(jù)接收到的備份任務(wù),向數(shù)據(jù)源端發(fā)送數(shù)據(jù)備份請(qǐng)求消息;
第一數(shù)據(jù)備份重傳請(qǐng)求模塊,用于接收到數(shù)據(jù)源端發(fā)送的數(shù)據(jù)備份拒絕消息或在設(shè)定的時(shí)間段內(nèi)沒有接收到數(shù)據(jù)源端的反饋消息時(shí),重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息;
其中,在每次重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息時(shí),根據(jù)預(yù)設(shè)的與當(dāng)前重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息的重傳次數(shù)正相關(guān)的最大重傳時(shí)隙數(shù)量,間隔小于或等于最大重傳時(shí)隙數(shù)量的重傳時(shí)隙后向數(shù)據(jù)源端重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息,直到接收到數(shù)據(jù)源端發(fā)送的數(shù)據(jù)備份確認(rèn)消息后,開始接收數(shù)據(jù)源端發(fā)送的備份數(shù)據(jù);
第二數(shù)據(jù)重傳請(qǐng)求模塊,用于在接收備份數(shù)據(jù)的過程中,如果監(jiān)測(cè)到備份任務(wù)失敗,則重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息;
其中,在每次重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息時(shí),根據(jù)預(yù)設(shè)的與當(dāng)前重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息的重傳次數(shù)正相關(guān)的最大重傳時(shí)隙數(shù)量,間隔小于或等于最大重傳時(shí)隙數(shù)量的重傳時(shí)隙后向數(shù)據(jù)源端重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息,直到接收到所有備份數(shù)據(jù)并完成備份。
與以上方法對(duì)應(yīng),本實(shí)施例第一數(shù)據(jù)備份重傳請(qǐng)求模塊或第二數(shù)據(jù)備份重傳請(qǐng)求模塊根據(jù)預(yù)設(shè)的與當(dāng)前重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息的重傳次數(shù)正相關(guān)的最大重傳時(shí)隙數(shù)量,間隔小于或等于最大重傳時(shí)隙數(shù)量的重傳時(shí)隙后向數(shù)據(jù)源端重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息,執(zhí)行如下操作:
第一次重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息時(shí),以初始發(fā)送數(shù)據(jù)備份請(qǐng)求消息的時(shí)間為起始時(shí)間,等待a個(gè)重傳時(shí)隙后重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息;
第i次重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息時(shí)(2≤i≤K),以第i-1次重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息的時(shí)間為起始時(shí)間,隨機(jī)地選擇等待1至2i個(gè)重傳時(shí)隙后,重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息;
第K次之后重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息時(shí),以上一次重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息的時(shí)間為起始時(shí)間,隨機(jī)地選擇等待1至2k個(gè)重傳時(shí)隙后,重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息;
其中a、K為設(shè)定的參數(shù)。
本實(shí)施例第一數(shù)據(jù)備份重傳請(qǐng)求模塊和第二數(shù)據(jù)備份重傳請(qǐng)求模塊還執(zhí)行如下操作:
在每次重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息時(shí),用當(dāng)前時(shí)間與初始發(fā)送數(shù)據(jù)備份請(qǐng)求的時(shí)間進(jìn)行比對(duì),如果二者之間的時(shí)間差小于設(shè)定的時(shí)間閾值,則重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息;如果二者之間的時(shí)間差大于或等于設(shè)定的時(shí)間閾值,則停止重新發(fā)送數(shù)據(jù)備份請(qǐng)求消息,并將該備份任務(wù)失敗的消息發(fā)送給管理服務(wù)器。
本實(shí)施例廣域網(wǎng)環(huán)境中的數(shù)據(jù)備份裝置,還包括:
速率調(diào)整模塊,用于在接收備份數(shù)據(jù)的過程中,根據(jù)當(dāng)前各備份任務(wù)在備份服務(wù)器中占用的總帶寬、當(dāng)前各備份任務(wù)在數(shù)據(jù)源端占用的總帶寬、以及各備份任務(wù)的丟包率,調(diào)整各備份任務(wù)的備份速率。
本實(shí)施例速率調(diào)整模塊根據(jù)當(dāng)前各備份任務(wù)在備份服務(wù)器中占用的總帶寬、當(dāng)前各備份任務(wù)在數(shù)據(jù)源端占用的總帶寬、以及各備份任務(wù)的丟包率,調(diào)整各備份任務(wù)的備份速率,執(zhí)行如下操作:
將各備份任務(wù)按不同的數(shù)據(jù)源端進(jìn)行分組;
如果備份任務(wù)的丟包率大于或等于設(shè)定的第一閾值,小于設(shè)定的第二閾值,則降低該備份任務(wù)的備份速率;
如果備份任務(wù)的丟包率小于設(shè)定的第一閾值,同時(shí)當(dāng)前各備份任務(wù)在備份服務(wù)器中占用的總帶寬小于設(shè)定的閾值,并且同一個(gè)組內(nèi)各備份任務(wù)在該組對(duì)應(yīng)的數(shù)據(jù)源端上占用的總帶寬小于設(shè)定的閾值,則增加該組內(nèi)備份任務(wù)的備份速率;
如果備份任務(wù)的丟包率小于設(shè)定的第一閾值,但是當(dāng)前備份任務(wù)在備份服務(wù)器中占用的總帶寬大于或等于設(shè)定的閾值,或者同一個(gè)組內(nèi)各備份任務(wù)在該組對(duì)應(yīng)的數(shù)據(jù)源端上占用的總帶寬大于或等于設(shè)定的閾值,則保持該組內(nèi)備份任務(wù)的備份速率不變;
如果備份任務(wù)的丟包率大于或等于設(shè)定的第二閾值,則停止該備份任務(wù),并以比當(dāng)前備份速率更低的備份速率向數(shù)據(jù)源端重新發(fā)送數(shù)據(jù)備份請(qǐng)求,重新執(zhí)行該備份任務(wù)。
以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案而非對(duì)其進(jìn)行限制,在不背離本發(fā)明精神及其實(shí)質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護(hù)范圍。