虛擬存儲(chǔ)高速傳輸方法
【技術(shù)領(lǐng)域】
[0001 ] 本發(fā)明涉及GlusterFS、Inf iniband、Python等技術(shù)領(lǐng)域,具體的說(shuō),是虛擬存儲(chǔ)高速傳輸方法。
【背景技術(shù)】
[0002]目前面向虛擬化的分布式存儲(chǔ)技術(shù)主要有ceph\GlusterFS\swift等,但是每種存儲(chǔ)解決方案有差異,ceph的傳輸解決方法中可以實(shí)現(xiàn)冷熱數(shù)據(jù)分離,實(shí)時(shí)交互數(shù)據(jù)都是從緩存中獲取;而GlusterFS雖然有緩存機(jī)制,但是不是多級(jí)緩存機(jī)制,對(duì)存儲(chǔ)的傳輸性能提升不明顯。
[0003]但現(xiàn)有的技術(shù)存在如下缺點(diǎn):
虛擬存儲(chǔ)(GlusterFS)是在Iinux下實(shí)現(xiàn)的存儲(chǔ)集群構(gòu)建,在現(xiàn)有的解決方法中采用單一的緩存機(jī)制,但對(duì)性能提升有限。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的在于提供虛擬存儲(chǔ)高速傳輸方法,解決現(xiàn)有技術(shù)采用單一的緩存機(jī)制時(shí),對(duì)性能提升有限的弊端,通過(guò)更新現(xiàn)有的數(shù)據(jù)傳輸緩存機(jī)制,采用多緩存機(jī)制的方式進(jìn)行數(shù)據(jù)高速傳輸,能夠在很大程度上提高傳輸速度。
[0005]本發(fā)明通過(guò)下述技術(shù)方案實(shí)現(xiàn):虛擬存儲(chǔ)高速傳輸方法,通過(guò)構(gòu)建存儲(chǔ)集群,利用多級(jí)緩存機(jī)制實(shí)現(xiàn)數(shù)據(jù)的高速傳輸,包括以下步驟:
1)通過(guò)客戶(hù)端尋址,獲取存儲(chǔ)集群內(nèi)數(shù)據(jù)的真實(shí)位置所在存儲(chǔ)主機(jī);
2)經(jīng)步驟I)后,客戶(hù)端從數(shù)據(jù)的真實(shí)位置所在存儲(chǔ)主機(jī)的緩存中讀/寫(xiě)數(shù)據(jù),實(shí)現(xiàn)數(shù)據(jù)交互。
[0006]進(jìn)一步的為更好的實(shí)現(xiàn)本發(fā)明,采用多級(jí)cache機(jī)制提升存儲(chǔ)1性能,特別采用下述設(shè)置方式:在實(shí)現(xiàn)數(shù)據(jù)交互過(guò)程中對(duì)寫(xiě)的數(shù)據(jù)先寫(xiě)入更快的硬盤(pán)中,然后將更快的硬盤(pán)與普通磁盤(pán)同步。
[0007]進(jìn)一步的為更好的實(shí)現(xiàn)本發(fā)明,客戶(hù)端能夠通過(guò)分布式彈性哈希算法查找分配的存儲(chǔ),特別采用下述設(shè)置方式:所述步驟I)包括以下步驟:
1-1)客戶(hù)端將卷名信息發(fā)送給所述存儲(chǔ)集群中任意的一臺(tái)存儲(chǔ)主機(jī);
1-2)所述存儲(chǔ)主機(jī)接收卷名信息后,解析該卷名信息,從中得到該存儲(chǔ)主機(jī)的存儲(chǔ)卷的分布信息,然后將所述存儲(chǔ)卷的分布信息返回給客戶(hù)端;
1-3)客戶(hù)端獲得所述存儲(chǔ)卷的分布信息后,所述數(shù)據(jù)的真實(shí)位置所在存儲(chǔ)主機(jī)即被定位。
[0008]進(jìn)一步的為更好的實(shí)現(xiàn)本發(fā)明,能夠利用寫(xiě)cache機(jī)制實(shí)現(xiàn)數(shù)據(jù)的寫(xiě)入,從而達(dá)到提高性能的目的,特別采用下述設(shè)置方式:所述步驟2)包括以下步驟:
2-1)客戶(hù)端從數(shù)據(jù)的真實(shí)位置所在存儲(chǔ)主機(jī)的緩存中寫(xiě)數(shù)據(jù),包括以下具體步驟: 2-1-1)客戶(hù)端收到返回的所述數(shù)據(jù)的真實(shí)位置所在存儲(chǔ)主機(jī)的位置信息后,向數(shù)據(jù)的真實(shí)位置所在存儲(chǔ)主機(jī)發(fā)送寫(xiě)1操作;
2-1-2)所述數(shù)據(jù)的真實(shí)位置所在存儲(chǔ)主機(jī)內(nèi)的虛擬存儲(chǔ)引擎收到客戶(hù)端發(fā)送的寫(xiě)1操作時(shí),會(huì)將寫(xiě)1操作緩存在更快的硬盤(pán)的cache內(nèi),完成本節(jié)點(diǎn)寫(xiě)1操作。
[0009]進(jìn)一步的為更好的實(shí)現(xiàn)本發(fā)明,特別采用下述設(shè)置方式:所述數(shù)據(jù)的真實(shí)位置所在存儲(chǔ)主機(jī)內(nèi)的虛擬存儲(chǔ)引擎還會(huì)周期將緩存在更快的硬盤(pán)的cache中的寫(xiě)1操作的數(shù)據(jù)批量寫(xiě)入到普通硬盤(pán)。
[0010]進(jìn)一步的為更好的實(shí)現(xiàn)本發(fā)明,能夠利用讀cache機(jī)制實(shí)現(xiàn)數(shù)據(jù)的讀出,從而達(dá)到提高性能的目的,特別采用下述設(shè)置方式:所述步驟2)還包括以下步驟:
2-2)客戶(hù)端從數(shù)據(jù)的真實(shí)位置所在存儲(chǔ)主機(jī)的緩存中讀數(shù)據(jù),包括以下具體步驟: 2-2-1)所述數(shù)據(jù)的真實(shí)位置所在存儲(chǔ)主機(jī)的虛擬存儲(chǔ)引擎接收客戶(hù)端發(fā)送的讀1操作;
2-2-2)所述數(shù)據(jù)的真實(shí)位置所在存儲(chǔ)主機(jī)的虛擬存儲(chǔ)引擎從數(shù)據(jù)的真實(shí)位置所在存儲(chǔ)主機(jī)的內(nèi)存“讀cache”中查找是否存在所需1數(shù)據(jù),如果存在,則直接返回,同時(shí)調(diào)整所需1數(shù)據(jù)到數(shù)據(jù)的真實(shí)位置所在存儲(chǔ)主機(jī)的內(nèi)存“讀cache”LRU隊(duì)首,否則執(zhí)行步驟2-2-3);
2-2-3)從數(shù)據(jù)的真實(shí)位置所在存儲(chǔ)主機(jī)內(nèi)更快的硬盤(pán)的“讀cache”中查找是否存在所需1數(shù)據(jù),如果存在,則直接返回,同時(shí)增加該所需1數(shù)據(jù)的熱點(diǎn)訪(fǎng)問(wèn)因子,否則執(zhí)行步驟2-2-4);
2-2-4)從數(shù)據(jù)的真實(shí)位置所在存儲(chǔ)主機(jī)內(nèi)更快的硬盤(pán)的“寫(xiě)cache”中查找是否存在所需1數(shù)據(jù),如果存在,則直接返回,同時(shí)增加所需1數(shù)據(jù)的熱點(diǎn)訪(fǎng)問(wèn)因子;如果所需1數(shù)據(jù)的熱點(diǎn)訪(fǎng)問(wèn)因子達(dá)到閾值,則當(dāng)前建立的所需1數(shù)據(jù)被緩存在數(shù)據(jù)的真實(shí)位置所在存儲(chǔ)主機(jī)內(nèi)更快的硬盤(pán)的“讀cache”中;如果不存在,執(zhí)行步驟2-2-5);
2-2-5)從數(shù)據(jù)的真實(shí)位置所在存儲(chǔ)主機(jī)內(nèi)普通硬盤(pán)中查找到所需1數(shù)據(jù)并返回,同時(shí)增加該所需1數(shù)據(jù)的熱點(diǎn)訪(fǎng)問(wèn)因子,如果熱點(diǎn)訪(fǎng)問(wèn)因子達(dá)到閾值,所需1數(shù)據(jù)會(huì)被緩存在數(shù)據(jù)的真實(shí)位置所在存儲(chǔ)主機(jī)內(nèi)更快的硬盤(pán)的“讀cache”中。
[0011]進(jìn)一步的為更好的實(shí)現(xiàn)本發(fā)明,能夠進(jìn)一步的提高數(shù)據(jù)的存取速度,特別采用下述設(shè)置方式:所述更快的硬盤(pán)采用SSD。
[0012]進(jìn)一步的為更好的實(shí)現(xiàn)本發(fā)明,特別采用下述設(shè)置方式:所述客戶(hù)端與存儲(chǔ)集群之間的網(wǎng)絡(luò)傳輸采用RDMA協(xié)議的inf inband實(shí)現(xiàn)。
[0013]本發(fā)明與現(xiàn)有技術(shù)相比,具有以下優(yōu)點(diǎn)及有益效果:
(I)本發(fā)明解決現(xiàn)有技術(shù)采用單一的緩存機(jī)制時(shí),對(duì)性能提升有限的弊端,通過(guò)更新現(xiàn)有的數(shù)據(jù)傳輸緩存機(jī)制,采用多緩存機(jī)制的方式進(jìn)行數(shù)據(jù)高速傳輸,能夠在很大程度上提高傳輸速度。
[0014](2)本發(fā)明能夠?qū)崿F(xiàn)虛擬存儲(chǔ)的快速傳輸。
[0015](3)本發(fā)明具有傳輸速度快,傳輸數(shù)據(jù)無(wú)損耗,數(shù)據(jù)交換無(wú)瓶頸,數(shù)據(jù)傳輸可靠性高等特點(diǎn)。
【附圖說(shuō)明】
[0016]圖1為本發(fā)明所述客戶(hù)端從數(shù)據(jù)的真實(shí)位置所在存儲(chǔ)主機(jī)的緩存中寫(xiě)數(shù)據(jù)的示意圖。
[0017]圖2為本發(fā)明所述客戶(hù)端從數(shù)據(jù)的真實(shí)位置所在存儲(chǔ)主機(jī)的緩存中讀數(shù)據(jù)的示意圖。
【具體實(shí)施方式】
[0018]下面結(jié)合實(shí)施例對(duì)本發(fā)明作進(jìn)一步地詳細(xì)說(shuō)明,但本發(fā)明的實(shí)施方式不限于此。
[0019]虛擬存儲(chǔ)引擎:基于GlusterFS修改,增加數(shù)據(jù)傳輸多級(jí)緩存機(jī)制。
[0020]存儲(chǔ)池:對(duì)存儲(chǔ)集群的描述,對(duì)存儲(chǔ)規(guī)范的表示,方便展示和系統(tǒng)處理。
[0021 ] RDMA: (Remote Direct Memory Access)技術(shù)全稱(chēng)遠(yuǎn)程直接數(shù)據(jù)存取,為了解決網(wǎng)絡(luò)傳輸中服務(wù)器端數(shù)據(jù)處理的延遲而產(chǎn)生的。RDMA通過(guò)網(wǎng)絡(luò)把資料直接傳入計(jì)算機(jī)的存儲(chǔ)區(qū),將數(shù)據(jù)從一個(gè)系統(tǒng)快速移動(dòng)到遠(yuǎn)程系統(tǒng)的存儲(chǔ)器中,而不對(duì)操作系統(tǒng)造成任何影響,這樣就不需要過(guò)多占用計(jì)算機(jī)的處理能力。它消除了外部存儲(chǔ)器復(fù)制和文本交換操作,因而能解放內(nèi)存帶寬和CPU周期用于改進(jìn)應(yīng)用系統(tǒng)性能。
[0022]RPC:遠(yuǎn)程過(guò)程調(diào)用協(xié)議,它是一種通過(guò)網(wǎng)絡(luò)從遠(yuǎn)程計(jì)算機(jī)程序上請(qǐng)求服務(wù),而不需要了解底層網(wǎng)絡(luò)技術(shù)的協(xié)議。RPC協(xié)議假定某些傳輸協(xié)議的存在,如TCP或UDP,為通信程序之間攜帶信息數(shù)據(jù)。
[0023]彈性哈希算法:彈性哈希算法將任意長(zhǎng)度的二進(jìn)制值映射為較短的固定長(zhǎng)度的二進(jìn)制值,這個(gè)小的二進(jìn)制值稱(chēng)為哈希值。哈希值是一段數(shù)據(jù)唯一且極其緊湊的數(shù)值表示形式。如果散列一段明文而且只更改該段落的一個(gè)字母,隨后的哈希都將產(chǎn)生不同的值。采用彈性哈希算法定位文件位置,無(wú)需元數(shù)據(jù)索引,消除單點(diǎn)故障,磁盤(pán)I/O瓶頸,增加線(xiàn)性可擴(kuò)展。
[0024]LRU:內(nèi)存管理的一種頁(yè)面置換算法,對(duì)于在內(nèi)存中但又不用的數(shù)據(jù)塊(內(nèi)存塊)叫做LRU,操作系統(tǒng)會(huì)根據(jù)哪些數(shù)據(jù)屬于LRU而將其移出內(nèi)存而騰出空間來(lái)加載另外的數(shù)據(jù)。
[0025]客戶(hù)端:用戶(hù)端的一種簡(jiǎn)稱(chēng),可以代表用戶(hù),也可以代表某臺(tái)服務(wù)或者某個(gè)系統(tǒng)。
[0026]Cache,緩存。
[0027]虛擬存儲(chǔ)(GlusterFS)是在Iinux下實(shí)現(xiàn)的存儲(chǔ)集群構(gòu)建。
[0028]InfiniBand架構(gòu)是一種支持多并發(fā)鏈接的“轉(zhuǎn)換線(xiàn)纜”技術(shù),在這種技術(shù)中,每種鏈接都可以達(dá)到2.5 Gbps的運(yùn)行速度。這種架構(gòu)在一個(gè)鏈接的時(shí)候速度是500 MB/秒,四個(gè)鏈接的時(shí)候速度是2 GB/秒,12個(gè)鏈接的時(shí)候速度可以達(dá)到6 GB /秒。
[0029]InfiniBand技術(shù)不是用于一般網(wǎng)絡(luò)連接的,它的主要設(shè)計(jì)目的是針對(duì)服務(wù)器端的連接問(wèn)題的。因此,Inf iniBand技術(shù)將會(huì)被應(yīng)用于服務(wù)器與服務(wù)器(比如復(fù)制,分布式工作等),服務(wù)器和存儲(chǔ)設(shè)備(比如SAN和直接存儲(chǔ)附件)以及服務(wù)器和網(wǎng)絡(luò)之間(比如LAN,WANs和the Internet)的通信。
[0030]與目前計(jì)算機(jī)的I/O子系統(tǒng)不同,InfiniBand是一個(gè)