欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于分布式存儲系統的數據存儲方法及裝置的制作方法

文檔序號:7890445閱讀:172來源:國知局
專利名稱:基于分布式存儲系統的數據存儲方法及裝置的制作方法
技術領域
本申請涉及數據存儲技術領域,特別是涉及基于分布式存儲系統的數據存儲方法及相應的裝置。
背景技術
分布式存儲系統采用可擴展的系統結構,利用多臺存儲服務器分擔存儲負荷,不但提高了系統的整體可靠性和數據的可用性,還極大提高了存取效率?;诜植际酱鎯ο到y的數據存儲過程通常包括存儲請求端向分布式存儲系統發(fā)送存儲請求,分布式存儲系統接收到存儲請求后,按照預設策略分配存儲服務器,然后將分配的存儲服務器的地址返回給存儲請求端,由于存儲請求端預先已經預定好存儲數據與存儲服務器的存儲基元的對應關系,因此,存儲請求端獲得存儲服務器地址后即可將待存儲數據存儲到分配的存儲服務器的相應存儲基元。從該存儲過程可知,現有技術將數據存儲到分布式存儲系統的關鍵是分布式存儲系統存儲服務器的分配策略。通常的分配策略包括多種,比如根據存儲請求輪流分配到存儲服務器的輪詢策略、根據存儲請求隨機選擇存儲服務器的隨機策略等。但是,這些存儲服務器分配策略的問題是根據存儲請求端的需要進行存儲服務器分配,且分配級別處于存儲服務器級,未考慮存儲服務器端的狀況,不能較好地實現分布式存儲系統的存儲均衡。此外,在某些情況下,即便存儲服務器出現問題,也有可能會被分配用于存儲數據,這勢必導致數據存儲操作失敗,使相同數據必須再次或多次進行存儲,從而降低了數據存儲的整體效率。

發(fā)明內容
為解決上述技術問題,本申請實施例提供了基于分布式存儲系統的數據存儲方法及裝置,以提高分布式存儲系統的存儲均衡能力。本申請實施例提供的基于分布式存儲系統的數據存儲方法包括上報各存儲基元所在存儲服務器的負載信息,所述負載信息為存儲服務器接收數據存儲的能力信息;根據所述負載信息按照第一預設策略生成各存儲基元的權重;接收存儲請求后根據各存儲基元權重按照第二預設策略分配存儲基元;將接收到的數據存儲到分配的存儲基元。優(yōu)選地,在上報各存儲基元所在存儲服務器的負載信息時,還上報各存儲基元的存儲容量使用信息,則根據所述負載信息和存儲容量使用信息按照第一預設策略生成各存儲基兀的權重。進一步優(yōu)選地,所述負載信息包括存儲服務器的線程開啟率、內存使用率,所述線程開啟率為存儲服務器當前開啟的線程數與該存儲服務器允許開啟的最大線程數的比值,所述存儲容量使用信息包括存儲容量使用率,則所述第一預設策略為存儲基元的權重=線程開啟率+內存使用率+存儲容量使用率。
進一步優(yōu)選地,所述第一預設策略為 存儲基元的權重=Wl*線程開啟率+W2*內存使用率+W3*存儲容量使用率;其中所述W1、W2、W3取值范圍為O到1,分別為存儲服務器線程開啟率、內存使用率、存儲基元的存儲容量使用率對存儲基元權重的貢獻值,Wl、W2、W3之和為I。優(yōu)選地,將多個存儲基元組成存儲基元組,選擇該組內的一個存儲基元為主存儲基元,則在生成各存儲基元的權重后,按照第三預設策略生成存儲基元組的權重,接收存儲請求后根據各存儲基元組權重按照第二預設策略分配存儲基元組,將接收到的數據通過主存儲基元存儲到分配的存儲基元組的各存儲基元。進一步優(yōu)選地,所述第二預設策略為以存儲基元組的權重之和為種子,通過隨機函數生成新的權重值,根據權重值所處權重區(qū)間分配存儲基元組。本申請實施例還提供了另一種基于分布式存儲系統的數據存儲方法。該方法包括接收存儲請求后,收集各存儲基元所在存儲服務器的負載信息,所述負載信息為存儲服務器接收數據存儲的能力信息;根據所述負載信息按照第一預設策略生成各存儲基元的權重;根據各存儲基元的權重按照第二預設策略分配存儲基元;將接收到的數據存儲到分配的存儲基元。本申請還提供了一種基于分布式存儲系統的數據存儲裝置。該裝置包括上報單元、生成單元、分配單元和存儲單元,其中所述上報單元,用于上報各存儲基元所在存儲服務器的負載信息,所述負載信息為存儲服務器接收數據存儲的能力信息;所述生成單元,用于根據所述負載信息按照第一預設策略生成各存儲基元的權重;所述分配單元,用于在接收存儲請求后根據各存儲基元權重按照第二預設策略分配存儲基元;所述存儲單元,用于將接收到的數據存儲到分配的存儲基元。優(yōu)選地,所述上報單元在上報各存儲基元所在存儲服務器的負載信息時,還用于上報各存儲基元的存儲容量使用信息,則生成單元用于根據所述負載信息和存儲容量使用信息按照第一預設策略生成各存儲基元的權重。本申請實施例還提供了另一種基于分布式存儲系統的數據存儲裝置。該裝置包括收集單元、生成單元、分配單元和存儲單元,其中所述收集單元,用于在接收存儲請求后收集各存儲基元所在存儲服務器的負載信息,所述負載信息為存儲服務器接收數據存儲的能力信息;所述生成單元,用于根據所述負載信息按照第一預設策略生成各存儲基元的權重;所述分配單元,用于根據各存儲基元的權重按照第二預設策略分配存儲基元;所述存儲單元,用于將接收到的數據存儲到分配的存儲基元。本申請實施例將各存儲基元所在存儲服務器的負載信息進行上報,然后根據該上報的負載信息生成各存儲基元的權重,在接收存儲請求后根據各存儲基元的權重分配存儲基元以便將接收到的數據存儲到該存儲基元上。與現有技術相比,本申請實施例先獲取存儲基元所在存儲服務器的負載情況,根據該負載情況分配相應的存儲基元用于數據存儲,由于在數據存儲過程中充分考慮了各存儲服務器的數據接收能力,從而能夠較好地實現分布式存儲系統的存儲均衡。而且,本申請實施例在存儲基元級進行存儲單元分配,打破了在存儲服務器級別進行分配的傳統模式,避免了存儲請求端與存儲服務器端進行存儲基元的事先預定,更加細粒度地均衡了分布式存儲系統的數據存儲。此外,由于本申請實施例以存儲服務器端的負載情況為基礎,如果存儲服務器端的某個存儲服務器或存儲基元出現壞損,將不會上報存儲服務器負載情況,從而避免了將壞損的存儲服務器納入分配范圍,減小了存儲失誤,提高了分布式存儲系統中數據存儲的整體效率。


