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