一種多機備份的方法和系統(tǒng)的制作方法
【技術領域】
[0001]本發(fā)明涉及計算機領域,尤其涉及一種多機備份的方法和系統(tǒng)。
【背景技術】
[0002]對于大型的業(yè)務系統(tǒng),往往需要保證業(yè)務進程的可靠性及連續(xù)性,例如通過在多臺機器上部署業(yè)務進程,在原始機器執(zhí)行業(yè)務進程宕機時,其它的機器可以作為備份機器執(zhí)行該業(yè)務進程,從而及時恢復該業(yè)務進程。
[0003]其中,為了備份機器能夠順利接管原始機器執(zhí)行該業(yè)務進程,其需要該業(yè)務進程在原始機器宕機時的數(shù)據(jù)。例如,對于QQ、淘寶等大型業(yè)務系統(tǒng),在原始機器宕機后,備份機器接管原始機器后執(zhí)行業(yè)務進程,其需要QQ、淘寶等業(yè)務系統(tǒng)中的用戶注冊信息、用戶的等級信息、用戶收藏夾信息等等。否則備份機器執(zhí)行業(yè)務進程后,將無法識別哪些用戶是注冊用戶,哪些是非注冊用戶。
[0004]現(xiàn)有技術中,通常僅在業(yè)務進程中定義存儲在磁盤中的數(shù)據(jù)的類型,如用戶注冊信息、用戶的等級信息及用戶收藏夾信息等等需要保存記錄的信息。這樣在業(yè)務進程執(zhí)行過程中,若存在執(zhí)行用戶注冊的任務時,用戶進程將用戶注冊信息存儲在磁盤中,其它執(zhí)行過程中的數(shù)據(jù)僅記錄在業(yè)務進程的內(nèi)存,以供業(yè)務進程在執(zhí)行過程中調(diào)用。
[0005]但是,原始機器宕機該業(yè)務進程停止之后,該業(yè)務進程在原始機器的內(nèi)存空間的數(shù)據(jù)就會丟失。在備份機器接管原始機器執(zhí)行該業(yè)務進程時,原始機器僅能將該業(yè)務進程在磁盤中的數(shù)據(jù)備份給備份機器,無法將該內(nèi)存空間的數(shù)據(jù)備份給備份機器。這樣備份機器如果基于存儲在磁盤中的數(shù)據(jù)恢復該業(yè)務進程,會造成備份機器執(zhí)行業(yè)務進程時和原始機器宕機時,該業(yè)務進程的狀態(tài)不一致,例如,在宕機之前,業(yè)務進程的狀態(tài)為用戶登錄在線,備份機器接管原始機器后,由于備份機器并沒有用戶登錄在線數(shù)據(jù),業(yè)務進程的狀態(tài)為用戶不在線的狀態(tài)。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的實施例提供一種多機備份的方法和系統(tǒng),原始機器通過調(diào)用業(yè)務進程的mmap (),并定義業(yè)務進程的內(nèi)存為共享,以使得通過調(diào)用mysncO將業(yè)務進程中的內(nèi)存中數(shù)據(jù)能夠?qū)懭氪疟P中,這樣在將磁盤中的數(shù)據(jù)發(fā)送給備份機器后,備份機器在接管原始機器后,其基于原始機器的業(yè)務進程的內(nèi)存中的數(shù)據(jù)恢復該業(yè)務進程,從而保證了原始機器和備份機器的業(yè)務進程的內(nèi)存級數(shù)據(jù)的同步,進而避免了備份機器恢復業(yè)務進程后,和原始機器的業(yè)務進程狀態(tài)不一致的問題。
[0007]為達到上述目的,本發(fā)明的實施例采用如下技術方案:
[0008]一方面,本發(fā)明實施例提供了一種多機備份的方法,所述多機包括原始機器和至少一臺與其連接的備份機器,該方法包括:
[0009]原始機器調(diào)用業(yè)務進程的創(chuàng)建內(nèi)存映像函數(shù)mmap (),將所述業(yè)務進程的數(shù)據(jù)映射進內(nèi)存,且標明所述內(nèi)存中映射所述數(shù)據(jù)的映射區(qū)域為共享;
[0010]所述原始機器調(diào)用刷新變化函數(shù)msync (),將所述映射區(qū)域內(nèi)的所述業(yè)務進程的數(shù)據(jù)寫入到后備文件中;其中,所述后備文件位于磁盤中;
[0011 ] 所述原始機器將所述后備文件中的數(shù)據(jù)發(fā)送給備份機器。
[0012]另一方面,本發(fā)明實施例提供了一種多機備份系統(tǒng),所述系統(tǒng)包括原始機器和至少一臺與其連接的備份機器,所述原始機器包括內(nèi)存映射模塊、數(shù)據(jù)刷新模塊和數(shù)據(jù)發(fā)送模塊;
[0013]所述內(nèi)存映射模塊,用于調(diào)用業(yè)務進程的創(chuàng)建內(nèi)存映像函數(shù)mmap(),將所述業(yè)務進程的數(shù)據(jù)映射進內(nèi)存,且標明所述內(nèi)存中映射所述數(shù)據(jù)的映射區(qū)域為共享;
[0014]所述數(shù)據(jù)刷新模塊,用于調(diào)用刷新變化函數(shù)msync (),將所述映射區(qū)域內(nèi)的所述業(yè)務進程的數(shù)據(jù)寫入到后備文件中;其中,所述后備文件位于磁盤中;
[0015]所述數(shù)據(jù)發(fā)送模塊,用于將所述后備文件中的數(shù)據(jù)發(fā)送給備份機器。
[0016]本發(fā)明實施例提供的一種多機備份的方法和系統(tǒng),該方法包括:原始機器調(diào)用業(yè)務進程的創(chuàng)建內(nèi)存映像函數(shù)mmap (),將所述業(yè)務進程的數(shù)據(jù)映射進內(nèi)存,且標明所述內(nèi)存中映射所述數(shù)據(jù)的映射區(qū)域為共享;所述原始機器調(diào)用刷新變化函數(shù)msyncO,將所述映射區(qū)域內(nèi)的所述業(yè)務進程的數(shù)據(jù)寫入到后備文件中;其中,所述后備文件位于磁盤中;所述原始機器將所述后備文件中的數(shù)據(jù)發(fā)送給備份機器?;谏鲜龅募夹g方案,由于原始機器通過調(diào)用業(yè)務進程的mmap (),并定義業(yè)務進程的內(nèi)存為共享,以使得通過調(diào)用mysnc ()將業(yè)務進程中的內(nèi)存中數(shù)據(jù)能夠?qū)懭氪疟P中,這樣在將磁盤中的數(shù)據(jù)發(fā)送給備份機器后,備份機器在接管原始機器后,其基于原始機器的業(yè)務進程的內(nèi)存中的數(shù)據(jù)恢復該業(yè)務進程,從而保證了原始機器和備份機器的業(yè)務進程的內(nèi)存級數(shù)據(jù)的同步,進而避免了備份機器恢復業(yè)務進程后,和原始機器的業(yè)務進程狀態(tài)不一致的問題。
【附圖說明】
[0017]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0018]圖1為一種多機備份系統(tǒng)框架意圖;
[0019]圖2為本發(fā)明實施例提供的一種多機備份的方法流程示意圖;
[0020]圖3為本發(fā)明實施例提供的另一種多機備份的方法流程示意圖;
[0021]圖4為本發(fā)明實施例提供的一種多機備份系統(tǒng)框架示意圖一;
[0022]圖5為本發(fā)明實施例提供的一種多機備份系統(tǒng)框架示意圖二。
【具體實施方式】
[0023]下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0024]實施例一
[0025]如圖1所示的多機備份系統(tǒng)框圖,本發(fā)明實施例提供的一種多機備份的方法基于該多機備份的系統(tǒng),該多機備份系統(tǒng)包括原始機器11和至少一臺與其連接的備份機器12。其中,該多機備份系統(tǒng)中包括的機器,其用于運行不同的業(yè)務,保證業(yè)務正常運行。具體的,該多機備份系統(tǒng)包括的機器運行的業(yè)務,可以是如QQ即時消息業(yè)務及其相關的業(yè)務,淘寶等網(wǎng)絡交易業(yè)務、以及QQ游戲等游戲業(yè)務。本申請中所描述的業(yè)務進程即是指如QQ、淘寶等網(wǎng)絡交易業(yè)務、以及QQ游戲等游戲業(yè)務的進程。
[0026]需要說明的是,該方法應用具有Linux或Unix系統(tǒng)的原始機器和備份機器上。其Linux和Unix是一種支持多用戶、多任務、支持多線程和多CPU的操作系統(tǒng)。它能運行主要的UNIX工具軟件、應用程序和網(wǎng)絡協(xié)議。它支持32位和64位硬件。Linux繼承了 Unix以網(wǎng)絡為核心的設計思想,是一個性能穩(wěn)定的多用戶網(wǎng)絡操作系統(tǒng)。
[0027]由于這兩種操作系統(tǒng)易讀、易修改且易移植,其被廣泛應用在現(xiàn)有的一些大型業(yè)務系統(tǒng)中。
[0028]具體的,如圖2所示,該方法包括:
[0029]101、原始機器調(diào)用業(yè)務進程的創(chuàng)建內(nèi)存映像函數(shù)mmap (),將所述業(yè)務進程的數(shù)據(jù)映射進內(nèi)存,且標明所述內(nèi)存中映射所述數(shù)據(jù)的映射區(qū)域為共享。
[0030]現(xiàn)有技術中,原始機器宕機后,為了備份機器能夠順利接管原始機器執(zhí)行該業(yè)務進程,避免備份機器執(zhí)行業(yè)務進程的狀態(tài)與原始機器宕機時的業(yè)務進程的狀態(tài)不一致,原始機器還需要將該業(yè)務進程的數(shù)據(jù)發(fā)送給備份機器。但是,正如【背景技術】中所描述的,現(xiàn)有技術中磁盤中存儲的數(shù)據(jù)僅包括有用戶在