云存儲(chǔ)和大數(shù)據(jù)背景下,數(shù)據(jù)呈現(xiàn)爆炸式增長(zhǎng)趨勢(shì)。根據(jù)研究顯示,2020年數(shù)字宇宙將達(dá)到35.2 ZB,比2009年的0.8 ZB猛增44倍,這其中80%以上為非結(jié)構(gòu)化數(shù)據(jù)。高性能計(jì)算、醫(yī)學(xué)影像、石油和天然氣勘探、數(shù)字媒體和社會(huì)化WEB等大量數(shù)據(jù)密集型應(yīng)用導(dǎo)致數(shù)據(jù)的井噴,不斷對(duì)存儲(chǔ)方法提出新的嚴(yán)峻挑戰(zhàn)。集群存儲(chǔ)是一種橫向擴(kuò)展(Scale-out)存儲(chǔ)架構(gòu),具有容量和性能線性擴(kuò)展的優(yōu)勢(shì),已經(jīng)得到市場(chǎng)的廣泛認(rèn)可。除了高性能、高擴(kuò)展特點(diǎn)外,集群存儲(chǔ)還應(yīng)該具備高可用的特征,這對(duì)于企業(yè)核心業(yè)務(wù)系統(tǒng)尤為關(guān)鍵,保證關(guān)鍵業(yè)務(wù)的連續(xù)性。
集群存儲(chǔ)高可用性
高可用性(HA,High Availablity)是指通過盡量縮短系統(tǒng)停機(jī)時(shí)間(因日常的維護(hù)操作或突發(fā)的系統(tǒng)崩潰等),以提高系統(tǒng)和應(yīng)用的可用性。企業(yè)中的關(guān)鍵應(yīng)用,如郵件服務(wù)、文件服務(wù)、數(shù)據(jù)庫服務(wù)等,通常會(huì)要求7*24小時(shí)不間斷連續(xù)提供服務(wù)并且不能表現(xiàn)出故障切換,這就要求承載服務(wù)的存儲(chǔ)系統(tǒng)能夠自動(dòng)判斷故障,并提供故障恢復(fù)的能力。集群(Cluster)是由多個(gè)節(jié)點(diǎn)構(gòu)成的一種松散耦合的節(jié)點(diǎn)集合,協(xié)同起來對(duì)外提供服務(wù)。集群主要分為高性能集群HPC(High Performance Cluster)、高可用集群HAC(HighAvailablity Cluster)和負(fù)載均衡集群LBC(Load Balancing Cluster)。集群存儲(chǔ)系統(tǒng)是指協(xié)同多個(gè)節(jié)點(diǎn)提供高性能、高可用或負(fù)載均衡的存儲(chǔ)服務(wù)系統(tǒng),消除單點(diǎn)故障和性能瓶問題,并且具有Scale-Out橫向高擴(kuò)展能力,實(shí)現(xiàn)容量和性能線性擴(kuò)展。集群存儲(chǔ)現(xiàn)有技術(shù)方案主要通過被冗余技術(shù)解決可用性問題,包括副本技術(shù)、糾刪碼技術(shù)、主備或全活HA技術(shù)。
副本技術(shù)通過增加不同數(shù)量的副本,可以有效提高數(shù)據(jù)可用性,但是存儲(chǔ)利用率低(為副本數(shù)量分之一),并增加了數(shù)據(jù)管理的復(fù)雜度。糾刪碼通過冗余編碼提高存儲(chǔ)可用性,并且具備較低的空間復(fù)雜度和數(shù)據(jù)冗余度,存儲(chǔ)利用率高,但編碼方式復(fù)雜,需要大量計(jì)算并降低業(yè)務(wù)性能,且適用集群節(jié)點(diǎn)數(shù)量較多的情形。主備(Active/Standby)HA技術(shù)同樣采用冗余技術(shù)獲取高可用性,但存儲(chǔ)資源浪費(fèi)嚴(yán)重。全活(Active/Active)HA技術(shù)通過監(jiān)控并將故障節(jié)點(diǎn)資源(IP、服務(wù)進(jìn)程、業(yè)務(wù)數(shù)據(jù)等)切換至正常節(jié)點(diǎn)上,使整個(gè)系統(tǒng)連續(xù)不間斷對(duì)外提供服務(wù)。這種HA技術(shù)不僅能夠提高可用性,而且具備負(fù)載均衡功能,資源利用率高。HA技術(shù)的主要問題是資源切換期間會(huì)導(dǎo)致服務(wù)中斷,通常只接管IP和服務(wù)進(jìn)程資源,而業(yè)務(wù)數(shù)據(jù)或物理存儲(chǔ)資源需要由外部系統(tǒng)進(jìn)行管理。
副本技術(shù)
副本(Replication)就是對(duì)原始數(shù)據(jù)的完全拷貝。通過為系統(tǒng)中的文件增加各種不同形式的副本,保存冗余的文件數(shù)據(jù),可以十分有效地提高文件的可用性,避免在地理上廣泛分布的系統(tǒng)節(jié)點(diǎn)由網(wǎng)絡(luò)斷開或機(jī)器故障等動(dòng)態(tài)不可測(cè)因素而引起的數(shù)據(jù)丟失或不可獲取。一般而言,副本數(shù)量越多,文件的可靠性就越高,但是如果為所有文件都保存較多的副本數(shù)量,將消耗大量的系統(tǒng)存儲(chǔ)資源,并增加文件管理的復(fù)雜度。副本還可以起到提高系統(tǒng)性能的作用。通過合理的選擇存儲(chǔ)節(jié)點(diǎn)放置副本,并與適當(dāng)?shù)穆酚蓞f(xié)議配合,可以實(shí)現(xiàn)數(shù)據(jù)的就近訪問,減少訪問延遲,提高系統(tǒng)性能。另外,通過增加副本數(shù)量,將集中地文件訪問合理地分布到不同的節(jié)點(diǎn)和網(wǎng)絡(luò)路徑,利用其他節(jié)點(diǎn)和網(wǎng)絡(luò)路徑平衡節(jié)點(diǎn)和網(wǎng)絡(luò)的負(fù)載,可以有效地解決熱點(diǎn)問題。對(duì)于數(shù)據(jù)量較大的文件,還可以通過對(duì)多個(gè)副本的并行讀取,進(jìn)一步分散和平衡節(jié)點(diǎn)負(fù)載,提高文件讀取的效率,提高系統(tǒng)的I/O性能。典型的副本案例包括RAID1、GFS/HDFS副本(默認(rèn)三個(gè))和Glusterfs復(fù)制卷(如圖1所示)。
圖1:分布式文件系統(tǒng)Glusterfs復(fù)制卷 來源:Glusterfs文檔