电竞比分网-中国电竞赛事及体育赛事平台

分享

VSAN 6.2新特性——是糾刪碼還是RAID?

 清風(fēng)飛揚1999 2016-02-15

春節(jié)去韓國轉(zhuǎn)了轉(zhuǎn),可惜沒有看到千頌伊。韓國還是蠻發(fā)達(dá)的,街道也很干凈。是否二戰(zhàn)后跟美國走的地區(qū)都比較發(fā)達(dá)呢?好像是的,比如日本、韓國和臺灣。但好像也不全是,比如菲律賓好像就差一些。


今天,我們的公眾號在猴年正式開工。昨天把春節(jié)的存儲新聞都看了一遍,好像沒有發(fā)生特別事情??赡苌晕⒅档靡惶岬木褪荲MWare推出了第四代VSAN,即VSAN 6.2,里面增加了幾個特性,令人印象比較深刻的只有3個。


1、支持在線重刪和壓縮。

重刪和壓縮是整個cluster粒度使能的,只支持全閃存配置。重刪的粒度是定長的4K,而且只在一個disk group里進(jìn)行。重刪在cache層進(jìn)行,寫到容量層才開始壓縮。也就是先重刪后壓縮。VSAN只有在壓縮率大于2X的情況下才進(jìn)行壓縮,否則就不壓縮,這樣速度可以更快。也就是壓縮可以自適應(yīng)。


2、支持基于VM粒度的QoS。

這個功能還是比較有用,可以避免壞鄰居的干擾,限制其IOPS。QoS策略可以通過SPBM進(jìn)行配置。


3、支持糾刪碼,但其實只實現(xiàn)了RAID 5/6。


說是糾刪碼,其實和我們理解的糾刪碼不同,目前VSAN只是實現(xiàn)了RAID 5/6,限制還比較多,首先還是只支持flash,第二是只支持FFT=1或2這兩種情況,如果需要更高級別的容錯,如FTT>=3,還需要采用兩副本的方式。不過,數(shù)據(jù)容錯方式也是基于VM的,也就是說不同VM可以選擇不同的方式,靈活性還是不錯的。


為什么實現(xiàn)的是RAID 5/6,但VMware卻宣傳是糾刪碼?我想可能有以下幾個原因吧:

1)、VSAN的主要競爭對手Nutanix宣傳已經(jīng)支持糾刪碼;

2)、RAID 5/6其實也是糾刪碼的最簡單的形式,說是糾刪碼也無可非議;

3)、估計以后也會實現(xiàn)真正的N(數(shù)據(jù)) M(校驗)的方式,。當(dāng)M>2,就是我們常說的糾刪碼;

4)、RAID一般不跨節(jié)點,糾刪碼一般是跨節(jié)點的,用糾刪碼一詞來強(qiáng)調(diào)VSAN支持節(jié)點容錯,可靠性更高。


糾刪碼其實還是蠻復(fù)雜的,有網(wǎng)友建議我寫篇文章介紹介紹,但西瓜哥數(shù)學(xué)不太好,只能按照我的理解來寫幾句。


糾刪碼其實已經(jīng)有50多年的歷史,比RAID技術(shù)要早得多。糾刪碼這種編碼方式來自通訊領(lǐng)域,最近在存儲領(lǐng)域得到大量采用。


我們知道RAID 5的算法是XOR,對吧,計算機(jī)算起來非常簡單。但RAID 5是N 1的形式,只能支持恢復(fù)一份數(shù)據(jù)。后來,發(fā)展到N 2的方式,也就是RAID 6,支持恢復(fù)兩份數(shù)據(jù)。RAID 6的第一份校驗也是采用XOR算法,但第二份數(shù)據(jù)引進(jìn)了一個復(fù)雜的GF(Galois Field)變換,GF西瓜哥一般解釋為女朋友(Girl Friend)??梢岳斫饷糠輸?shù)據(jù)有且只有一個唯一的女朋友,原始數(shù)據(jù)XOR產(chǎn)生第一個校驗塊P,它們對應(yīng)的女朋友再XOR產(chǎn)生第二個校驗塊Q,由于有兩份校驗數(shù)據(jù),因此支持恢復(fù)兩份數(shù)據(jù)。由于數(shù)據(jù)的女朋友是GF變換算出來的,因此,需要比較復(fù)雜的計算。但由于RAID 5和RAID 6比較常用,現(xiàn)在在INTEL CPU的指令集里面有指令集支持了,因此速度還是比較快的,如中國常見的EMC和華為的陣列都直接采用CPU實現(xiàn)RAID 6,而沒有采用ASIC。


N M,當(dāng)M>2就算法就比較復(fù)雜了。不過,不管采用哪種方式,都叫糾刪碼。


開源的產(chǎn)品一般采用RS(Reed-Solomon)編碼,但這種算法當(dāng)N和M值比較大時計算消耗很大,在有些場合就不適合。比如華為在自研的SSD盤的糾錯方面,就采用LDPC(Low-Density Parity-Check)編碼,減低對SSD控制器的計算能力要求,也就減低SSD盤的功耗。


現(xiàn)在針對糾刪碼的編碼方式有很多的研究和實踐,一般來說,研究重點有三個方向:

1)、減少恢復(fù)時磁盤的I/O。比如采用一種叫Array Code的編碼方式,可以大大減少需要從殘存硬盤讀取數(shù)據(jù)的數(shù)量。

2)、 減少恢復(fù)時對網(wǎng)絡(luò)的影響。比如微軟的Azure藍(lán)云的Windows Azure Storage (WAS),其糾刪碼編碼采用Local Reconstruction Codes (LRC),主要原理是把校驗數(shù)據(jù)分成兩部分,一部分是本地校驗碼,一部分是全局校驗碼。測試數(shù)據(jù)表明,大部分情況下,LRC編碼對網(wǎng)絡(luò)I/O和帶寬的占用都要好于RS編碼。這種情況對跨WAN網(wǎng)的公有云非常有價值。開源的Hadoop有一個類似LRC的實現(xiàn),IBM貢獻(xiàn)的Partial-MDS編碼。


3)減少計算消耗。LDPC相比RS,對計算的要求更低。還有一種叫Flat XOR的編碼不需要做復(fù)雜的GF變換,也可以減低對CPU的計算要求。


總之,糾刪碼是一個籠統(tǒng)的概念,只要支持N M形式的編碼,都可以叫糾刪碼。RAID 5/6算是比較特殊的糾刪碼,RAID 5各家都是采用XOR實現(xiàn),但RAID 6各家實現(xiàn)就差距很大了,比如NetApp的RAID DP就有別用于其他廠商RAID 6的實現(xiàn)方式。到M>2以后,各家實現(xiàn)差距更大了,編碼方式也多種多樣,HP的

LeftHand的網(wǎng)絡(luò)RAID(比如RAID10 2),可能不同于EMC ISILON或者華為OceanStor 9000的實現(xiàn),也不同于Azure的LRC,和SSD盤里有的LDPC差距就更大了。各家根據(jù)自己產(chǎn)品的應(yīng)用場景,都會在計算方面或者網(wǎng)絡(luò)方面做不同方向的優(yōu)化,選擇不同的算法。但不管采用什么算法,只要實現(xiàn)N M方式,我們都統(tǒng)稱為糾刪碼。


由于西瓜哥的數(shù)學(xué)是體育老師教的,對很多算法理解都不到位,只是初淺談了談對糾刪碼的理解,作為猴年的開工之作吧。



    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多