一種基于實時應用集群的元數據集群設計方法
【專利摘要】本發明提供一種基于實時應用集群的元數據集群設計方法,其具體設計過程為:初始部署:首先進行元數據集群的初始配置,由若干元數據節點組成元數據集群,生成配置文件并同步至各個元數據節點,分別在各元數據節點上完成元數據存儲的初始化;啟動集群時順序啟動各個元數據節點,配置文件中編號最小的元數據節點自動取得領導權,并引導整個元數據集群建立全局一致性緩存和共享鎖;故障恢復;增加新的元數據節點。該一種基于實時應用集群的元數據集群設計方法和現有技術相比,實現集群文件系統中元數據集群的橫向擴展,有效的解決了大規模集群文件系統中的元數據性能瓶頸,實用性強,易于推廣。
【專利說明】一種基于實時應用集群的元數據集群設計方法
【技術領域】
[0001]本發明涉及計算機集群【技術領域】,更具體地說是基于實時應用集群的元數據集群設計方法。
【背景技術】
[0002]隨著網絡應用的迅速發展,網絡信息數據量越來越大,PB級別的海量數據存儲變得越來越重要。傳統意義的文件系統已不能滿足現有應用的大容量、高可靠性、高性能等要求,為滿足這些新要求,新的集群存儲系統應用得到了廣泛重視。
[0003]在傳統的集群文件系統中,元數據性能往往會成為系統的性能瓶頸。早期的集群文件系統有且僅有一個元數據節點負責元數據的存儲、訪問和處理。在技術更先進的集群文件系統中,存在多個元數據節點同時提供服務,實現了元數據訪問性能的橫向擴展。然而一般的元數據集群普遍基于子樹分區技術對元數據進行邏輯分割,不同的元數據訪問由不同的元數據節點提供服務。基于子樹分區技術的元數據分割機制帶來的問題是產生了元數據的數據隔離,進而導致了跨越子樹分區的元數據操作需要進行二段式提交,每個元數據節點的高可用機制設計也較為復雜,在實際工程化的過程中困難重重,同時對于元數據總量并不高而元數據訪問熱度超高的業務無法取得良好的效果。子樹分區技術按照分區的時機又可以細分為靜態子樹分區與動態子樹分區兩種。
[0004]基于靜態子樹分區的元數據集群技術較為成熟,其元數據分割是靜態分割的,一般由系統管理員制定好元數據靜態分割的規則,系統配置后可實現靜態的元數據分割。靜態子樹分區的主要缺點是無法應對的數據訪問熱點經常發生變化的應用場景,由于元數據的分割服務,導致系統只能對于數據熱點分割較為明顯的應用產生良好的效果。在高可用性方面,元數據集群的節點之間不是相互備份的關系,需要各自保證自身的可用性,任一節點宕機均會導致系統的部分或全部不可用。
[0005]基于動態子樹分區的元數據集群技術較少見到企業級的工程實現,其算法能夠實現根據元數據訪問的熱點動態的進行元數據的分割。其對元數據訪問熱點的響應往往存在滯后,無法適應于元數據訪問熱點經常變化的場景,且目前未有可行的工程實現。
[0006]對于元數據絕對數量不是特別巨大,元數據訪問熱度經常變化的場景,以上方案均無法取得良好的效果,且在高可用層面均存在導致系統可用性降低的問題。
[0007]針對這一情況,本專利設計并實現了一種基于實時應用集群的元數據集群機制。
【發明內容】
[0008]本發明的技術任務是解決現有技術的不足,提供一種基于實時應用集群的元數據集群設計方法。
[0009]本發明的技術方案是按以下方式實現的,該一種基于實時應用集群的元數據集群設計方法,其具體設計過程為:
一、初始部署:首先進行元數據集群的初始配置,由若干元數據節點組成元數據集群,生成配置文件并同步至各個元數據節點,分別在各元數據節點上完成元數據存儲的初始化;啟動集群時順序啟動各個元數據節點,配置文件中編號最小的元數據節點自動取得領導權,并引導整個元數據集群建立全局一致性緩存和共享鎖。
[0010]二、故障恢復:元數據集群在正常運行時,當有一個元數據節點發生宕機,則該元數據節點自動從集群中下線,剩余的元數據節點繼續提供服務;該節點修復后啟動的過程中,節點加入集群后,取得集群最新的日志序號,自動從其他節點中請求數據變更日志,待所有未完成的日志處理完成后,該節點加入到集群中,繼續提供元數據服務。
[0011]三、增加新的元數據節點:在元數據集群正常運行時,可增加新的元數據處理節點,即新的元數據節點啟動后主動申請加入集群,同時該節點進入數據初始填充流程,直接從集群其他節點并行的請求系統全部日志和數據,并進行日志回放,日志回放完成后,元數據節點加入集群,并提供元數據服務。
[0012]所述元數據集群是指由若干元數據節點通過高速網絡建立全局一致性緩存和共享鎖構建的實時應用集群,其中所有元數據節點均提供全局命名空間的元數據服務,整個集群元數據性能橫向擴展,所有元數據節點均處于Active狀態。
[0013]所述全局一致性緩存實現元數據節點間的緩存同步:系統元數據存儲于每個節點的存儲設備上,當某個元數據被訪問時,接收這個元數據請求的元數據節點會將此元數據的信息加載到全局一致性緩存中,后續的訪問均可從此全局一致性緩存中獲得加速。
[0014]所述步驟一中的共享鎖機制實現用戶訪問元數據時在整個元數據集群中進行全局加鎖,其使用租約機制,每個鎖由某一個元數據節點持有,該元數據節點在整個集群中定期廣播該租約的續期消息,當該節點發生故障時,則無法在廣播租約續期消息,集群中其余節點在需要獲取該鎖時根據租約過期情況選擇重新加鎖。
[0015]本發明與現有技術相比所產生的有益效果是:
本發明的一種基于實時應用集群的元數據集群設計方法使用實時應用集群技術構建元數據集群,實現集群文件系統中元數據集群的橫向擴展,在低延遲高速互聯網絡的支持下,本發明在元數據集群的節點數小于或等于8個時,具有相對于單節點近似線性的性能提升,有效的解決了大規模集群文件系統中的元數據性能瓶頸,實用性強,易于推廣。
【專利附圖】
【附圖說明】
[0016]附圖1為本發明中元數據集群的示意圖。
【具體實施方式】
[0017]下面結合附圖對本發明的一種基于實時應用集群的元數據集群設計方法作以下詳細說明。
[0018]如附圖1所示,本發明提出了一種基于實時應用集群的元數據集群設計方法,其具體設計過程為:
一、初始部署:首先進行元數據集群的初始配置,由若干元數據節點組成元數據集群,生成配置文件并同步至各個元數據節點,分別在各元數據節點上完成元數據存儲的初始化;啟動集群時順序啟動各個元數據節點,配置文件中編號最小的元數據節點自動取得領導權,并引導整個元數據集群建立全局一致性緩存和共享鎖。[0019]二、故障恢復:元數據集群在正常運行時,當有一個元數據節點發生宕機,則該元數據節點自動從集群中下線,剩余的元數據節點繼續提供服務;該節點修復后啟動的過程中,節點加入集群后,取得集群最新的日志序號,自動從其他節點中請求數據變更日志,待所有未完成的日志處理完成后,該節點加入到集群中,繼續提供元數據服務.三、增加新的元數據節點:在一個運行正常的元數據集群中,可以隨時增加新的元數據處理節點。新的元數據節點啟動后會主動申請加入集群,由于此節點并未存儲任何元數據,因此該節點會進入數據初始填充流程,直接從集群其他節點并行的請求系統全部日志和數據,并進行日志回放。日志回放完成后,元數據節點加入集群,并提供元數據服務。
[0020]本專利設計了基于實時應用集群的元數據集群機制。元數據集群中的所有元數據節點均提供全局命名空間的元數據服務,元數據節點之間通過高速網絡建立全局一致性緩存和共享鎖構建實時應用集群,整個集群元數據性能橫向擴展,所有元數據節點均處于Active狀態,任意一個節點巖機均不影響整個集群的元數據服務。
[0021]本專利使用了基于高速互聯網絡的全局一致性緩存實現元數據節點間的緩存同步。系統元數據存儲于每個節點的存儲設備上,當某個元數據被訪問時,接收這個元數據請求的元數據節點會將此元數據的信息加載到全局一致性緩存中,后續的訪問均可從此全局一致性緩存中獲得加速。
[0022]本專利建立了一套基于共享鎖控制的全局一致性緩存,元數據節點之間的通信依靠該全局一致性緩存的緩存管理實現。所有的元數據操作均在全局一致性緩存中執行,并根據緩存刷新策略寫入到磁盤中。在良好的硬件環境中,本專利使用帶有額外電池供電的專有內存實現此全局一致性緩存,在此環境下全部節點掉電均不會造成數據丟失,系統可以安全的使用Write-Back的緩存刷新策略。在一般的硬件環境下,不存在帶有額外電池供電的專有內存,本專利設計的機制可以使用普通的內存實現全局一致性緩存,同時支持Write-Through和Write-Back緩存策略。使用Write-Through策略時,全部節點巖機仍不會丟失數據。在使用Write-Back策略時,只要系統中可用的元數據節點數大于等于1,就可以保證元數據的數據安全。在這種環境下,對于數據安全性要求不是特別苛刻的話,也可以使用Write-Back策略。在本專利設計的基于實時應用集群的元數據集群機制中,使用Write-Back緩存策略的性能高于使用Write-Back緩存策略。
[0023]本專利設計了一個基于高速互聯網絡的共享鎖機制,用于實現用戶訪問元數據時在整個元數據集群中進行全局加鎖。該共享鎖機制的存在保證了事務性的元數據操作在整個元數據集群的數據同步和一致。共享鎖機制的設計使用了租約機制,每個鎖由某一個元數據節點持有,該元數據節點在整個集群中定期廣播該租約的續期消息,當該節點發生故障時,則無法在廣播租約續期消息,集群中其余節點在需要獲取該鎖時根據租約過期情況選擇重新加鎖,以此保證了故障狀態下的共享鎖的自動釋放。
[0024]本發明通過在多個元數據節點同時提供完整的元數據服務,實現系統元數據性能的橫向擴展和多個元數據節點同時服務的高可用機制。每個元數據節點擁有獨立的存儲,并保存全部的元數據。元數據節點之間通過低延遲高速網絡互連,共享全局一致性緩存和全局元數據鎖信息,通過該共享實現了多個元數據節點間的協商一致,同時提供服務。
[0025]本發明能夠降低故障恢復過程中,元數據重新定位的運算量。在基于子樹分區的元數據集群中的元數據節點發生故障、進行冗余數據的重新構建過程中,需要更新元數據集群內元數據節點管理的元數據的映射關系。而采用本專利提出的基于實時應用集群的元數據集群機制,則不需要進行元數據的數據恢復和重新構建,剩余可用的元數據節點依然可以提供完整的元數據服務。
[0026]當然,本發明還可有其他多種實施例,在不背離本發明精神及其實質的情況下,熟悉本領域的技術人員當可根據本發明作出各種相應的改變和變形,但這些相應的改變和變形都應屬于本發明的權利要求的保護范圍。
【權利要求】
1.一種基于實時應用集群的元數據集群設計方法,其特征在于其具體設計過程為: 一、初始部署:首先進行元數據集群的初始配置,由若干元數據節點組成元數據集群,生成配置文件并同步至各個元數據節點,分別在各元數據節點上完成元數據存儲的初始化;啟動集群時順序啟動各個元數據節點,配置文件中編號最小的元數據節點自動取得領導權,并引導整個元數據集群建立全局一致性緩存和共享鎖; 二、故障恢復:元數據集群在正常運行時,當有一個元數據節點發生宕機,則該元數據節點自動從集群中下線,剩余的元數據節點繼續提供服務;該節點修復后啟動的過程中,節點加入集群后,取得集群最新的日志序號,自動從其他節點中請求數據變更日志,待所有未完成的日志處理完成后,該節點加入到集群中,繼續提供元數據服務; 三、增加新的元數據節點:在元數據集群正常運行時,可增加新的元數據處理節點,即新的元數據節點啟動后主動申請加入集群,同時該節點進入數據初始填充流程,直接從集群其他節點并行的請求系統全部日志和數據,并進行日志回放,日志回放完成后,元數據節點加入集群,并提供元數據服務。
2.根據權利要求1所述的一種基于實時應用集群的元數據集群設計方法,其特征在于:所述元數據集群是指由若干元數據節點通過高速網絡建立全局一致性緩存和共享鎖構建的實時應用集群,其中所有元數據節點均提供全局命名空間的元數據服務,整個集群元數據性能橫向擴展,所有元數據節點均處于Active狀態。
3.根據權利要求2所述的一種基于實時應用集群的元數據集群設計方法,其特征在于:所述全局一致性緩存實現元數據節點間的緩存同步:系統元數據存儲于每個節點的存儲設備上,當某個元數據被訪問時,接收這個元數據請求的元數據節點會將此元數據的信息加載到全局一致性緩存中,后續的訪問均可從此全局一致性緩存中獲得加速。
4.根據權利要求3所述的一種基于實時應用集群的元數據集群設計方法,其特征在于:所述步驟一中的共享鎖機制實現用戶訪問元數據時在整個元數據集群中進行全局加鎖,其使用租約機制,每個鎖由某一個元數據節點持有,該元數據節點在整個集群中定期廣播該租約的續期消息,當該節點發生故障時,則無法在廣播租約續期消息,集群中其余節點在需要獲取該鎖時根據租約過期情況選擇重新加鎖。
【文檔編號】H04L29/08GK103795801SQ201410048696
【公開日】2014年5月14日 申請日期:2014年2月12日 優先權日:2014年2月12日
【發明者】王恩東, 文中領, 張立強, 孟圣智 申請人:浪潮電子信息產業股份有限公司