用于分布式存儲的數(shù)據(jù)存儲方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明實施例提供一種用于分布式存儲的數(shù)據(jù)存儲方法,包括:監(jiān)控集群中各存儲裝置的工作狀態(tài);當(dāng)存在失效存儲裝置時,確定失效存儲裝置所在的至少一個存儲陣列、至少一個存儲陣列中剩余的存活存儲裝置及與所述至少一個存儲陣列相關(guān)的全部數(shù)據(jù)組;基于用戶對全部數(shù)據(jù)組中的至少一個數(shù)據(jù)組的訪問,生成第一隊列和第二隊列,其中,第一隊列與全部數(shù)據(jù)組中未被訪問的數(shù)據(jù)組對應(yīng),第二隊列與全部數(shù)據(jù)組中被訪問的數(shù)據(jù)組對應(yīng);從集群中選擇可用存儲裝置替換失效存儲裝置;基于第二隊列先于第一隊列的順序,利用所述至少一個存儲陣列中剩余的存活存儲裝置向可用存儲裝置遷移數(shù)據(jù)組。本發(fā)明優(yōu)先遷移熱點數(shù)據(jù),降低熱點數(shù)據(jù)丟失的概率,提高數(shù)據(jù)安全性。
【專利說明】
用于分布式存儲的數(shù)據(jù)存儲方法及系統(tǒng)
技術(shù)領(lǐng)域
[0001] 本發(fā)明設(shè)及計算機(jī)網(wǎng)絡(luò)領(lǐng)域,尤其設(shè)及一種用于分布式存儲的數(shù)據(jù)存儲方法及系 統(tǒng)。
【背景技術(shù)】
[0002] 分布式存儲系統(tǒng),是將數(shù)據(jù)按照一定規(guī)則切分并打散存儲在多臺獨立通用存儲服 務(wù)器上。傳統(tǒng)的網(wǎng)絡(luò)存儲系統(tǒng)采用集中的存儲服務(wù)器存放所有數(shù)據(jù),存儲服務(wù)器成為系統(tǒng) 性能的瓶頸,也是可靠性和安全性的焦點,不能滿足大規(guī)模存儲應(yīng)用的需要,而分布式存儲 系統(tǒng)采用可擴(kuò)展的系統(tǒng)結(jié)構(gòu),利用多臺存儲服務(wù)器分擔(dān)存儲負(fù)荷,利用位置存儲服務(wù)器定 位存儲信息,它不但提高了系統(tǒng)的可靠性、可用性和存取效率,還易于擴(kuò)展。存儲集群的成 千上萬臺存儲模塊可W將數(shù)據(jù)充分冗余,從而可W顯著提高數(shù)據(jù)的安全性。
[0003] 在存儲領(lǐng)域,通常使用年故障率(AFR)來表征磁盤的可靠性,現(xiàn)在市場上通用的磁 盤的AFR-般是4%左右,即如果一個集群中有365塊磁盤,那么一年中有磁盤損害的概率為 pow(0.96,365) =0.9999996619351175,即一年中幾乎肯定有磁盤失效。而對于分布式存儲 集群,實際上磁盤個數(shù)通常都達(dá)到了上千塊,因此應(yīng)對磁盤損壞成為了每一個存儲系統(tǒng)都 要解決的問題。
[0004] 現(xiàn)有技術(shù)中,通過數(shù)據(jù)冗余來處理磁盤失效的問題,通常是每一份數(shù)據(jù)都可W存 儲于=塊甚至更多塊磁盤上,當(dāng)某塊磁盤失效時,可W依靠剩下的兩個副本做數(shù)據(jù)恢復(fù),防 止在磁盤損壞或者存儲模塊巖機(jī)時數(shù)據(jù)丟失。但實際上,數(shù)據(jù)恢復(fù)策略必須要得到完善的 設(shè)計,否則還是會遇到數(shù)據(jù)丟失的問題。企業(yè)在搭建存儲集群時,通常都會同批次購買很多 的存儲服務(wù)器和磁盤,同批次的磁盤往往具備類似的硬件規(guī)格和驅(qū)動固件,即可能出現(xiàn)同 時失效的情況,在運種情況下,某一塊磁盤開始失效之時,存儲于此塊磁盤上的數(shù)據(jù)都處于 降級的狀態(tài),更壞的是,與之同批次的其他磁盤也隨之失效的概率就會提高,如果此時另外 一塊磁盤也失效,則一部分?jǐn)?shù)據(jù)將僅剩下一個存活的副本,并且降級程度進(jìn)一步惡化,如果 數(shù)據(jù)不能盡快修復(fù),降級的數(shù)據(jù)可能會因最后一個副本所在的磁盤的失效而完全丟失。
[0005] 處理磁盤失效問題,通常的方案是增加副本數(shù),即由原來的=副本策略修改為四 副本,運種簡單粗暴的方案會嚴(yán)重增加企業(yè)的存儲成本,另外增加副本數(shù)之后,數(shù)據(jù)的寫入 性能也會降低,因此不是一個好的方案。
[0006] 通常而言,用戶的數(shù)據(jù)都具有明顯的冷熱區(qū)別,越熱的數(shù)據(jù)即越經(jīng)常被訪問的數(shù) 據(jù),對于用戶而言也是越重要的數(shù)據(jù)。運也是計算機(jī)系統(tǒng)中著名的局部性原理的一種體現(xiàn), 即用戶在某一天某一時刻訪問的數(shù)據(jù)在未來仍需被訪問的概率較高。分布式存儲系統(tǒng)都提 供了較高的可用性,即使數(shù)據(jù)的某一個副本損壞,當(dāng)用戶訪問運個數(shù)據(jù)時,仍然可W從其他 副本中讀取并返回給用戶。但是對于被用戶訪問到的重要的熱點數(shù)據(jù),如果不能夠盡快修 復(fù),那么如果磁盤繼續(xù)損壞,那么運些重要數(shù)據(jù)將會出現(xiàn)丟失,給用戶帶來的損失也就更 大。
【發(fā)明內(nèi)容】
[0007]本發(fā)明實施例提供一種用于分布式存儲的數(shù)據(jù)存儲方法及系統(tǒng),優(yōu)先選擇用戶訪 問的熱點數(shù)據(jù)進(jìn)行遷移,降低熱點數(shù)據(jù)丟失的概率,保障熱點數(shù)據(jù)的安全,從而顯著提高系 統(tǒng)的數(shù)據(jù)安全性和可用性。
[000引本發(fā)明實施例提供一種用于分布式存儲的數(shù)據(jù)存儲方法,包括:
[0009] 監(jiān)控分布式存儲的集群中各存儲裝置的工作狀態(tài);
[0010] 當(dāng)存在失效存儲裝置時,確定所述失效存儲裝置所在的至少一個存儲陣列、所述 至少一個存儲陣列中剩余的存活存儲裝置及與所述至少一個存儲陣列相關(guān)的全部數(shù)據(jù)組.
[0011] 基于用戶對所述全部數(shù)據(jù)組中的至少一個數(shù)據(jù)組的訪問,生成第一隊列和第二隊 列,其中,第一隊列與所述全部數(shù)據(jù)組中未被訪問的數(shù)據(jù)組對應(yīng),第二隊列與所述全部數(shù)據(jù) 組中被訪問的數(shù)據(jù)組對應(yīng);
[0012] 從集群中選擇可用存儲裝置替換所述失效存儲裝置;
[0013] 基于第二隊列先于第一隊列的順序,利用所述至少一個存儲陣列中剩余的存活存 儲裝置向替換后的可用存儲裝置遷移數(shù)據(jù)組。
[0014] 本發(fā)明實施例提供一種用于分布式存儲的數(shù)據(jù)存儲系統(tǒng),包括:
[0015] 監(jiān)控模塊,用于監(jiān)控分布式存儲的集群中各存儲裝置的工作狀態(tài);
[0016] 遷移數(shù)據(jù)確定模塊,用于當(dāng)存在失效存儲裝置時,確定所述失效存儲裝置所在的 至少一個存儲陣列、所述至少一個存儲陣列中剩余的存活存儲裝置及與所述至少一個存儲 陣列相關(guān)的全部數(shù)據(jù)組;
[0017] 遷移序列生成模塊,基于用戶對所述全部數(shù)據(jù)組中的至少一個數(shù)據(jù)組的訪問,生 成第一隊列和第二隊列,其中,第一隊列與所述全部數(shù)據(jù)組中未被訪問的數(shù)據(jù)組對應(yīng),第二 隊列與所述全部數(shù)據(jù)組中被訪問的數(shù)據(jù)組對應(yīng);
[0018] 存儲修復(fù)模塊,從集群中選擇可用存儲裝置替換所述失效存儲裝置;
[0019] 數(shù)據(jù)遷移模塊,基于第二隊列先于第一隊列的順序,利用所述至少一個存儲陣列 中剩余的存活存儲裝置向替換后的可用存儲裝置遷移數(shù)據(jù)組。
【附圖說明】
[0020] 為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā) 明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可W根 據(jù)運些附圖獲得其他的附圖。
[0021 ]圖1為本發(fā)明實施例用于分布式存儲的數(shù)據(jù)存儲方法的流程圖;
[0022] 圖2為本發(fā)明用于分布式存儲的數(shù)據(jù)存儲方法的一個實施例的流程圖;
[0023] 圖3為本發(fā)明用于分布式存儲的的數(shù)據(jù)存儲方法的另一個實施例的流程圖;
[0024] 圖4為本發(fā)明實施例用于分布式存儲的數(shù)據(jù)存儲系統(tǒng)的結(jié)構(gòu)示意圖;
[0025] 圖5為本發(fā)明用于分布式存儲的數(shù)據(jù)存儲系統(tǒng)的實施例的結(jié)構(gòu)示意圖。
【具體實施方式】
[0026] 為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例 中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例是 本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員 在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
[0027] 根據(jù)本發(fā)明實施例提供的一種用于分布式存儲的數(shù)據(jù)存儲方法,如圖1所示,包 括:
[0028] 監(jiān)控分布式存儲的集群中各存儲裝置的工作狀態(tài);
[0029] 當(dāng)存在失效存儲裝置時,確定所述失效存儲裝置所在的至少一個存儲陣列、所述 至少一個存儲陣列中剩余的存活存儲裝置及與所述至少一個存儲陣列相關(guān)的全部數(shù)據(jù)組.
[0030] 基于用戶對所述全部數(shù)據(jù)組中的至少一個數(shù)據(jù)組的訪問,生成第一隊列和第二隊 列,其中,第一隊列與所述全部數(shù)據(jù)組中未被訪問的數(shù)據(jù)組對應(yīng),第二隊列與所述全部數(shù)據(jù) 組中被訪問的數(shù)據(jù)組對應(yīng);
[0031] 從集群中選擇可用存儲裝置替換所述失效存儲裝置;
[0032] 基于第二隊列先于第一隊列的順序,利用所述至少一個存儲陣列中剩余的存活存 儲裝置向替換后的可用存儲裝置遷移數(shù)據(jù)組。
[0033] 分布式存儲是將每個數(shù)據(jù)組均存儲到集群中的N個存儲裝置上,N為常數(shù),在優(yōu)選 的實施例中,N=3。
[0034] 在可選的實施例中,將每個數(shù)據(jù)組均存儲到集群中的3個存儲裝置上,并建立數(shù)據(jù) 組對應(yīng)存儲陣列的映射列表和集群中的可用存儲裝置列表,其中,可用存儲裝置可W是已 經(jīng)使用但還有存儲空間的存儲裝置,也可W是沒有被使用的存儲裝置。
[0035] 在可選的實施例中,第一隊列和第二隊列可W通過W下步驟獲得:在確定所述失 效存儲裝置所在的至少一個存儲陣列、所述至少一個存儲陣列中剩余的存活存儲裝置及與 所述至少一個存儲陣列相關(guān)的全部數(shù)據(jù)組之后,生成一個包含全部數(shù)據(jù)組的第一隊列和一 個空的第二隊列,若用戶對全部數(shù)據(jù)組中的至少一個數(shù)據(jù)組訪問,則將用戶訪問的至少一 個數(shù)據(jù)組添加到第二隊列中,添加完成后,將該至少一個數(shù)據(jù)組從第一隊列中刪除,其中, 第一隊列和第二隊列存儲的均是數(shù)據(jù)組的名稱而不是數(shù)據(jù)組本身。
[0036] 在利用所述至少一個存儲陣列中剩余的存活存儲裝置向替換后的可用存儲裝置 遷移數(shù)據(jù)組期間,用戶請求訪問全部數(shù)據(jù)組中的一個數(shù)據(jù)組,若該數(shù)據(jù)組在第一隊列中,貝U 將該數(shù)據(jù)組移至第二隊列,若該數(shù)據(jù)組在第二隊列中,則將該數(shù)據(jù)組移至第二隊列的隊首, 優(yōu)先進(jìn)行遷移。對于第二隊列中的數(shù)據(jù)組,被訪問次數(shù)越多,在第二隊列中越靠前。
[0037] 在一些可選的實施例中,存儲裝置可W是各式存儲器,如RAM、R0M等,也可W是磁 盤或軟盤等其他能夠存儲數(shù)據(jù)的存儲介質(zhì)。
[0038] 在一些可選的實施例中,在每個存儲裝置上承載至少一組數(shù)據(jù)組,W便提高存儲 裝置的利用率,降低存儲成本。
[0039] 在一些可選的實施例中,將每組數(shù)據(jù)組均存儲到集群中的3個磁盤上,W形成數(shù)據(jù) 組對應(yīng)存儲陣列的映射列表和集群中的可用磁盤列表,所述映射列表中的部分列表如下表 1所示,所述可用磁盤列表中的部分列表如下表2所示,
[0040] 表1:
[0041]
[0044] ~在本實施例中,"dg+常數(shù)"用于標(biāo)記不同的數(shù)據(jù)組,"d+常數(shù)"用于標(biāo)記不同的磁 盤,本公開在此方面沒有限制。
[0045] 在一些可選的實施例中,存儲陣列中存儲裝置的位置是有順序的,一方面,在存儲 陣列中位置靠前的存儲裝置負(fù)責(zé)接收寫入的數(shù)據(jù)組,并轉(zhuǎn)發(fā)給其所在存儲陣列中剩余的存 儲裝置,另一方面,當(dāng)存在失效存儲裝置時,利用位置靠前的存儲裝置向新的存儲裝置進(jìn)行 數(shù)據(jù)組遷移。
[0046] 在一些可選的實施例中,監(jiān)控映射列表中磁盤的工作狀態(tài),可W通過不斷地對磁 盤進(jìn)行讀寫操作來監(jiān)控其工作狀態(tài),也可W通過每隔20s對磁盤進(jìn)行一次讀寫操作,還可W 利用現(xiàn)有技術(shù)中的監(jiān)控工具如smartmontools來監(jiān)控磁盤的工作狀態(tài)。
[0047] 當(dāng)存在失效磁盤時,如磁盤d4失效時,由表1確定失效磁盤d4所在的存儲陣列: ((14,(1666,(177)、((14,(18,(1666)和((14,(1123,(110),與存儲陣列((14,(1666,(177)相關(guān)的數(shù)據(jù)組 包括數(shù)據(jù)組dgl和數(shù)據(jù)組dg2,與存儲陣列(d4,d8,d666)相關(guān)的數(shù)據(jù)組包括數(shù)據(jù)組d的和數(shù) 據(jù)組dg4,與存儲陣列(d4,dl23,dl0)相關(guān)的數(shù)據(jù)組包括數(shù)據(jù)組dg5,遍歷全部數(shù)據(jù)組,生成 待遷移數(shù)據(jù)的第一隊列化和空的第二隊列化,其中,化={數(shù)據(jù)組dgl、數(shù)據(jù)組dg2、數(shù)據(jù)組 dg3、數(shù)據(jù)組dg4、數(shù)據(jù)組dg5}。
[004引此時,用戶請求訪問數(shù)據(jù)組dgl和數(shù)據(jù)組dg4,則將數(shù)據(jù)組dgl和數(shù)據(jù)組dg4從第一 隊列化中刪除并移至第二隊列化,此時化={數(shù)據(jù)組dgl、數(shù)據(jù)組dg4}。
[0049]其中,第一隊列和第二隊列中存儲的均是數(shù)據(jù)組的名稱而不是數(shù)據(jù)組本身。
[0化0] 在進(jìn)行數(shù)據(jù)組遷移期間,用戶再一次請求訪問數(shù)據(jù)組dg4,此時數(shù)據(jù)組dg4已經(jīng)在 第二隊列中,且數(shù)據(jù)組dg4不在第二隊列的隊首,則將其移至隊首進(jìn)行優(yōu)先遷移。
[0051] 在一些可選的實施中,各數(shù)據(jù)組遷移完成后從其所在的隊列中刪除,當(dāng)全部數(shù)據(jù) 組遷移完成后刪除第一隊列和第二隊列。
[0052] 在一些可選的實施例中,第一隊列中的數(shù)據(jù)組可W按照數(shù)據(jù)組的名稱或數(shù)據(jù)組的 大小進(jìn)行排序,也可W根據(jù)用戶的具體需求進(jìn)行排序。本發(fā)明對第一隊列中數(shù)據(jù)組的順序 不做限制,在此不做寶述。
[0053] 在一些可選的實施例中,可W根據(jù)可用磁盤列表選擇=塊不同的可用磁盤分別替 換S個存儲陣列中的失效磁盤d4,如(dll0,d666,d77)、(d20,d8,d666WP(d456,dl23, dio),也可W選擇一塊可用磁盤替換替換S個存儲陣列中的失效磁盤d4,如(dll0,d666, d77)、(dll0,d8,d666WP(dll0,dl23,dl0)。
[0054] 在一些可選的實施例中,可W在確定磁盤d4失效之后立即從可用磁盤列表中選擇 新的可用磁盤如磁盤d 110替換磁盤d4,也可W在確定磁盤d4失效后一定時間內(nèi)如15分鐘 內(nèi),磁盤d4沒有修復(fù),則從可用磁盤列表中選擇新的磁盤替換磁盤d4。失效磁盤被替換后更 新映射列表。
[0055] 請參考圖2,當(dāng)剩余的存活存儲裝置的數(shù)量為兩個W上時,根據(jù)剩余的各存活存儲 裝置在存儲陣列中的位置,生成存儲裝置恢復(fù)順序,具體而言,存儲裝置恢復(fù)順序可W為存 儲陣列中存儲裝置的位置順序,利用位置靠前的存儲裝置向新的存儲裝置進(jìn)行數(shù)據(jù)遷移。 如磁盤d4失效時,確定其所在的存儲陣列包括(d4,d666,d77)、(d4,d8,d666WP(d456, dl23,dl0),對于數(shù)據(jù)組dgl和數(shù)據(jù)組dg2而言,利用磁盤d666向新的磁盤如dllO按照第二隊 列先于第一隊列的順序遷移數(shù)據(jù)組。對于數(shù)據(jù)組d3和數(shù)據(jù)組d4,利用磁盤d8向新的磁盤如 dllO按照第二隊列先于第一隊列的順序遷移數(shù)據(jù)組。對于數(shù)據(jù)組d5,利用磁盤dl23向新的 磁盤如dllO按照第二隊列先于第一隊列的順序遷移數(shù)據(jù)組。
[0056] 請參考圖3,當(dāng)失效存儲裝置的數(shù)量為兩個W上時,根據(jù)與所述失效存儲裝置對應(yīng) 的至少兩個可用存儲裝置在存儲陣列中的位置,生成存儲裝置恢復(fù)順序,具體而言,所述存 儲裝置恢復(fù)順序可W為可用存儲裝置在存儲陣列的位置順序,位置靠前的可用存儲裝置先 于位置靠后的可用存儲裝置。如存儲陣列(d4,d666,d77)中磁盤d4和磁盤d666均失效后,由 磁盤dl 10替換磁盤d4,磁盤d20替換磁盤d666,則優(yōu)先向磁盤dl 10遷移相關(guān)的數(shù)據(jù)組,然后 再向磁盤d20遷移相關(guān)的數(shù)據(jù)組。
[0057] 下面W失效磁盤d4為例,具體說明該數(shù)據(jù)存儲方法。
[005 引失效磁盤 d4 所在的存儲陣列包括:(d4,d666,d77)、(d4,d8,d666WP(d4,dl23, dlO),剩余存活磁盤包括:磁盤d666、磁盤d77、磁盤d8、磁盤dl23和磁盤dlO。與上述存儲陣 列相關(guān)的全部數(shù)據(jù)組包括數(shù)據(jù)組dgl、數(shù)據(jù)組dg2、數(shù)據(jù)組dg3、數(shù)據(jù)組dg4和數(shù)據(jù)組dg5。遍歷 全部數(shù)據(jù)組,生成第一隊列和空的第二隊列,其中,第一隊列化={數(shù)據(jù)組dgl,數(shù)據(jù)組dg2, 數(shù)據(jù)組dg3,數(shù)據(jù)組dg4,數(shù)據(jù)組dg引。根據(jù)可用磁盤列表選擇磁盤dl 10替換失效磁盤d4,貝。 替換后的存儲陣列為(dllO, d666,d77)、(dllO, d8,d666)和(dllO, dl23,dl0)。
[0059] 此時,用戶請求訪問數(shù)據(jù)組dgl和dg4,則將數(shù)據(jù)組dgl和數(shù)據(jù)組dg4從第一隊列中 刪除并移至第二隊列,則第二隊列化={數(shù)據(jù)組dgl,數(shù)據(jù)組dg4},
[0060] 利用剩余存活磁盤向磁盤dllO遷移數(shù)據(jù)組時,優(yōu)先遷移第二隊列中的數(shù)據(jù)組。在 數(shù)據(jù)組遷移期間,用戶請求訪問數(shù)據(jù)組dg3,則將數(shù)據(jù)組d的移至第二隊列,第二隊列化變?yōu)?Q2'= {數(shù)據(jù)組dgl,數(shù)據(jù)組dg4,數(shù)據(jù)組dg3}(數(shù)據(jù)組dgl還沒有遷移完成),若用戶再次請求 訪問數(shù)據(jù)組dg3,數(shù)據(jù)組d的被訪問了 2次,數(shù)據(jù)組dgl和數(shù)據(jù)組dg4被訪問了 1次,則將數(shù)據(jù)組 d的移至隊首,第二隊列化'變?yōu)镼2" = {數(shù)據(jù)組dg3,數(shù)據(jù)組dgl,數(shù)據(jù)組dg4}。優(yōu)先向磁盤dllO 遷移第二隊列Q2"中的數(shù)據(jù)組,遷移完成之后,遷移第一隊列中的數(shù)據(jù)組。
[0061] 根據(jù)本發(fā)明實施例提供的一種用于分布式存儲的數(shù)據(jù)存儲系統(tǒng)1000,如圖4所示, 包括:
[0062] 監(jiān)控模塊100,用于監(jiān)控分布式存儲的集群中各存儲裝置的工作狀態(tài);
[0063] 遷移數(shù)據(jù)確定模塊200,用于當(dāng)存在失效存儲裝置時,確定所述失效存儲裝置所在 的至少一個存儲陣列、所述至少一個存儲陣列中剩余的存活存儲裝置及與所述至少一個存 儲陣列相關(guān)的全部數(shù)據(jù)組;
[0064] 遷移序列生成模塊300,基于用戶對所述全部數(shù)據(jù)組中的至少一個數(shù)據(jù)組的訪問, 生成第一隊列和第二隊列,其中,第一隊列與所述全部數(shù)據(jù)組中未被訪問的數(shù)據(jù)組對應(yīng),第 二隊列與所述全部數(shù)據(jù)組中被訪問的數(shù)據(jù)組對應(yīng);
[0065] 存儲修復(fù)模塊400,從集群中選擇可用存儲裝置替換所述失效存儲裝置;
[0066] 數(shù)據(jù)遷移模塊500,基于第二隊列先于第一隊列的順序,利用所述至少一個存儲陣 列中剩余的存活存儲裝置向替換后的可用存儲裝置遷移數(shù)據(jù)組。
[0067] 該數(shù)據(jù)存儲系統(tǒng)用于執(zhí)行上述數(shù)據(jù)存儲方法,并能達(dá)到與數(shù)據(jù)存儲方法相同的技 術(shù)效果。
[0068] 圖5為本申請實施例提供的又一種數(shù)據(jù)存儲系統(tǒng)1200的結(jié)構(gòu)示意圖,本申請具體 實施例并不對用戶設(shè)備1200的具體實現(xiàn)做限定。如圖5所示,該用戶設(shè)備1200可W包括:
[0069] 處理器(processor) 1210、通信接口(Communications Interface) 1220、存儲器 (memory) 1230、W及通信總線1240。其中:
[0070] 處理器1210、通信接口 1220、W及存儲器1230通過通信總線1240完成相互間的通 信。
[0071] 通信接口 1220,用于與比如客戶端等的網(wǎng)元通信。
[0072] 處理器1210,用于執(zhí)行程序1232,具體可W執(zhí)行上述方法實施例中的相關(guān)步驟。
[0073] 具體地,程序1232可W包括程序代碼,所述程序代碼包括計算機(jī)操作指令。
[0074] 處理器1210可能是一個中央處理器CPU,或者是特定集成電路ASIC(Application Specific Integrated Circuit),或者是被配置成實施本申請實施例的一個或多個集成電 路。
[0075] W上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可 W是或者也可W不是物理上分開的,作為單元顯示的部件可W是或者也可W不是物理單 元,即可W位于一個地方,或者也可W分布到多個網(wǎng)絡(luò)單元上??蒞根據(jù)實際的需要選擇其 中的部分或者全部模塊來實現(xiàn)本實施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性 的勞動的情況下,即可W理解并實施。
[0076] 通過W上的實施方式的描述,本領(lǐng)域的技術(shù)人員可W清楚地了解到各實施方式可 借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當(dāng)然也可W通過硬件。基于運樣的理解,上 述技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可WW軟件產(chǎn)品的形式體現(xiàn)出來,該 計算機(jī)軟件產(chǎn)品可W存儲在計算機(jī)可讀存儲介質(zhì)中,如R0M/RAM、磁碟、光盤等,包括若干指 令用W使得一臺計算機(jī)設(shè)備(可W是個人計算機(jī),存儲模塊,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行各個實 施例或者實施例的某些部分所述的方法。
[0077] 最后應(yīng)說明的是:W上實施例僅用W說明本發(fā)明的技術(shù)方案,而非對其限制;盡管 參照前述實施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可 W對前述各實施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分技術(shù)特征進(jìn)行等同替換; 而運些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的精神和 范圍。
【主權(quán)項】
1. 一種用于分布式存儲的數(shù)據(jù)存儲方法,其特征在于,包括: 監(jiān)控分布式存儲的集群中各存儲裝置的工作狀態(tài); 當(dāng)存在失效存儲裝置時,確定所述失效存儲裝置所在的至少一個存儲陣列、所述至少 一個存儲陣列中剩余的存活存儲裝置及與所述至少一個存儲陣列相關(guān)的全部數(shù)據(jù)組; 基于用戶對所述全部數(shù)據(jù)組中的至少一個數(shù)據(jù)組的訪問,生成第一隊列和第二隊列, 其中,第一隊列與所述全部數(shù)據(jù)組中未被訪問的數(shù)據(jù)組對應(yīng),第二隊列與所述全部數(shù)據(jù)組 中被訪問的數(shù)據(jù)組對應(yīng); 從集群中選擇可用存儲裝置替換所述失效存儲裝置; 基于第二隊列先于第一隊列的順序,利用所述至少一個存儲陣列中剩余的存活存儲裝 置向替換后的可用存儲裝置迀移數(shù)據(jù)組。2. 根據(jù)權(quán)利要求1所述的數(shù)據(jù)存儲方法,其特征在于,對于第二隊列中的數(shù)據(jù)組,被訪 問次數(shù)越多,在第二隊列中越靠前。3. 根據(jù)權(quán)利要求1所述的數(shù)據(jù)存儲方法,其特征在于,在確定所述失效存儲裝置所在的 至少一個存儲陣列、所述至少一個存儲陣列中剩余的存活存儲裝置及與所述至少一個存儲 陣列相關(guān)的全部數(shù)據(jù)組后,所述方法還包括: 當(dāng)剩余的存活存儲裝置的數(shù)量為兩個以上時,根據(jù)剩余的各存活存儲裝置在存儲陣列 中的位置,生成存儲裝置恢復(fù)順序; 基于第二隊列先于第一隊列的順序,利用所述至少一個存儲陣列中剩余的存活存儲裝 置向替換后的可用存儲裝置迀移數(shù)據(jù)組包括: 基于第二隊列先于第一隊列的順序,按照存儲裝置恢復(fù)順序,利用所述至少一個存儲 陣列中剩余的存活存儲裝置向替換后的可用存儲裝置迀移數(shù)據(jù)組。4. 根據(jù)權(quán)利要求1所述的數(shù)據(jù)存儲方法,其特征在于,在確定所述失效存儲裝置所在的 至少一個存儲陣列、所述至少一個存儲陣列中剩余的存活存儲裝置及與所述至少一個存儲 陣列相關(guān)的全部數(shù)據(jù)組,所述方法還包括: 當(dāng)失效存儲裝置的數(shù)量為兩個以上時,根據(jù)與所述失效存儲裝置對應(yīng)的至少兩個可用 存儲裝置在存儲陣列中的位置,生成存儲裝置恢復(fù)順序; 基于第二隊列先于第一隊列的順序,利用所述至少一個存儲陣列中剩余的存活存儲裝 置向替換后的可用存儲裝置迀移數(shù)據(jù)組包括: 基于第二隊列先于第一隊列的順序,按照存儲裝置恢復(fù)順序,利用所述至少一個存儲 陣列中剩余的存活存儲裝置向替換后的可用存儲裝置迀移數(shù)據(jù)組。5. -種用于分布式存儲的數(shù)據(jù)存儲系統(tǒng),其特征在于,包括: 監(jiān)控模塊,用于監(jiān)控分布式存儲的集群中各存儲裝置的工作狀態(tài); 迀移數(shù)據(jù)確定模塊,用于當(dāng)存在失效存儲裝置時,確定所述失效存儲裝置所在的至少 一個存儲陣列、所述至少一個存儲陣列中剩余的存活存儲裝置及與所述至少一個存儲陣列 相關(guān)的全部數(shù)據(jù)組; 迀移序列生成模塊,基于用戶對所述全部數(shù)據(jù)組中的至少一個數(shù)據(jù)組的訪問,生成第 一隊列和第二隊列,其中,第一隊列與所述全部數(shù)據(jù)組中未被訪問的數(shù)據(jù)組對應(yīng),第二隊列 與所述全部數(shù)據(jù)組中被訪問的數(shù)據(jù)組對應(yīng); 存儲修復(fù)模塊,從集群中選擇可用存儲裝置替換所述失效存儲裝置; 數(shù)據(jù)迀移模塊,基于第二隊列先于第一隊列的順序,利用所述至少一個存儲陣列中剩 余的存活存儲裝置向替換后的可用存儲裝置迀移數(shù)據(jù)組。6. 根據(jù)權(quán)利要求5所述的數(shù)據(jù)存儲系統(tǒng),其特征在于,對于第二隊列中的數(shù)據(jù)組,被訪 問次數(shù)越多,在第二隊列中越靠前。7. 根據(jù)權(quán)利要求5所述的數(shù)據(jù)存儲系統(tǒng),其特征在于,所述系統(tǒng)還包括存儲順序確定模 塊,用于當(dāng)剩余的存活存儲裝置的數(shù)量為兩個以上時,根據(jù)剩余的各存活存儲裝置在存儲 陣列中的位置,生成存儲裝置恢復(fù)順序; 所述數(shù)據(jù)迀移模塊用于基于第二隊列先于第一隊列的順序,按照存儲裝置恢復(fù)順序, 利用所述至少一個存儲陣列中剩余的存活存儲裝置向替換后的可用存儲裝置迀移數(shù)據(jù)組。8. 根據(jù)權(quán)利要求5所述的數(shù)據(jù)存儲系統(tǒng),其特征在于,所述系統(tǒng)還包括存儲順序確定模 塊,用于當(dāng)失效存儲裝置的數(shù)量為兩個以上時,根據(jù)與所述失效存儲裝置對應(yīng)的至少兩個 可用存儲裝置在存儲陣列中的位置,生成存儲裝置恢復(fù)順序; 所述數(shù)據(jù)迀移模塊用于基于第二隊列先于第一隊列的順序,按照存儲裝置恢復(fù)順序, 利用所述至少一個存儲陣列中剩余的存活存儲裝置向替換后的可用存儲裝置迀移數(shù)據(jù)組。
【文檔編號】G06F3/06GK106020739SQ201610547862
【公開日】2016年10月12日
【申請日】2016年7月12日
【發(fā)明人】吳興義
【申請人】樂視控股(北京)有限公司, 樂視云計算有限公司