最新的毛片基地免费,国产国语一级毛片,免费国产成人高清在线电影,中天堂国产日韩欧美,中国国产aa一级毛片,国产va欧美va在线观看,成人不卡在线

一種基于固態(tài)硬盤(pán)的彈性高可用緩存方法與流程

文檔序號(hào):11177059閱讀:650來(lái)源:國(guó)知局
一種基于固態(tài)硬盤(pán)的彈性高可用緩存方法與流程

本發(fā)明涉及一種ssd的緩存方法,尤其是涉及一種基于固態(tài)硬盤(pán)的彈性高可用緩存方法。



背景技術(shù):

ssd(固態(tài)硬盤(pán))是一種相對(duì)于傳統(tǒng)磁盤(pán)來(lái)說(shuō),價(jià)格昂貴,容量小,但性能優(yōu)異的存儲(chǔ)介質(zhì)。目前在企業(yè)級(jí)的存儲(chǔ)市場(chǎng)上ssd被用來(lái)作為高性能存儲(chǔ)系統(tǒng)的組件。但是由于其價(jià)格昂貴,存儲(chǔ)系統(tǒng)中無(wú)法全部使用ssd來(lái)作為存儲(chǔ)介質(zhì),所以目前一般使用ssd和磁盤(pán)的混合存儲(chǔ)方式。該方式既可提高系統(tǒng)性能,又不至于價(jià)格過(guò)分昂貴。

混合存儲(chǔ)方式包含多種使用機(jī)制,其中最通用的就是緩存機(jī)制,使用ssd來(lái)作為磁盤(pán)的緩存。這樣既可以發(fā)揮出ssd的高性能,又能利用磁盤(pán)容量大、價(jià)格便宜的優(yōu)勢(shì)。

當(dāng)前基于ssd的緩存主要是以一個(gè)ssd和一個(gè)磁盤(pán)綁定的方式進(jìn)行使用,該種使用方式會(huì)帶來(lái)以下缺點(diǎn):

1.存儲(chǔ)系統(tǒng)中會(huì)存在熱點(diǎn)區(qū)域,一對(duì)一綁定很難發(fā)揮出多個(gè)ssd的總體性能。

2.每個(gè)ssd盤(pán)被限定給特定磁盤(pán)使用,無(wú)法在系統(tǒng)中共享所有緩存資源。

3.在系統(tǒng)維護(hù)階段,很難改變緩存的容量,需要放棄原有緩存數(shù)據(jù),重新配置緩存,運(yùn)維需要大量人力物力的投入。

4.在任意一塊ssd損壞的情況下,都會(huì)導(dǎo)致緩存數(shù)據(jù)丟失。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明的目的就是為了克服上述現(xiàn)有技術(shù)存在的缺陷而提供一種基于固態(tài)硬盤(pán)的彈性高可用緩存方法,可以最大化的發(fā)揮系統(tǒng)性能、減少系統(tǒng)運(yùn)維成本并提高存儲(chǔ)系統(tǒng)可用性。

本發(fā)明的目的可以通過(guò)以下技術(shù)方案來(lái)實(shí)現(xiàn):

一種基于固態(tài)硬盤(pán)的彈性高可用緩存方法,包括:

1)基于分布式哈希建立一具有dht環(huán)的緩存池,所述dht環(huán)上映射有多個(gè)ssd的存儲(chǔ)資源;

2)將磁盤(pán)地址空間映射于所述緩存池中;

3)為每個(gè)磁盤(pán)創(chuàng)建一對(duì)應(yīng)的邏輯設(shè)備,通過(guò)該邏輯設(shè)備實(shí)現(xiàn)ssd與磁盤(pán)間的數(shù)據(jù)分發(fā)。

所述步驟1)中,所述dht環(huán)通過(guò)以下方式獲得:

101)為各ssd分配一唯一的標(biāo)識(shí)id;

102)根據(jù)所述標(biāo)識(shí)id,采用分布式哈希算法將各ssd的存儲(chǔ)資源放置于dht環(huán)中。

