一種多控制器間的緩存數(shù)據(jù)一致性保障方法
【專利摘要】本發(fā)明提供一種多控制器間的緩存數(shù)據(jù)一致性保障方法,其具體保障過程為:設(shè)置至少兩個控制器,進行緩存鏡像操作:當其中一個控制器接收到寫請求后,數(shù)據(jù)寫入磁盤前先發(fā)送到另一控制器進行鏡像,在第一控制器發(fā)生故障后,在進行資源接管前保證第二控制器中的鏡像數(shù)據(jù)先被寫入磁盤;當一控制器出現(xiàn)故障時,進行故障切換,即將出現(xiàn)故障的控制器轉(zhuǎn)換為完好的控制器,當失效的控制器恢復后,則該控制器繼續(xù)啟動工作。該一種多控制器間的緩存數(shù)據(jù)一致性保障方法和現(xiàn)有技術(shù)相比,確保了多控制器系統(tǒng)意外故障時數(shù)據(jù)的一致性,做到無單點故障,保證數(shù)據(jù)的可靠性,安全性好,實用性強。
【專利說明】一種多控制器間的緩存數(shù)據(jù)一致性保障方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機信息【技術(shù)領(lǐng)域】,具體的說是一種多控制器間的緩存數(shù)據(jù)一致性保障方法。
【背景技術(shù)】
[0002]隨著信息時代的到來,人們不僅要處理與日俱增的各種信息,更重要的是如何保存這些信息,為日常的工作和生活服務(wù)。計算機系統(tǒng)發(fā)展到今天,其應(yīng)用的主流已經(jīng)從科學計算變?yōu)榉河嬎銘?yīng)用,特別是信息服務(wù),這種變化使得計算機在經(jīng)歷以CPU為中心和以內(nèi)存為中心的階段后,進入以I/o特別是存儲系統(tǒng)為中心的階段。在電子商務(wù)迅速發(fā)展的今天,產(chǎn)生的數(shù)據(jù)量正以100%的速度爆炸性增長,數(shù)據(jù)已經(jīng)成為一種財富,由此給企業(yè)IT基礎(chǔ)設(shè)施帶來嚴峻的挑戰(zhàn),特別在高能物理研究、電視視頻節(jié)目數(shù)字化存儲、數(shù)字博物館、地理信息系統(tǒng)、氣象服務(wù)、生物信息學、數(shù)字圖像處理、金融、電信等領(lǐng)域?qū)Υ髷?shù)據(jù)量的數(shù)據(jù)存取迫切需要一種安全有效地方法,而這一切的基礎(chǔ)又是數(shù)據(jù)一致性。本發(fā)明設(shè)計了一種多控制器間的緩存數(shù)據(jù)一致性保障方法,有效地防止了多控制器中的任一控制器由于意外故障而導致緩存里的數(shù)據(jù)丟失,確保了系統(tǒng)意外故障時數(shù)據(jù)的一致性。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的技術(shù)任務(wù)是解決現(xiàn)有技術(shù)的不足,提供一種多控制器間的緩存數(shù)據(jù)一致性保障方法。
[0004]本發(fā)明的技術(shù)方案是按以下方式實現(xiàn)的,該一種多控制器間的緩存數(shù)據(jù)一致性保障方法,其具體保障過程為:
一、設(shè)置至少兩個控制器,進行緩存鏡像操作:當其中一個控制器接收到寫請求后,數(shù)據(jù)寫入磁盤前先發(fā)送到另一控制器進行鏡像,在第一控制器發(fā)生故障后,在進行資源接管前保證第二控制器中的鏡像數(shù)據(jù)先被寫入磁盤;
二、當一控制器出現(xiàn)故障時,進行故障切換,即將出現(xiàn)故障的控制器轉(zhuǎn)換為完好的控制器,當失效的控制器恢復后,則該控制器繼續(xù)啟動工作。
[0005]所述步驟一中的緩存鏡像操作的詳細過程為:對于寫鏡像操作,在數(shù)據(jù)寫入本地控制器磁盤之前,會先發(fā)送消息到對端控制器,對端控制器接收到消息后啟動RDMA操作,然后將數(shù)據(jù)保存,RDMA操作完成后會自動發(fā)送消息通知本地控制器,這時本地控制器進行寫操作;當本地控制器的數(shù)據(jù)同步到本地磁盤完成后,再通過發(fā)送DEL消息到對端控制器將其緩存中的數(shù)據(jù)刪除。
[0006]所述步驟二中的故障切換過程為:設(shè)置故障切換模塊在多個節(jié)點間通過心跳消息來監(jiān)測每個節(jié)點的狀態(tài),該故障切換模塊由服務(wù)狀態(tài)檢測、任務(wù)接管回切和管理三部分組成,每個節(jié)點定期發(fā)送心跳消息給其它節(jié)點,通知對方正在工作,如果在規(guī)定的時間范圍內(nèi)沒有接收到心跳信息,先進行一系列的監(jiān)測確定對方是否失效,若失效,則啟動接管、恢復進程將失效控制器的資源和任務(wù)全部接管,由接管的節(jié)點開始對外提供服務(wù);當失效控制器恢復后,狀態(tài)監(jiān)測進程又會發(fā)送心跳信息,當接管節(jié)點接收到發(fā)送過來的心跳消息后,就立即釋放占有的資源,將這些資源和服務(wù)在恢復的控制器上啟動。
[0007]本發(fā)明與現(xiàn)有技術(shù)相比所產(chǎn)生的有益效果是:
本發(fā)明的一種多控制器間的緩存數(shù)據(jù)一致性保障方法通過在多個控制器間的實現(xiàn)緩存鏡像技術(shù)和故障切換技術(shù),解決了多控制器間高速緩存的數(shù)據(jù)一致性問題,在數(shù)據(jù)讀寫時,將數(shù)據(jù)同時寫入到兩個獨立的內(nèi)存區(qū)域中,相對于現(xiàn)有的內(nèi)存訪問只在單內(nèi)存區(qū)域中進行的情況,有效地防止了多控制器中的任一控制器由于意外故障而導致緩存里的數(shù)據(jù)丟失的情況的發(fā)生,確保了多控制器系統(tǒng)意外故障時數(shù)據(jù)的一致性,做到無單點故障,在任一控制器發(fā)生故障的情況下仍可保證數(shù)據(jù)存取服務(wù)不中斷,保證數(shù)據(jù)的可靠性,安全性好,實用性強,易于推廣。
【專利附圖】
【附圖說明】
[0008]圖1是本發(fā)明的硬件構(gòu)架圖。
【具體實施方式】
[0009]下面結(jié)合附圖對本發(fā)明的一種多控制器間的緩存數(shù)據(jù)一致性保障方法作詳細說明。
[0010]本發(fā)明提供一種多控制器間的緩存數(shù)據(jù)一致性保障方法,該方法所設(shè)計的系統(tǒng)體系結(jié)構(gòu)包括:緩存鏡像模塊和故障切換模塊,故障切換模塊在多個節(jié)點間通過心跳消息來監(jiān)測每個節(jié)點的狀態(tài),由服務(wù)狀態(tài)檢測,任務(wù)接管回切和管理部分組成,它和緩存鏡像模塊結(jié)合來維護數(shù)據(jù)的一致性,保證存儲服務(wù)連續(xù)性。其具體保障過程為:
一、設(shè)置緩存鏡像模塊,設(shè)置兩個控制器,即控制器A和控制器B:實現(xiàn)了控制器A接收到寫請求后,數(shù)據(jù)寫入磁盤前先發(fā)送到另一控制器B進行鏡像,在控制器A發(fā)生故障后,在進行資源接管前保證控制器B中的鏡像數(shù)據(jù)先被寫入磁盤。
[0011]設(shè)置故障切換模塊:在多個控制器節(jié)點間通過心跳消息來監(jiān)測每個節(jié)點的狀態(tài),它由服務(wù)狀態(tài)檢測,任務(wù)接管回切和管理部分組成,它和緩存鏡像模塊結(jié)合來維護數(shù)據(jù)的一致性,保證存儲服務(wù)連續(xù)性。當一控制器出現(xiàn)故障時,進行故障切換,即將出現(xiàn)故障的控制器轉(zhuǎn)換為完好的控制器,當失效的控制器恢復后,則該控制器繼續(xù)啟動工作。
[0012]在該體系結(jié)構(gòu)中,兩個控制器同時保存一份相同的緩存數(shù)據(jù)。
[0013]其具體的硬件結(jié)構(gòu)如附圖1所示,若干控制器連接到交換背板上,該交換背板通過交換接口連接有若干本地的磁盤箱,在交換背板上還設(shè)置有管理故障切換動作的管理單
J Li ο
[0014]所述步驟一中的緩存鏡像操作的詳細過程為:對于寫鏡像操作,在數(shù)據(jù)寫入本地控制器磁盤之前,會先發(fā)送消息到對端控制器,對端控制器接收到消息后啟動RDMA操作,然后將數(shù)據(jù)保存,RDMA操作完成后會自動發(fā)送消息通知緩存鏡像模塊,這時本地控制器就可以進行寫操作了。在后來的某個時刻,當本地控制器的數(shù)據(jù)同步到本地磁盤完成后,再通過發(fā)送DEL消息到對端控制器將其緩存中的數(shù)據(jù)刪除。
[0015]所述步驟二中的故障切換過程為:故障切換模塊在多個節(jié)點間通過心跳消息來監(jiān)測每個節(jié)點的狀態(tài),每個節(jié)點定期發(fā)送心跳消息給其它節(jié)點,通知對方正在工作,如果在規(guī)定的時間范圍內(nèi)沒有接收到心跳信息,先進行一系列的監(jiān)測確定對方是否失效,若失效,則啟動接管、恢復進程將失效控制器的資源和任務(wù)全部接管,由接管的節(jié)點開始對外提供服務(wù)。當失效控制器恢復后,狀態(tài)監(jiān)測進程又會發(fā)送心跳信息,當接管節(jié)點接收到發(fā)送過來的心跳消息后,就立即釋放占有的資源,將這些資源和服務(wù)在恢復的控制器上啟動,這樣就智能地實現(xiàn)了故障時的高可用。
[0016]實施例:根據(jù)上述步驟,控制器節(jié)點A和控制器節(jié)點B詳細的緩存數(shù)據(jù)保障過程為:
I)節(jié)點A收到客戶端寫數(shù)據(jù)后,首先將數(shù)據(jù)通過RDMA消息發(fā)送到節(jié)點B上進行鏡像,然后將數(shù)據(jù)寫入本地高速緩存中。
[0017]2)在節(jié)點A上將記錄scsiid,數(shù)據(jù)長度Ien和在文件中偏移pos等信息結(jié)構(gòu)插入鏈表中。
[0018]3)在節(jié)點B上,收到RDMA消息后,啟動RDMA讀操作,記錄scsiid,數(shù)據(jù)長度和在文件中偏移,并將存儲這些信息的結(jié)構(gòu)體插入兩個鏈表中:icm_mirrordatahead鏈表,用于收到消息“del”后刪除;headn0de_S鏈表,用于接管時將同一個磁盤上的數(shù)據(jù)刷到后端
磁盤上。
[0019]4)節(jié)點A上的刷新線程定時將其上鏈表中數(shù)據(jù)刷到磁盤,然后發(fā)送RDMA消息給節(jié)點B,通知節(jié)點B將鏈表上的鏡像記錄刪除并釋放鏡像的數(shù)據(jù)。
[0020]5)節(jié)點B收到RDMA消息后,根據(jù)scsiid, len, pos記錄,從鏈表上刪除并釋放鏡
像數(shù)據(jù)。
[0021]6)當節(jié)點A宕機,如果節(jié)點B在規(guī)定的時間范圍內(nèi)沒有接收到節(jié)點A的心跳信息,先進行一系列的監(jiān)測確定對方是否失效,若失效,則節(jié)點B啟動接管、恢復進程將失效控制器的資源和任務(wù)全部接管,由接管的節(jié)點開始對外提供服務(wù),同時節(jié)點B將鏈表中的數(shù)據(jù)刷到接管后的磁盤上,并將記錄的數(shù)據(jù)從鏈表中刪除。
[0022]至此,已經(jīng)完整實現(xiàn)了一種多控制器間的緩存數(shù)據(jù)一致性保障方法。
[0023]除說明書所述的技術(shù)特征外,均為本專業(yè)技術(shù)人員的公知技術(shù)。
【權(quán)利要求】
1.一種多控制器間的緩存數(shù)據(jù)一致性保障方法,其特征在于,其具體保障過程為: 一、設(shè)置至少兩個控制器,進行緩存鏡像操作:當其中一個控制器接收到寫請求后,數(shù)據(jù)寫入磁盤前先發(fā)送到另一控制器進行鏡像,在第一控制器發(fā)生故障后,在進行資源接管前保證第二控制器中的鏡像數(shù)據(jù)先被寫入磁盤; 二、當一控制器出現(xiàn)故障時,進行故障切換,即將出現(xiàn)故障的控制器轉(zhuǎn)換為完好的控制器,當失效的控制器恢復后,則該控制器繼續(xù)啟動工作。
2.根據(jù)權(quán)利要求1所述的一種多控制器間的緩存數(shù)據(jù)一致性保障方法,其特征在于,所述步驟一中的緩存鏡像操作的詳細過程為:對于寫鏡像操作,在數(shù)據(jù)寫入本地控制器磁盤之前,會先發(fā)送消息到對端控制器,對端控制器接收到消息后啟動RDMA操作,然后將數(shù)據(jù)保存,RDMA操作完成后會自動發(fā)送消息通知本地控制器,這時本地控制器進行寫操作;當本地控制器的數(shù)據(jù)同步到本地磁盤完成后,再通過發(fā)送DEL消息到對端控制器將其緩存中的數(shù)據(jù)刪除。
3.根據(jù)權(quán)利要求1或2所述的一種多控制器間的緩存數(shù)據(jù)一致性保障方法,其特征在于,所述步驟二中的故障切換過程為:設(shè)置故障切換模塊在多個節(jié)點間通過心跳消息來監(jiān)測每個節(jié)點的狀態(tài),該故障切換模塊由服務(wù)狀態(tài)檢測、任務(wù)接管回切和管理三部分組成,每個節(jié)點定期發(fā)送心跳消息給其它節(jié)點,通知對方正在工作,如果在規(guī)定的時間范圍內(nèi)沒有接收到心跳信息,先進行一系列的監(jiān)測確定對方是否失效,若失效,則啟動接管、恢復進程將失效控制器的資源和任務(wù)全部接管,由接管的節(jié)點開始對外提供服務(wù);當失效控制器恢復后,狀態(tài)監(jiān)測進程又會發(fā)送心跳信息,當接管節(jié)點接收到發(fā)送過來的心跳消息后,就立即釋放占有的資源,將這些資源和服務(wù)在恢復的控制器上啟動。
【文檔編號】G06F12/08GK103605616SQ201310587503
【公開日】2014年2月26日 申請日期:2013年11月21日 優(yōu)先權(quán)日:2013年11月21日
【發(fā)明者】韓東濤 申請人:浪潮電子信息產(chǎn)業(yè)股份有限公司