專利名稱:共享緩存設備的雙控制器存儲系統(tǒng)和方法
技術領域:
本發(fā)明涉及一種共享緩存設備的雙控制器存儲系統(tǒng)和方法,尤其涉及一種通過共享緩存設備實現(xiàn)的雙控制器存儲系統(tǒng)和共享緩存設備的方法。
背景技術:
存儲控制器是存儲系統(tǒng)的核心模塊,它處理來自服務器訪問磁盤陣列的請求。存儲系統(tǒng)中使用雙控制器,可以提高系統(tǒng)的可靠性和處理能力。雙控制器存儲系統(tǒng)中的一個關鍵技術是如何實現(xiàn)兩個控制器之間工作狀態(tài)和用戶數(shù)據的交互,如何判斷某個控制器進入異常狀態(tài),如何接管異??刂破鞯墓ぷ?,當某個異??刂破骰謴蜑檎9ぷ鲿r,存儲系統(tǒng)如何獲取最新配置,并恢復為正常工作模式。目前,雙控制器存儲系統(tǒng)在正常工作流程中采用的大都是兩個存儲控制器內的內存通過高速鏈路連接,且兩個存儲控制器每間隔一個固定的時間相互發(fā)送內存中的同步信息請求,對方的存儲控制器接收到消息后發(fā)送該同步消息的響應,用戶數(shù)據同步到對方存儲控制器的內存中。這種方法,操作系統(tǒng)在一臺存儲控制器存儲一份用戶數(shù)據的同時,還要同步到對方存儲控制器中,同一份用戶數(shù)據需要存儲兩次,占用了存儲系統(tǒng)的存儲資源。同時,雙控制器內存通過高速鏈路連接,每次用戶數(shù)據寫入,都需要等到雙控制器內存完成保存,降低了存儲服務效率。如果用戶數(shù)據同步故障時,會影響到雙控制器之間的接管和恢復操作,即雙控制器之間的工作狀態(tài)交互,降低了控制器的可靠性。
發(fā)明內容
本發(fā)明的目的在于提供一種基于在雙控制器存儲系統(tǒng)中使用兩個存儲控制器對同一緩存設備進行讀寫操作的技術方案,從而不需要每個存儲控制器在其內存中先緩存部分待寫入數(shù)據,也不需要在兩個存儲控制器之間同步數(shù)據。根據本發(fā)明的一個方面,提供一種實現(xiàn)雙控制器存儲系統(tǒng)共享緩存設備的方法, 所述雙控制器存儲系統(tǒng)包括緩存設備以及與所述緩存設備連接的兩個存儲控制器,所述方法包括每個所述存儲控制器響應來自客戶機的讀寫數(shù)據的請求消息,對緩存設備執(zhí)行數(shù)據的讀寫操作,并返回讀寫操作的結果,而不需要在執(zhí)行讀寫前操作在其內存中緩存所述讀寫的數(shù)據,其中,所述緩存設備接收來自每個存儲控制器的讀寫操作命令,在其與存儲控制器相應的分區(qū)中執(zhí)行數(shù)據的讀寫并返回讀寫結果。所述緩存設備在其與存儲控制器相應的分區(qū)中執(zhí)行數(shù)據的讀寫的處理可包括對接收的讀寫操作命令進行解析,以提取存儲控制器的標識信息、讀或寫的命令類型以及目標數(shù)據;響應讀寫操作命令,根據所述標識信息從與存儲控制器相應的分區(qū)讀取目標數(shù)據或者在與存儲控制器相應的分區(qū)中寫入目標數(shù)據。所述緩存設備在其與存儲控制器相應的分區(qū)中執(zhí)行數(shù)據的讀寫的處理還可包括: 緩存設備根據所述標識信息建立緩存設備中的分區(qū)與存儲控制器的映射表,并通過所述映射表定位存儲控制器讀寫數(shù)據的分區(qū)。
所述雙控制器存儲系統(tǒng)可還包括相互連接的兩個背板管理控制器,每個背板管理控制器分別與一個所述存儲控制器連接;所述方法還包括每個背板管理控制器用于監(jiān)控其分別連接的存儲控制器的運行狀態(tài),并且相互通報所述運行狀態(tài)的消息。所述兩個背板管理控制器的任一個根據監(jiān)控到的所述運行狀態(tài)檢測到其連接的存儲控制器發(fā)生故障時,可向另一背板管理控制器發(fā)送其連接的存儲控制器發(fā)生故障的消息,所述另一背板管理控制器在接收到存儲控制器發(fā)生故障的消息后,可控制其連接的存儲控制器接管發(fā)生故障的存儲控制器的全部服務。根據本發(fā)明的另一個方面,提供一種雙控制器存儲系統(tǒng),所述系統(tǒng)包括緩存設備以及與所述緩存設備連接的兩個存儲控制器。其中,每個所述存儲控制器響應來自客戶機的讀寫數(shù)據的請求消息,對緩存設備執(zhí)行數(shù)據的讀寫操作,并返回讀寫操作的結果,而不需要在執(zhí)行讀寫操作前先在其內存中緩存所述讀寫的數(shù)據。其中,所述緩存設備接收來自每個存儲控制器的讀寫操作命令,在其與存儲控制器相應的分區(qū)中執(zhí)行數(shù)據的讀寫并返回讀寫結果。所述緩存設備可包括解析單元,對接收的讀寫操作命令進行解析,以提取存儲控制器的標識信息、讀或寫的命令類型以及目標數(shù)據;命令執(zhí)行單元,響應讀寫操作命令,根據提取的所述標識信息從與存儲控制器相應的分區(qū)讀取目標數(shù)據或者在與存儲控制器相應的分區(qū)中寫入目標數(shù)據。所述緩存設備可還包括映射單元,根據所述標識信息建立緩存設備中的分區(qū)與存儲控制器的映射表,并通過所述映射表定位存儲控制器讀寫數(shù)據的分區(qū)。所述雙控制器存儲系統(tǒng)可還包括相互連接的兩個背板管理控制器,每個背板管理控制器分別與一個所述存儲控制器連接,并且用于監(jiān)控其分別連接的存儲控制器的運行狀態(tài),并且相互通報所述運行狀態(tài)的消息。所述兩個背板管理控制器的任一個根據監(jiān)控到的所述運行狀態(tài)檢測到其連接的存儲控制器發(fā)生故障時,向另一背板管理控制器發(fā)送其連接的存儲控制器發(fā)生故障的消息,所述另一背板管理控制器在接收到存儲控制器發(fā)生故障的信息后,控制其連接的存儲控制器接管發(fā)生故障的存儲控制器的全部服務。
通過下面結合附圖進行的描述,本發(fā)明的優(yōu)點和特點將會變得更加清楚,其中圖1是示出本發(fā)明的雙控制器存儲系統(tǒng)的邏輯框圖;和圖2是示出本發(fā)明的雙控制器存儲系統(tǒng)中的緩存設備的結構的邏輯框圖。
具體實施例方式以下,參照附圖來詳細說明本發(fā)明的實施例。本發(fā)明的雙控制器存儲系統(tǒng)基于服務器集群架構,由兩個存儲控制器一同提供數(shù)據存儲服務。所述每個存儲控制器安裝有軟件、硬件或兩者結合實現(xiàn)的群集服務,從而在其中一個存儲控制器發(fā)生故障的情況下,另一個存儲控制器自動接管發(fā)生故障的存儲控制器的所有服務。在這里,本發(fā)明的兩個存儲控制器都與同一個存儲設備連接,并且向同一個存儲設備執(zhí)行數(shù)據讀寫操作。而每個存儲控制器都有一個背板管理控制器與其連接,實時監(jiān)控連接的存儲控制器的運行狀況。當任一背板管理控制器確定與其連接的存儲控制器發(fā)生故障,不能正常進行包括數(shù)據讀寫等的IO操作時,該背板管理控制器通知另一背板管理控制器,由所述另一背板管理控制器通知與其連接的存儲控制器主動接管發(fā)生故障的存儲控制器的所有服務。從而,不需要像傳統(tǒng)的雙控制器存儲系統(tǒng)中那樣在兩個存儲控制器之間需要數(shù)據同步。當然,基于本發(fā)明構思的雙控制器存儲系統(tǒng)不限于兩個存儲控制器,通過變形和修改也適用于多個存儲控制器的情形。這里,將本發(fā)明所述的存儲設備稱為緩存設備。圖1是示出本發(fā)明的雙控制器存儲系統(tǒng)的邏輯框圖。參照圖1,本發(fā)明的基于服務器集群的雙控制器存儲系統(tǒng)包括存儲控制器110A、 存儲控制器110B、背板管理控制器120A、背板管理控制器120B、緩存設備130。存儲控制器IlOA和存儲控制器IlOB分別通過總線與同一緩存設備130連接,并且通過網絡(如局域網或廣域網)或者光纖通道與客戶機連接。每個存儲控制器包括處理器,所述處理器用于運行存儲應用程序,響應來自客戶機網絡或光纖通道的讀寫數(shù)據的請求消息,并且使用專用協(xié)議對緩存設備130執(zhí)行數(shù)據的讀寫。所述每個存儲控制器安裝有集群服務,從而在特定情況下,能夠接管另一存儲控制器的全部服務,包括IP地址或光纖通道地址以及通過網絡發(fā)送給另一存儲控制器的數(shù)據讀寫的請求消息。存儲控制器IlOA和存儲控制器IlOB各配置有預定的網絡地址(IP地址)或光纖通道地址。在客戶機上預先配置用于緩存設備130訪問的存儲控制器IlOA或存儲控制器 IlOB的網絡地址或光纖通道地址??梢耘渲镁W絡上的多個客戶機通過存儲控制器IlOA或存儲控制器IlOB進行緩存設備130的讀寫操作,實現(xiàn)負載均衡。緩存設備130將存儲單元分成多個分區(qū),為存儲控制器IlOA和存儲控制器IlOB 分配各自的分區(qū),并且建立存儲單元的分區(qū)與存儲控制器的映射表,從而將存儲控制器 IlOA和存儲控制器IlOB通常讀寫的數(shù)據存儲在不同的分區(qū)內。當接收到存儲控制器IlOA 和存儲控制器IlOB發(fā)出的數(shù)據讀寫命令,緩存設備130使用映射表來定位用于讀寫數(shù)據的存儲單元的分區(qū),在所述定位的分區(qū)內執(zhí)行數(shù)據讀寫,并且將數(shù)據讀寫的結果返回給發(fā)出數(shù)據讀寫命令的存儲控制器。緩存設備130可以動態(tài)地分配所述多個分區(qū),以更好地實現(xiàn)負載均衡。背板管理控制器120A通過總線與存儲控制器IlOA連接,背板管理控制器120B通過總線與存儲控制器IlOB連接,并且背板管理控制器120A和背板管理控制器120B通過總線或者私有網絡接口相互連接并通信。背板管理控制器120A和背板管理控制器120B分別用于監(jiān)控其管理的存儲控制器IlOA和存儲控制器IlOB的運行狀態(tài),并且定期地相互通報所述運行狀態(tài)的信息。背板管理控制器120A和背板管理控制器120B可以通過各種方法監(jiān)控存儲控制器IlOA和存儲控制器IlOB的運行狀態(tài)。例如,當背板管理控制器檢測到其管理的存儲控制器發(fā)生超過預定數(shù)量的讀寫錯誤時,背板管理控制器可確定其管理的存儲控制器發(fā)生故障。以下針對存儲控制器IlOA和背板管理控制器120A的操作進行的描述同樣適用于存儲控制器IlOB和背板管理控制器120B。在本申請的說明書中,當提及背板管理控制器時,指代背板管理控制器A或背板管理控制器B ;當提及存儲控制器時,指代存儲控制器A 或存儲控制器B。此外,涉及網絡地址的描述也同樣適用光纖通道地址的情形。當背板管理控制器120A檢測到其管理的存儲控制器IlOA發(fā)生異常,不能正常完成數(shù)據的讀寫操作時,背板管理控制器120將存儲控制器IlOA發(fā)生故障的運行狀態(tài)的消息發(fā)送給背板管理控制器120B。此時,背板管理控制器120B控制存儲控制器IlOB接管存儲控制器IlOA的全部服務,包括IP地址或光纖通道地址以及通過網絡發(fā)送給存儲控制器 IlOA的數(shù)據讀寫的請求消息IP地址和數(shù)據讀寫服務。當從客戶機接收到讀寫數(shù)據的請求消息時,存儲控制器B使用接收的請求消息中包含的存儲控制器的標識信息(如請求消息中的目標IP地址),根據存儲控制器和緩存設備之間的專用協(xié)議對緩存設備130進行數(shù)據的讀寫。從而,存儲控制器IlOB無論接收到發(fā)給存儲控制器A的讀寫數(shù)據的請求消息,還是接收到本機的讀寫數(shù)據的請求消息,都使用請求消息中的存儲控制器的標識信息對緩存設備130進行數(shù)據讀寫。當背板管理控制器120A檢測到其管理的存儲控制器IlOA恢復正常操作時,背板管理控制器120A將存儲控制器IlOA恢復正常操作的運行狀態(tài)的消息發(fā)送給背板管理控制器120B。其后,背板管理控制器120B控制存儲控制器IlOB解除接管狀態(tài)。自此,存儲控制器IlOB僅處理發(fā)送給本機的數(shù)據讀寫請求消息。圖2示出根據本發(fā)明的雙控制器存儲系統(tǒng)的緩存設備130的結構的邏輯框圖。參照圖2,緩存設備130包括命令解析單元210、命令執(zhí)行單元220、分配單元230、 映射單元240和存儲單元250。命令解析單元210對接收的讀寫命令進行解析,提取存儲控制器的標識信息、讀或寫的命令類型以及目標數(shù)據等。分配單元230將存儲單元250分成多個分區(qū),為存儲控制器IlOA和存儲控制器IlOB分配各自的分區(qū)。映射單元240建立存儲單元250的分區(qū)與存儲控制器的映射表,其在命令執(zhí)行單元220的控制下,根據提取的存儲控制器的標識信息定位執(zhí)行讀寫的存儲單元250的分區(qū)。當緩存設備130接收到存儲控制器的數(shù)據讀寫命令時,命令執(zhí)行單元220先通過命令解析單元110對讀寫命令進行解析。然后,命令執(zhí)行單元220根據提取的存儲控制器的標識信息,通過映射單元240定位讀寫數(shù)據的存儲單元250的分區(qū),根據提取的命令在所述分區(qū)中執(zhí)行目標數(shù)據的讀寫操作,并且將讀寫操作的結果反饋給發(fā)送讀寫命令的存儲控制器。所述緩存設備130可以為固態(tài)硬盤等緩存裝置,存儲控制器IlOA和存儲控制器 IlOB可以通過多條總線連接多個緩存設備,多個緩存設備彼此獨立,組成RAID陣列,防止因一個緩存設備物理損壞帶來的系統(tǒng)數(shù)據丟失,保證雙控制器系統(tǒng)的可靠性。由此可見,根據本發(fā)明的存儲控制器和存儲控制方法,兩個存儲控制器與同一緩存設備連接,根據用戶的讀寫請求對同一緩存設備進行數(shù)據讀寫操作,并且在一個存儲控制器因發(fā)生故障不能執(zhí)行數(shù)據讀寫的情況下,與其連接的背板管理控制器將發(fā)生故障后的讀寫請求通過與另一存儲控制器連接的背板管理控制器轉給所述另一存儲控制器進行處理,從而免除了在雙控制器存儲系統(tǒng)中在兩個存儲控制器之間進行同步以及數(shù)據恢復的處理,大大提高了存儲系統(tǒng)的效率??梢陨鲜龅姆椒ê?或操作記錄、存儲或固化在一個或多個包括將被計算機執(zhí)行的程序指令的計算機可讀存儲介質中,以使得處理器運行或執(zhí)行這些程序指令。所述介質還可單獨包括數(shù)據文件、數(shù)據結構等,或者數(shù)據文件、數(shù)據結構等與程序指令的組合。計算機可讀存儲介質的示例包括磁介質(如硬盤、軟盤和磁帶)、光介質(如CD-ROM盤和DVD)、磁光介質(如光盤)和被特殊配置存儲并執(zhí)行程序指令的硬件裝置(如只讀存儲器(ROM)、 隨機存取存儲器(RAM)、閃存等)。程序指令的示例包括如編譯器生成的機器碼和包含可由計算機使用解釋程序執(zhí)行的高級代碼的文件??梢耘渲盟龅挠布b置為一個或多個軟件模塊,以執(zhí)行上述的操作和方法,或者配置一個或多個軟件模塊為硬件裝置。此外,可以在通過網絡連接的計算機系統(tǒng)當中分布計算機可讀存儲介質,并且以分布的方式存儲和執(zhí)行計算機可讀代碼或程序指令。 已描述了一些示例。但是,應該理解,可以進行各種修改。例如,如果以不同的次序執(zhí)行所述的技術,和/或如果以不同的方式組合所述系統(tǒng)、架構、裝置或電路中的組件,和/ 或用其他的組件或等同物替代或補充所述組件,能夠取得適宜的結果。因而,其他的實施在所附權利要求的范圍內。
權利要求
1.一種實現(xiàn)雙控制器存儲系統(tǒng)共享緩存設備的方法,所述雙控制器存儲系統(tǒng)包括緩存設備以及與所述緩存設備連接的兩個存儲控制器,所述方法包括每個所述存儲控制器響應來自客戶機的讀寫數(shù)據的請求消息,對緩存設備執(zhí)行數(shù)據的讀寫操作,并返回讀寫操作的結果,而不需要在執(zhí)行讀寫前操作在其內存中緩存所述讀寫的數(shù)據,所述緩存設備接收來自每個存儲控制器的讀寫操作命令,在其與存儲控制器相應的分區(qū)中執(zhí)行數(shù)據的讀寫并返回讀寫結果。
2.如權利要求1所述的方法,其特征在于,所述緩存設備在其與存儲控制器相應的分區(qū)中執(zhí)行數(shù)據的讀寫的處理包括對接收的讀寫操作命令進行解析,以提取存儲控制器的標識信息、讀或寫的命令類型以及目標數(shù)據;響應讀寫操作命令,根據所述標識信息從與存儲控制器相應的分區(qū)讀取目標數(shù)據或者在與存儲控制器相應的分區(qū)中寫入目標數(shù)據。
3.如權利要求2所述的方法,其特征在于,所述緩存設備在其與存儲控制器相應的分區(qū)中執(zhí)行數(shù)據的讀寫的處理還包括緩存設備根據所述標識信息建立緩存設備中的分區(qū)與存儲控制器的映射表,并通過所述映射表定位存儲控制器讀寫數(shù)據的分區(qū)。
4.如權利要求1所述的方法,其特征在于,所述雙控制器存儲系統(tǒng)還包括相互連接的兩個背板管理控制器,每個背板管理控制器分別與一個所述存儲控制器連接;所述方法還包括每個背板管理控制器用于監(jiān)控其分別連接的存儲控制器的運行狀態(tài),并且相互通報所述運行狀態(tài)的消息。
5.如權利要求4所述的方法,其特征在于,所述兩個背板管理控制器的任一個根據監(jiān)控到的所述運行狀態(tài)檢測到其連接的存儲控制器發(fā)生故障時,向另一背板管理控制器發(fā)送其連接的存儲控制器發(fā)生故障的消息,所述另一背板管理控制器在接收到存儲控制器發(fā)生故障的消息后,控制其連接的存儲控制器接管發(fā)生故障的存儲控制器的全部服務。
6.一種雙控制器存儲系統(tǒng),所述系統(tǒng)包括緩存設備以及與所述緩存設備連接的兩個存儲控制器,其中,每個所述存儲控制器響應來自客戶機的讀寫數(shù)據的請求消息,對緩存設備執(zhí)行數(shù)據的讀寫操作,并返回讀寫操作的結果,而不需要在執(zhí)行讀寫操作前先在其內存中緩存所述讀寫的數(shù)據,所述緩存設備接收來自每個存儲控制器的讀寫操作命令,在其與存儲控制器相應的分區(qū)中執(zhí)行數(shù)據的讀寫并返回讀寫結果。
7.如權利要求6所述的雙控制器存儲系統(tǒng),其特征在于,所述緩存設備包括解析單元,對接收的讀寫操作命令進行解析,以提取存儲控制器的標識信息、讀或寫的命令類型以及目標數(shù)據;命令執(zhí)行單元,響應讀寫操作命令,根據提取的所述標識信息從與存儲控制器相應的分區(qū)讀取目標數(shù)據或者在與存儲控制器相應的分區(qū)中寫入目標數(shù)據。
8.如權利要求7所述的雙控制器存儲系統(tǒng),其特征在于,所述緩存設備還包括映射單元,根據所述標識信息建立緩存設備中的分區(qū)與存儲控制器的映射表,并通過所述映射表定位存儲控制器讀寫數(shù)據的分區(qū)。
9.如權利要求6所述的雙控制器存儲系統(tǒng),其特征在于,所述雙控制器存儲系統(tǒng)還包括相互連接的兩個背板管理控制器,每個背板管理控制器分別與一個所述存儲控制器連接,并且用于監(jiān)控其分別連接的存儲控制器的運行狀態(tài),并且相互通報所述運行狀態(tài)的消肩、ο
10.如權利要求9所述的雙控制器存儲系統(tǒng),其特征在于,所述兩個背板管理控制器的任一個根據監(jiān)控到的所述運行狀態(tài)檢測到其連接的存儲控制器發(fā)生故障時,向另一背板管理控制器發(fā)送其連接的存儲控制器發(fā)生故障的消息,所述另一背板管理控制器在接收到存儲控制器發(fā)生故障的信息后,控制其連接的存儲控制器接管發(fā)生故障的存儲控制器的全部服務。
全文摘要
提供一種共享緩存設備的雙控制器存儲系統(tǒng)和方法。所述雙控制器存儲系統(tǒng)包括緩存設備以及與所述緩存設備連接的兩個存儲控制器,所述方法包括每個所述存儲控制器響應來自客戶機的讀寫數(shù)據的請求消息,對緩存設備執(zhí)行數(shù)據的讀寫操作,并返回讀寫操作的結果,而不需要在執(zhí)行讀寫前操作在其內存中緩存所述讀寫的數(shù)據,其中,所述緩存設備接收來自每個存儲控制器的讀寫操作命令,在其與存儲控制器相應的分區(qū)中執(zhí)行數(shù)據的讀寫并返回讀寫結果。
文檔編號G06F12/08GK102567227SQ201210010968
公開日2012年7月11日 申請日期2012年1月13日 優(yōu)先權日2012年1月13日
發(fā)明者嚴杰, 周娟娟, 熊暉 申請人:北京邦諾存儲科技有限公司