本發(fā)明涉及服務(wù)器及計算機系統(tǒng),特別是涉及一種雙活卷存儲系統(tǒng)故障處理方法、一種雙活卷存儲系統(tǒng)故障處理裝置、一種電子設(shè)備、一種存儲介質(zhì)和一種程序產(chǎn)品。
背景技術(shù):
1、雙活系統(tǒng)中的數(shù)據(jù)由客戶端同時寫入兩個后端存儲。在某一時刻,存儲系統(tǒng)的某一端故障或雙活系統(tǒng)中間網(wǎng)絡(luò)故障,會引發(fā)一端的寫錯誤從而導(dǎo)致存儲系統(tǒng)兩端數(shù)并不一致,即雙活卷系統(tǒng)發(fā)生故障。針對于該故障場景,在現(xiàn)有技術(shù)中,主要依賴于使用仲裁服務(wù)器的仲裁機制進行仲裁,來決定哪一端存儲成為主端,后續(xù)返回給客戶端的寫入結(jié)果都是寫入仲裁主端的結(jié)果。然而仲裁機制需要在雙方集群上和第三方服務(wù)器共同搭建一套仲裁服務(wù)以及仲裁網(wǎng)絡(luò)來實現(xiàn)、這無疑會大大增加系統(tǒng)的復(fù)雜性,也對系統(tǒng)的穩(wěn)定性和可靠性有更多的要求。
技術(shù)實現(xiàn)思路
1、鑒于上述問題,提出了本發(fā)明實施例以便提供一種克服上述問題或者至少部分地解決上述問題的一種雙活卷存儲系統(tǒng)故障處理方法、一種雙活卷存儲系統(tǒng)故障處理裝置、一種電子設(shè)備、一種存儲介質(zhì)和一種程序產(chǎn)品。
2、為了解決上述問題,在本發(fā)明的第一個方面,本發(fā)明實施例公開了一種雙活卷存儲系統(tǒng)故障處理方法,所述雙活卷存儲系統(tǒng)包括第一數(shù)據(jù)卷和第二數(shù)據(jù)卷,所述第一數(shù)據(jù)卷的處理優(yōu)先級大于所述第二數(shù)據(jù)卷的處理優(yōu)先級,所述方法包括:
3、接收所述第一數(shù)據(jù)卷針對客戶端寫請求返回的第一寫入結(jié)果數(shù)據(jù)和所述第二數(shù)據(jù)卷針對所述客戶端寫請求返回的第二寫入結(jié)果數(shù)據(jù);
4、依據(jù)所述第一寫入結(jié)果數(shù)據(jù)和所述第二寫入結(jié)果數(shù)據(jù)判斷所述第一數(shù)據(jù)卷和所述第二數(shù)據(jù)卷中的故障數(shù)據(jù)卷;
5、依據(jù)所述故障數(shù)據(jù)卷進行故障處理;
6、待所述故障數(shù)據(jù)卷故障處理后,反饋所述第一寫入結(jié)果數(shù)據(jù)。
7、可選地,所述依據(jù)所述第一寫入結(jié)果數(shù)據(jù)和所述第二寫入結(jié)果數(shù)據(jù)判斷所述第一數(shù)據(jù)卷和所述第二數(shù)據(jù)卷中的故障數(shù)據(jù)卷的包括:
8、依據(jù)所述第一寫入結(jié)果數(shù)據(jù)和所述第二寫入結(jié)果數(shù)據(jù)確定故障是否發(fā)生;
9、響應(yīng)于故障發(fā)生,依據(jù)所述第一寫入結(jié)果數(shù)據(jù)和所述第二寫入結(jié)果數(shù)據(jù)判斷所述第一數(shù)據(jù)卷和所述第二數(shù)據(jù)卷中的故障數(shù)據(jù)卷。
10、可選地,所述依據(jù)所述第一寫入結(jié)果數(shù)據(jù)和所述第二寫入結(jié)果數(shù)據(jù)判斷所述第一數(shù)據(jù)卷和所述第二數(shù)據(jù)卷中的故障數(shù)據(jù)卷的步驟包括:
11、依據(jù)所述第一寫入結(jié)果數(shù)據(jù)確定所述第一數(shù)據(jù)卷是否為所述故障數(shù)據(jù)卷;
12、依據(jù)所述第二寫入結(jié)果數(shù)據(jù)確定所述第二數(shù)據(jù)卷是否為所述故障數(shù)據(jù)卷。
13、可選地,所述依據(jù)所述第一寫入結(jié)果數(shù)據(jù)確定所述第一數(shù)據(jù)卷是否為所述故障數(shù)據(jù)卷的步驟包括:
14、判斷所述第一寫入結(jié)果數(shù)據(jù)是否包括寫入失敗標識;
15、響應(yīng)于所述第一寫入結(jié)果數(shù)據(jù)包括寫入失敗標識,確定所述第一數(shù)據(jù)卷為所述故障數(shù)據(jù)卷。
16、可選地,所述依據(jù)所述第二寫入結(jié)果數(shù)據(jù)確定所述第二數(shù)據(jù)卷是否為所述故障數(shù)據(jù)卷的步驟包括:
17、判斷所述第二寫入結(jié)果數(shù)據(jù)是否包括寫入失敗標識;
18、響應(yīng)于所述第二寫入結(jié)果數(shù)據(jù)包括寫入失敗標識,確定所述第二數(shù)據(jù)卷為所述故障數(shù)據(jù)卷。
19、可選地,依據(jù)所述第一寫入結(jié)果數(shù)據(jù)和所述第二寫入結(jié)果數(shù)據(jù)確定故障是否發(fā)生的步驟包括:
20、判斷所述第一寫入結(jié)果數(shù)據(jù)和所述第二寫入結(jié)果數(shù)據(jù)是否一致;
21、響應(yīng)于所述第一寫入結(jié)果數(shù)據(jù)和所述第二寫入結(jié)果數(shù)據(jù)不一致,確定所述故障發(fā)生;
22、響應(yīng)于所述第一寫入結(jié)果數(shù)據(jù)和所述第二寫入結(jié)果數(shù)據(jù)一致,判斷所述第一寫入結(jié)果數(shù)據(jù)和所述第二寫入結(jié)果數(shù)據(jù)是否包括寫入失敗標識;
23、響應(yīng)于所述第一寫入結(jié)果數(shù)據(jù)或所述第二寫入結(jié)果數(shù)據(jù)中包括寫入失敗標識,確定所述故障發(fā)生。
24、可選地,所述依據(jù)所述故障數(shù)據(jù)卷進行故障處理的步驟包括:
25、判斷所述故障數(shù)據(jù)卷的類型;
26、依據(jù)所述類型確定處理操作;
27、執(zhí)行所述處理操作。
28、可選地,所述判斷所述故障數(shù)據(jù)卷的類型的步驟包括:
29、判斷所述故障數(shù)據(jù)卷是否為所述第一數(shù)據(jù)卷;或,
30、判斷所述故障數(shù)據(jù)卷是否為所述第二數(shù)據(jù)卷。
31、可選地,所述依據(jù)所述類型確定處理操作的步驟包括:
32、當(dāng)所述故障數(shù)據(jù)卷為所述第二數(shù)據(jù)卷時,確定所述處理操作為基于所述第一數(shù)據(jù)卷切換單活卷狀態(tài)。
33、可選地,所述依據(jù)所述類型確定處理操作的步驟還包括:
34、確定所述處理操作為禁用所述第二數(shù)據(jù)卷的路徑。
35、可選地,所述依據(jù)所述類型確定處理操作的步驟包括:
36、當(dāng)所述故障數(shù)據(jù)卷為所述第一數(shù)據(jù)卷時,確定所述處理操作為基于所述第二數(shù)據(jù)卷切換單活卷狀態(tài)。
37、可選地,所述方法還包括:
38、當(dāng)所述故障數(shù)據(jù)卷為所述第一數(shù)據(jù)卷時,生成雙寫失敗信息。
39、可選地,所述方法還包括:
40、存儲所述雙寫失敗信息。
41、可選地,所述方法還包括:
42、基于所述雙寫失敗信息,切換所述第一數(shù)據(jù)卷的處理優(yōu)先級和所述第二數(shù)據(jù)卷的處理優(yōu)先級。
43、可選地,所述方法還包括:
44、在確定所述故障數(shù)據(jù)卷后,響應(yīng)于后臺任務(wù)的運行,終止所述后臺任務(wù)。
45、可選地,所述后臺任務(wù)包括同步任務(wù)。
46、可選地,所述方法還包括:
47、檢測所述第一數(shù)據(jù)卷的同步標志位和所述第二數(shù)據(jù)卷的同步標志位;
48、當(dāng)所述第一數(shù)據(jù)卷的同步標志位設(shè)置為目標標識,且所述第二數(shù)據(jù)卷的同步標志位設(shè)置為目標標識時,確定所述同步任務(wù)運行。
49、在本發(fā)明的第二個方面,本發(fā)明實施例公開了種雙活卷存儲系統(tǒng)故障處理裝置,所述雙活卷存儲系統(tǒng)包括第一數(shù)據(jù)卷和第二數(shù)據(jù)卷,所述第一數(shù)據(jù)卷的處理優(yōu)先級大于所述第二數(shù)據(jù)卷的處理優(yōu)先級,所述裝置包括:
50、第一接收模塊,用于接收所述第一數(shù)據(jù)卷針對客戶端寫請求返回的第一寫入結(jié)果數(shù)據(jù)和所述第二數(shù)據(jù)卷針對所述客戶端寫請求返回的第二寫入結(jié)果數(shù)據(jù);
51、故障確定模塊,用于依據(jù)所述第一寫入結(jié)果數(shù)據(jù)和所述第二寫入結(jié)果數(shù)據(jù),確定所述第一數(shù)據(jù)卷和所述第二數(shù)據(jù)卷中的故障數(shù)據(jù)卷;
52、處理模塊,用于依據(jù)所述故障數(shù)據(jù)卷進行故障處理;
53、反饋模塊,用于待所述故障數(shù)據(jù)卷故障處理后,反饋所述第一寫入結(jié)果數(shù)據(jù)。
54、在本發(fā)明的第三個方面,本發(fā)明實施例公開了一種電子設(shè)備,包括處理器、存儲器及存儲在所述存儲器上并能夠在所述處理器上運行的計算機程序,所述計算機程序被所述處理器執(zhí)行時實現(xiàn)如上所述的雙活卷存儲系統(tǒng)故障處理方法的步驟。
55、在本發(fā)明的第四個方面,本發(fā)明實施例公開了一種計算機可讀存儲介質(zhì),所述計算機可讀存儲介質(zhì)上存儲計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)如上所述的雙活卷存儲系統(tǒng)故障處理方法的步驟。
56、在本發(fā)明的第五個方面,本發(fā)明實施例公開了一種計算機程序產(chǎn)品,包括計算機指令,所述計算機指令被處理器執(zhí)行時實現(xiàn)如上所述的雙活卷存儲系統(tǒng)故障處理方法的步驟。
57、本發(fā)明實施例包括以下優(yōu)點:
58、本發(fā)明實施例通過接收所述第一數(shù)據(jù)卷針對客戶端寫請求返回的第一寫入結(jié)果數(shù)據(jù)和所述第二數(shù)據(jù)卷針對所述客戶端寫請求返回的第二寫入結(jié)果數(shù)據(jù);依據(jù)所述第一寫入結(jié)果數(shù)據(jù)和所述第二寫入結(jié)果數(shù)據(jù)判斷所述第一數(shù)據(jù)卷和所述第二數(shù)據(jù)卷中的故障數(shù)據(jù)卷;依據(jù)所述故障數(shù)據(jù)卷進行故障處理;待所述故障數(shù)據(jù)卷故障處理后,反饋所述第一寫入結(jié)果數(shù)據(jù)。通過依據(jù)第一寫入結(jié)果數(shù)據(jù)和第二寫入結(jié)果數(shù)據(jù)確定發(fā)生故障的故障數(shù)據(jù)卷,然后基于故障數(shù)據(jù)卷進行故障處理,并對請求進行處理,反饋第一數(shù)據(jù)卷的第一寫入結(jié)果數(shù)據(jù)給客戶端,完成在故障時對客戶端請求進行處理,無需依賴仲裁機制,降低了雙活卷存儲系統(tǒng)的軟件復(fù)雜度,提高了雙活卷存儲系統(tǒng)的可靠性。。