雙控存儲控制器的故障檢測方法及存儲控制器的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機技術(shù)領(lǐng)域,特別涉及一種雙控存儲控制器的故障檢測方法及存儲控制器。
【背景技術(shù)】
[0002]隨著計算機信息技術(shù)的廣泛應(yīng)用和發(fā)展,計算機存儲服務(wù)的可靠性要求也越來越尚ο
[0003]目前,為了提高計算機存儲服務(wù)的可靠性,防止10數(shù)據(jù)輸入過程中存儲控制器發(fā)生故障導(dǎo)致處理過程中斷,可利用雙控存儲控制器來完成相應(yīng)的存儲服務(wù),即通過兩個存儲控制器來完成相應(yīng)的存儲服務(wù),其中一個存儲控制器故障時,另一個存儲控制器可接管故障存儲控制器的工作,即將故障存儲控制器的LU(logic unit,邏輯單元)上的10數(shù)據(jù)同步至另一個存儲控制器上以繼續(xù)執(zhí)行相應(yīng)的存儲服務(wù);因此,如何檢測出雙控存儲控制器是否發(fā)生故障成為亟待解決的問題。
【發(fā)明內(nèi)容】
[0004]有鑒于此,本發(fā)明提供了一種雙控存儲控制器的故障檢測方法及存儲控制器,可檢測出故障存儲控制器。
[0005]第一方面,本發(fā)明提供了一種雙控存儲控制器的故障檢測方法,應(yīng)用于本端存儲控制器,包括:
[0006]S0:預(yù)先設(shè)置目標(biāo)參數(shù)、套接字Socket以及Socket向設(shè)置在對端存儲控制器上的Socket發(fā)送心跳信號的信號周期;
[0007]S1:根據(jù)所述信號周期,利用Socket向設(shè)置在對端存儲控制器上的Socket發(fā)送心跳信號;以及,利用Socket接收設(shè)置在對端存儲控制器上的Socket根據(jù)所述信號周期發(fā)送的心跳信號;
[0008]S2:判斷連續(xù)未接收到對端存儲控制器發(fā)送的心跳信號的次數(shù)是否不小于所述目標(biāo)參數(shù);如果是,則確定對端存儲控制器發(fā)生故障。
[0009]優(yōu)選地,進一步包括:設(shè)置計時器timerl ;其中,所述timerl用于倒計時,當(dāng)timerl為0時,觸發(fā)Socket向設(shè)置在對端存儲控制器上的Socket發(fā)送心跳信號;
[0010]所述設(shè)置Socket向設(shè)置在對端存儲控制器上的Socket發(fā)送心跳信號的信號周期,包括:
[0011]將timerl初始化為3s ;
[0012]和/ 或,
[0013]所述目標(biāo)參數(shù)包括:10。
[0014]優(yōu)選地,進一步包括:設(shè)置響應(yīng)變量的初始值為0,當(dāng)Socket接收到設(shè)置在對端存儲控制器上的Socket發(fā)送的心跳信號時,將響應(yīng)變量置為1,否則,保持響應(yīng)變量的初始值不變;
[0015]進一步包括:當(dāng)timerl為0時,判斷響應(yīng)變量的值,若響應(yīng)變量的值為1,則復(fù)位timerl,并將Socket未接收到對端存儲控制器發(fā)送的心跳信號的次數(shù)置為0,以及將響應(yīng)變量置為初始值0 ;否則,復(fù)位timerl,并將Socket未接收到對端存儲控制器發(fā)送的心跳信號的次數(shù)加1。
[0016]優(yōu)選地,所述將Socket未接收到對端存儲控制器發(fā)送的心跳信號的次數(shù)加1之前,進一步包括:
[0017]判斷Socket未接收到對端存儲控制器發(fā)送的心跳信號的次數(shù)是否小于目標(biāo)參數(shù),如果是,則執(zhí)行所述將Socket未接收到對端存儲控制器發(fā)送的心跳信號的次數(shù)加1,否則執(zhí)行所述復(fù)位timerl。
[0018]優(yōu)選地,進一步包括:
[0019]當(dāng)Socket接收到設(shè)置在對端存儲控制器上的Socket發(fā)送的心跳信號時,復(fù)位timerl,并將Socket未接收到對端存儲控制器發(fā)送的心跳信號的次數(shù)置為0。
[0020]第二方面,本發(fā)明提供了一種存儲控制器,包括:
[0021]設(shè)置單元,用于預(yù)先設(shè)置目標(biāo)參數(shù)、套接字Socket以及Socket向設(shè)置在對端存儲控制器上的Socket發(fā)送心跳信號的信號周期;
[0022]Socket,用于根據(jù)所述信號周期,向設(shè)置在對端存儲控制器上的Socket發(fā)送心跳信號;以及,接收設(shè)置在對端存儲控制器上的Socket根據(jù)所述信號周期發(fā)送的心跳信號;
[0023]第一處理單元,用于判斷連續(xù)未接收到對端存儲控制器發(fā)送的心跳信號的次數(shù)是否不小于所述目標(biāo)參數(shù);如果是,則確定對端存儲控制器發(fā)生故障。
[0024]優(yōu)選地,
[0025]所述設(shè)置單元,進一步用于設(shè)置計時器timerl ;其中,所述timerl用于倒計時,當(dāng)timerl為0時,觸發(fā)Socket向設(shè)置在對端存儲控制器上的Socket發(fā)送心跳信號;
[0026]以及,
[0027]所述設(shè)置單元,進一步用于將timerl初始化為3s ;
[0028]和/ 或,
[0029]所述設(shè)置單元,進一步用于設(shè)置目標(biāo)參數(shù)為10。
[0030]優(yōu)選地,
[0031]所述設(shè)置單元,進一步用于設(shè)置響應(yīng)變量的初始值為0,當(dāng)Socket接收到設(shè)置在對端存儲控制器上的Socket發(fā)送的心跳信號時,將響應(yīng)變量置為1,否則,保持響應(yīng)變量的初始值不變;
[0032]還包括:
[0033]第二處理單元,用于當(dāng)timerl為0時,判斷響應(yīng)變量的值,若響應(yīng)變量的值為1,則復(fù)位timerl,并將Socket未接收到對端存儲控制器發(fā)送的心跳信號的次數(shù)置為0,以及將響應(yīng)變量置為初始值0 ;否則,復(fù)位timerl,并將Socket未接收到對端存儲控制器發(fā)送的心跳信號的次數(shù)加1。
[0034]優(yōu)選地,進一步包括:
[0035]判斷單元,用于判斷Socket未接收到對端存儲控制器發(fā)送的心跳信號的次數(shù)是否小于目標(biāo)參數(shù),如果是,則觸發(fā)第二處理單元執(zhí)行所述將Socket未接收到對端存儲控制器發(fā)送的心跳信號的次數(shù)加1,否則觸發(fā)所述第二處理單元執(zhí)行所述復(fù)位timerl。
[0036]優(yōu)選地,還包括:
[0037]第三處理單元,用于當(dāng)Socket接收到設(shè)置在對端存儲控制器上的Socket發(fā)送的心跳信號時,復(fù)位timerl,并將Socket未接收到對端存儲控制器發(fā)送的心跳信號的次數(shù)置為0。
[0038]本發(fā)明提供了一種雙控存儲控制器的故障檢測方法及存儲控制器,通過在本端存儲控制器上設(shè)置Socket,以及預(yù)先設(shè)置目標(biāo)參數(shù)和Socket向設(shè)置在對端存儲控制器上的Socket發(fā)送心跳信號的信號周期,設(shè)置的Socket可根據(jù)設(shè)置的信號周期向?qū)Χ舜鎯刂破魃系腟ocket發(fā)送心跳信號以及接收對端存儲控制器上的Socket發(fā)送的心跳信號,如果本端存儲控制器上的Socket未接收到對端存儲控制器上的Socket發(fā)送的心跳信號的次數(shù)不小于預(yù)先設(shè)置的目標(biāo)參數(shù)時,則可確定對端存儲控制器發(fā)生故障;即檢測出故障存儲控制器。
【附圖說明】
[0039]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0040]圖1是本發(fā)明一實施例提供的一種雙控存儲控制器的故障檢測方法的流程圖;
[0041]圖2是本發(fā)明一實施例提供的另一種雙控存儲控制器的故障檢測方法的流程圖;
[0042]圖3是本發(fā)明一實施例提供的一種存儲控制器的結(jié)構(gòu)圖;
[0043]圖4是本發(fā)明一實施例提供的另一種存儲控制器的結(jié)構(gòu)圖;
[