專利名稱:一種集群存儲系統(tǒng)的數(shù)據(jù)管理方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及集群存儲技術(shù)領(lǐng)域,尤其涉及一種集群存儲系統(tǒng)的數(shù)據(jù)管理方法及系統(tǒng)。
背景技術(shù):
云存儲和大數(shù)據(jù)背景下,非結(jié)構(gòu)化數(shù)據(jù)呈現(xiàn)爆炸式的增長,面對海量的存儲系統(tǒng),高效的元數(shù)據(jù)管理和數(shù)據(jù)定位是個巨大的挑戰(zhàn),直接影響系統(tǒng)的擴展性、性能、可靠性和穩(wěn)定性等?,F(xiàn)有技術(shù)方案主要是采用專用元 數(shù)據(jù)服務(wù)來管理元數(shù)據(jù),包括集中式和分布式兩種模型,數(shù)據(jù)定位通過向元數(shù)據(jù)服務(wù)器進行查詢實現(xiàn)。圖I為現(xiàn)有技術(shù)中元數(shù)據(jù)服務(wù)模型示意圖,如圖I所示,圖I (a)為集中式元數(shù)據(jù)服務(wù)模型,該模型提供一個中央元數(shù)據(jù)服務(wù)器負責元數(shù)據(jù)的存儲和客戶端查詢請求,它提供統(tǒng)一的文件系統(tǒng)命名空間,并處理名字解析和數(shù)據(jù)定位等訪問控制功能。傳統(tǒng)的NAS系統(tǒng)中,I/O數(shù)據(jù)流需要經(jīng)過服務(wù)器,而分布式文件系統(tǒng)中,I/O數(shù)據(jù)流不需要經(jīng)過元數(shù)據(jù)服務(wù)器,由客戶端與存儲節(jié)點直接交互。這個架構(gòu)上的變革,使得控制流與數(shù)據(jù)流分離開來,元數(shù)據(jù)服務(wù)器和存儲服務(wù)器各司其職,系統(tǒng)擴展性和性能上獲得了極大的提升。顯而易見,集中式元數(shù)據(jù)服務(wù)模型的最大優(yōu)點就是設(shè)計實現(xiàn)簡單,本質(zhì)上相當于設(shè)計一個單機應用程序,對外提供網(wǎng)絡(luò)訪問接口即可,如Socket, RPC, HTTP REST或SOAP等。元數(shù)據(jù)服務(wù)設(shè)計實現(xiàn)的關(guān)鍵是OPS吞吐量,即單位時間處理的操作數(shù),這對集中式元數(shù)據(jù)服務(wù)模型尤其關(guān)鍵,因為會受到系統(tǒng)Scale-Up方面的限制。為了優(yōu)化0PS,該模型對CPU、內(nèi)存、磁盤要求較高,條件允許的情況下盡量使用高性能CPU、大內(nèi)存和高速磁盤,甚至后端存儲可考慮使用高端磁盤陣列或SSD。在軟件架構(gòu)方面設(shè)計,應該考慮多進程/線程(池)、異步通信、Cache、事件驅(qū)動等實現(xiàn)機制。但集中式元數(shù)據(jù)服務(wù)模型存在性能瓶頸和單點故障問題。性能瓶頸,這種模型下元數(shù)據(jù)服務(wù)器在負載不斷增大時將很快成為整個系統(tǒng)性能的瓶頸。根據(jù)Amdahl定律,系統(tǒng)性能加速比最終受制于串行部分的比重,這決定了系統(tǒng)使用并行手段所能改進性能的潛力。這里,元數(shù)據(jù)服務(wù)器就是串行的部分,它直接決定著系統(tǒng)的擴展規(guī)模和性能。文件元數(shù)據(jù)的基本特性要求它必須同步地進行維護和更新,任何時候?qū)ξ募?shù)據(jù)或元數(shù)據(jù)進行操作時,都需要同步更新元數(shù)據(jù)??蛻舳嗽L問分布式文件系統(tǒng)時,都需要先與元數(shù)據(jù)服務(wù)器進行交互,這包括命名空間解析、數(shù)據(jù)定位、訪問控制等,然后才直接與存儲節(jié)點進行I/O交互。隨著系統(tǒng)規(guī)模不斷擴大,存儲節(jié)點、磁盤數(shù)量、文件數(shù)量、客戶端數(shù)據(jù)、文件操作數(shù)量等都將急劇增加,而運行元數(shù)據(jù)服務(wù)器的物理服務(wù)器性能畢竟終究有限,因此集中式元數(shù)據(jù)服務(wù)器將最終成為性能瓶頸。單點故障(SPOF, Single Point of Failure),這個問題比性能瓶頸更加嚴重。整個系統(tǒng)嚴重依賴于元數(shù)據(jù)服務(wù)器,一旦出現(xiàn)問題,系統(tǒng)將變得完全不可用,直接導致應用中斷并影響業(yè)務(wù)連續(xù)性。物理服務(wù)器所涉及的網(wǎng)絡(luò)、計算和存儲部件以及軟件都有可能發(fā)生故障,因此單點故障問題潛在的,采用更優(yōu)的硬件和軟件只能降低發(fā)生的概率而無法避免。目前,SPOF問題主要是采用HA機制來解決,根據(jù)可用性要求的高低,鏡像一個或多個元數(shù)據(jù)服務(wù)器(邏輯的或物理的均可),構(gòu)成一個元數(shù)據(jù)服務(wù)HA集群。集群中一臺作為主元數(shù)據(jù)服務(wù)器,接受和處理來自客戶端的請求,并與其他服務(wù)器保持同步。當主元數(shù)據(jù)服務(wù)器發(fā)生問題時,自動選擇一臺可用服務(wù)器作為新的主服務(wù)器,這一過程對上層應用是透明的,不會產(chǎn)生業(yè)務(wù)中斷。HA機制能夠解決SPOF問題,但同時增加了成本開銷,只有主服務(wù)器是活動的,其他服務(wù)器均處于非活動狀態(tài),對性能提升沒有任何幫助。圖I (b)為分布式元數(shù)據(jù)服務(wù)模型,即使用多臺服務(wù)器構(gòu)成集群協(xié)同為分布式文件系統(tǒng)提供元數(shù)據(jù)服務(wù),從而消除集中式元數(shù)據(jù)服務(wù)模型的性能瓶頸和單點故障問題。這種模型可以細分為兩類,一為全對等模式,即集群中的每個元數(shù)據(jù)服務(wù)器是完全對等的,每個都可以獨立對外提供元數(shù)據(jù)服務(wù),然后集群內(nèi)部進行元數(shù)據(jù)同步,保持數(shù)據(jù)一致性,比如ISILON.LoongStore.CZSS等。另一類為全分布模式,集群中的每個元數(shù)據(jù)服務(wù)器負責部分元數(shù)據(jù)服務(wù)(分區(qū)可以重疊),共同構(gòu)成完整的元數(shù)據(jù)服務(wù),比如PanFS,GPFS, Ceph等。分布式元數(shù)據(jù)服務(wù)模型,將負載分散到多 臺服務(wù)器解決了性能瓶頸問題,利用對等的服務(wù)器或冗余元數(shù)據(jù)服務(wù)分區(qū)解決了單點故障問題。分布式看似非常完善,然而它大大增加了設(shè)計實現(xiàn)上的復雜性,同時可能會引入了新的問題,即性能開銷和數(shù)據(jù)一致性問題。性能開銷,分布式系統(tǒng)通常會引由于節(jié)點之間的數(shù)據(jù)同步而引入額外開銷,這是因為同步過程中需要使用各種鎖和同步機制,以保證數(shù)據(jù)一致性。如果節(jié)點同步問題處理不當,性能開銷將對系統(tǒng)擴展性和性能產(chǎn)生較大影響,和集中式元數(shù)據(jù)模型一樣形成性能瓶頸,這就對分布式元數(shù)據(jù)服務(wù)器的設(shè)計提出了更高的要求。這種性能開銷會抵消一部分采用分布式所帶來的性能提升,而且隨著元數(shù)據(jù)服務(wù)器數(shù)量、文件數(shù)量、文件操作、存儲系統(tǒng)規(guī)模、磁盤數(shù)量、文件大小變小、I/o操作隨機性等增加而加劇。另外,元數(shù)據(jù)服務(wù)器規(guī)模較大時,高并發(fā)性元數(shù)據(jù)訪問會導致同步性能開銷更加顯著。目前,一些分布式文件系統(tǒng)采用高性能網(wǎng)絡(luò)(如InfiniBand,GibE等)、SSD固態(tài)硬盤或SAN磁盤陣列、分布式共享內(nèi)存(SMP或ccNUMA)等技術(shù)進行集群內(nèi)部的元數(shù)據(jù)同步和通信。這的確可以明顯提高系統(tǒng)性能以抵消同步開銷,不過成本方面也徒然增加許多。數(shù)據(jù)一致性,這是分布式系統(tǒng)必須面對的難題。分布式元數(shù)據(jù)服務(wù)模型同樣面臨潛在的系統(tǒng)發(fā)生錯誤的風險,雖然一部分元數(shù)據(jù)節(jié)點發(fā)生故障不會致使整個系統(tǒng)宕機,但卻可能影響整個系統(tǒng)正常運行或出現(xiàn)訪問錯誤。為了保證高可用性,元數(shù)據(jù)會被復制到多個節(jié)點位置,維護多個副本之間的同步具有很高的風險。如果元數(shù)據(jù)沒有及時同步或者遭受意外破壞,同一個文件的元數(shù)據(jù)就會出現(xiàn)不一致,從而導致訪問文件數(shù)據(jù)的不一致,直接影響到上層數(shù)據(jù)應用的正確性。這種風險發(fā)生的概率隨著系統(tǒng)規(guī)模的擴大而大幅增加,因此分布式元數(shù)據(jù)的同步和并發(fā)訪問是個巨大的挑戰(zhàn)。使用同步方法對元數(shù)據(jù)進行同步,再結(jié)合事務(wù)或日志,自然可以解決數(shù)據(jù)一致性問題,然而這大大降低了系統(tǒng)的并發(fā)性,違背了分布式系統(tǒng)的設(shè)計初衷。在保證元數(shù)據(jù)一致性的前提下,盡可能地提高并發(fā)性,這就對同步機制和算法設(shè)計方面提出了嚴格要求,復雜性和挑戰(zhàn)性不言而喻。分布式元數(shù)據(jù)服務(wù)模型雖然解決了集中式數(shù)據(jù)服務(wù)模型中存在的問題,但同時引入了設(shè)計復雜性、性能開銷和元數(shù)據(jù)同步一致性等問題。這些問題直接影響到系統(tǒng)性能和擴展性。
發(fā)明內(nèi)容
本發(fā)明的目的在于克服現(xiàn)有技術(shù)的缺陷和不足,提供一種集群存儲系統(tǒng)的數(shù)據(jù)管理方法及系統(tǒng),消除了上述元數(shù)據(jù)管理的性能瓶頸、單點故障、數(shù)據(jù)一致性等一系列相關(guān)問題。為達到上述目的,本發(fā)明是通過以下技術(shù)方案來實現(xiàn)的一種集群存儲系統(tǒng)的數(shù)據(jù)管理方法,該方法基于包括客戶端和存儲服務(wù)器集群的系統(tǒng)實現(xiàn),包括數(shù)據(jù)存儲和訪問的操作,所述數(shù)據(jù)存儲的操作包括利用磁盤文件系統(tǒng)存儲元數(shù)據(jù),數(shù)據(jù)布局以目錄為基本單位進行分布并分配Hash范圍,其中,文件的父目錄利用擴展屬性 記錄存儲節(jié)點的映射關(guān)系,子文件在父目錄所屬存儲節(jié)點中進行分布;所述方法基于所述數(shù)據(jù)布局進行數(shù)據(jù)訪問操作,其中,所述數(shù)據(jù)訪問操作包括SI :客戶端對數(shù)據(jù)布局信息進行感知并發(fā)出數(shù)據(jù)訪問指令,集成服務(wù)器根據(jù)客戶端的數(shù)據(jù)訪問指令判斷查找路徑是否為根目錄,如是,則執(zhí)行步驟S2,如否,執(zhí)行步驟S3 ;S2 :選定特定的活動節(jié)點作為目標節(jié)點進行數(shù)據(jù)訪問;S3:根據(jù)路徑輸入?yún)?shù)計算Hash值,獲取數(shù)據(jù)布局信息,查找目標節(jié)點并進行數(shù)據(jù)訪問。相應地,本發(fā)明還公開一種集群存儲系統(tǒng)的數(shù)據(jù)管理系統(tǒng),所述數(shù)據(jù)管理系統(tǒng)包括客戶端和存儲服務(wù)器集群,所述客戶端包括數(shù)據(jù)布局管理模塊和元數(shù)據(jù)管理模塊,所述存儲服務(wù)器包括根目錄判定模塊、數(shù)據(jù)布局存儲模塊、查詢模塊;所述數(shù)據(jù)布局管理模塊用于對以目錄為基本單位進行分布并分配Hash范圍的數(shù)據(jù)進行管理;所述元數(shù)據(jù)管理模塊用于利用磁盤文件系統(tǒng)管理元數(shù)據(jù);所述根目錄判定模塊用于根據(jù)客戶端發(fā)出的數(shù)據(jù)訪問指令,判斷查找路徑是否為根目錄;所述查詢模塊用于根據(jù)根目錄判定模塊的判定結(jié)果,查找目標節(jié)點進行數(shù)據(jù)訪問,如判定結(jié)果為是,則選定特定活動節(jié)點作為目標節(jié)點進行數(shù)據(jù)訪問;如判定結(jié)果為否,則根據(jù)路徑輸入?yún)?shù)計算Hash值,獲取數(shù)據(jù)布局信息,查找目標節(jié)點并進行數(shù)據(jù)訪問;所述數(shù)據(jù)布局存儲模塊用于利用磁盤文件系統(tǒng)存儲元數(shù)據(jù),數(shù)據(jù)布局以目錄為基本單位進行分布并分配Hash范圍,文件的父目錄利用擴展屬性記錄存儲節(jié)點的映射關(guān)系,子文件在父目錄所屬存儲節(jié)點中進行分布。本發(fā)明的技術(shù)方案,采用無元數(shù)據(jù)服務(wù)模型管理元數(shù)據(jù),不需要專用的元數(shù)據(jù)服務(wù)器,元數(shù)據(jù)和數(shù)據(jù)沒有分離而是一起存儲,通過智能算法替代原有的查詢方法進行數(shù)據(jù)定位。這種方法消除了元數(shù)據(jù)管理的性能瓶頸、單點故障、數(shù)據(jù)一致性等一系列相關(guān)問題,系統(tǒng)擴展性顯著提高,系統(tǒng)并發(fā)性和性能將實現(xiàn)線性擴展增長。
圖I為現(xiàn)有技術(shù)中元數(shù)據(jù)服務(wù)模型示意圖;圖2為本發(fā)明實施例的集群存儲系統(tǒng)的數(shù)據(jù)管理方法的流程圖;圖3為本發(fā)明實施例的集群存儲系統(tǒng)的數(shù)據(jù)管理系統(tǒng)的示意圖。
具體實施例方式下面結(jié)合附圖和實施例對本發(fā)明作進一步說明。圖2為本發(fā)明實施例的集群存儲系統(tǒng)的數(shù)據(jù)管理方法的流程圖。如圖2所示,該方法基于包括客戶端和存儲服務(wù)器集群的系統(tǒng)實現(xiàn),包括數(shù)據(jù)存儲和訪問的操作,所述數(shù)據(jù)存儲的操作包括利用磁盤文件系統(tǒng)存儲元數(shù)據(jù),數(shù)據(jù)布局以目錄為基本單位進行分布并分配Hash范圍;磁盤文件系統(tǒng)文件的父目錄利用擴展屬性記錄存儲節(jié)點的映射關(guān)系,子文件在父目錄所屬存儲節(jié)點中進行分布;所述方法基于所述數(shù)據(jù)布局進行數(shù)據(jù)訪問操作。其中,所述方法還包括創(chuàng)建新 文件的操作,在父目錄所屬存儲節(jié)點上新建文件時,新建文件分布到父目錄所屬存儲節(jié)點上,新增節(jié)點不參加分布。所述方法還包括創(chuàng)建新文件的操作,在父目錄所屬存儲節(jié)點上新建文件時,新建文件分布到父目錄所屬存儲節(jié)點上,新增節(jié)點不參加分布。所述方法還包括父目錄所屬存儲節(jié)點上文件重命名的操作,其中,在目標存儲服務(wù)器上創(chuàng)建一個鏈接指向?qū)嶋H的存儲服務(wù)器,訪問時由服務(wù)器解析并進行重定向,服務(wù)器后臺同時進行文件遷移,成功后文件鏈接被自動刪除。所述數(shù)據(jù)訪問操作包括SI :客戶端對數(shù)據(jù)布局信息進行感知并發(fā)出數(shù)據(jù)訪問指令,集成服務(wù)器根據(jù)客戶端的數(shù)據(jù)訪問指令判斷查找路徑是否為根目錄,如是,則執(zhí)行步驟S2,如否,執(zhí)行步驟S3 ;S2 :選定特定的活動節(jié)點作為目標節(jié)點進行數(shù)據(jù)訪問;本實施例中選擇某個活動節(jié)點作為目標節(jié)點。如默認元數(shù)據(jù)存儲節(jié)點中第一個活動節(jié)點作為目標節(jié)點。S3 :根據(jù)路徑輸入?yún)?shù)計算Hash值,獲取數(shù)據(jù)布局信息,查找目標節(jié)點并進行數(shù)據(jù)訪問。其中,根據(jù)路徑輸入?yún)?shù)利用Davies-Meyer算法計算文件名hash值。本實施例中,使用Davies-Meyer算法計算文件名hash值,獲得一個32位整數(shù)。Davies-Meyer算法具有非常好的hash分布性,計算效率很高。假設(shè)集群中有N個存儲節(jié)點,則32位整數(shù)空間被平均劃分為N個連續(xù)子空間,每個空間分別映射到一個存儲節(jié)點。這樣,計算得到的32位hash值就會被投射到一個存儲節(jié)點,即我們要選擇的目標節(jié)點。根據(jù)獲取到的數(shù)據(jù)布局信息,查找目標節(jié)點包括,通過將計算得到的文件名Hash值與預先分配的Hash范圍進行匹配,查找目標節(jié)點,如果找到目標節(jié)點,則在所述目標節(jié)點中查找目標文件;如果未找到目標節(jié)點,則按照設(shè)置的自動搜索模式搜索所有節(jié)點。所述按照設(shè)置的自動搜索模式搜索包括以路徑為目錄,在所有節(jié)點中查找目標文件;如路徑不存在,則返回錯誤。當集群中加入一個新存儲節(jié)點進行擴容時,如果不作其他任何處理,hash范圍映射空間將會發(fā)生變化,現(xiàn)有的文件目錄可能會被重新定位到其他的存儲節(jié)點上,從而導致數(shù)據(jù)定位失敗。一種解決問題的方法是對文件目錄進行重新分布,把文件移動到正確的存儲節(jié)點上去,但這大大加重了系統(tǒng)負載,尤其是對于已經(jīng)存儲大量的數(shù)據(jù)的海量存儲系統(tǒng)來說顯然是不可行的。另一種方法是使用一致性哈希算法,修改新增節(jié)點及相鄰節(jié)點的hash映射空間,僅需要移動相鄰節(jié)點上的部分數(shù)據(jù)至新增節(jié)點,影響相對小了很多。然而,這又帶來另外一個問題,即系統(tǒng)整體負載不均衡。針對上述方法存在的局限性,本實施例中采用了更為彈性的算法。本實施例中,將新建目錄分布到所有存儲節(jié)點上,新增節(jié)點加入數(shù)據(jù)分布并分配Hash范圍。新建文件分布到父目錄所屬存儲節(jié)點上,新增節(jié)點不參加分布。數(shù)據(jù)分布是以目錄為基本單位的,文件的父目錄利用擴展屬性記錄了節(jié)點映射信息,其下面子文件目錄在父目錄所屬存儲服務(wù)器中進行分布。由于文件目錄事先保存了分布信息,因此新增節(jié)點不會影響現(xiàn)有文件存儲分布,它將從此后的新創(chuàng)建目錄開始參與存儲分布調(diào)度。這種設(shè)計,新增 節(jié)點不需要移動任何文件,但是負載均衡沒有平滑處理,老節(jié)點負載較重。本方法設(shè)計中在新建文件時優(yōu)先考慮容量負載最輕的節(jié)點,在目標存儲節(jié)點上創(chuàng)建文件鏈接直向真正存儲文件的節(jié)點。集群存儲系統(tǒng)執(zhí)行負載平滑,將進行文件移動和重新分布,此后所有存儲節(jié)點容量相對均衡并全部參與分布調(diào)度。如果一個文件被改名,顯然hash算法將產(chǎn)生不同的值,非??赡軙l(fā)生文件被定位到不同的存儲服務(wù)器上,從而導致文件訪問失敗。采用數(shù)據(jù)移動的方法,對于大文件是很難在實時完成的。為了不影響性能和服務(wù)中斷,本方法采用了文件鏈接來解決文件重命名問題,在目標存儲服務(wù)器上創(chuàng)建一個鏈接指向?qū)嶋H的存儲服務(wù)器,訪問時由系統(tǒng)解析并進行重定向。系統(tǒng)后臺同時進行文件遷移,成功后文件鏈接將被自動刪除。對于文件移動也作類似處理,好處是前臺操作可實時處理,物理數(shù)據(jù)遷移置于后臺選擇適當時機執(zhí)行。具體定位流程如下(a)如果路徑path為根目錄,則選定第一個活動節(jié)點作為目標節(jié)點;(b)否則,以path為輸入?yún)?shù)計算hash值,從父目錄擴展屬性中獲取數(shù)據(jù)布局信息,然后查找定位目標節(jié)點;(c)如果找到目標節(jié)點,則在目標節(jié)點中查找path ;如果沒有找到目標節(jié)點,根據(jù)設(shè)置自動搜索模式,將搜索所有的節(jié)點;(d)以上述自動搜索模式搜索所有節(jié)點時,以path為目錄,在所有節(jié)點中查找目標文件;(e)如果未找到path,則返回錯誤;(f)對所找到的目標節(jié)點進行數(shù)據(jù)訪問。新建目錄分布到所有存儲節(jié)點上,新增節(jié)點參加分布,并分配hash范圍。目錄創(chuàng)建流程如下(g)計算目錄hash值,查找目標節(jié)點。若未找到則返回;(h)在目錄節(jié)點上創(chuàng)建目錄;(i)向其他所有節(jié)點發(fā)送請求創(chuàng)建目錄;( j )為目錄分配hash范圍。新建文件分布到父目錄所分布的存儲節(jié)點上,新增節(jié)點不參加分布。文件創(chuàng)建流程如下(k)計算文件名hash值,查找目標卷。若未找到則返回;(I)如果目標節(jié)點空閑容量在預定水位以下,則創(chuàng)建文件并返回;
(m)查找空閑容量在預定水位以下的節(jié)點,在其上創(chuàng)建文件,并在目標節(jié)點上創(chuàng)建鏈接指向?qū)嶋H文件。圖3為本發(fā)明實施例的集群存儲系統(tǒng)的數(shù)據(jù)管理系統(tǒng)的示意圖。如圖3所示,所述數(shù)據(jù)管理系統(tǒng)由客戶端和存儲服務(wù)器集群組成,它摒棄了元數(shù)據(jù)服務(wù),未將控制流與數(shù)據(jù)流進行分離,而是將元數(shù)據(jù)與數(shù)據(jù)本身統(tǒng)一存儲,利用磁盤文件系統(tǒng)(如EXT4、XFS)文件的屬性和擴展屬性存儲和管理元數(shù)據(jù)。數(shù)據(jù)分布是以目錄為基本單位的,文件的父目錄利用擴展屬性記錄了存儲節(jié)點映射信息,子文件在父目錄所屬存儲節(jié)點中進行分布。由于文件目錄事先保存了分布信息,因此新增節(jié)點不會影響現(xiàn)有文件數(shù)據(jù)分布,它將從此后的新創(chuàng)建目錄開始參與存儲分布調(diào)度。 客戶端對數(shù)據(jù)布局信息感知,只需根據(jù)路徑和文件名就可以采用智能算法對數(shù)據(jù)進行并行定位,而不需要查詢索引或者其他服務(wù)器。所述客戶端包括數(shù)據(jù)布局管理模塊和元數(shù)據(jù)管理模塊,所述存儲服務(wù)器包括根目錄判定模塊、數(shù)據(jù)布局存儲模塊、查詢模塊;所述數(shù)據(jù)布局管理模塊用于對以目錄為基本單位進行分布并分配Hash范圍的數(shù)據(jù)進行管理;所述元數(shù)據(jù)管理模塊用于利用磁盤文件系統(tǒng)管理元數(shù)據(jù);所述根目錄判定模塊用于根據(jù)客戶端發(fā)出的數(shù)據(jù)訪問指令,判斷查找路徑是否為根目錄;所述查詢模塊用于根據(jù)根目錄判定模塊的判定結(jié)果,查找目標節(jié)點進行數(shù)據(jù)訪問,如判定結(jié)果為是,則選定特定活動節(jié)點作為目標節(jié)點進行數(shù)據(jù)訪問;如判定結(jié)果為否,則根據(jù)路徑輸入?yún)?shù)計算Hash值,獲取數(shù)據(jù)布局信息,查找目標節(jié)點并進行數(shù)據(jù)訪問;所述數(shù)據(jù)布局存儲模塊用于利用磁盤文件系統(tǒng)存儲元數(shù)據(jù),數(shù)據(jù)布局以目錄為基本單位進行分布并分配Hash范圍,文件的父目錄利用擴展屬性記錄存儲節(jié)點的映射關(guān)系,子文件在父目錄所屬存儲節(jié)點中進行分布。所述系統(tǒng)還包括新建目錄模塊,所述新建目錄模塊將新建目錄分布到所有存儲節(jié)點上,新增節(jié)點加入數(shù)據(jù)分布并分配Hash范圍。所述系統(tǒng)還包括新建文件模塊,所述新建文件模塊將新建文件分布到父目錄所屬存儲節(jié)點上,新增節(jié)點不參加分布。所述系統(tǒng)還包括文件重命名模塊,所述文件重命名模塊用于在目標存儲服務(wù)器上創(chuàng)建一個鏈接指向?qū)嶋H的存儲服務(wù)器,訪問時由服務(wù)器解析并進行重定向,服務(wù)器后臺同時進行文件遷移,成功后文件鏈接被自動刪除。本發(fā)明的技術(shù)方案,采用無元數(shù)據(jù)服務(wù)模型管理元數(shù)據(jù),不需要專用的元數(shù)據(jù)服務(wù)器,元數(shù)據(jù)和數(shù)據(jù)沒有分離而是一起存儲,通過智能算法替代原有的查詢方法進行數(shù)據(jù)定位。這種方法消除了元數(shù)據(jù)管理的性能瓶頸、單點故障、數(shù)據(jù)一致性等一系列相關(guān)問題,系統(tǒng)擴展性顯著提高,系統(tǒng)并發(fā)性和性能將實現(xiàn)線性擴展增長。上述僅為本發(fā)明的較佳實施例及所運用技術(shù)原理,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應涵蓋在本發(fā)明的保護范圍內(nèi)。
權(quán)利要求
1.一種集群存儲系統(tǒng)的數(shù)據(jù)管理方法,該方法基于包括客戶端和存儲服務(wù)器集群的系統(tǒng)實現(xiàn),包括數(shù)據(jù)存儲和訪問的操作,其特征在于,所述數(shù)據(jù)存儲的操作包括 利用磁盤文件系統(tǒng)存儲元數(shù)據(jù),數(shù)據(jù)布局以目錄為基本單位進行分布并分配Hash范圍,其中,文件的父目錄利用擴展屬性記錄存儲節(jié)點的映射關(guān)系,子文件在父目錄所屬存儲節(jié)點中進行分布; 所述方法基于所述數(shù)據(jù)布局進行數(shù)據(jù)訪問操作,其中,所述數(shù)據(jù)訪問操作包括 51:客戶端對數(shù)據(jù)布局信息進行感知并發(fā)出數(shù)據(jù)訪問指令,集成服務(wù)器根據(jù)客戶端的數(shù)據(jù)訪問指令判斷查找路徑是否為根目錄,如是,則執(zhí)行步驟S2,如否,執(zhí)行步驟S3 ; 52:選定特定的活動節(jié)點作為目標節(jié)點進行數(shù)據(jù)訪問; 53:根據(jù)路徑輸入?yún)?shù)計算Hash值,獲取數(shù)據(jù)布局信息,查找目標節(jié)點并進行數(shù)據(jù)訪問。
2.根據(jù)權(quán)利要求I所述的集群存儲系統(tǒng)的數(shù)據(jù)管理方法,其特征在于,所述方法還包括創(chuàng)建新目錄的操作,其中,磁盤文件系統(tǒng)在創(chuàng)建新的目錄時,將新建目錄分布到所有存儲節(jié)點上,新增節(jié)點加入數(shù)據(jù)分布并分配Hash范圍。
3.根據(jù)權(quán)利要求I所述的集群存儲系統(tǒng)的數(shù)據(jù)管理方法,其特征在于,所述方法還包括創(chuàng)建新文件的操作,其中,在父目錄所屬存儲節(jié)點上新建文件時,新建文件分布到父目錄所屬存儲節(jié)點上,新增節(jié)點不參加分布。
4.根據(jù)權(quán)利要求3所述的集群存儲系統(tǒng)的數(shù)據(jù)管理方法,其特征在于,所述方法還包括父目錄所屬存儲節(jié)點上文件重命名的操作,其中,在目標存儲服務(wù)器上創(chuàng)建一個鏈接指向?qū)嶋H的存儲服務(wù)器,訪問時由服務(wù)器解析并進行重定向,服務(wù)器后臺同時進行文件遷移,成功后文件鏈接被自動刪除。
5.根據(jù)權(quán)利要求I所述的集群存儲系統(tǒng)的數(shù)據(jù)管理方法,其特征在于,所述步驟S3中根據(jù)路徑輸入?yún)?shù)計算hash值包括利用Davies-Meyer算法計算文件名hash值。
6.根據(jù)權(quán)利要求I或5所述的集群存儲系統(tǒng)數(shù)據(jù)管理方法,其特征在于,所述步驟S3中根據(jù)獲取到的數(shù)據(jù)布局信息,查找目標節(jié)點包括,通過將計算得到的文件名Hash值與預先分配的Hash范圍進行匹配,查找目標節(jié)點,如果找到目標節(jié)點,則在所述目標節(jié)點中查找目標文件;如果未找到目標節(jié)點,則按照設(shè)置的自動搜索模式搜索所有節(jié)點。
7.根據(jù)權(quán)利要求6所述的集群存儲系統(tǒng)數(shù)據(jù)管理方法,其特征在于,所述按照設(shè)置的自動搜索模式搜索包括以路徑為目錄,在所有節(jié)點中查找目標文件;如路徑不存在,則返回錯誤。
8.一種集群存儲系統(tǒng)的數(shù)據(jù)管理系統(tǒng),所述數(shù)據(jù)管理系統(tǒng)包括客戶端和存儲服務(wù)器集群,其特征在于,所述客戶端包括數(shù)據(jù)布局管理模塊和元數(shù)據(jù)管理模塊,所述存儲服務(wù)器包括根目錄判定模塊、數(shù)據(jù)布局存儲模塊、查詢模塊; 所述數(shù)據(jù)布局管理模塊用于對以目錄為基本單位進行分布并分配Hash范圍的數(shù)據(jù)進行管理; 所述元數(shù)據(jù)管理模塊用于利用磁盤文件系統(tǒng)管理元數(shù)據(jù); 所述根目錄判定模塊用于根據(jù)客戶端發(fā)出的數(shù)據(jù)訪問指令,判斷查找路徑是否為根目錄; 所述查詢模塊用于根據(jù)根目錄判定模塊的判定結(jié)果,查找目標節(jié)點進行數(shù)據(jù)訪問,如判定結(jié)果為是,則選定特定活動節(jié)點作為目標節(jié)點進行數(shù)據(jù)訪問;如判定結(jié)果為否,則根據(jù)路徑輸入?yún)?shù)計算Hash值,獲取數(shù)據(jù)布局信息,查找目標節(jié)點并進行數(shù)據(jù)訪問; 所述數(shù)據(jù)布局存儲模塊用于利用磁盤文件系統(tǒng)存儲元數(shù)據(jù),數(shù)據(jù)布局以目錄為基本單位進行分布并分配Hash范圍,文件的父目錄利用擴展屬性記錄存儲節(jié)點的映射關(guān)系,子文件在父目錄所屬存儲節(jié)點中進行分布。
9.根據(jù)權(quán)利要求8所述的集群存儲系統(tǒng)的數(shù)據(jù)管理系統(tǒng),其特征在于,所述系統(tǒng)還包括新建目錄模塊,所述新建目錄模塊用于將新建目錄分布到所有存儲節(jié)點上,新增節(jié)點加入數(shù)據(jù)分布并分配Hash范圍。
10.根據(jù)權(quán)利要求8所述的集群存儲系統(tǒng)的數(shù)據(jù)管理系統(tǒng),其特征在于,所述系統(tǒng)還包括新建文件模塊,所述新建文件模塊用于將新建文件分布到父目錄所屬存儲節(jié)點上,新增節(jié)點不參加分布。
11.根據(jù)權(quán)利要求8所述的集群存儲系統(tǒng)的數(shù)據(jù)管理系統(tǒng),其特征在于,所述系統(tǒng)還包括文件重命名模塊,所述文件重命名模塊用于在目標存儲服務(wù)器上創(chuàng)建一個鏈接指向?qū)嶋H的存儲服務(wù)器,訪問時由服務(wù)器解析并進行重定向,服務(wù)器后臺同時進行文件遷移,成功后文件鏈接被自動刪除。
全文摘要
本發(fā)明公開了一種集群存儲系統(tǒng)的數(shù)據(jù)管理方法及系統(tǒng),屬于集群存儲技術(shù)領(lǐng)域,該方法利用磁盤文件系統(tǒng)存儲和管理元數(shù)據(jù),數(shù)據(jù)布局以目錄為基本單位進行分布;客戶端對數(shù)據(jù)布局信息進行感知并發(fā)出數(shù)據(jù)訪問指令,存儲服務(wù)器根據(jù)客戶端的數(shù)據(jù)訪問指令判斷查找路徑是否為根目錄,如是,則選定特定的活動節(jié)點作為目標節(jié)點進行數(shù)據(jù)訪問;如否,根據(jù)路徑輸入?yún)?shù)計算Hash值,獲取數(shù)據(jù)布局信息,查找目標節(jié)點并進行數(shù)據(jù)訪問。本發(fā)明的方法和系統(tǒng)消除了元數(shù)據(jù)管理的性能瓶頸、單點故障、數(shù)據(jù)一致性等一系列相關(guān)問題,系統(tǒng)擴展性顯著提高,系統(tǒng)并發(fā)性和性能將實現(xiàn)線性擴展增長。
文檔編號G06F17/30GK102855284SQ20121027646
公開日2013年1月2日 申請日期2012年8月3日 優(yōu)先權(quán)日2012年8月3日
發(fā)明者劉愛貴 申請人:北京聯(lián)創(chuàng)信安科技有限公司