本發(fā)明涉及通信領域,具體而言,涉及一種數據讀寫方法及裝置。
背景技術:
相關技術中的容災解決方案一般是單一的數據中心,數據中心內的存儲由存儲磁陣提供服務。存儲磁陣由存儲控制器和磁盤兩部分構成。其中,存儲控制器為雙控,存儲控制器后端為雙控可見的若干磁盤,當一個存儲控制器節(jié)點故障后,雙控另一節(jié)點自動接管達到抗擊單點存儲控制器故障的目的。通過異步備份的方式備份到另一個地點,以實現異地數據容災。這種方式一旦數據中心的磁陣特別是磁盤發(fā)生災難損壞,只能依靠上述的異步備份來恢復,異步恢復的時間長并且數據非實時同步備份會有部分數據丟失。相關技術中的另外一種解決方法是設置兩個數據中心,主數據中心數據實時備份到備用數據中心,但是備用數據中心不能提供服務,災難發(fā)生后需要手動切換到備用數據中心,恢復時間無法滿足不斷業(yè)務的需求。主備模式下,備用站點無法提供服務,造成資源浪費,并且用戶的數據需要兩數據中心都成功寫入,每秒進行讀寫操作的次數(Input/Output Operations Per Second,簡稱為IOPS)會有一定的下降。
針對相關技術中存在的資源浪費以及數據讀寫效率低的問題,目前尚未提出有效的解決方案。
技術實現要素:
本發(fā)明提供了一種數據讀寫方法及裝置,以至少解決相關技術中存在的資源浪費以及數據讀寫效率低的問題。
根據本發(fā)明的一個方面,提供了一種數據讀寫方法,包括:確定兩個以上用于數據讀寫的存儲磁陣;利用所述兩個以上的存儲磁陣進行數據讀寫。
可選地,在上述兩個以上的存儲磁陣為兩個存儲磁陣的情況下,利用上述兩個以上的存儲磁陣進行數據讀寫包括:接收用于請求寫入第一預定數據的數據寫請求;依據所述數據寫請求,將所述第一預定數據寫入所述兩個存儲磁陣。
可選地,將上述第一預定數據寫入所述兩個存儲磁陣包括:確定所述兩個存儲磁陣中第一存儲磁陣寫數據成功,第二存儲磁陣寫數據失敗;記錄用于存儲所述第一預定數據的所述兩個存儲磁陣中相同的存儲塊;在所述第二存儲磁陣恢復正常的情況下,依據所述相同的存儲塊,將所述第一存儲磁陣寫入成功的數據鏡像同步到所述第二存儲磁陣中。
可選地,在確定所述兩個存儲磁陣中第一存儲磁陣寫數據成功,所述第二存儲磁陣寫數據失敗之后,還包括:停止向所述第二存儲磁陣寫入所述第一預定數據。
可選地,記錄用于存儲所述第一預定數據的所述兩個存儲磁陣中相同的所述存儲塊包括:利用位圖bitmap標識的方式記錄所述存儲塊,和/或,通過日志記錄的方式記錄所述存儲塊。
可選地,利用上述兩個以上的存儲磁陣進行數據讀寫包括:接收用于請求讀取第二預定數據的數據讀請求;接收所述兩個以上的存儲磁陣中的第三存儲磁陣返回的所述第二預定數據中的部分數據和所述兩個以上的存儲磁陣中的第四存儲磁陣返回的所述第二預定數據中除所述部分數據外的數據。
可選地,確定兩個以上用于數據讀寫的存儲磁陣包括:創(chuàng)建兩個以上新的存儲磁陣;或者,將已存在的預定存儲磁陣升級為雙活存儲磁陣,其中,所述雙活存儲磁陣包括所述預定存儲磁陣和復制所述預定存儲磁陣后得到的復制存儲磁陣。
根據本發(fā)明的另一方面,提供了一種數據讀寫裝置,其特征在于,包括:確定模塊,用于確定兩個以上用于數據讀寫的存儲磁陣;讀寫模塊,用于利用所述兩個以上的存儲磁陣進行數據讀寫。
可選地,所述讀寫模塊包括:第一接收單元,用于在所述兩個以上的存儲磁陣為兩個存儲磁陣的情況下,接收用于請求寫入第一預定數據的數據寫請求;寫入單元,用于依據所述數據寫請求,將所述第一預定數據寫入所述兩個存儲磁陣。
可選地,所述寫入單元包括:確定子單元,用于確定所述兩個存儲磁陣中第一存儲磁陣寫數據成功,第二存儲磁陣寫數據失??;記錄子單元,用于記錄用于存儲所述第一預定數據的所述兩個存儲磁陣中相同的存儲塊;同步子單元,用于在所述第二存儲磁陣恢復正常的情況下,依據所述相同的存儲塊,將所述第一存儲磁陣寫入成功的數據鏡像同步到所述第二存儲磁陣中。
可選地,所述寫入單元還包括:停止子單元,用于在確定所述兩個存儲磁陣中第一存儲磁陣寫數據成功,所述第二存儲磁陣寫數據失敗之后,停止向所述第二存儲磁陣寫入所述第一預定數據。
可選地,所述記錄子單元通過如下方式記錄用于存儲所述第一預定數據的所述兩個存儲磁陣中相同的存儲塊:利用位圖bitmap標識的方式記錄所述存儲塊,和/或,通過日志記錄的方式記錄所述存儲塊。
可選地,所述讀寫模塊包括:第二接收單元,用于接收用于請求讀取第二預定數據的數據讀請求;第三接收單元,用于接收所述兩個以上的存儲磁陣中的第三存儲磁陣返回的所述第二預定數據中的部分數據和所述兩個以上的存儲磁陣中的第四存儲磁陣返回的所述第二預定數據中除所述部分數據外的數據。
可選地,所述確定模塊包括:創(chuàng)建單元,用于創(chuàng)建兩個以上新的存儲磁陣;或者,升級單元,用于將已存在的預定存儲磁陣升級為雙活存儲磁陣,其中,所述雙活存儲磁陣包括所述預定存儲磁陣和復制所述預定存儲磁陣后得到的復制存儲磁陣。
通過本發(fā)明,采用確定兩個以上用于數據讀寫的存儲磁陣;利用所述兩個以上的存儲磁陣進行數據讀寫,解決了相關技術中存在的資源浪費以及數據讀寫效率低的問題,進而達到了避免資源浪費以及提高數據讀寫效率的效果。
附圖說明
此處所說明的附圖用來提供對本發(fā)明的進一步理解,構成本申請的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構成對本發(fā)明的不當限定。在附圖中:
圖1是根據本發(fā)明實施例的數據讀寫方法的流程圖;
圖2是根據本發(fā)明實施例的數據讀寫裝置的結構框圖;
圖3是根據本發(fā)明實施例的數據讀寫裝置中讀寫模塊24的結構框圖一;
圖4是根據本發(fā)明實施例的數據讀寫裝置中寫入單元34的結構框圖;
圖5是根據本發(fā)明實施例的數據讀寫裝置中寫入單元34的優(yōu)選結構框圖;
圖6是根據本發(fā)明實施例的數據讀寫裝置中讀寫模塊24的結構框圖二;
圖7是根據本發(fā)明實施例的數據讀寫裝置中確定模塊22的結構框圖;
圖8是根據本發(fā)明實施例的整體雙活系統(tǒng)結構框圖;
圖9是根據本發(fā)明實施例的雙活LUN的創(chuàng)建,雙活數據分發(fā)以及異常處理的流程圖。
具體實施方式
下文中將參考附圖并結合實施例來詳細說明本發(fā)明。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。
需要說明的是,本發(fā)明的說明書和權利要求書及上述附圖中的術語“第一”、“第二”等是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。
在本實施例中提供了一種數據讀寫方法,圖1是根據本發(fā)明實施例的數據讀寫方法的流程圖,如圖1所示,該流程包括如下步驟:
步驟S102,確定兩個以上用于數據讀寫的存儲磁陣;
步驟S104,利用該兩個以上的存儲磁陣進行數據讀寫。
通過上述方法,利用兩個以上存儲磁陣進行數據讀寫,可以在保證各存儲磁陣互為備份的前提下,提高各存儲磁陣的資源效率,并且,利用多個存儲磁陣提供數據讀寫服務還可以提高數據讀寫的效率,從而解決了相關技術中存在的資源浪費以及數據讀寫效率低的問題,進而達到了避免資源浪費以及提高數據讀寫效率的效果。
在一個可選的實施例中,在上述兩個以上的存儲磁陣為兩個存儲磁陣的情況下,利用上述兩個以上的存儲磁陣進行數據讀寫包括:接收用于請求寫入第一預定數據的數據寫請求;依據該數據寫請求,將第一預定數據寫入上述兩個存儲磁陣。
在一個可選的實施例中,在將上述第一預定數據寫入上述兩個存儲磁陣包括:確定兩個存儲磁陣中第一存儲磁陣寫數據成功,第二存儲磁陣寫數據失??;記錄用于存儲該第一預定數據的兩個存儲磁陣中相同的存儲塊;在該第二存儲磁陣恢復正常的情況下,依據上述相同的存儲塊,將第一存儲磁陣寫入成功的數據鏡像同步到第二存儲磁陣中。通過該實施例,可以保證兩個存儲磁陣中的數據始終一致,從而可以在一個存儲磁陣發(fā)生故障后,由另一個存儲磁陣提供數據讀寫服務,保證業(yè)務的正常進行。
在一個可選的實施例中,在確定上述兩個存儲磁陣中第一存儲磁陣寫數據成功,第二存儲磁陣寫數據失敗之后,還包括:停止向第二存儲磁陣寫入第一預定數據。即,當第二存儲磁陣中無法成功寫入數據后,說明該第二存儲磁陣可能出現了故障,或者可能是當前用于寫入數據的磁盤出現了故障,而導致第二存儲磁陣無法提供正常的數據讀寫服務,此時可以將該第二存儲磁陣置于不可用狀態(tài),等第二存儲磁陣恢復正常后,再利用該第二存儲磁陣進行數據讀寫服務。從而有效保證了數據讀寫的正確率。
在一個可選的實施例中,記錄用于存儲上述第一預定數據的兩個存儲磁陣中相同的存儲塊包括:利用位圖bitmap標識的方式記錄上述存儲塊,和/或,通過日志記錄的方式記錄上述存儲塊。當然,上述的存儲方式僅是兩種示例,還可以采用其他的方式記錄,在此,不一一列舉。
在一個可選的實施例中,利用上述兩個以上的存儲磁陣進行數據讀寫包括:接收用于請求讀取第二預定數據的數據讀請求;接收上述兩個以上的存儲磁陣中的第三存儲磁陣返回的上述第二預定數據中的部分數據和上述兩個以上的存儲磁陣中的第四存儲磁陣返回的上述第二預定數據中除上述部分數據外的數據。其中,上述的第三存儲磁陣可以是一個或多個,上述的第四存儲磁陣也可以是一個或多個,通過上述的第三存儲磁陣和第四存儲磁陣同時提供數據讀服務,可以提高數據讀取效率,節(jié)省數據讀取時間。
上述的確定存儲磁陣的方式有多種,在一個可選的實施例中,確定兩個以上用于數據讀寫的存儲磁陣包括:創(chuàng)建兩個以上新的存儲磁陣;或者,將已存在的預定存儲磁陣升級為雙活存儲磁陣,其中,該雙活存儲磁陣包括上述預定存儲磁陣和復制該預定存儲磁陣后得到的復制存儲磁陣。
通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到根據上述實施例 的方法可借助軟件加必需的通用硬件平臺的方式來實現,當然也可以通過硬件,但很多情況下前者是更佳的實施方式?;谶@樣的理解,本發(fā)明的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在一個存儲介質(如ROM/RAM、磁碟、光盤)中,包括若干指令用以使得一臺終端設備(可以是手機,計算機,服務器,或者網絡設備等)執(zhí)行本發(fā)明各個實施例所述的方法。
在本實施例中還提供了一種數據讀寫裝置,該裝置用于實現上述實施例及優(yōu)選實施方式,已經進行過說明的不再贅述。如以下所使用的,術語“模塊”可以實現預定功能的軟件和/或硬件的組合。盡管以下實施例所描述的裝置較佳地以軟件來實現,但是硬件,或者軟件和硬件的組合的實現也是可能并被構想的。
圖2是根據本發(fā)明實施例的數據讀寫裝置的結構框圖,如圖2所示,該裝置包括確定模塊22和讀寫模塊24,下面對該裝置進行說明。
確定模塊22,用于確定兩個以上用于數據讀寫的存儲磁陣;讀寫模塊24,連接至上述確定模塊22,用于利用上述兩個以上的存儲磁陣進行數據讀寫。
圖3是根據本發(fā)明實施例的數據讀寫裝置中讀寫模塊24的結構框圖一,如圖3所示,該讀寫模塊24包括第一接收單元32和寫入單元34,下面對該讀寫模塊24進行說明。
第一接收單元32,用于在上述兩個以上的存儲磁陣為兩個存儲磁陣的情況下,接收用于請求寫入第一預定數據的數據寫請求;寫入單元34,連接至上述第一接收單元32,用于依據上述數據寫請求,將第一預定數據寫入兩個存儲磁陣。
圖4是根據本發(fā)明實施例的數據讀寫裝置中寫入單元34的結構框圖,如圖4所示,該寫入單元34包括確定子單元42、記錄子單元44和同步子單元46,下面對該寫入單元34進行說明。
確定子單元42,用于確定兩個存儲磁陣中第一存儲磁陣寫數據成功,第二存儲磁陣寫數據失?。挥涗涀訂卧?4,連接至上述確定子單元42,用于記錄用于存儲上述第一預定數據的兩個存儲磁陣中相同的存儲塊;同步子單元46,連接至上述記錄子單元44,用于在上述第二存儲磁陣恢復正常的情況下,依據上述相同的存儲塊,將第一存儲磁陣寫入成功的數據鏡像同步到上述第二存儲磁陣中。
圖5是根據本發(fā)明實施例的數據讀寫裝置中寫入單元34的優(yōu)選結構框圖,如圖5所示,該寫入單元34除包括圖4所示的單元外,還包括停止子單元52,下面對該寫入單元34進行說明。
停止子單元52,連接至上述確定子單元42,用于在確定上述兩個存儲磁陣中第一存儲磁陣寫數據成功,第二存儲磁陣寫數據失敗之后,停止向第二存儲磁陣寫入上述第一預定數據。
在一個可選的實施例中,上述記錄子單元44可以通過如下方式記錄用于存儲第一預定數據的兩個存儲磁陣中相同的存儲塊:利用位圖bitmap標識的方式記錄上述存儲塊,和/或,通過日志記錄的方式記錄上述存儲塊。
圖6是根據本發(fā)明實施例的數據讀寫裝置中讀寫模塊24的結構框圖二,如圖6所示,該讀寫模塊24包括第二接收單元62和第三接收單元64,下面對該讀寫模塊24進行說明。
第二接收單元62,用于接收用于請求讀取第二預定數據的數據讀請求;第三接收單元64,連接至上述第二接收單元62,用于接收上述兩個以上的存儲磁陣中的第三存儲磁陣返回的第二預定數據中的部分數據和上述兩個以上的存儲磁陣中的第四存儲磁陣返回的第二預定數據中除上述部分數據外的數據。
圖7是根據本發(fā)明實施例的數據讀寫裝置中確定模塊22的結構框圖,如圖7所示,該確定模塊22包括創(chuàng)建單元72或者升級單元74,下面對該確定模塊22進行說明。
創(chuàng)建單元72,用于創(chuàng)建兩個以上新的存儲磁陣;
升級單元74,用于將已存在的預定存儲磁陣升級為雙活存儲磁陣,其中,該雙活存儲磁陣包括上述預定存儲磁陣和復制該預定存儲磁陣后得到的復制存儲磁陣。
下面以兩個存儲磁陣為例,對本發(fā)明進行說明:
在本發(fā)明實施例中提出了一種兩個數據中心(每個數據中心中均包括一個存儲磁陣)可以同時提供業(yè)務服務,由于同時可以接入,通過負載均衡機制效率得到較大提升,通過同步鏡像技術,數據中心數據完全實時一致,并且站點資源可以互相接管,無論是出現單點磁陣控制器故障還是磁盤故障都不會對用戶業(yè)務造成中斷。
為達到上述目的,本發(fā)明實施例中提供了一種兩地雙活存儲系統(tǒng),該系統(tǒng)包括兩個數據中心。其中,每個數據中心包括一套存儲磁陣以及光纖交換機若干。存儲磁陣由雙控存儲控制器和磁盤構成。其中雙控存儲控制器是兩個高可用可互相接管的單板組成,每個單板為一個節(jié)點。兩個數據中心可以使用光纖連接,并且每個存儲磁陣的兩個雙控存儲控制器組成集群,形成雙活的控制器主體。為了保證系統(tǒng)的可靠性,集群需要一個仲裁設備,以防止集群通信異常后發(fā)生腦裂造成的資源爭搶問題。下面對該系統(tǒng)中的各部分進行說明:
存儲磁陣,在雙活存儲系統(tǒng)中,是存儲用戶數據的主體。存儲磁陣對用戶通過小型計算機系統(tǒng)接口(Internet Small Computer System Interface,簡稱為iscsi)或者光纖通道(Fibre Channel,簡稱為fc)提供邏輯單元號(Logical Unit Numbe,簡稱為LUN)訪問服務。兩地存儲磁陣中的雙活存儲控制器構成一個集群。存儲控制器用于雙活的核心控制設備,負責雙活集群管理,以及卷管理,以及同步鏡像實現。
光纖交換機,兩地的雙活存儲控制器的用戶接入前端以及內部數據傳輸的后端網絡 的連接都使用光纖,以達到低延時目的。
仲裁設備,通常仲裁設備放在第三地點,可以是一個仲裁服務器來進行投票決定集群中的成員哪些可以繼續(xù)提供服務。也可以使一個以IP網絡構建的存儲網絡IPSAN設備,通過資源爭搶,占用多數資源者繼續(xù)提供服務。
在本發(fā)明實施例中提供了一種兩地雙活存儲系統(tǒng)及實現方法,其中,系統(tǒng)中存儲兩個真實的LUN,而對用戶呈現則只能看到一個雙活的LUN。這兩個真實LUN,其中一個是主LUN,另外一個是副LUN,這兩個真實LUN分別由兩地的存儲磁陣各提供一個。用戶將已存在的主LUN變成雙活時,副LUN是在另一數據中心創(chuàng)建出來的。用戶只能看到雙活LUN即主LUN。或者用戶創(chuàng)建一個全新的雙活的LUN,會自動創(chuàng)建一個主LUN作為雙活LUN,并在另一數據中心自動創(chuàng)建一個副LUN。副LUN只是雙活LUN的一部分,不對外單獨提供服務。
當有了由主副LUN組成的雙活LUN之后,同步鏡像模塊進行將主LUN的數據在后臺按磁盤塊進行數據的鏡像,直至數據全部鏡像到副LUN。在此期間,副LUN不能提供服務,當數據全部鏡像到副LUN之后,系統(tǒng)將標識副LUN也可以提供訪問。后續(xù)的用戶寫操作,將同時進行分發(fā)到主副LUN。當主副LUN都寫成功,才能給用戶反饋操作結果,以達到兩端數據一致的目的。特別的,兩個數據中心的存儲磁陣都可以提供同一個LUN的用戶訪問服務,每,以提高系統(tǒng)利用率,提升IOPS。存儲磁陣接收到用戶的寫請求時,進行主副LUN的同時分發(fā),并且只要都成功才會返回用戶成功,保證主副LUN的數據實時一致。
當用戶寫主副LUN發(fā)生異常后,例如寫副LUN失敗,則用戶的寫當次寫操作就會記錄下來,可以使用bitmap來標識當前寫的是哪個塊,也可以將此操作記錄日志。并標識副LUN不可用,避免讀取副LUN造成數據錯誤。后續(xù)異常排除后,系統(tǒng)觸發(fā)進行副LUN數據的恢復,同步鏡像模塊就開始重放bitmap,將bitmap中標識的被更改的塊從主LUN中讀取出來并寫到副LUN中,最終主副LUN的數據會達到一致,副LUN開始提供服務。如果是采用記錄日志的方式,同樣的將日志重放完后,主副LUN的數據達到一致,副LUN開始提供服務。
當用戶寫操作發(fā)生異常后,會有集群決策模塊(同上述的寫入單元34)來決策本次寫操作的操作結果以及更改主副LUN的可用狀態(tài),以避免集群多節(jié)點間的得到的信息不能嚴格實時一致的問題。集群決策模塊可以通過集群事務的方式,來達到集群間的操作更改一致,當多個集群成員同時發(fā)生錯誤時,通過這種機制可以有效做到錯誤通知順序被集群決策模塊執(zhí)行,各個錯誤的處理時,都能及時得到正確的信息。
為避免集群通道網絡異常引起的腦裂問題,還需要一個第三方仲裁設備,可以是一個IP SAN設備,通過爭搶此設備的方式決定可以繼續(xù)提供服務的節(jié)點,也可以是一個仲裁服務器進行投票決定繼續(xù)提供服務的節(jié)點。
圖8是根據本發(fā)明實施例的整體雙活系統(tǒng)結構框圖,如圖8所示,整個雙活系統(tǒng)時部署在兩個數據中心,分別是數據中心A和數據中心B。每個數據中心包括若干實體,例如數據中心A中,包含用戶A以及用戶A工作的用戶服務器A(同上述的第一接收單元32和第二接收單元62、第三接收單元64)。用戶服務器A通過光纖以及FC交換機連接到存儲磁陣A上。存儲磁陣A包括雙控存儲控制器A(同上述的寫入單元34),雙控存儲控制器A連接磁盤A,磁盤A是指若干塊磁盤的總體。
如圖8所示,兩個數據中心的用戶服務器A和用戶服務器B通過FC交換機相互連通,并且數據中心A和數據中心B的雙控存儲控制器對用戶的接入網絡通過FC交換機是相互連通的。數據中心的兩個雙控存儲控制器的后端網絡用于內部數據的傳送,如本專利中的同步鏡像通道,也使用FC交換機連通。兩個數據中心需要有集群通道進行集群消息以及心跳檢測。另外,集群間還需要一個第三方仲裁,防止集群通道發(fā)生異常后產生的腦裂問題。
圖9是根據本發(fā)明實施例的雙活LUN的創(chuàng)建,雙活數據分發(fā)以及異常處理的流程圖,如圖9所示,該流程包括如下步驟:
步驟S901:用戶發(fā)起創(chuàng)建一個雙活LUN或將一個LUN升級為雙活LUN。
本發(fā)明實施例中雙活LUN保護兩個對象主LUN和副LUN。對用戶呈現用戶看到的雙活LUN就是主LUN。副LUN不對外呈現。
步驟S902:如果是創(chuàng)建一個雙活LUN,則兩地的存儲磁陣分別新建主LUN和副LUN的請求。如果是將LUN升級為雙活,則是將該LUN變成主LUN,并向另一個數據中心的存儲磁陣發(fā)起創(chuàng)建副LUN的請求。對用戶呈現的是主LUN。
步驟S903:在后臺,同步鏡像模塊將主LUN的數據全部復制到副LUN上,此時主副LUN數據完全一致,副LUN開始提供訪問。
雙活LUN創(chuàng)建后,如果是新創(chuàng)建的雙活LUN,則說明主副LUN沒有數據,都可以立即提供訪問。如果是將LUN升級為雙活,則主LUN可能會有數據,只能通過后臺將主LUN的數據都鏡像到副LUN上,等數據完全一致后,副LUN可以提供訪問。
步驟S904:雙活存儲系統(tǒng)的各個節(jié)點都可以提供服務,并且寫IO會同時分發(fā)給主副LUN。
經過步驟S903后,用戶的寫請求的IO會同時分發(fā)給主副LUN,以達到主副LUN數據完全一致的效果。
步驟S905:返回給用戶寫成功,繼續(xù)等待用戶的讀寫請求。
如果步驟S904中寫IO同時分發(fā)給主副LUN后,如果主副LUN都返回寫成功,則返回給用戶寫成功,繼續(xù)等待用戶的讀寫請求。這樣就保證主副LUN數據是實時一致。 下一次用戶IO請求則跟步驟S904一樣,如果用戶IO主副LUN都寫成功,則整個雙活系統(tǒng)健康的持續(xù)下去。
步驟S906:如果都寫失敗,返回用戶失敗,如果有一個成功,則通知集群決策模塊,集群決策將寫失敗的LUN置為不可用。如副LUN寫失敗,置副LUN不可用。
當用戶寫操作發(fā)生異常后,需要通知雙活系統(tǒng)的集群決策模塊,決策模塊將寫失敗的LUN置為不可用。集群決策模塊可以通過集群事務的方式,來達到集群間的操作更改一致,當多個集群成員同時發(fā)生錯誤時,通過這種機制可以有效做到錯誤通知順序被集群決策模塊執(zhí)行,各個錯誤的處理時,都能及時得到正確的信息。
步驟S907:系統(tǒng)用bitmap來標識本次更改的數據塊,或者用日志記錄本次更改的信息。
用戶的寫當次寫操作就會記錄下來,例如寫副LUN失敗,則可以使用bitmap來標識當前寫的是哪個塊,也可以將此操作記錄日志。為后續(xù)副LUN的數據恢復做基礎。
步驟S908:后續(xù)副LUN的寫入可以恢復后,系統(tǒng)更加失敗時的記錄信息進行回放,將主LUN中的數據鏡像到副LUN,直至全部完成。副LUN可以繼續(xù)提供服務。
經過S908步驟后,雙活系統(tǒng)的主副LUN又可以繼續(xù)提供服務,下次用戶的寫請求IO下發(fā)時,就會跟步驟S904一樣,無論是S904步驟正常寫入還是異常,都會得到正確處理,并最終回到主副LUN都可以提供服務的狀態(tài),保證整個系統(tǒng)中出現單點故障時,不影響用戶的訪問。
需要說明的是,上述各個模塊是可以通過軟件或硬件來實現的,對于后者,可以通過以下方式實現,但不限于此:上述模塊均位于同一處理器中;或者,上述模塊分別位于多個處理器中。
本發(fā)明的實施例還提供了一種存儲介質。可選地,在本實施例中,上述存儲介質可以被設置為存儲用于執(zhí)行以下步驟的程序代碼:
S1,確定兩個以上用于數據讀寫的存儲磁陣;
S2,利用該兩個以上的存儲磁陣進行數據讀寫。
可選地,在本實施例中,上述存儲介質可以包括但不限于:U盤、只讀存儲器(Read-Only Memory,簡稱為ROM)、隨機存取存儲器(Random Access Memory,簡稱為RAM)、移動硬盤、磁碟或者光盤等各種可以存儲程序代碼的介質。
可選地,在本實施例中,處理器根據存儲介質中已存儲的程序代碼執(zhí)行上述的步驟S1-S2。
可選地,本實施例中的具體示例可以參考上述實施例及可選實施方式中所描述的示 例,本實施例在此不再贅述。
顯然,本領域的技術人員應該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計算裝置來實現,它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網絡上,可選地,它們可以用計算裝置可執(zhí)行的程序代碼來實現,從而,可以將它們存儲在存儲裝置中由計算裝置來執(zhí)行,并且在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟,或者將它們分別制作成各個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實現。這樣,本發(fā)明不限制于任何特定的硬件和軟件結合。
以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領域的技術人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內。