所述步驟2)具體為:

201)為各磁盤(pán)分配一唯一的標(biāo)識(shí)id;

202)根據(jù)所述標(biāo)識(shí)id,對(duì)各磁盤(pán)的空間地址進(jìn)行編碼;

203)將編碼后的空間地址映射到所述dht環(huán)上。

所述步驟202)中,采用的編碼方式為64位地址編碼,其中0-47位是磁盤(pán)內(nèi)部地址偏移,48-59位是磁盤(pán)的標(biāo)識(shí)iid,60-63位是保留擴(kuò)展區(qū)。

所述步驟3)中,通過(guò)邏輯設(shè)備實(shí)現(xiàn)ssd與磁盤(pán)間的數(shù)據(jù)分發(fā)具體為:

邏輯設(shè)備截獲發(fā)給對(duì)應(yīng)磁盤(pán)的數(shù)據(jù),根據(jù)該磁盤(pán)的空間地址在dht環(huán)上獲得該數(shù)據(jù)對(duì)應(yīng)的ssd,實(shí)現(xiàn)緩存。

所述根據(jù)該磁盤(pán)的空間地址在dht環(huán)上獲得該數(shù)據(jù)對(duì)應(yīng)的ssd具體為:

邏輯設(shè)備根據(jù)ssd中數(shù)據(jù)塊的大小將截獲的數(shù)據(jù)切割成若干數(shù)據(jù)塊,根據(jù)各數(shù)據(jù)塊地址進(jìn)行一次分布式哈希計(jì)算,獲得緩存池中對(duì)應(yīng)的ssd,再通過(guò)第二次分布式哈希計(jì)算獲得ssd內(nèi)部的數(shù)據(jù)區(qū)域。

該方法在動(dòng)態(tài)調(diào)整緩存池中ssd的個(gè)數(shù)時(shí),緩存池進(jìn)行數(shù)據(jù)重新映射調(diào)整,創(chuàng)建一新dht環(huán),將原dht環(huán)上的數(shù)據(jù)遷移至所述新dht環(huán)上,不再對(duì)原dht環(huán)進(jìn)行資源分配。

進(jìn)行數(shù)據(jù)訪問(wèn)時(shí),首先查詢(xún)新dht環(huán)是否存在緩存,若是,則進(jìn)行數(shù)據(jù)響應(yīng),若否,則對(duì)原dht環(huán)進(jìn)行查詢(xún)。

該方法對(duì)臟數(shù)據(jù)進(jìn)行多副本配置,將磁盤(pán)的同一個(gè)編碼地址映射到兩個(gè)不同的ssd上,在獲對(duì)應(yīng)的ssd后,按順時(shí)針?lè)较蛞缘谝粋€(gè)ssd為第一副本,以第二個(gè)ssd為第二副本,以此類(lèi)推,實(shí)現(xiàn)多副本緩存。

與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn):

(1)本發(fā)明根據(jù)分布式哈希(dht)算法進(jìn)行數(shù)據(jù)分布,建立具有dht環(huán)的緩存池,使得緩存在使用過(guò)程中能夠把熱點(diǎn)磁盤(pán)或者熱點(diǎn)區(qū)域的數(shù)據(jù)分散到不同的ssd上,提高了數(shù)據(jù)的并行度,從而提高了系統(tǒng)性能。

(2)本發(fā)明增加、減少池中ssd盤(pán),無(wú)需停止前臺(tái)數(shù)據(jù)訪問(wèn),緩存自身進(jìn)行數(shù)據(jù)重新映射調(diào)整,根據(jù)分布式哈希算法使得數(shù)據(jù)重新均衡分布,能夠在讀、寫(xiě)數(shù)據(jù)不間斷的情況下進(jìn)行緩存池的擴(kuò)張和收縮。

(3)本發(fā)明為緩存池提供臟數(shù)據(jù)副本機(jī)制,既可以提高系統(tǒng)的可用性,又不至于浪費(fèi)過(guò)多的ssd空間。

附圖說(shuō)明

