麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

一種基于固態硬盤的彈性高可用緩存方法與流程

文檔序號:11177059閱讀:641來源:國知局
一種基于固態硬盤的彈性高可用緩存方法與流程

本發明涉及一種ssd的緩存方法,尤其是涉及一種基于固態硬盤的彈性高可用緩存方法。



背景技術:

ssd(固態硬盤)是一種相對于傳統磁盤來說,價格昂貴,容量小,但性能優異的存儲介質。目前在企業級的存儲市場上ssd被用來作為高性能存儲系統的組件。但是由于其價格昂貴,存儲系統中無法全部使用ssd來作為存儲介質,所以目前一般使用ssd和磁盤的混合存儲方式。該方式既可提高系統性能,又不至于價格過分昂貴。

混合存儲方式包含多種使用機制,其中最通用的就是緩存機制,使用ssd來作為磁盤的緩存。這樣既可以發揮出ssd的高性能,又能利用磁盤容量大、價格便宜的優勢。

當前基于ssd的緩存主要是以一個ssd和一個磁盤綁定的方式進行使用,該種使用方式會帶來以下缺點:

1.存儲系統中會存在熱點區域,一對一綁定很難發揮出多個ssd的總體性能。

2.每個ssd盤被限定給特定磁盤使用,無法在系統中共享所有緩存資源。

3.在系統維護階段,很難改變緩存的容量,需要放棄原有緩存數據,重新配置緩存,運維需要大量人力物力的投入。

4.在任意一塊ssd損壞的情況下,都會導致緩存數據丟失。



技術實現要素:

本發明的目的就是為了克服上述現有技術存在的缺陷而提供一種基于固態硬盤的彈性高可用緩存方法,可以最大化的發揮系統性能、減少系統運維成本并提高存儲系統可用性。

本發明的目的可以通過以下技術方案來實現:

一種基于固態硬盤的彈性高可用緩存方法,包括:

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

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

3)為每個磁盤創建一對應的邏輯設備,通過該邏輯設備實現ssd與磁盤間的數據分發。

所述步驟1)中,所述dht環通過以下方式獲得:

101)為各ssd分配一唯一的標識id;

102)根據所述標識id,采用分布式哈希算法將各ssd的存儲資源放置于dht環中。

所述步驟2)具體為:

201)為各磁盤分配一唯一的標識id;

202)根據所述標識id,對各磁盤的空間地址進行編碼;

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

所述步驟202)中,采用的編碼方式為64位地址編碼,其中0-47位是磁盤內部地址偏移,48-59位是磁盤的標識iid,60-63位是保留擴展區。

所述步驟3)中,通過邏輯設備實現ssd與磁盤間的數據分發具體為:

邏輯設備截獲發給對應磁盤的數據,根據該磁盤的空間地址在dht環上獲得該數據對應的ssd,實現緩存。

所述根據該磁盤的空間地址在dht環上獲得該數據對應的ssd具體為:

邏輯設備根據ssd中數據塊的大小將截獲的數據切割成若干數據塊,根據各數據塊地址進行一次分布式哈希計算,獲得緩存池中對應的ssd,再通過第二次分布式哈希計算獲得ssd內部的數據區域。

該方法在動態調整緩存池中ssd的個數時,緩存池進行數據重新映射調整,創建一新dht環,將原dht環上的數據遷移至所述新dht環上,不再對原dht環進行資源分配。

進行數據訪問時,首先查詢新dht環是否存在緩存,若是,則進行數據響應,若否,則對原dht環進行查詢。

該方法對臟數據進行多副本配置,將磁盤的同一個編碼地址映射到兩個不同的ssd上,在獲對應的ssd后,按順時針方向以第一個ssd為第一副本,以第二個ssd為第二副本,以此類推,實現多副本緩存。

與現有技術相比,本發明具有以下優點:

(1)本發明根據分布式哈希(dht)算法進行數據分布,建立具有dht環的緩存池,使得緩存在使用過程中能夠把熱點磁盤或者熱點區域的數據分散到不同的ssd上,提高了數據的并行度,從而提高了系統性能。

(2)本發明增加、減少池中ssd盤,無需停止前臺數據訪問,緩存自身進行數據重新映射調整,根據分布式哈希算法使得數據重新均衡分布,能夠在讀、寫數據不間斷的情況下進行緩存池的擴張和收縮。

(3)本發明為緩存池提供臟數據副本機制,既可以提高系統的可用性,又不至于浪費過多的ssd空間。

