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