圖1為本發(fā)明的ssd緩存池示意圖;

圖2為本發(fā)明的分布式哈希算法原理示意圖;

圖3為本發(fā)明中磁盤(pán)地址編碼示意圖;

圖4為ssd內(nèi)部數(shù)據(jù)區(qū)域劃分示意圖;

圖5為緩存數(shù)據(jù)分發(fā)示意圖;

圖6為數(shù)據(jù)遷移示意圖。

具體實(shí)施方式

下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)說(shuō)明。本實(shí)施例以本發(fā)明技術(shù)方案為前提進(jìn)行實(shí)施,給出了詳細(xì)的實(shí)施方式和具體的操作過(guò)程,但本發(fā)明的保護(hù)范圍不限于下述的實(shí)施例。

本實(shí)施例提供一種基于固態(tài)硬盤(pán)的彈性高可用緩存方法,包括:1)基于分布式哈希建立一具有dht環(huán)的緩存池,所述dht環(huán)上映射有多個(gè)ssd的存儲(chǔ)資源;2)將磁盤(pán)地址空間映射于所述緩存池中;3)為每個(gè)磁盤(pán)創(chuàng)建一對(duì)應(yīng)的邏輯設(shè)備,通過(guò)該邏輯設(shè)備實(shí)現(xiàn)ssd與磁盤(pán)間的數(shù)據(jù)分發(fā)。

1、緩存池創(chuàng)建

為各ssd分配一唯一的標(biāo)識(shí)id,根據(jù)所述標(biāo)識(shí)id,采用分布式哈希算法將各ssd的存儲(chǔ)資源放置于dht環(huán)中,創(chuàng)建基于分布式哈希的緩存池,其結(jié)構(gòu)如圖1所示,格式化ssd并加入到池中,加入原理示意圖如圖2所示。

ssd存儲(chǔ)空間被劃分成元數(shù)據(jù)區(qū)和數(shù)據(jù)區(qū),如圖4所示。元數(shù)據(jù)區(qū)用于存儲(chǔ)該ssd相關(guān)信息和數(shù)據(jù)映射信息。數(shù)據(jù)區(qū)劃分為同等大小的數(shù)據(jù)區(qū)域(extent),這些extent作為dht算法的基本單元,也是數(shù)據(jù)遷移的基本單元。在extent中把存儲(chǔ)資源劃分為同等大小數(shù)據(jù)塊(sippet),并創(chuàng)建資源分配器,用緩存資源的申請(qǐng)和訪問(wèn)。該資源分配器可以為傳統(tǒng)jhash或者b-tree算法。

2、格式化磁盤(pán)并創(chuàng)建與磁盤(pán)相關(guān)的邏輯設(shè)備

為各磁盤(pán)分配一唯一的標(biāo)識(shí)id,根據(jù)所述標(biāo)識(shí)id,對(duì)各磁盤(pán)的空間地址進(jìn)行編碼,將編碼后的空間地址映射到所述dht環(huán)上。磁盤(pán)的邏輯設(shè)備與緩存池中的ssd相關(guān)聯(lián)。

磁盤(pán)存儲(chǔ)空間劃分為元數(shù)據(jù)區(qū)和數(shù)據(jù)區(qū)。元數(shù)據(jù)區(qū)功能同ssd,數(shù)據(jù)區(qū)使用統(tǒng)一的線性空間訪問(wèn)方式。

磁盤(pán)中的數(shù)據(jù)按照?qǐng)D3所示,進(jìn)行地址空間重新編碼,其中0-47位是磁盤(pán)內(nèi)部地址偏移,48-59位是磁盤(pán)id,60-63位是保留擴(kuò)展區(qū)。

3、數(shù)據(jù)分發(fā)

