隨著云計(jì)算應(yīng)用滲透到人們工作、生活的方方面面,基于云計(jì)算、大數(shù)據(jù)的應(yīng)用業(yè)務(wù)已經(jīng)大規(guī)模的落地實(shí)施,作為數(shù)據(jù)存儲(chǔ)中心的海量存儲(chǔ)系統(tǒng)有力的支撐了云計(jì)算業(yè)務(wù)的應(yīng)用和快速發(fā)展,海量存儲(chǔ)系統(tǒng)平臺(tái)也就成為云計(jì)算建設(shè)過(guò)程中必須規(guī)劃、并首先要落地實(shí)施的工作。
相比于傳統(tǒng)的應(yīng)用環(huán)境,云計(jì)算環(huán)境中的應(yīng)用業(yè)務(wù)數(shù)量更多、對(duì)存儲(chǔ)系統(tǒng)性能的要求也存在著多樣性的差異,這也就使得面向云計(jì)算、大數(shù)據(jù)的海量存儲(chǔ)系統(tǒng)必須能夠提供差異化的IO存儲(chǔ)服務(wù)、以及持續(xù)的在線運(yùn)行和高效、可靠的容錯(cuò)機(jī)制。其中海量數(shù)據(jù)的冗余保護(hù)機(jī)制是面向云計(jì)算的海量存儲(chǔ)系統(tǒng)必須擁有的一個(gè)重要特征。
傳統(tǒng)數(shù)據(jù)冗余保護(hù)不適于云計(jì)算時(shí)代的海量數(shù)據(jù)存儲(chǔ)需求
傳統(tǒng)的存儲(chǔ)陣列所采取的數(shù)據(jù)冗余技術(shù)主要包括RAID技術(shù)、副本、快照、鏡像、數(shù)據(jù)同步等方式,這些技術(shù)分別具備獨(dú)有的特點(diǎn),適用于不同的應(yīng)用場(chǎng)景。
副本,是最簡(jiǎn)單的數(shù)據(jù)冗余策略,即統(tǒng)一存儲(chǔ)系統(tǒng)中存儲(chǔ)同一份數(shù)據(jù)的多個(gè)相同拷貝,只要這些拷貝中的一個(gè)有效,就能訪問(wèn)該數(shù)據(jù)。數(shù)據(jù)的副本越多、數(shù)據(jù)的可用性越高、可靠性越高,存儲(chǔ)空間的利用率也就越低。
快照,是關(guān)于特定數(shù)據(jù)集的一個(gè)拷貝,該拷貝包括相應(yīng)數(shù)據(jù)在某個(gè)時(shí)間點(diǎn)的映像。根據(jù)實(shí)現(xiàn)方式分為全拷貝快照、差分快照、增量快照。全拷貝快照數(shù)據(jù)可用性好,但是存儲(chǔ)空間利用效率低;差分快照和增量快照存在著“空窗期”。
鏡像,存儲(chǔ)系統(tǒng)在接受數(shù)據(jù)寫(xiě)入時(shí)執(zhí)行的是寫(xiě)入兩份操作,即同一份數(shù)據(jù)分別寫(xiě)入兩個(gè)存儲(chǔ)設(shè)備中。根據(jù)寫(xiě)入的策略不同,分為同步鏡像、異步鏡像。數(shù)據(jù)鏡像能夠提供較好的數(shù)據(jù)冗余、也給存儲(chǔ)帶來(lái)兩倍的壓力,而且存儲(chǔ)系統(tǒng)只有50%的空間利用率。
數(shù)據(jù)同步,是在主存儲(chǔ)系統(tǒng)和備份存儲(chǔ)系統(tǒng)之間實(shí)行的數(shù)據(jù)拷貝操作,數(shù)據(jù)同步的寫(xiě)入操作存在較大的時(shí)間延遲,較大的限制了其部署環(huán)境。
RAID技術(shù),是把多塊獨(dú)立的存儲(chǔ)磁盤(pán)按不同的方式組合起來(lái)形成一個(gè)存儲(chǔ)磁盤(pán)組,提供比單個(gè)硬盤(pán)更高的存儲(chǔ)性能和數(shù)據(jù)冗余保護(hù)。根據(jù)組成磁盤(pán)組的方式差異,設(shè)定了RAID級(jí)別。RAID技術(shù)提高了存儲(chǔ)空間資源的利用率,只能提供單點(diǎn)存儲(chǔ)系統(tǒng)的數(shù)據(jù)保護(hù),不能滿(mǎn)足大容量、分布式存儲(chǔ)系統(tǒng)的應(yīng)用。
RAID技術(shù)是在1GB驅(qū)動(dòng)器出現(xiàn)前發(fā)明的,隨著磁盤(pán)存儲(chǔ)密度的提高,企業(yè)級(jí)存儲(chǔ)磁盤(pán)容量已經(jīng)達(dá)到2TB、3TB、4TB ,并出現(xiàn)6TB磁盤(pán)。采用高存儲(chǔ)密度構(gòu)建的RAID磁盤(pán)組,出現(xiàn)磁盤(pán)故障需要修正TB級(jí)別的數(shù)據(jù)時(shí)重建過(guò)程需要的時(shí)間較長(zhǎng),常常需要一天或者更長(zhǎng)的時(shí)間;特別是在生產(chǎn)系統(tǒng)中,重建時(shí)間更長(zhǎng)。在長(zhǎng)時(shí)間重建大容量存儲(chǔ)內(nèi)容時(shí),組成RAID組的第二個(gè)磁盤(pán)、第三個(gè)磁盤(pán)出現(xiàn)故障的可能性會(huì)大大增加;在重建過(guò)程中,一個(gè)磁盤(pán)故障明顯加大了其它磁盤(pán)的訪問(wèn)負(fù)載,使得其它磁盤(pán)故障出現(xiàn)的概率急劇增加,較大的影響了存儲(chǔ)系統(tǒng)的可用性。
針對(duì)傳統(tǒng)數(shù)據(jù)冗余保護(hù)技術(shù)在大容量磁盤(pán)存儲(chǔ)系統(tǒng)中所表現(xiàn)出的不足,以分布式、大規(guī)模、大容量磁盤(pán)存儲(chǔ)為特點(diǎn)的海量存儲(chǔ)系統(tǒng)中出現(xiàn)了一種更加高效的數(shù)據(jù)冗余技術(shù)——糾刪碼。
云時(shí)代的數(shù)據(jù)冗余保護(hù)機(jī)制——糾刪碼
糾刪碼起源于通信傳輸領(lǐng)域,目前逐漸出現(xiàn)在大規(guī)模存儲(chǔ)系統(tǒng)中,特別是分布式存儲(chǔ)環(huán)境,用于實(shí)現(xiàn)數(shù)據(jù)的冗余保護(hù)。糾刪碼冗余保護(hù)技術(shù)解決了傳統(tǒng)冗余保護(hù)技術(shù)不適于分布式生產(chǎn)存儲(chǔ)系統(tǒng)的問(wèn)題。
糾刪碼技術(shù)基本思想是將一份數(shù)據(jù)劃分為k塊原始的數(shù)據(jù),基于k塊原始數(shù)據(jù)冗余計(jì)算獲得m塊冗余數(shù)據(jù)。對(duì)于這k+m塊數(shù)據(jù),其中任意的m塊元素出錯(cuò)時(shí),存儲(chǔ)系統(tǒng)均可以通過(guò)重構(gòu)算法恢復(fù)出原來(lái)的k塊數(shù)據(jù),如下圖所示。
基于糾刪碼的方法與傳統(tǒng)的鏡像、副本技術(shù)相比,具有冗余度低、磁盤(pán)利用率高等優(yōu)點(diǎn)。針對(duì)云計(jì)算、大數(shù)據(jù)業(yè)務(wù)對(duì)海量存儲(chǔ)系統(tǒng)的多樣性、大規(guī)模存儲(chǔ)容量需求,浪潮推出了面向云計(jì)算、大數(shù)據(jù)的高性能、統(tǒng)一存儲(chǔ)系統(tǒng)AS13000,AS13000海量存儲(chǔ)系統(tǒng)所采用糾刪碼技術(shù)能夠較好的適應(yīng)云計(jì)算數(shù)據(jù)的分布式存儲(chǔ)應(yīng)用環(huán)境。
AS13000存儲(chǔ)系統(tǒng)支持N+M格式的糾刪碼,級(jí)別有:N+1、N+2、N+3和N+4,在這種N+M數(shù)據(jù)模型中,N代表原始數(shù)據(jù)塊數(shù)量,M代表在不發(fā)生數(shù)據(jù)丟失的前提下海量存儲(chǔ)系統(tǒng)所允許發(fā)生的同時(shí)故障的數(shù)據(jù)塊數(shù)目。如,N+2允許海量存儲(chǔ)中丟失兩個(gè)數(shù)據(jù)塊、或者同時(shí)丟失兩個(gè)節(jié)點(diǎn)。如下圖。