為了更清楚地說明本申請實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請中記載的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。圖I為本申請實施例一的基于分布式存儲系統的數據存儲方法流程圖;圖2為圖I所述實施例的應用場景示意圖;圖3為本申請實施例二的基于分布式存儲系統的數據存儲方法流程圖;圖4為本申請實施例三的基于分布式存儲系統的數據存儲裝置結構框圖;圖5為本申請實施例四的基于分布式存儲系統的數據存儲裝置結構框圖。
具體實施例方式為了使本技術領域的人員更好地理解本申請中的技術方案,下面將結合本申請實施例中的附圖,對本申請實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本申請一部分實施例,而不是全部的實施例?;诒旧暾堉械膶嵤├?,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應當屬于本申請保護的范圍。為使本申請的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結合附圖和具體實施方式
對本申請作進一步詳細的說明。參見圖1,該圖示出了本申請實施例一的基于分布式存儲系統的數據存儲方法的流程。該實施例包括步驟SlOl :上報各存儲基元所在存儲服務器的負載信息,所述負載信息為存儲服務器接收數據存儲的能力信息;存儲基元是分布式存儲系統上用于存儲數據的一個存儲單位。根據實際情況的不同,存儲基元的范圍可大可小,比如存儲基元可以指分布式存儲系統上的存儲服務器,也可以指存儲服務器上的一個存儲磁盤,還可以指存儲服務器的存儲磁盤上的存儲塊。分布式存儲系統上的存儲服務器可能在一個時間段內面臨來自多個存儲請求端的眾多存儲請求,以致同時進行著多個存儲進程(線程)。當存儲服務器同時開啟多個進程時,該存儲服務器的CPU、內存等設備將以較大的負荷運行,該存儲服務器的負載加重,存儲服務器的接收數據存儲的能力將受到影響。通常而言,存儲服務器上的負載越重,接收數據存儲的能力越弱;存儲服務器上的負載越輕,接收數據存儲的能力越強。本實施例在接收存儲請求進行數據存儲之前,先上報各存儲基元所在存儲服務器的負載信息,通過該負載信息來了解和掌握存儲服務器的負載情況,進而獲得存儲服務器接收數據存儲的能力大小,為分配存儲基元做準備。對于上報負載信息的頻率或時間,本實施例并不做任何限定。實際應用過程中,可根據應用需要設定每隔一定時間上報一次負載信息,以便及時了解存儲服務器的負載情況,也可僅在負載發(fā)生變化后上報,以減少數據上報過程中的通信次數。負載信息上報工作在具體應用過程中,可通過DataService (數據管理服務)程序執(zhí)行。步驟S102 :根據所述負載信息按照第一預設策略生成各存儲基元的權重;獲得上報的負載信息后,即可根據該負載信息按照第一預設策略生成各存儲基元的權重,該權重大小反映了存儲基元所在服務器接收數據存儲的能力。存儲基元的權重越大(越小),存儲基元所在存儲服務器接收數據存儲的能力越強,該存儲服務器器和存儲服務器上的存儲基元被分配用于存儲數據的可能性越大。這里的第一預設策略具體表現形式可以為多種,比如,預設策略可以為存儲服務器的負載越大、存儲基元的權重越高,則存儲基元所在的存儲服務器負載越大,按照該策略生成的存儲基元的權重值越高;還比如,預設策略可以為存儲服務器的負載超過第一預設閾值,存儲基元的權重為A值,負載低于第二預設閾值,存儲基元的權重為C值,負載處于第一預設閾值和第二預設閾值之間的,存儲基元的權重為B值。實際上,只要第一預設策略體現出存儲服務器的負載對存儲服務器以及存儲服務器上的存儲基元的數據存儲能力的影響,其具體的策略形式均不妨礙本發(fā)明的發(fā)明目的的實現。存儲基元的權重生成工作在實際應用過程中,可通過NameService (名稱服務)程序進行。步驟S103 :接收存儲請求后根據各存儲基元權重按照第二預設策略分配存儲基元;接收來自存儲請求端的存儲請求后,本實施例根據上述計算出來的各存儲基元的權重,按照第二預設策略分配存儲單元用于存儲數據。存儲基元的權重越大(越小),該存儲基元被分配用于存儲數據的可能性越大。這里的第二預設策略具體表現形式可以為多種,比如,預設策略可以為將權重越大的存儲基元分配用于存儲數據(如果權重越大反映存儲服務器以及存儲基元的接收數據存儲的能力越強),則比較各存儲基元的權重后,選定權重最大的存儲基元作為響應數據存儲請求的存儲基元;還比如,預設策略可以為將權重值超過第三預設閾值的存儲基元分配用于存儲數據,則比較各存儲基元權重與第三預設閾值后,選定滿足要求的存儲基元作為響應數據存儲請求的存儲基元。實際上,只要第二預設策略體現出存儲基元的權重對存儲服務器以及存儲服務器上的存儲基元的數據存儲能力的影響,其具體的策略形式均不妨礙本發(fā)明的發(fā)明目的的實現。這里需要說明的兩點是一是在一個存儲服務器包含多個存儲基元時,則可能存在多個存儲基元的權重值相等的情況,這種情形下,可根據實際情況將權重值相等的存儲基元均分配用于存儲數據,也可從中隨機選擇一個存儲基元用于存儲數據。二是第一預設策略與第二預設策略的對應關系,比如第一預設策略將策略設置為存儲服務器的負載越大,生成的存儲基元的權重越大,那么在分配存儲基元時,第二預設策略則應當相應地將權重值大的存儲基元分配用于存儲、數據,也就是說,要保持兩個策略在方向上的一致性,本領域技術人員在實際應用本實施例過程中清楚該要求。步驟S104 :將接收到的數據存儲到分配的存儲基元;分布式存儲系統存儲服務器端分配存儲基元后,將向存儲請求端返回存儲基元的地址。存儲請求端獲得該地址后將待存儲的數據發(fā)送到存儲服務器端存儲到相應的存儲基元上。為便于直觀理解,本申請給出了上述流程的應用場景示意圖,參見附圖2。分布式 存儲系統(存儲服務器端)根據上報的存儲服務器的負載信息生成存儲基元的權重。數據存儲請求端向分布式存儲系統發(fā)送存儲請求后,分布式存儲系統根據存儲基元的權重分配用于存儲數據的存儲基元,然后將存儲請求端發(fā)送的存儲數據存儲到該分配的存儲基元。這里的存儲控制管理中心可以單獨作為一個服務器存在(如圖所示),也可以將其功能嵌入到各個存儲服務器中。本實施例將各存儲基元所在存儲服務器的負載信息進行上報,然后根據該上報的負載信息生成各存儲基元的權重,在接收存儲請求后根據各存儲基元的權重分配存儲基元以便將接收到的數據存儲到該存儲基元上。與現有技術相比,本實施例先獲取存儲基元所在存儲服務器的負載情況,根據該負載情況分配相應的存儲基元用于數據存儲,由于在數據存儲過程中充分考慮了各存儲服務器的數據接收能力,從而能夠較好地實現分布式存儲系統的存儲均衡。而且,本申請實施例在存儲基元級進行存儲單元分配,打破了在存儲服務器級別進行分配的傳統模式,避免了存儲請求端與存儲服務器端進行存儲基元的事先預定,更加細粒度地均衡了分布式存儲系統的數據存儲。此外,由于本申請實施例以存儲服務器端的負載情況為基礎,如果存儲服務器端的某個存儲服務器或存儲基元出現壞損,將不會上報存儲服務器負載情況,從而避免了將壞損的存儲服務器納入分配范圍,減小了存儲失誤,提高了分布式存儲系統中數據存儲的整體效率。上述實施例一在進行信息上報時,僅上報了存儲基元所在的存儲服務器的負載情況,盡管這樣并不影響不發(fā)明的發(fā)明目的的實現。但是,在一個存儲服務器包含多個存儲基元的情況下,該存儲服務器的所有存儲基元上報的負載信息均是相同存儲服務器的負載信息,那么得出的各個存儲基元的權重必然相等。在進行存儲基元的分配時雖然可以隨機選擇一個存儲基元進行分配,然而這種方式沒有考慮到存儲基元本身的情況。實際上,經過多次數據存儲操作后,在相同存儲服務器上的多個存儲基元的存儲能力并不相同,有的存儲基元可能已經存滿,有些可能還有很大的空閑。為了充分均衡分布式存儲系統、合理利用存儲資源,本申請對上述實施例一的一種改進方式是在上報各存儲基元所在存儲服務器的負載信息時,還上報各存儲基元的存儲容量使用信息,以便根據存儲服務器的負載信息和存儲基元的存儲容量使用信息按照第一預設策略生成各存儲基元的權重。經過上述處理后,各存儲基元的權重不僅反映其所在存儲服務器的接收數據存儲的能力,還反映各存儲基元接收數據存儲的能力,從而進一步優(yōu)化了分布式存儲系統的數據存儲過程。前述改進實施例一的敘述中提到“根據各存儲服務器的負載信息和存儲基元的存儲容量使用信息按照第一預設策略生成各存儲單元的權重”,為便于理解該技術特征,下面以具體實例進行說明。假設上報的各存儲基元所在存儲服務器的負載信息包括存儲服務器的線程開啟率、內存使用率,這兩個參數均能反映存儲服務器接收數據存儲的能力線程開啟率越多,說明存儲服務器的負載越大;內存使用越多,也說明存儲服務器的負載較大。這里的線程開啟率指存儲服務器當前開啟的線程數與該存儲服務器允許開啟的最大線程數的比值。由于配置的原因,存儲服務器的CPU通常具有自己的最大線程處理能力,存儲服務器允許同時開啟的最大線程數即可存儲服務器CPU的處理極限。有些情況下,存儲服務器可能包含多個CPU,則此時的線程開啟率為當前運行于存儲服務器上的所有線程數與各CPU允許開啟的最大線程數總和的比值。存儲基元的存儲容量使用信息包括存儲容量使用率,存儲容量使用率越大,說明存儲基元的空閑空間越小,接收數據存儲的能力越弱,相反則空閑空間越大,接收數據存儲能力越強。通過上報獲得存儲服務器的線程開啟率、內存使用率以及存儲基元的存儲容量使用率等參數后,所述第一預設策略可表述為下述公式存儲基元的權重=線程開啟率+內存使用率+存儲容量使用率。按照這種策略生成的存儲基元的權重,反映了不僅反映了存儲服務器的負載情況,而且反映了存儲基元自身的情況,依據該權重進行用于存儲數據的存儲基元的分配將使分布式存儲服務器的數據存儲更加均衡。實際上,在具體的應用過程中,還可以將上述三個參數乘以一定的系數對這些參數進行區(qū)別對待如果線程開啟率是數據存儲過程最關注的因素,則可提高線程開啟率對存儲基元權重的貢獻率,降低內存使用率和存儲容量使用率對存儲基元的權重的貢獻率。如果線程開啟率和存儲使用率(存儲服務器的負載)均是比較關注的因素,則可提高這兩個參數的貢獻率而降低存儲容量使用率的貢獻率。用公式表示為存儲基元的權重=Wl*線程開啟率+W2*內存使用率+W3*存儲容量使用率;其中所述W1、W2、W3取值范圍為O到1,分別為存儲服務器線程開啟率、內存使用率、存儲基元的存儲容量使用率對存儲基元權重的貢獻值,Wl、W2、W3之和為I。按照上述修正過程獲得的存儲基元權重已能較好地實現本發(fā)明的發(fā)明目的。但是,從上述公式可知,計算存儲基元權重的幾個參數均是百分比,由此計算出來的存儲基元的權重值較小,為便于觀察和體現存儲基元的變化情況,可將上述存儲基元的權重乘以一定的放大倍數,比如放大倍數設置為10,則存儲基元的權重數據變化范圍擴大,有利于監(jiān)測到存儲基元的權重變化。在上述實施例一中,存儲請求端發(fā)送來的數據僅存儲在存儲服務器的一個或各存儲基元上,沒有存儲相應的復本。當存儲該數據的存儲基元出現壞損時,由于沒有備份,將無法恢復上述數據。為了實現提高分布式存儲系統的數據可靠性和穩(wěn)定性,本申請對上述實施例一的另一種種改進是將多個存儲基元(比如3個)組成存儲基元組,并選擇該組內的一個存儲基元作為主存儲基元,通過將需要存儲的數據同時存儲到多個存儲基元上,以實現數據備份,便于數據恢復。將多個存儲基元構建成一個存儲基元組后,其相應的流程變化為在生成各存儲基元的權重后,按照第三預設策略生成存儲基元組的權重,接收存儲請求后根據各存儲基元組權重按照第二預設策略分配存儲基元組,將接收到的數據通過主存儲基元存儲到分配的存儲基元組的各存儲基元。這里的第三預設策略主要用于生成存儲基元組的權重,具體表現形式包括多種,比如將每個存儲基元的權重直接相加,相加的總和作為存儲基元組的權重,也可以將每個存儲基元的權重進行加權平權,加權平均的總和作為存儲基元組的權重,還可以考慮存儲基元組內存儲基元對存儲基元組的貢獻率,假設在3個存儲基元組成一個存儲基元組的情況下,用公式表示存儲基本元組的權重為
存儲基本組的權重=主存儲基元*hl+從存儲基元*h2+從存儲基元*h3這里的hi、h2、h3可根據實際情況設定,比如設定為60%、20%、20%。按照第三預設策略生成存儲基元組的權重后,仍可按照第二預設策略分配存儲基元組,不同之處在于分配的基本單位由“存儲基元”變化為“存儲基元組”,但采取的策略可相同。此處的第二預設策略可以為以存儲基元組的權重之和為種子,通過隨機函數生成新的權重值,根據權重值所處權重區(qū)間分配存儲基元組。比如獲取到存儲基元組的權重后(該存儲基元的權重均乘以了放大倍數10),劃分出如下的權重區(qū)間存儲基元組I的權重區(qū)間為
存儲基元組2的權重區(qū)間為[(存儲基元組I權重),(存儲基元組I權重+存儲基元組2權重-I)].....存儲基元組N的權重區(qū)間為[(前N-I個存儲基元組權重總和),(前N個組存儲基兀權重總和_1)]以存儲基元組的權重之和為種子,通過隨機函數生成新的權重值,該新的權重值減I獲得隨機數,根據該隨機數所在的權重區(qū)間選擇存儲基元組。選定用于響應存儲請求端的存儲基元組后,即可將接收到的存儲數據通過主存儲基元存儲到分配的存儲基元組的各存儲基元,這里通過主存儲基元向存儲基元存儲數據的原因在于保持數據的強一致性,也就是說,存儲基元組內的各存儲基元存儲的數據高度以致,這樣如果某個存儲基元的數據遭受破壞,則可通過該存儲基元所在的存儲基元組的其他存儲基元上保存的數據進行恢復,從而進一步提高了分布式存儲系統的可靠性和穩(wěn)定性。前述實施例一以及對實施例一的改進均是在接收到存儲請求之前已經根據上報的存儲服務器的負載信息生成了存儲基元的權重,當接收到存儲請求后,僅執(zhí)行存儲基元的分配,進而將數據存儲到分配的存儲基元上。實際上,除這種在接收存儲請求之前分布式存儲系統即自我進行存儲基元的權重生成工作外,還可以在接收到存儲請求之后啟動相應的操作,這樣可以避免或減少分布式存儲系統的工作量。這種實現基于分布式存儲系統的數據存儲方法的方式構成本申請的第二實施例,參見附圖3,該圖示出了本申請實施例二的基于分布式存儲系統的數據存儲方法流程。該實施例包括步驟S301 :接收存儲請求后,收集各存儲基元所在存儲服務器的負載信息,所述負載信息為存儲服務器接收數據存儲的能力信息;本實施例在接收到存儲請求后,啟動存儲服務器的負載信息收集工作,以便根據存儲基元所在的存儲服務器的負載情況決定存儲基元的分配。步驟S302 :根據所述負載信息按照第一預設策略生成各存儲基元的權重;步驟S303 :根據各存儲基元的權重按照第二預設策略分配存儲基元;步驟S304 :將接收到的數據存儲到分配的存儲基元。
本實施例取得的技術效果與實施例一相同,為避免重復,這里不再贅述。上述敘述內容均是對本申請方法實施例的描述,相應地,本申請實施例還提供了基于分布式存儲系統的數據存儲裝置。參見附圖4,該圖示出了本申請實施例三的基于分布式存儲系統的數據存儲裝置結構。該裝置實施例400包括上報單元401、生成單元402、分配單元403和存儲單元404,其中
所述上報單元401,用于上報各存儲基元所在存儲服務器的負載信息,所述負載信息為存儲服務器接收數據存儲的能力信息;所述生成單元402,用于根據所述負載信息按照第一預設策略生成各存儲基元的權重;所述分配單元403,用于在接收存儲請求后根據各存儲基元權重按照第二預設策略分配存儲基元;所述存儲單元404,用于將接收到的數據存儲到分配的存儲基元。本裝置實施例的工作過程是上報單元401上報各存儲基元所在存儲服務器的負載信息,所述負載信息為存儲服務器接收數據存儲的能力信息;生成單元402根據上報單元上報的負載信息按照第一預設策略生成各存儲基元的權重;然后由分配單元403在接收存儲請求后根據各存儲基元權重按照第二預設策略分配存儲基元;存儲單元404將接收到的數據存儲到分配的存儲基元。本裝置實施例將各存儲基元所在存儲服務器的負載信息進行上報,然后根據該上報的負載信息生成各存儲基元的權重,在接收存儲請求后根據各存儲基元的權重分配存儲基元以便將接收到的數據存儲到該存儲基元上。與現有技術相比,本裝置實施例先獲取存儲基元所在存儲服務器的負載情況,根據該負載情況分配相應的存儲基元用于數據存儲,由于在數據存儲過程中充分考慮了各存儲服務器的數據接收能力,從而能夠較好地實現分布式存儲系統的存儲均衡。而且,本裝置實施例在存儲基元級進行存儲單元分配,打破了在存儲服務器級別進行分配的傳統模式,避免了存儲請求端與存儲服務器端進行存儲基元的事先預定,更加細粒度地均衡了分布式存儲系統的數據存儲。此外,由于本申請實施例以存儲服務器端的負載情況為基礎,如果存儲服務器端的某個存儲服務器或存儲基元出現壞損,將不會上報存儲服務器負載情況,從而避免了將壞損的存儲服務器納入分配范圍,減小了存儲失誤,提高了分布式存儲系統中數據存儲的整體效率。上述裝置實施例中的上報單元僅上報存儲基元所在存儲服務器的負載信息,雖然通過上報的負載信息能夠反映存儲服務器接收數據存儲的能力,但是不能反映存儲基元的情況,為此,本申請優(yōu)選上報單元在上報各存儲基元所在存儲服務器的負載信息時,還用于上報各存儲基元的存儲容量使用信息,則生成單元用于根據所述負載信息和存儲容量使用信息按照第一預設策略生成各存儲基元的權重。除上述裝置實施例外,與本申請的方法實施例二相對應,本申請還提供了另一種基于分布式存儲系統的數據存儲裝置。參見附圖5,該圖示出了本申請實施例四的基于分布式存儲系統的數據存儲裝置結構。該裝置實施例500包括收集單元501、生成單元502、分配單元503和存儲單元504,其中所述收集單元501,用于在接收存儲請求后收集各存儲基元所在存儲服務器的負載信息,所述負載信息為存儲服務器接收數據存儲的能力信息;
所述生成單元502,用于根據所述負載信息按照第一預設策略生成各存儲基元的權重;所述分配單元503,用于根據各存儲基元的權重按照第二預設策略分配存儲基元; 所述存儲單元504,用于將接收到的數據存儲到分配的存儲基元。本裝置實施例500的工作過程是收集單元501在接收存儲請求后收集各存儲基元所在存儲服務器的負載信息,所述負載信息為存儲服務器接收數據存儲的能力信息;生成單元502根據收集單元收集的負載信息按照第一預設策略生成各存儲基元的權重;分配單元503根據各存儲基元的權重按照第二預設策略分配存儲基元;然后由存儲單元504將接收到的數據存儲到分配的存儲基元。上述裝置實施例500取得的效果與裝置實施例400取得的效果相似,為節(jié)約篇幅,這里不再重復。為了描述的方便,描述以上裝置時以功能分為各種單元分別描述。當然,在實施本申請時可以把各單元的功能在同一個或多個軟件和/或硬件中實現。通過以上的實施方式的描述可知,本領域的技術人員可以清楚地了解到本申請可借助軟件加必需的通用硬件平臺的方式來實現?;谶@樣的理解,本申請的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟件產品的形式體現出來,該計算機軟件產品可以存儲在存儲介質中,如R0M/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)執(zhí)行本申請各個實施例或者實施例的某些部分所述的方法。本說明書中的各個實施例均采用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對于系統實施例而言,由于其基本相似于方法實施例,所以描述得比較簡單,相關之處參見方法實施例的部分說明即可。以上所描述的系統實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上??梢愿鶕嶋H的需要選擇其中的部分或者全部模塊來實現本實施例方案的目的。本領域普通技術人員在不付出創(chuàng)造性勞動的情況下,即可以理解并實施。本申請可用于眾多通用或專用的計算系統環(huán)境或配置中。例如個人計算機、服務器計算機、手持設備或便攜式設備、平板型設備、多處理器系統、基于微處理器的系統、置頂盒、可編程的消費電子設備、網絡PC、小型計算機、大型計算機、包括以上任何系統或設備的分布式計算環(huán)境等等。本申請可以在由計算機執(zhí)行的計算機可執(zhí)行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執(zhí)行特定任務或實現特定抽象數據類型的例程、程序、對象、組件、數據結構等等。也可以在分布式計算環(huán)境中實踐本申請,在這些分布式計算環(huán)境中,由通過通信網絡而被連接的遠程處理設備來執(zhí)行任務。在分布式計算環(huán)境中,程序模塊可以位于包括存儲設備在內的本地和遠程計算機存儲介質中。以上所述僅是本申請的具體實施方式
,應當指出,對于本技術領域的普通技術人員來說,在不脫離本申請原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本申 請的保護范圍。
權利要求
1.一種基于分布式存儲系統的數據存儲方法,其特征在于,該方法包括 上報各存儲基元所在存儲服務器的負載信息,所述負載信息為存儲服務器接收數據存儲的能力信息; 根據所述負載信息按照第一預設策略生成各存儲基元的權重; 接收存儲請求后根據各存儲基元權重按照第二預設策略分配存儲基元; 將接收到的數據存儲到分配的存儲基元。
2.根據權利要求I所述的方法,其特征在于,在上報各存儲基元所在存儲服務器的負載信息時,還上報各存儲基元的存儲容量使用信息,則 根據所述負載信息和存儲容量使用信息按照第一預設策略生成各存儲基元的權重。
3.根據權利要求2所述的方法,其特征在于,所述負載信息包括存儲服務器的線程開啟率、內存使用率,所述線程開啟率為存儲服務器當前開啟的線程數與該存儲服務器允許開啟的最大線程數的比值,所述存儲容量使用信息包括存儲容量使用率,則所述第一預設策略為 存儲基元的權重=線程開啟率+內存使用率+存儲容量使用率。
4.根據權利要求3所述的方法,其特征在于,所述第一預設策略為 存儲基元的權重=Wl*線程開啟率+W2*內存使用率+W3*存儲容量使用率; 其中所述W1、W2、W3取值范圍為O到1,分別為存儲服務器線程開啟率、內存使用率、存儲基元的存儲容量使用率對存儲基元權重的貢獻值,Wl、W2、W3之和為I。
5.根據權利要求I所述的方法,其特征在于,將多個存儲基元組成存儲基元組,選擇該組內的一個存儲基元為主存儲基元,則 在生成各存儲基元的權重后,按照第三預設策略生成存儲基元組的權重,接收存儲請求后根據各存儲基元組權重按照第二預設策略分配存儲基元組,將接收到的數據通過主存儲基元存儲到分配的存儲基元組的各存儲基元。
6.根據權利要求5所述的方法,其特征在于,所述第二預設策略為 以存儲基元組的權重之和為種子,通過隨機函數生成新的權重值,根據權重值所處權重區(qū)間分配存儲基元組。
7.一種基于分布式存儲系統的數據存儲方法,其特征在于,該方法包括 接收存儲請求后,收集各存儲基元所在存儲服務器的負載信息,所述負載信息為存儲服務器接收數據存儲的能力信息; 根據所述負載信息按照第一預設策略生成各存儲基元的權重; 根據各存儲基元的權重按照第二預設策略分配存儲基元; 將接收到的數據存儲到分配的存儲基元。
8.一種基于分布式存儲系統的數據存儲裝置,其特征在于,該裝置包括上報單元、生成單元、分配單元和存儲單元,其中 所述上報單元,用于上報各存儲基元所在存儲服務器的負載信息,所述負載信息為存儲服務器接收數據存儲的能力信息; 所述生成單元,用于根據所述負載信息按照第一預設策略生成各存儲基元的權重;所述分配單元,用于在接收存儲請求后根據各存儲基元權重按照第二預設策略分配存儲基元;所述存儲單元,用于將接收到的數據存儲到分配的存儲基元。
9.根據權利要求8所述的裝置,其特征在于,所述上報單元在上報各存儲基元所在存儲服務器的負載信息時,還用于上報各存儲基元的存儲容量使用信息,則生成單元用于根據所述負載信息和存儲容量使用信息按照第一預設策略生成各存儲基元的權重。
10.一種基于分布式存儲系統的數據存儲裝置,其特征在于,該裝置包括收集單元、生成單元、分配單元和存儲單元,其中 所述收集單元,用于在接收存儲請求后收集各存儲基元所在存儲服務器的負載信息,所述負載信息為存儲服務器接收數據存儲的能力信息; 所述生成單元,用于根據所述負載信息按照第一預設策略生成各存儲基元的權重; 所述分配單元,用于根據各存儲基元的權重按照第二預設策略分配存儲基元; 所述存儲單元,用于將接收到的數據存儲到分配的存儲基元。
全文摘要
本申請實施例公開了一種基于分布式存儲系統的數據存儲方法。該方法包括上報各存儲基元所在存儲服務器的負載信息,所述負載信息為存儲服務器接收數據存儲的能力信息;根據所述負載信息按照第一預設策略生成各存儲基元的權重;接收存儲請求后根據各存儲基元權重按照第二預設策略分配存儲基元;將接收到的數據存儲到分配的存儲基元。本申請實施例還公開了另一種基于分布式存儲系統的數據存儲方法,以及與這兩種方法相應的裝置。本申請實施例在數據存儲過程中充分考慮了各存儲服務器的數據接收能力,從而能夠較好地實現分布式存儲系統的存儲均衡。
文檔編號H04L29/08GK102629934SQ20121004890
公開日2012年8月8日 申請日期2012年2月28日 優(yōu)先權日2012年2月28日
發(fā)明者宋鵬 申請人:北京搜狐新媒體信息技術有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
凤山县| 铅山县| 滦南县| 商南县| 六枝特区| 惠水县| 安新县| 鄱阳县| 溆浦县| 荔浦县| 宁蒗| 临潭县| 凤山县| 泰安市| 岳阳县| 西盟| 如皋市| 安塞县| 光泽县| 吉木乃县| 德兴市| 吉木萨尔县| 宿州市| 合山市| 行唐县| 灯塔市| 久治县| 新宁县| 富锦市| 阜阳市| 黔东| 政和县| 凤庆县| 榆中县| 碌曲县| 吉木萨尔县| 靖宇县| 高邑县| 桂阳县| 侯马市| 汕头市|