數(shù)據(jù)首先發(fā)送到邏輯設(shè)備上,然后根據(jù)sippet的大小,數(shù)據(jù)被切割成若干對(duì)齊的數(shù)據(jù)塊,再把這些數(shù)據(jù)塊的地址按照如圖3所示方法進(jìn)行編碼,用該編碼通過(guò)dht算法,計(jì)算出ssd池中與其對(duì)應(yīng)的ssd盤(pán),再通過(guò)第二次dht算法在ssd內(nèi)部計(jì)算出與其對(duì)應(yīng)的extent。然后通過(guò)extent上的分配器查詢(xún)?cè)摰刂肥欠裨诰彺嬷?,如圖5所示。如果命中,則在ssd上進(jìn)行數(shù)據(jù)響應(yīng);如果沒(méi)命中,則需要分配器從extent中分配相應(yīng)的sippet資源,然后根據(jù)寫(xiě)回或者寫(xiě)穿策略進(jìn)行數(shù)據(jù)響應(yīng)。

如果配置臟數(shù)據(jù)多副本機(jī)制,并且數(shù)據(jù)操作為寫(xiě)入操作的時(shí)候,則在第一次dht計(jì)算ssd時(shí),計(jì)算出額外的ssd副本。讀取操作,只計(jì)算第一副本進(jìn)行操作。

4、數(shù)據(jù)遷移

如圖6所示,在需要增加或者減少池中ssd的時(shí)候,無(wú)需停止前臺(tái)數(shù)據(jù)訪問(wèn),緩存自身進(jìn)行數(shù)據(jù)重新映射調(diào)整,根據(jù)分布式哈希算法使得數(shù)據(jù)重新均衡分布??梢詣?chuàng)建一個(gè)新的dht環(huán)(dht2,原dht環(huán)為dht1),數(shù)據(jù)訪問(wèn)的時(shí)候,需要先查詢(xún)dht2,如果沒(méi)有命中,還需要查詢(xún)dht1,如果都沒(méi)有命中,則認(rèn)為緩存沒(méi)有命中,如果任何一個(gè)命中,則認(rèn)為命中。

在dht1中不再進(jìn)行資源分配,只進(jìn)行緩存查詢(xún)。如果遷移過(guò)程中數(shù)據(jù)訪問(wèn)沒(méi)有命中,則在dht2中分配緩存資源。

5、數(shù)據(jù)恢復(fù)

該方法可對(duì)臟數(shù)據(jù)進(jìn)行多副本配置,將磁盤(pán)的同一個(gè)編碼地址映射到兩個(gè)不同的ssd上,在獲對(duì)應(yīng)的ssd后,按順時(shí)針?lè)较蛞缘谝粋€(gè)ssd為第一副本,以第二個(gè)ssd為第二副本,以此類(lèi)推,實(shí)現(xiàn)多副本緩存。

在臟數(shù)據(jù)多副本的配置下,如果一個(gè)ssd丟失,對(duì)于其上存儲(chǔ)的數(shù)據(jù),可以把臟數(shù)據(jù)從另一個(gè)ssd盤(pán)上的數(shù)據(jù)副本上進(jìn)行數(shù)據(jù)恢復(fù),對(duì)于干凈的數(shù)據(jù),則可以直接從磁盤(pán)上進(jìn)行數(shù)據(jù)恢復(fù)。根據(jù)用戶(hù)需要加入新的ssd替換原有ssd,或者直接刪除丟失的ssd,然后進(jìn)行上述數(shù)據(jù)遷移即可恢復(fù)所有數(shù)據(jù)。

以上詳細(xì)描述了本發(fā)明的較佳具體實(shí)施例。應(yīng)當(dāng)理解,本領(lǐng)域的普通技術(shù)人員無(wú)需創(chuàng)造性勞動(dòng)就可以根據(jù)本發(fā)明的構(gòu)思作出諸多修改和變化。因此,凡本技術(shù)領(lǐng)域中技術(shù)人員依本發(fā)明的構(gòu)思在現(xiàn)有技術(shù)的基礎(chǔ)上通過(guò)邏輯分析、推理或者有限的實(shí)驗(yàn)可以得到的技術(shù)方案,皆應(yīng)在由權(quán)利要求書(shū)所確定的保護(hù)范圍內(nèi)。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1