• 沒有找到結果。

3. 雲端檔案系統架構

3.2. 編碼備份

雲端檔案系統除了使用傳統的複製備份方式,亦可以利用抹除碼來對資料進 行編碼與解碼。以 HDFS 應用抹除碼,如圖 3–6 之 HDFS-RAID 架構為例,除 了原本的 Name Node 外,新增了的一個 RAID Node,利用 RAID Node 來負責所 有資料的編碼與解碼。有別於 Rn 系統架構使用直接複製備份的方式,除了將資 料儲存在本地端與異地端來達到異地備援之目的,在資料備份到異地端之前,會 先將資料進行編碼處理,使其獲得更高的可用性。按照 R2 與 R3 之系統架構類 型,分別提出兩種與其相對應的抹除碼系統架構:E(4,2)、E(5,2)。

如圖 3–7,在抹除碼編碼前會先將 File 切 Blocks,再分 n 個 Blocks 下去編 碼處理,將 Blocks 編碼後所產生的 Encoded Blocks 分散儲存到各個機器節點之 上,藉由收集ℓ (ℓ ≥ n)個 Encoded Blocks 來解碼回原本的 n 個 Blocks。本論文所 定義的 E(m,n)架構,m 代表編碼後所產生之 Encoded Blocks 數量,在此為了方 便後續討論,每台儲存機器皆儲存一份 Encoded Block;n 代表的則是還原回原 始資料所需的 Blocks 數量。

Name Node

Data Node 1 Data Node 2 Data Node 3 RAID Node

圖 3–6 HDFS-RAID

3.2.1. E(4,2)系統架構

E(4,2)架構使用抹除碼的方式對資料進行異地備援處理,先將原始資料切 Block 來處理,將兩個原始 Blocks,分散儲存在本地端兩節點,以提升資料讀取 速度,再將經抹除碼處理過產生的兩塊冗餘資料(即 Encoded Block),備份儲存在 異地端之兩相異節點。如圖 3–8 所示,E(4,2)系統架構將資料 B 分為兩個 Blocks,

圖 3–7 系統流程

File

B1 B2 Bn

Pick n Blocks

Encode to m Encoded Blocks

Q1 Q2

Qn

B1 B2 Bn

Collect ℓ to Decode

Qm

B1 B2

Bn

圖 3–8 E(4,2)架構

S

l

S

r

S

x

B

1

P

1

B

2

P

2

Q

1

P

3

Q

2

P

4

分別為 B1與 B2,將其存放在不同的本地端 Sl節點 P1、P2,再利用編碼的方式對 資料進行處理,產生另外兩塊冗餘資料 Q1與 Q2,最後將兩塊冗餘放置於異地端 Sr的兩個節點 P3、P4,達到異地備援之效果。

例如當 Sl失去任何一個節點之資料,即可透過異地端 Sr存取 Q1或 Q2其中 一塊冗餘資料,與 Sl剩餘之資料來進行解碼還原的動作,回復原本的資料 B。即 使 Sl整個發生意外或錯誤時,亦可藉由 Q1與 Q2兩塊冗餘資料進行解碼動作,回 復原始資料 B 繼續提供服務。E(4,2)架構儲存成本與 R2 相等,使用抹除碼來提 升資料的可用性與容錯能力,再藉由將資料分散儲存的方式,換取更高的資料讀 取速度。

由 R2 系統架構衍生而來的 E(4,2)系統架構之想法,可以推想出 E(2n,n)之系 統架構,隨著 n 值的變動,即為將 n 個 Blocks 儲存在本地端,n 份 Encoded Blocks 存放在異地端,也就是 Sl儲存原始的 n 個 Blocks,Sr則存放經由編碼處理過的 n 分冗餘資料作備份,當 Sl有任何機器節點發生異常時,Sr的任意節點所儲存之冗 餘資料,皆可作為備份資料來進行解碼幫助還原。

3.2.2. E(5,2)系統架構

E(5,2)在 E(4,2)的架構基礎上稍作修正,一樣使用抹除碼來對資料進行異地 備援,不同的地方是在本地端多儲存一份冗餘資料,當本地端有任一原始資料無 法存取時,可以利用此份冗餘資料來減少對異地端的資料存取次數。如圖 3–9,

本地端 Sl多儲存一份冗餘資料在 P3節點,當 Sl失去 P1或 P2任意一節點時,不

圖 3–9 E(5,2)架構

S

l

S

r

S

x

B

1

