您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關Ceph糾刪碼如何實現的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
糾刪碼Erasure Code是一種編碼技術,它可以將n份原始數據,增加m份數據,并能通過n+m份中的任意n份數據,還原為原始數據。即如果有任意小于等于m份的數據失效,仍然能通過剩下的數據還原出來。 糾刪碼技術在分布式存儲系統中的應用主要有三類,陣列糾刪碼(Array Code: RAID5、RAID6等)、RS(Reed-Solomon)里德-所羅門類糾刪碼和LDPC(LowDensity Parity Check Code)低密度奇偶校驗糾刪碼。 LDPC碼目前主要用于通信、視頻和音頻編碼等領域。
目前主流的分布式存儲包括HDFS、Ceph、Minio等主要使用的是RS(Reed-Solomon)碼。
數據將在主 OSD 進行編碼然后分發到相應的 OSDs 上去。
從相應的OSDs中獲取數據后進行解碼。
如果此時有數據丟失,Ceph會自動從存放校驗碼的OSD中讀取數據進行解碼。
Ceph支持不同的糾刪碼插件:Jerasure,ISA-l 和 LRC,默認為Jerasure
# ceph osd erasure-code-profile get default k=2 m=1 plugin=jerasure technique=reed_sol_van
此處列出的三種糾刪碼插件其實是分成兩種類型
Jerasure和ISA-l屬于糾刪碼代碼庫 LRC是一種糾刪碼編碼,類似于RS碼
Jerasure2.0 使用 C 語言封裝后的指令,這樣代碼更加的友好。另外 Jerasure2.0 不僅僅支持 GF(2^8) 有限域的計算,其還可以進行 GF(2^4) - GF(2^128) 之間的有限域。并且除了 RS 碼,還提供了 Cauchy Reed-Solomon code (CRS 碼)等其他編碼方法的支持。它在工業應用之外,其學術價值也非常高。目前其是使用最為廣泛的編碼庫之一。目前 Jerasure2.0 并不支持 AVX 加速。
Intel ISA-L代表英特爾智能存儲加速庫,使用的匯編代碼,ISA-L是針對存儲應用程序而優化的低級功能的開源集合。它包括針對Intel AVX和AVX2指令集優化的快速塊Reed-Solomon類型糾刪碼,它的性能是業界最佳,主要是因為整體的矩陣運算都放在匯編之中
Reed-Solomon(RS)碼是存儲系統較為常用的一種糾刪碼,它有兩個參數n和m,記為RS(n,m)。n代表原始數據塊個數。m代表校驗塊個數。
簡單來講指定RS(4,1)時,有4個數據塊和1個校檢塊
D1-4任意數據塊損壞,都可以通過P1進行解碼恢復重建,同樣的P1校檢塊損壞也可以通過數據塊編碼計算重建
LRC(Locally Repairable Codes),是一種局部校驗編碼方法,其核心思想為:將校驗塊(parity block)分為全局校驗塊(global parity)、局部校驗塊(local reconstruction parity),故障恢復時分組計算。
對比RS,這里是4個數據塊分成了兩組,
D1+D2=P1
D3+D4=P2
D1+D2+D3+D4=P3
P1、P2是局部校驗塊,P3是全局校驗塊。
優勢在于,當組內數據塊損壞時,由于減少了網絡I/O傳輸的數據量,組內恢復運算的數據量和重建時間基本上能縮短一半。
劣勢是因為校檢塊的增加,磁盤使用率和可靠性都會降低
感謝各位的閱讀!關于“Ceph糾刪碼如何實現”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。