一種分布式存儲故障轉移方法以及分布式存儲系統與流程
2023-07-09 00:58:51 2

本發明涉及分布式存儲技術領域,特別是涉及一種分布式存儲故障轉移方法及分布式存儲系統。
背景技術:
在使用分布式存儲服務時,一般使用多個伺服器節點組成一個集群,統一向用戶提供數據存儲服務。當集群中的某個節點出現故障時,集群會重新選擇一個在線的完好的節點繼續向用戶提供服務。
雖然集群中的多個服務節點間是一種熱備的關係,而且在發生故障時,集群可以檢測到並作出重新選擇新的節點繼續提供服務,但是對於正在使用該集群提供的數據存儲服務的客戶端來說,會出現服務停止響應、業務異常中斷等現象,造成客戶正在讀寫的數據出現異常,嚴重的情況下,比較複雜的連續的業務需要重新開始,給用戶造成非常大的損失。
技術實現要素:
本發明的目的是提供一種分布式存儲故障轉移方法及分布式存儲系統,以解決業務過程中因服務節點宕機造成服務停止響應或業務中斷的問題。
為解決上述技術問題,本發明提供一種分布式存儲故障轉移方法,包括:
當應用程式在業務操作時,分布式存儲客戶端實時檢測所連接的分布式文件存儲集群的狀態;
當檢測到所述分布式文件存儲集群出現故障後,暫停業務操作;
重新連接所述分布式文件存儲集群,連接成功後,重新打開正在操作的文件,並將新的文件句柄映射到故障之前反饋給應用程式的句柄上。
可選地,在當應用程式在業務操作時,分布式存儲客戶端實時檢測所連接的分布式文件存儲集群的狀態之前還包括:
在操作分布式存儲的文件時,所述分布式存儲客戶端連接所述分布式文件存儲集群,並保持連接句柄;
所述分布式存儲客戶端打開文件後,持有文件句柄,並將映射的新的句柄反饋至應用程式。
可選地,所述分布式存儲客戶端存儲有socket連接句柄;分別包括真實文件句柄和應用程式句柄。
本發明還提供了一種分布式存儲系統,包括:
分布式存儲客戶端以及分布式文件存儲集群;
其中,所述分布式存儲客戶端用於當應用程式在業務操作時,實時檢測所連接的所述分布式文件存儲集群的狀態;當檢測到所述分布式文件存儲集群出現故障後,暫停業務操作;重新連接所述分布式文件存儲集群,連接成功後,重新打開正在操作的文件,並將新的文件句柄映射到故障之前反饋給應用程式的句柄上。
可選地,所述分布式存儲客戶端還用於:
在操作分布式存儲的文件時,連接所述分布式文件存儲集群,並保持連接句柄;打開文件後,持有文件句柄,並將映射的新的句柄反饋至應用程式。
可選地,所述分布式存儲客戶端放在作業系統的內核,用戶開發的應用程式採用文件操作接口。
可選地,所述分布式存儲客戶端存儲有socket連接句柄;分別包括真實文件句柄和應用程式句柄。
本發明所提供的分布式存儲故障轉移方法,當應用程式在業務操作時,分布式存儲客戶端實時檢測所連接的分布式文件存儲集群的狀態;當檢測到分布式文件存儲集群出現故障後,暫停業務操作;重新連接分布式文件存儲集群,連接成功後,重新打開正在操作的文件,並將新的文件句柄映射到故障之前反饋給應用程式的句柄上。本申請應用程式在連續的業務操作期間,分布式存儲客戶端會隨時檢測所連接的集群狀態,一旦出現了集群的故障後,會暫停業務操作,然後重新連接集群,連接成功後,重新打開正在操作的文件,並把新的文件句柄映射到之前反饋給應用程式的句柄上,保證應用程式在無感知的情況下進行集群故障的轉移。此外,本發明還提供了一種具有上述技術優點的分布式存儲系統。
附圖說明
為了更清楚的說明本發明實施例或現有技術的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單的介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發明所提供的分布式存儲故障轉移方法的一種具體實施方式的流程圖;
圖2為本發明實施例提供的分布式存儲系統的一種具體實施方式的結構框圖;
圖3為本發明所提供的分布式存儲系統的一種具體實施方式的示意圖。
具體實施方式
為了使本技術領域的人員更好地理解本發明方案,下面結合附圖和具體實施方式對本發明作進一步的詳細說明。顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。
本發明所提供的分布式存儲故障轉移方法的一種具體實施方式的流程圖如圖1所示,該方法包括:
步驟S101:當應用程式在業務操作時,分布式存儲客戶端實時檢測所連接的分布式文件存儲集群的狀態;
步驟S102:當檢測到所述分布式文件存儲集群出現故障後,暫停業務操作;
步驟S103:重新連接所述分布式文件存儲集群,連接成功後,重新打開正在操作的文件,並將新的文件句柄映射到故障之前反饋給應用程式的句柄上。
本發明所提供的分布式存儲故障轉移方法,當應用程式在業務操作時,分布式存儲客戶端實時檢測所連接的分布式文件存儲集群的狀態;當檢測到分布式文件存儲集群出現故障後,暫停業務操作;重新連接分布式文件存儲集群,連接成功後,重新打開正在操作的文件,並將新的文件句柄映射到故障之前反饋給應用程式的句柄上。本申請應用程式在連續的業務操作期間,分布式存儲客戶端會隨時檢測所連接的集群狀態,一旦出現了集群的故障後,會暫停業務操作,然後重新連接集群,連接成功後,重新打開正在操作的文件,並把新的文件句柄映射到之前反饋給應用程式的句柄上,保證應用程式在無感知的情況下進行集群故障的轉移。
在上述實施例的基礎上,本發明所提供的分布式存儲故障轉移方法中,在當應用程式在業務操作時,分布式存儲客戶端實時檢測所連接的分布式文件存儲集群的狀態之前還可以包括:
在操作分布式存儲的文件時,所述分布式存儲客戶端連接所述分布式文件存儲集群,並保持連接句柄;
所述分布式存儲客戶端打開文件後,持有文件句柄,並將映射的新的句柄反饋至應用程式。
其中,分布式存儲客戶端存儲有socket連接句柄;分別包括真實文件句柄和應用程式句柄。
本發明所提供的分布式存儲故障轉移方法,分布式存儲客戶端集成在作業系統內核,對應用開發沒有影響;且應用程式持有的不是真實文件句柄,故障恢復後重新映射不影響繼續使用;另外本申請能夠保證連續的業務不中斷,減小了業務中斷造成嚴重的影響。
下面對本發明實施例提供的分布式存儲系統進行介紹,下文描述的分布式存儲系統與上文描述的分布式存儲故障轉移方法可相互對應參照。
圖2為本發明實施例提供的分布式存儲系統的一種具體實施方式的結構框圖,參照圖2分布式存儲系統可以包括:
分布式存儲客戶端1以及分布式文件存儲集群2;
其中,所述分布式存儲客戶端1用於當應用程式在業務操作時,實時檢測所連接的所述分布式文件存儲集群的狀態;當檢測到所述分布式文件存儲集群2出現故障後,暫停業務操作;重新連接所述分布式文件存儲集群,連接成功後,重新打開正在操作的文件,並將新的文件句柄映射到故障之前反饋給應用程式的句柄上。
在上述實施例的基礎上,本發明所提供的分布式存儲系統中,分布式存儲客戶端還用於:
在操作分布式存儲的文件時,連接所述分布式文件存儲集群,並保持連接句柄;打開文件後,持有文件句柄,並將映射的新的句柄反饋至應用程式。
可選地,所述分布式存儲客戶端放在作業系統的內核,用戶開發的應用程式採用文件操作接口。
作為一種具體實施方式,所述分布式存儲客戶端存儲有socket連接句柄;分別包括真實文件句柄和應用程式句柄。
如圖3本發明所提供的分布式存儲系統的一種具體實施方式的示意圖所示,應用程式在連續的業務操作期間,分布式存儲客戶端會隨時檢測所連接的集群狀態,一旦出現了集群的故障後,會暫停業務操作,然後重新連接集群,連接成功後,重新打開正在操作的文件,並把新的文件句柄映射到之前反饋給應用程式的句柄上,保證應用程式在無感知的情況下進行集群故障的轉移。
本發明所提供的分布式存儲系統,分布式存儲客戶端集成在作業系統內核,對應用開發沒有影響;且應用程式持有的不是真實文件句柄,故障恢復後重新映射不影響繼續使用;另外本申請能夠保證連續的業務不中斷,減小了業務中斷造成嚴重的影響。
本說明書中各個實施例採用遞進的方式描述,每個實施例重點說明的都是與其它實施例的不同之處,各個實施例之間相同或相似部分互相參見即可。對於實施例公開的裝置而言,由於其與實施例公開的方法相對應,所以描述的比較簡單,相關之處參見方法部分說明即可。
專業人員還可以進一步意識到,結合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬體、計算機軟體或者二者的結合來實現,為了清楚地說明硬體和軟體的可互換性,在上述說明中已經按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬體還是軟體方式來執行,取決於技術方案的特定應用和設計約束條件。專業技術人員可以對每個特定的應用來使用不同方法來實現所描述的功能,但是這種實現不應認為超出本發明的範圍。
結合本文中所公開的實施例描述的方法或算法的步驟可以直接用硬體、處理器執行的軟體模塊,或者二者的結合來實施。軟體模塊可以置於隨機存儲器(RAM)、內存、只讀存儲器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬碟、可移動磁碟、CD-ROM、或技術領域內所公知的任意其它形式的存儲介質中。
以上對本發明所提供的分布式存儲故障轉移方法及分布式存儲系統進行了詳細介紹。本文中應用了具體個例對本發明的原理及實施方式進行了闡述,以上實施例的說明只是用於幫助理解本發明的方法及其核心思想。應當指出,對於本技術領域的普通技術人員來說,在不脫離本發明原理的前提下,還可以對本發明進行若干改進和修飾,這些改進和修飾也落入本發明權利要求的保護範圍內。