附圖說明

圖1為本發明的ssd緩存池示意圖;

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

圖3為本發明中磁盤地址編碼示意圖;

圖4為ssd內部數據區域劃分示意圖;

圖5為緩存數據分發示意圖;

圖6為數據遷移示意圖。

具體實施方式

下面結合附圖和具體實施例對本發明進行詳細說明。本實施例以本發明技術方案為前提進行實施,給出了詳細的實施方式和具體的操作過程,但本發明的保護范圍不限于下述的實施例。

本實施例提供一種基于固態硬盤的彈性高可用緩存方法,包括:1)基于分布式哈希建立一具有dht環的緩存池,所述dht環上映射有多個ssd的存儲資源;2)將磁盤地址空間映射于所述緩存池中;3)為每個磁盤創建一對應的邏輯設備,通過該邏輯設備實現ssd與磁盤間的數據分發。

1、緩存池創建

為各ssd分配一唯一的標識id,根據所述標識id,采用分布式哈希算法將各ssd的存儲資源放置于dht環中,創建基于分布式哈希的緩存池,其結構如圖1所示,格式化ssd并加入到池中,加入原理示意圖如圖2所示。

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

2、格式化磁盤并創建與磁盤相關的邏輯設備

為各磁盤分配一唯一的標識id,根據所述標識id,對各磁盤的空間地址進行編碼,將編碼后的空間地址映射到所述dht環上。磁盤的邏輯設備與緩存池中的ssd相關聯。

磁盤存儲空間劃分為元數據區和數據區。元數據區功能同ssd,數據區使用統一的線性空間訪問方式。

磁盤中的數據按照圖3所示,進行地址空間重新編碼,其中0-47位是磁盤內部地址偏移,48-59位是磁盤id,60-63位是保留擴展區。

3、數據分發

數據首先發送到邏輯設備上,然后根據sippet的大小,數據被切割成若干對齊的數據塊,再把這些數據塊的地址按照如圖3所示方法進行編碼,用該編碼通過dht算法,計算出ssd池中與其對應的ssd盤,再通過第二次dht算法在ssd內部計算出與其對應的extent。然后通過extent上的分配器查詢該地址是否在緩存中,如圖5所示。如果命中,則在ssd上進行數據響應;如果沒命中,則需要分配器從extent中分配相應的sippet資源,然后根據寫回或者寫穿策略進行數據響應。

如果配置臟數據多副本機制,并且數據操作為寫入操作的時候,則在第一次dht計算ssd時,計算出額外的ssd副本。讀取操作,只計算第一副本進行操作。

4、數據遷移

如圖6所示,在需要增加或者減少池中ssd的時候,無需停止前臺數據訪問,緩存自身進行數據重新映射調整,根據分布式哈希算法使得數據重新均衡分布。可以創建一個新的dht環(dht2,原dht環為dht1),數據訪問的時候,需要先查詢dht2,如果沒有命中,還需要查詢dht1,如果都沒有命中,則認為緩存沒有命中,如果任何一個命中,則認為命中。

在dht1中不再進行資源分配,只進行緩存查詢。如果遷移過程中數據訪問沒有命中,則在dht2中分配緩存資源。

5、數據恢復

該方法可對臟數據進行多副本配置,將磁盤的同一個編碼地址映射到兩個不同的ssd上,在獲對應的ssd后,按順時針方向以第一個ssd為第一副本,以第二個ssd為第二副本,以此類推,實現多副本緩存。

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

以上詳細描述了本發明的較佳具體實施例。應當理解,本領域的普通技術人員無需創造性勞動就可以根據本發明的構思作出諸多修改和變化。因此,凡本技術領域中技術人員依本發明的構思在現有技術的基礎上通過邏輯分析、推理或者有限的實驗可以得到的技術方案,皆應在由權利要求書所確定的保護范圍內。

當前第1頁1 2 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 纳雍县| 河源市| 稷山县| 怀远县| 屏南县| 紫阳县| 静乐县| 武鸣县| 临澧县| 襄汾县| 信阳市| 航空| 惠来县| 凤翔县| 滁州市| 阿拉善右旗| 犍为县| 繁峙县| 牙克石市| 永兴县| 久治县| 梅河口市| 象州县| 富平县| 阳高县| 绵阳市| 彭州市| 开化县| 黑水县| 奎屯市| 望奎县| 东明县| 始兴县| 五华县| 新余市| 阳高县| 两当县| 阿克| 五寨县| 马龙县| 福泉市|