專利名稱:一種面向多業(yè)務(wù)應(yīng)用的云存儲數(shù)據(jù)分布方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種面向多業(yè)務(wù)應(yīng)用的云存儲數(shù)據(jù)分布方法。
背景技術(shù):
云存儲系統(tǒng)底層由眾多設(shè)備甚至成千上萬的設(shè)備組成,不同系統(tǒng)的底層設(shè)備是不一樣的,數(shù)據(jù)分別以塊、對象以及文件的形式存儲在這些設(shè)備上。數(shù)據(jù)布局指的是將存儲系統(tǒng)的上層應(yīng)用所產(chǎn)生的數(shù)據(jù)集合存放到設(shè)備集合上。數(shù)據(jù)布局策略主要解決如何選擇虛擬池中的設(shè)備存放數(shù)據(jù)的問題,利用有效的機(jī)制建立數(shù)據(jù)集合與設(shè)備集合的映射關(guān)系,同時(shí)
需要滿足某些特定的目標(biāo)。數(shù)據(jù)布局方法直接影響到I/o的訪問性能、存儲系統(tǒng)的可用性、可擴(kuò)展性等方面。不同的目標(biāo)驅(qū)動不同的數(shù)據(jù)布局策略,如公平地分布數(shù)據(jù)可以獲得較大的I/o并行,提高I/O訪問性能;將數(shù)據(jù)的多個(gè)副本放置到不同的設(shè)備,其主要是為了容錯,提高性能可用性;在存儲規(guī)模變化時(shí)遷移最少的數(shù)據(jù)量可以滿足系統(tǒng)的可擴(kuò)展性,自適應(yīng)存儲規(guī)模的變化等。云存儲系統(tǒng)上支持各種業(yè)務(wù),每種業(yè)務(wù)有不同的I/o特征,并且云存儲的底層存儲介質(zhì)的異構(gòu)造成的性能差異。如何使各種業(yè)務(wù)之間不相互影響,達(dá)到系統(tǒng)性能的最大化,是目前云存儲系統(tǒng)需要解決的難題之一。目前比較常用的布局方法包括循環(huán)分配方法、用戶可控布局算法等。
發(fā)明內(nèi)容
本發(fā)明針對云存儲系統(tǒng)上各應(yīng)用相互影響的問題,根據(jù)不同應(yīng)用的I/O特點(diǎn),制定不同的數(shù)據(jù)分布策略,對性能要求高的業(yè)務(wù)數(shù)據(jù)分布到配置高的存儲節(jié)點(diǎn),反之,數(shù)據(jù)分布到配置低的存儲節(jié)點(diǎn),從系統(tǒng)的可用性、可擴(kuò)展性、I/o性能等方面,確保應(yīng)用穩(wěn)定運(yùn)行,系統(tǒng)性能最大化。為了解決上述技術(shù)問題,本發(fā)明的技術(shù)方案如下一種面向多業(yè)務(wù)應(yīng)用的云存儲數(shù)據(jù)分布方法,包括如下步驟11)分析云存儲上運(yùn)行的各種業(yè)務(wù)的I/O特征,并進(jìn)行業(yè)務(wù)歸類;12)根據(jù)不同的業(yè)務(wù)的I/O特征,建立不同的應(yīng)用API,所述應(yīng)用API為基于各種業(yè)務(wù)的I/o特征,提供基于應(yīng)用的文件打開、讀、寫、關(guān)閉接口 ;13)根據(jù)業(yè)務(wù)歸類結(jié)果,制定查詢數(shù)據(jù)布局表;14)當(dāng)客戶端發(fā)送數(shù)據(jù)操作請求時(shí),根據(jù)操作請求的業(yè)務(wù)進(jìn)行I/O特征分析并歸類,然后根據(jù)不同的業(yè)務(wù)的I/o特征,調(diào)用不同的應(yīng)用API ;15)所述操作請求通過對應(yīng)的應(yīng)用API,根據(jù)查詢數(shù)據(jù)布局表從而訪問業(yè)務(wù)數(shù)據(jù)的存儲節(jié)點(diǎn)。進(jìn)一步的,所述分析云存儲上運(yùn)行的各種業(yè)務(wù)的I/O特征包括I/o讀寫分布通過監(jiān)聽模塊,對每種I/o請求進(jìn)行讀寫統(tǒng)計(jì),并記錄相應(yīng)的數(shù)據(jù)塊請求大小、I/O延遲和當(dāng)如等待的I/O請求書/[目息;I/O請求時(shí)間間隔該特征反應(yīng)了 I/O請求的頻繁程度;
并行I/O任務(wù)數(shù)并行I/O任務(wù)數(shù)反映了物理節(jié)點(diǎn)存儲系統(tǒng)忙閑的程度;請求I/O塊大小分布客戶端上運(yùn)行的每種業(yè)務(wù)的I/O請求訪問的I/O塊大小分布。進(jìn)一步的,收集存儲節(jié)點(diǎn)的信息,該信息包括存儲節(jié)點(diǎn)的存儲水位、CPU、內(nèi)存、網(wǎng)絡(luò)帶寬參數(shù);根據(jù)參數(shù)權(quán)重,得出按性能高低排序的服務(wù)器序列,從而得出每個(gè)存儲節(jié)點(diǎn)負(fù)責(zé)的存儲數(shù)據(jù)的權(quán)重系數(shù),用哈希函數(shù)分別計(jì)算存儲節(jié)點(diǎn)的ID值,將存儲節(jié)點(diǎn)的ID值映射到圓環(huán)形的地址空間上,相應(yīng)的空間范圍根據(jù)權(quán)重系數(shù)進(jìn)行劃分,得到云存儲系統(tǒng)的查詢數(shù)據(jù)布局表。進(jìn)一步的,客戶端根據(jù)每個(gè)業(yè)務(wù)的I/O特征,查詢數(shù)據(jù)布局表,將數(shù)據(jù)的哈希值映
射到同一個(gè)圓環(huán)形的地址空間上,并沿著圓環(huán)地址空間順時(shí)針尋找存儲節(jié)點(diǎn)ID值,尋找到的首個(gè)節(jié)點(diǎn)確定為該數(shù)據(jù)對象的存放節(jié)點(diǎn)。本發(fā)明的有益效果在于采用了本發(fā)明的面向多種業(yè)務(wù)的數(shù)據(jù)布局方法,可以充分發(fā)揮各存儲節(jié)點(diǎn)的性能,達(dá)到真正的負(fù)載均衡,又可以保證系統(tǒng)的擴(kuò)容時(shí)的自適應(yīng)調(diào)整,數(shù)據(jù)遷移的數(shù)據(jù)量只有增加或減少節(jié)點(diǎn)上的數(shù)據(jù)。同時(shí)每種業(yè)務(wù)進(jìn)行數(shù)據(jù)操作時(shí)只與對應(yīng)的存儲節(jié)點(diǎn)進(jìn)行通信,保證各業(yè)務(wù)之間相互獨(dú)立,穩(wěn)定運(yùn)行。經(jīng)過測試,當(dāng)涉及多種業(yè)務(wù)例如有BT業(yè)務(wù)、FTP業(yè)務(wù)等時(shí),在不使用本方法之前,兩種業(yè)務(wù)之間相互影響,當(dāng)客戶端的I/O有大量寫操作時(shí),極大影響了客戶端的讀操作。本發(fā)明的使用,將各種業(yè)務(wù)的數(shù)據(jù)分布在各自的存儲節(jié)點(diǎn)上,確保各種業(yè)務(wù)之間相互獨(dú)立,極大的改善了用戶體驗(yàn)。
圖I為面向多業(yè)務(wù)的云存儲數(shù)據(jù)布局方法的結(jié)構(gòu)圖;圖2為面向多業(yè)務(wù)的云存儲數(shù)據(jù)訪問流程圖。
具體實(shí)施例方式下面將結(jié)合附圖和具體實(shí)施例對本發(fā)明做進(jìn)一步的說明。結(jié)合圖I可知,本發(fā)明的主要模塊包括業(yè)務(wù)I/O特征歸類、全局的應(yīng)用API、云存儲數(shù)據(jù)分布主要模塊。業(yè)務(wù)I/O特征歸類云存儲上運(yùn)行各種業(yè)務(wù),有效的獲取和分析云存儲系統(tǒng)上的I/O特征成為云存儲系統(tǒng)性能優(yōu)化和參數(shù)設(shè)置的重要依據(jù)。本發(fā)明中獲取云存儲系統(tǒng)上的I/O特征主要通過I/O監(jiān)控模塊,通過監(jiān)測客戶端I/O操作的過程進(jìn)行信息收集分析。云存儲系統(tǒng)上主要的I/O特征分析包括以下幾種I/O讀寫分布1/0讀寫分布式是最基本的I/O特征,通過監(jiān)聽模塊,對每種I/O請求進(jìn)行讀寫統(tǒng)計(jì),并記錄相應(yīng)的數(shù)據(jù)塊請求大小、I/o延遲和當(dāng)前等待的I/O請求書等信
肩、OI/O請求時(shí)間間隔該特征反應(yīng)了 I/O請求的頻繁程度。并行I/O任務(wù)數(shù)并行I/O任務(wù)數(shù)反映了物理節(jié)點(diǎn)存儲系統(tǒng)忙閑的程度。它會對I/O延遲產(chǎn)生影響。為獲取并行I/O數(shù)可以設(shè)置兩個(gè)不同的變量來分別記錄并行的讀寫I/O任務(wù)數(shù)。
請求I/O塊大小分布客戶端上運(yùn)行的每種業(yè)務(wù)的I/O請求訪問的I/O塊大小分布是反映各業(yè)務(wù)I/o特征的重要參數(shù)之一。通過對每種業(yè)務(wù)的I/O請求進(jìn)行收集分類,可以充分了解每種業(yè)務(wù)的I/O特征,為云存儲的數(shù)據(jù)分布提供了重要的信息依據(jù)。全局的應(yīng)用API 應(yīng)用API主要是基于各種業(yè)務(wù)的I/O特征,提供基于應(yīng)用的文件打開、讀、寫、關(guān)閉等接口。該接口主要是根據(jù)I/o特征,在客戶端進(jìn)行文件讀寫時(shí),與數(shù)據(jù)所在的存儲節(jié)點(diǎn)進(jìn)行通信,以免造成大量不必要的網(wǎng)絡(luò)通信,對云存儲系統(tǒng)上的其他業(yè)務(wù)造成影響。同時(shí),有了各種I/o特征,在文件操作的接口實(shí)現(xiàn)方面,可以對I/O操作的參數(shù)進(jìn)行性能優(yōu)化,提高系統(tǒng)性能和改善用戶體驗(yàn)。云存儲數(shù)據(jù)分布云存儲數(shù)據(jù)分布模塊是本方法的核心組件。數(shù)據(jù)布局策略主要是借鑒一致性哈希算法的思想,并結(jié)合底層存儲節(jié)點(diǎn)的性能差異決定數(shù)據(jù)分布。本模塊中運(yùn)行著存儲節(jié)點(diǎn)的
信息服務(wù),主要收集各存儲節(jié)點(diǎn)的存儲服務(wù)器的空間利用率、CPU、內(nèi)存、網(wǎng)絡(luò)帶寬等各種參數(shù),根據(jù)參數(shù)權(quán)重,得出按性能高低排序的服務(wù)器序列,得到每個(gè)存儲節(jié)點(diǎn)負(fù)責(zé)的存儲數(shù)據(jù)的權(quán)重系數(shù)。具體計(jì)算存儲節(jié)點(diǎn)的權(quán)重系數(shù)分為以下幾個(gè)步驟步驟一首先根據(jù)云存儲集群中各存儲節(jié)點(diǎn)的性能差異,決定衡量存儲節(jié)點(diǎn)性能參數(shù)的權(quán)重。在本發(fā)明中主要衡量節(jié)點(diǎn)差異的參數(shù)有節(jié)點(diǎn)的空間利用率、CPU、內(nèi)存和網(wǎng)絡(luò)帶寬,分別用Ws,ffc, ffm, Wn記錄各參數(shù)的權(quán)重值。權(quán)重值必須滿足(O彡Wi彡I其中i=s,c,m, n,且Ws+Wc+Wm+Wn=l)。例如,各存儲節(jié)點(diǎn)的CPU、內(nèi)存、網(wǎng)絡(luò)帶寬的硬件條件一致的情況下,則衡量節(jié)點(diǎn)性能的參數(shù)就只有存儲節(jié)點(diǎn)的空間利用率,則Ws=l,Wc=Wm=Wn=0。步驟二 得知節(jié)點(diǎn)各參數(shù)的權(quán)重后,用權(quán)重值乘以各參數(shù)的數(shù)值,得到表示各存儲節(jié)點(diǎn)的性能指數(shù)P,即P=WsX (I-空間利用率)+WcX (I-CPU利用率)+WmX可利用內(nèi)存+WnX網(wǎng)絡(luò)帶寬,其中網(wǎng)絡(luò)帶寬值千兆網(wǎng)IGb或萬兆網(wǎng)IOGb ;步驟三通過計(jì)算各節(jié)點(diǎn)的性能指數(shù)P,可得到按P值高低排序的服務(wù)器序列即按性能聞低排序的服務(wù)器序列;步驟四將步驟二計(jì)算求出的各節(jié)點(diǎn)的性能指數(shù)Pi,(其中i表示第i個(gè)存儲節(jié)點(diǎn)i=l, 2,3···,N),根據(jù)Pi值計(jì)算每個(gè)存儲節(jié)點(diǎn)在一致性哈希環(huán)上的權(quán)重系數(shù),具體計(jì)算為
H = [i/ V = K 2,..., N。
/ .
/ i=l有了各個(gè)存儲節(jié)點(diǎn)的權(quán)重系數(shù)后,系統(tǒng)采用根據(jù)一致性哈希函數(shù)分別計(jì)算存儲節(jié)點(diǎn)負(fù)責(zé)的ID值,將存儲節(jié)點(diǎn)的ID值映射到圓環(huán)形的地址空間上((Γ22°),相應(yīng)的空間范圍根據(jù)權(quán)重系數(shù)進(jìn)行劃分,則每個(gè)存儲節(jié)點(diǎn)負(fù)責(zé)的空間范圍Ri=WiXZ2tl, i = 1,2,...,N,這樣可得到云存儲系統(tǒng)的每個(gè)存儲節(jié)點(diǎn)負(fù)責(zé)的空間范圍表,即數(shù)據(jù)布局表[OJiUAVIJii+/從.…吃人'+ Ι’ /U...,[乞人' + Ι’ κ]
Z-二 If=]f 二I!■二 I然后客戶端根據(jù)每個(gè)業(yè)務(wù)的I/O特征,查詢布局表,將數(shù)據(jù)的哈希值映射到同一個(gè)圓環(huán)形的地址空間上,并沿著圓環(huán)地址空間順時(shí)針尋找存儲節(jié)點(diǎn)ID值,尋找到的首個(gè)節(jié)點(diǎn)確定為該數(shù)據(jù)對象的存放節(jié)點(diǎn)。這種結(jié)合存儲節(jié)點(diǎn)的性能差異和一致性哈希思想的數(shù)據(jù)布局策略,可以充分發(fā)揮各存儲節(jié)點(diǎn)的性能,達(dá)到真正的負(fù)載均衡,又可以保證系統(tǒng)的擴(kuò)容時(shí)的自適應(yīng)調(diào)整,數(shù)據(jù)遷移的數(shù)據(jù)量只有增加或減少節(jié)點(diǎn)上的數(shù)據(jù)。同時(shí)每種業(yè)務(wù)進(jìn)行數(shù)據(jù)操作時(shí)只與對應(yīng)的存儲節(jié)點(diǎn)進(jìn)行通信,保證各業(yè)務(wù)之間相互獨(dú)立,穩(wěn)定運(yùn)行。圖2描述了在面向多業(yè)務(wù)的云存儲數(shù)據(jù)的訪問流程,具體分為以下幾個(gè)步驟步驟一云存儲客戶端上某個(gè)業(yè)務(wù)發(fā)送某數(shù)據(jù)操作請求;步驟二 根據(jù)業(yè)務(wù)類型進(jìn)行I/O特征分析和歸類;步驟三確定I/O特征后,調(diào)用相應(yīng)的文件操作接口,查詢數(shù)據(jù)布局信息,獲取該業(yè)務(wù)數(shù)據(jù)對應(yīng)的存儲節(jié)點(diǎn),客戶端與相應(yīng)的存儲節(jié)點(diǎn)進(jìn)行通信,完成文件操作。應(yīng)用效果華數(shù)云寬帶服務(wù),采用了本發(fā)明的面向多種業(yè)務(wù)的數(shù)據(jù)布局方法,并獲得實(shí)際效果。華數(shù)云寬帶服務(wù)中涉及多種業(yè)務(wù),有BT業(yè)務(wù)、FTP業(yè)務(wù)等。在不使用本方法之前,兩種業(yè)務(wù)之間相互影響,當(dāng)客戶端的I/O有大量寫操作時(shí),極大影響了客戶端的讀操作。本發(fā)明的使用,將各種業(yè)務(wù)的數(shù)據(jù)分布在各自的存儲節(jié)點(diǎn)上,確保各種業(yè)務(wù)之間相互獨(dú)立,極大的改善了用戶體驗(yàn)。以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明保護(hù)范圍內(nèi)。
權(quán)利要求
1.一種面向多業(yè)務(wù)應(yīng)用的云存儲數(shù)據(jù)分布方法,其特征在于,包括如下步驟 11)分析云存儲上運(yùn)行的各種業(yè)務(wù)的I/o特征,并進(jìn)行業(yè)務(wù)歸類; 12)根據(jù)不同的業(yè)務(wù)的I/O特征,建立不同的應(yīng)用API, 所述應(yīng)用API為基于各種業(yè)務(wù)的I/O特征,提供基于應(yīng)用的文件打開、讀、寫、關(guān)閉接Π ; 13)根據(jù)業(yè)務(wù)歸類結(jié)果,制定查詢數(shù)據(jù)布局表; 14)當(dāng)客戶端發(fā)送數(shù)據(jù)操作請求時(shí),根據(jù)操作請求的業(yè)務(wù)進(jìn)行I/O特征分析并歸類,然后根據(jù)不同的業(yè)務(wù)的I/O特征,調(diào)用不同的應(yīng)用API ; 15)所述操作請求通過對應(yīng)的應(yīng)用API,根據(jù)查詢數(shù)據(jù)布局表從而訪問業(yè)務(wù)數(shù)據(jù)的存儲節(jié)點(diǎn)。
2.根據(jù)權(quán)利要求I所述的一種面向多業(yè)務(wù)應(yīng)用的云存儲數(shù)據(jù)分布方法,其特征在于,所述分析云存儲上運(yùn)行的各種業(yè)務(wù)的I/O特征包括 I/O讀寫分布通過監(jiān)聽模塊,對每種I/O請求進(jìn)行讀寫統(tǒng)計(jì),并記錄相應(yīng)的數(shù)據(jù)塊請求大小、I/O延遲和當(dāng)前等待的I/O請求書信息; I/O請求時(shí)間間隔該特征反應(yīng)了 I/O請求的頻繁程度; 并行I/O任務(wù)數(shù)并行I/O任務(wù)數(shù)反映了物理節(jié)點(diǎn)存儲系統(tǒng)忙閑的程度; 請求I/o塊大小分布客戶端上運(yùn)行的每種業(yè)務(wù)的I/O請求訪問的I/O塊大小分布。
3.根據(jù)權(quán)利要求I所述的一種面向多業(yè)務(wù)應(yīng)用的云存儲數(shù)據(jù)分布方法,其特征在于,收集存儲節(jié)點(diǎn)的信息,該信息包括存儲節(jié)點(diǎn)的存儲水位、CPU、內(nèi)存、網(wǎng)絡(luò)帶寬參數(shù);根據(jù)參數(shù)權(quán)重,得出按性能高低排序的服務(wù)器序列,從而得出每個(gè)存儲節(jié)點(diǎn)負(fù)責(zé)的存儲數(shù)據(jù)的權(quán)重系數(shù),用哈希函數(shù)分別計(jì)算存儲節(jié)點(diǎn)的ID值,將存儲節(jié)點(diǎn)的ID值映射到圓環(huán)形的地址空間上,相應(yīng)的空間范圍根據(jù)權(quán)重系數(shù)進(jìn)行劃分,得到云存儲系統(tǒng)的查詢數(shù)據(jù)布局表。
4.根據(jù)權(quán)利要求3所述的一種面向多業(yè)務(wù)應(yīng)用的云存儲數(shù)據(jù)分布方法,其特征在于,客戶端根據(jù)每個(gè)業(yè)務(wù)的I/O特征,查詢數(shù)據(jù)布局表,將數(shù)據(jù)的哈希值映射到同一個(gè)圓環(huán)形的地址空間上,并沿著圓環(huán)地址空間順時(shí)針尋找存儲節(jié)點(diǎn)ID值,尋找到的首個(gè)節(jié)點(diǎn)確定為該數(shù)據(jù)對象的存放節(jié)點(diǎn)。
全文摘要
本發(fā)明公開了一種面向多業(yè)務(wù)應(yīng)用的云存儲數(shù)據(jù)分布方法,包括如下步驟分析云存儲上運(yùn)行的各種業(yè)務(wù)的I/O特征,并進(jìn)行業(yè)務(wù)歸類;根據(jù)不同的業(yè)務(wù)的I/O特征,建立不同的應(yīng)用API,所述應(yīng)用API為基于各種業(yè)務(wù)的I/O特征,提供基于應(yīng)用的文件打開、讀、寫、關(guān)閉接口;根據(jù)業(yè)務(wù)歸類結(jié)果,制定查詢數(shù)據(jù)布局表;當(dāng)客戶端發(fā)送數(shù)據(jù)操作請求時(shí),根據(jù)操作請求的業(yè)務(wù)進(jìn)行I/O特征分析并歸類,然后根據(jù)不同的業(yè)務(wù)的I/O特征,調(diào)用不同的應(yīng)用API;所述操作請求通過對應(yīng)的應(yīng)用API,根據(jù)查詢數(shù)據(jù)布局表從而訪問業(yè)務(wù)數(shù)據(jù)的存儲節(jié)點(diǎn),針對云存儲系統(tǒng)上各應(yīng)用相互影響的問題,根據(jù)不同應(yīng)用的I/O特點(diǎn),制定不同的數(shù)據(jù)分布策略,確保應(yīng)用穩(wěn)定運(yùn)行,系統(tǒng)性能最大化。
文檔編號H04L29/08GK102857560SQ201210290389
公開日2013年1月2日 申請日期2012年8月15日 優(yōu)先權(quán)日2012年8月15日
發(fā)明者程耀東, 何沛中, 趙志峰, 張衛(wèi), 蔡偉, 邸鵬, 程永紅 申請人:華數(shù)傳媒網(wǎng)絡(luò)有限公司, 北京華創(chuàng)智云科技有限責(zé)任公司