一種雙控存儲設備主備控制方法及裝置與流程
2023-09-15 01:14:50
本發明涉及計算機存儲技術領域,特別是涉及一種雙控存儲設備主備控制方法及裝置。
背景技術:
隨著計算機存儲技術的發展,雙控存儲作為保障數據可靠性的一種存儲方式,得到了廣泛的應用,雙控存儲設備逐漸增多。雙控存儲設備包括主控制器和備控制器。主控制器通常負責維護一些重要數據,收集機箱信息和控制機箱設備運轉。備控制器在主控制器出現異常時,接管主控制器的工作,以使雙控存儲設備能夠正常運行。
在現有技術中,如圖1所示,主控制器100和備控制器101分別通過乙太網接口與網絡中的交換機102連接,主控制器100和備控制器101之間維持心跳連接,心跳的方式是以tcp包的形式發送的。主控制器100執行一個進程後,定時向備控制器101發送攜帶有主控制器標識的數據包,並從備控制器101中獲取信息,備控制器101也執行一個進程來接收主控制器100發送的數據包並返回自己的信息。當備控制器101在預定時間內沒有接收主控制器100的數據包時,備控制器101會認為主控制器100出現異常,進而將自己升級成主控制器,接管原主控制器100的工作。
然而,在實際應用中,常常會因為網絡抖動大、系統負載過大等,導致數據包出現超時情況。也就是說,備控制器在預定時間內沒有接收到主控制器發送的數據包,並不一定說明主控制器當前已無法工作,有可能在一定時間後主控制器或者網絡恢復正常。如果備控制器誤認為主控制器無法工作,升級成主控制器,而此時原主控制器仍在工作中,則將導致兩個控制器相互爭用,可能會導致腦裂、數據資源被破壞等嚴重後果,降低雙控存儲設備的系統性能。
技術實現要素:
本發明的目的是提供一種雙控存儲設備主備控制方法及裝置,以有效避免因網絡不穩定等原因對主控制器的工作狀態進行誤判,而導致備控制器升級成主控制器,並與原主控制器互相爭用的問題出現,提升雙控存儲設備的性能。
為解決上述技術問題,本發明提供如下技術方案:
一種雙控存儲設備主備控制方法,應用於微控制器,所述微控制器通過總線分別與雙控存儲設備中的主控制器和備控制器連接,所述方法包括:
在對所述主控制器的工作狀態進行監測過程中,確定所述主控制器是否出現異常;
如果是,則向所述備控制器發送主備轉換命令,以使所述備控制器升級為主控制器。
優選的,所述在對所述主控制器的工作狀態進行監測過程中,確定所述主控制器是否出現異常,包括:
在對所述主控制器的工作狀態進行監測過程中,按照設定第一周期向所述主控制器發送主控狀態檢測信號;
如果在設定第一時間段內未接收到所述主控制器返回的針對所述主控狀態檢測信號的主控反饋信號,則確定所述主控制器出現異常。
優選的,所述在對所述主控制器的工作狀態進行監測過程中,確定所述主控制器是否出現異常,包括:
在對所述主控制器的工作狀態進行監測過程中,接收所述主控制器按照設定第二周期發送的狀態信號;
如果在設定第二時間段內未接收到所述狀態信號,則確定所述主控制器出現異常。
優選的,在確定所述主控制器出現異常時,在所述向所述備控制器發送主備轉換命令之前,還包括:
向所述備控制器發送備控狀態檢測信號;
如果接收到所述備控制器返回的針對所述備控狀態檢測信號的備控反饋信號,則執行所述向所述備控制器發送主備轉換命令的步驟。
優選的,在所述向所述備控制器發送備控狀態檢測信號之後,還包括:
如果在設定第三時間段內未接收到所述備控反饋信號,則輸出告警提示信息。
一種雙控存儲設備主備控制裝置,應用於微控制器,所述微控制器通過總線分別與雙控存儲設備中的主控制器和備控制器連接,所述裝置包括:
異常確定模塊,用於在對所述主控制器的工作狀態進行監測過程中,確定所述主控制器是否出現異常,如果是,則觸發主備轉換模塊;
所述主備轉換模塊,用於向所述備控制器發送主備轉換命令,以使所述備控制器升級為主控制器。
優選的,所述異常確定模塊,具體用於:
在對所述主控制器的工作狀態進行監測過程中,按照設定第一周期向所述主控制器發送主控狀態檢測信號;
如果在設定第一時間段內未接收到所述主控制器返回的針對所述主控狀態檢測信號的主控反饋信號,則確定所述主控制器出現異常。
優選的,其特徵在於,所述異常確定模塊,具體用於:
在對所述主控制器的工作狀態進行監測過程中,接收所述主控制器按照設定第二周期發送的狀態信號;
如果在設定第二時間段內未接收到所述狀態信號,則確定所述主控制器出現異常。
優選的,所述主備轉換模塊,還用於:
在確定所述主控制器出現異常時,在所述向所述備控制器發送主備轉換命令之前,向所述備控制器發送備控狀態檢測信號;
如果接收到所述備控制器返回的針對所述備控狀態檢測信號的備控反饋信號,則執行所述向所述備控制器發送主備轉換命令的步驟。
優選的,所述主備轉換模塊,還用於:
在所述向所述備控制器發送備控狀態檢測信號之後,如果在設定第三時間段內未接收到所述備控反饋信號,則輸出告警提示信息。
應用本發明實施例所提供的技術方案,微控制器通過總線分別與雙控存儲設備中的主控制器和備控制器連接,在對主控制器的工作狀態進行監測過程中,確定主控制器是否出現異常,如果是,則向備控制器發送主備轉換命令,以使備控制器升級為主控制器。通過分別與主控制器和備控制器連接的微控制器完成主備控制,由於微控制器與主控制器和備控制器之間通過總線相連,而不是通過網絡連接,所以,可以有效避免因網絡不穩定等原因對主控制器的工作狀態進行誤判,而導致備控制器升級成主控制器,並與原主控制器互相爭用的問題出現,提升了雙控存儲設備的系統性能。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為現有技術中雙控存儲設備主備控制器通信示意圖。
圖2為本發明實施例中雙控存儲設備主備控制器通信示意圖。
圖3為本發明實施例中一種雙控存儲設備主備控制方法的實施流程圖。
圖4為本發明實施例中一種雙控存儲設備主備控制裝置的結構示意圖。
具體實施方式
本發明的核心是提供一種雙控存儲設備主備控制方法,該方法應用於微控制器,微控制器通過總線分別與雙控存儲設備中的主控制器和備控制器連接。在雙控存儲設備上電啟動後,可以默認將某個槽位的控制器設為主控制器,將另一槽位的控制器設為備控制器。或者,可以根據用戶指令,將某個槽位的控制器設為主控制器,將另一槽位的控制器設為備控制器。
如圖2所示,雙控存儲設備中的主控制器100和備控制器101分別通過i2c總線與微控制器103連接,由微控制器103進行雙控存儲設備的主備控制,主控制器100和備控制器101分別通過乙太網接口與交換機102連接,進行網絡數據的傳輸。
當然,圖2僅示出了一種總線連接方式,在實際應用中,微控制器與主控制器和備控制器連接的總線也可以為其他類型總線,本發明實施例對此不做限制。
為了使本技術領域的人員更好地理解本發明方案,下面結合附圖和具體實施方式對本發明作進一步的詳細說明。顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。
請參考圖3,為本發明實施例所提供的一種雙控存儲設備主備控制方法的實施流程圖。該方法可以包括以下步驟:
s301:在對主控制器的工作狀態進行監測過程中,確定主控制器是否出現異常。
在本發明實施例中,微控制器通過總線分別與主控制器和備控制器連接,通過總線可以進行信息傳輸。微控制器通過監測主控制器的工作狀態,可以確定主控制器是否出現異常。
在本發明的一種具體實施方式中,步驟s301可以包括以下步驟:
步驟一:在對主控制器的工作狀態進行監測過程中,按照設定第一周期向主控制器發送主控狀態檢測信號;
步驟二:如果在設定第一時間段內未接收到主控制器返回的針對主控狀態檢測信號的主控反饋信號,則確定主控制器出現異常。
為便於描述,將上述兩個步驟結合起來進行說明。
在實際應用中,可以預先設定第一周期,微控制器按照第一周期周期性地向主控制器發送主控狀態檢測信號,以對主控制器的工作狀態進行監測。當然,微控制器在對主控制器的工作狀態進行監測的過程中,可以同時對備控制器的工作狀態進行周期性的監測。
如果主控制器當前處於正常工作狀態,則主控制器接收到主控狀態檢測信號後,可以向微控制器返回針對該主控狀態檢測信號的主控反饋信號。如果主控制器當前處於異常狀態,則其可能無法接收到主控狀態檢測信號,或者無法向微控制器返回針對該主控狀態檢測信號的主控反饋信號。可以在主控制器內單獨運行一個進程進行主控狀態檢測信號的接收和主控反饋信號的發送。
如果微控制器在第一時間段內未接收到主控反饋信號,則可以確定主控制器出現異常。
需要說明的是,第一周期和第一時間段均可默認設定或者由用戶設定,本發明實施例對此不做限制。比如,用戶可以根據實際情況,如主控制器的型號、在具體應用電路中接收到反饋信號通常需要的時間等,具體設定第一時間段。
在本發明的另一種具體實施方式中,步驟s301可以包括以下步驟:
第一個步驟:在對主控制器的工作狀態進行監測過程中,接收主控制器按照設定第二周期發送的狀態信號;
第二個步驟:如果在設定第二時間段內未接收到狀態信號,則確定主控制器出現異常。
為便於描述,將上述兩個步驟結合起來進行說明。
在實際應用中,可以預先設定第二周期,主控制器按照第二周期主動地向微控制器發送狀態信號。可以在主控制器內單獨運行一個進程進行狀態信號的發送。
如果微控制器在第二時間段內未接收到主控制器發送的狀態信號,則可以確定主制控器出現異常。
需要說明的是,第二周期和第二時間段均可默認設定或者由用戶設定,本發明實施例對此不做限制。比如,用戶可以根據實際情況,如主控制器的型號、在具體應用電路中接收到反饋信號通常需要的時間等,具體設定第二時間段。
微控制器確定主控制器出現異常之後,可以執行步驟s302的操作。
s302:向備控制器發送主備轉換命令,以使備控制器升級為主控制器。
微控制器確定主控制器出現異常時,可以向備控制器發送主備轉換命令,備控制器接收到主備轉換命令之後,將自身升級成主控制器,以接替原主控制器的工作。具體的,可以在備控制器內單獨運行一個進程,在其接收到主備轉換命令之後,觸發相應的升級操作。
在本發明實施例中,在微控制器通過i2c總線分別與主控制器和備控制器相連的情況下,微控制器與主控制器、備控制器之間傳輸的信號和命令均可為i2c命令。
應用本發明實施例所提供的方法,微控制器通過總線分別與雙控存儲設備中的主控制器和備控制器連接,在對主控制器的工作狀態進行監測過程中,確定主控制器是否出現異常,如果是,則向備控制器發送主備轉換命令,以使備控制器升級為主控制器。通過分別與主控制器和備控制器連接的微控制器完成主備控制,由於微控制器與主控制器和備控制器之間通過總線相連,而不是通過網絡連接,所以,可以有效避免因網絡不穩定等原因對主控制器的工作狀態進行誤判,而導致備控制器升級成主控制器,並與原主控制器互相爭用的問題出現,提升了雙控存儲設備的系統性能。
在本發明的一個實施例中,在確定主控制器出現異常時,在步驟s302之前,還包括:
步驟一:向備控制器發送備控狀態檢測信號;
步驟二:如果接收到備控制器返回的針對備控狀態檢測信號的備控反饋信號,則執行向備控制器發送主備轉換命令的步驟。
微控制器確定主控制器出現異常時,可以向備控制器發送備控狀態檢測信號,以確定備控制器是否處於正常工作狀態。
如果微控制器接收到備控制器針對備控狀態檢測信號返回的備控反饋信號,則可以確定備控制器當前處於正常工作狀態,可以向備控制器發送主備轉換命令,以使備控制器升級為主控制器。
在微控制器向備控制器發送備控狀態檢測信號之後,如果微控制器在設定第三時間段內未接收到備控反饋信號,則表明備控制器當前可能異常,可以輸出告警提示信息,如以彈窗方式輸出,以提示用戶當前雙控存儲設備的主控制器和備控制器均存在異常,用戶可以根據該告警提示信息及時進行問題排查。
需要說明的是,第三時間段可以根據實際情況進行設定和調整,本發明實施例對此不做限制。
相應於上面的方法實施例,本發明實施例還提供了一種雙控存儲設備主備控制裝置,該裝置應用於微控制器,微控制器通過總線分別與雙控存儲設備中的主控制器和備控制器連接,下文描述的一種雙控存儲設備主備控制裝置與上文描述的一種雙控存儲設備主備控制方法可相互對應參照。
如圖4所示,為本發明提供的一種雙控存儲設備主備控制裝置的結構示意圖。該裝置包括以下模塊:
異常確定模塊401,用於在對主控制器的工作狀態進行監測過程中,確定主控制器是否出現異常,如果是,則觸發主備轉換模塊402;
主備轉換模塊402,用於向備控制器發送主備轉換命令,以使備控制器升級為主控制器。
應用本發明實施例所提供的裝置,微控制器通過總線分別與雙控存儲設備中的主控制器和備控制器連接,在對主控制器的工作狀態進行監測過程中,確定主控制器是否出現異常,如果是,則向備控制器發送主備轉換命令,以使備控制器升級為主控制器。通過分別與主控制器和備控制器連接的微控制器完成主備控制,由於微控制器與主控制器和備控制器之間通過總線相連,而不是通過網絡連接,所以,可以有效避免因網絡不穩定等原因對主控制器的工作狀態進行誤判,而導致備控制器升級成主控制器,並與原主控制器互相爭用的問題出現,提升了雙控存儲設備的系統性能。
在本發明的一種具體實施方式中,異常確定模塊401,具體用於:
在對主控制器的工作狀態進行監測過程中,按照設定第一周期向主控制器發送主控狀態檢測信號;
如果在設定第一時間段內未接收到主控制器返回的針對主控狀態檢測信號的主控反饋信號,則確定主控制器出現異常。
在本發明的一種具體實施方式中,異常確定模塊401,具體用於:
在對主控制器的工作狀態進行監測過程中,接收主控制器按照設定第二周期發送的狀態信號;
如果在設定第二時間段內未接收到狀態信號,則確定主控制器出現異常。
在本發明的一種具體實施方式中,主備轉換模塊402,還用於:
在確定主控制器出現異常時,在向備控制器發送主備轉換命令之前,向備控制器發送備控狀態檢測信號;
如果接收到備控制器返回的針對備控狀態檢測信號的備控反饋信號,則執行向備控制器發送主備轉換命令的步驟。
在本發明的一種具體實施方式中,主備轉換模塊402,還用於:
在向備控制器發送備控狀態檢測信號之後,如果在設定第三時間段內未接收到備控反饋信號,則輸出告警提示信息。
本說明書中各個實施例採用遞進的方式描述,每個實施例重點說明的都是與其它實施例的不同之處,各個實施例之間相同或相似部分互相參見即可。對於實施例公開的裝置而言,由於其與實施例公開的方法相對應,所以描述的比較簡單,相關之處參見方法部分說明即可。
專業人員還可以進一步意識到,結合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬體、計算機軟體或者二者的結合來實現,為了清楚地說明硬體和軟體的可互換性,在上述說明中已經按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬體還是軟體方式來執行,取決於技術方案的特定應用和設計約束條件。專業技術人員可以對每個特定的應用來使用不同方法來實現所描述的功能,但是這種實現不應認為超出本發明的範圍。
結合本文中所公開的實施例描述的方法或算法的步驟可以直接用硬體、處理器執行的軟體模塊,或者二者的結合來實施。軟體模塊可以置於隨機存儲器(ram)、內存、只讀存儲器(rom)、電可編程rom、電可擦除可編程rom、寄存器、硬碟、可移動磁碟、cd-rom、或技術領域內所公知的任意其它形式的存儲介質中。
本文中應用了具體個例對本發明的原理及實施方式進行了闡述,以上實施例的說明只是用於幫助理解本發明的技術方案及其核心思想。應當指出,對於本技術領域的普通技術人員來說,在不脫離本發明原理的前提下,還可以對本發明進行若干改進和修飾,這些改進和修飾也落入本發明權利要求的保護範圍內。