P

1

B

2

P

2

Q

1

P

3

Q

2

P

4

Q

3

P

5

再需要依靠異地端 Sr的參與來進行解碼動作,只需要將本地端 P3之資料 Q1與剩 下的本地端資料 B1或 B2進行解碼動作,即可取回原始資料 B 來繼續對外提供服 務。且當本地端 Sl無法對外繼續服務時,一樣可以在異地端 Sr,藉由 Q2、Q3兩 塊冗餘資料解碼回復原始資料 B。

E(5,2)架構所需要的儲存成本比 E(4,2)還高,類似 R2 與 R3 之差別,改進 E(4,2) 在失去單一機器節點的情況經常發生時,所需付出較高的傳輸成本,並利用抹除 碼的方式使得儲存成本比 R3 架構還低,且資料存取速度亦獲得提升。

根據 R3 系統架構衍生而來的 E(5,2)系統架構之想法,為了減少存取異地端 資料所需付出之高成本,在本地端多存放一份冗餘資料,可以推想出(2n+1,n)之 系統架構。與(2n,n)之系統架構差異不大,主要是在本地端 Sl,除了存放 n 個原 始的 Blocks 之外,還多存放一份冗餘資料作備份來使用,當本地端 Sl任意節點 有異常狀況發生時,藉由這份額外的冗餘資料之參與,即可不須異地端 Sr 參與 來解碼還原。

3.3. 小結

一般傳統複製備份方式,如 R2、R3 架構,在資料為多個 Blocks 時是採取 隨機分配策略來擺放儲存資料,在機器節點數量夠多的狀況,所有 Blocks 擺放 位置皆會不一樣。為了在後續的分析與比較,能夠與 E(4,2)、E(5,2)架構保持一 致性,使用兩個 Blocks 的狀況是比較公平與合理的。與直接將單一 Block 的狀 況平方處理,會造成在判斷網路的可靠度時多重複判斷,使得 R1、R2、R3 架構 顯得比較差。

由於各個架構之間的不同,以及使用的資料儲存方式,在這邊以不使用異地 備援的 R1 為基準,對各個架構之間的儲存成本差異做個小結。R1 架構儲存一份 副本的方式有最低的儲存成本 1,與之相對的當任何情況發生時幾乎都無法迴避 風險;使用直接複製備份方式的 R2 與 R3 架構,因為是直接將資料複製備份作 副本,儲存到各台儲存機器之上,其儲存成本會直接受到副本數量的影響,所以 分別各為 2 與 3;E(m,n)架構的儲存成本會受到編碼後所展開的 Encoded Blocks 數量影響,當 Encoded Blocks 數量 m 之值越大,所需要付出的儲存成本也越高,

由於一個 Encoded Block 只有一份副本大小的一半,是故 E(4,2)與 E(5,2)其儲存 成本分別為 2 以及 2.5。

除了儲存成本的差異之外,各個架構之間的磁碟容錯數也不相同,R2 架構 只能容許失去一個節點,磁碟容錯數為 1;R3 架構最多可以失去兩個節點仍能 維持住系統正常運作,磁碟容錯數為 2;E(4,2)架構雖然儲存成本與 R2 架構相等,

但是磁碟容錯數卻與 R3 架構不相上下,可以容忍最多失去兩個節點;E(5,2)架 構儲存成本比 R3 略低,卻有比 R3 更高的磁碟容錯數 3,可以容忍失去三個節點。

除此之外,E(m,n)架構皆有作異地備援,與 R2、R3 架構一樣具有網路容錯能力,

即使當一邊網路斷掉或檔案全部遺失,仍舊能夠繼續維持住整個系統運作。在斷 時磁碟容錯能力部分,即失去異地端僅剩本地端之狀況下,R1、R2 與 E(4,2)架 構只要失去任何一個節點即無法維持系統正常運作,而 R3 與 E(5,2)因為有在本 地端多備份一份副本,仍然能夠容忍失去一個節點,同理可推 Rn 架構與 E(m,n) 架構。將上述各個架構關係整理如表 3–1 所示:

表 3–1 系統架構比較

架構 儲存成本 磁碟容錯數 網路容錯能力 斷網時磁碟容錯能力

R1

1 0 No No

R2

2 1 Yes No

R3

3 2 Yes Yes

Rn

n n-1 Yes -

E(4,2)

2 2 Yes No

E(5,2)

2.5 3 Yes Yes

E(m,n)

m/n m-n Yes -