叢集式NAS的架構與特性

叢集檔案系統是透過stripe方式,將檔案切割、分散到多個節點上存取,藉由多節點平行執行存取作業來獲取高效能,並得到隨著節點數量的增加而線性提升效能的能力,但也因此帶來與傳統NAS大不相同的組成架構與特性。

叢集NAS的關鍵—metadata管理

由於每個單一檔案都被分散儲存在不同節點的不同硬碟上,叢集檔案系統必須透過metadata,來記錄資料與實體儲存位置間映射關係,以便維持資料存取的一致性,但也因為所有存取都必須透過查詢metadata來進行,所以在叢集檔案系統的存取作業中,關於metadata查詢的操作占有很高的比重,如何存放與處理metadata,也就成為叢集檔案系統的一大重點。

有些叢集檔案系統是將metadata分散在各個節點上,典型的如IBM GPFS、IBRIX Fusion、Isilon OneFS等,有些則是集中在一臺metadata server上,如Lustre、PVFS等,兩種方式各有利弊。

集中式metadata可減輕各節點的負擔,不過metadata server本身會形成效能瓶頸(尤其是在處理大量小檔案時所產生的大量metadata查詢作業,會嚴重拖累甚至癱瘓metadata server的效能);此外,這種架構也有單點故障問題,一旦metadata server失效,整個叢集也會跟著無法運作。為了避免單點故障並改善效能,通常得在一個叢集中部署多臺metadata server以便彼此備援,但這又會增加複雜性。

分散式metadata則沒有單點故障與效能困擾,但會增加各個節點的負載,另外由於metadata是由各個節點共同維護,因此也必須處理各節點間的同步與一致性問題,導致節點間的很大的metadata溝通流量。

為了克服metadata所造成的問題,一些檔案系統如GlusterFS便以無metadata架構為訴求,GlusterFS沒有與資料分離的metadata,改用彈性hash演算法來定位檔案位置,而不需要查詢索引或其他伺服器。

而依照是否有專門的metadata server,一般又可將叢集NAS分為對稱式與非對稱式兩類:

●  對稱式:對應於分散式metadata與無metadata架構,叢集中所有節點的功能與角色均相同。

●  非對稱式:對應於集中式metadata架構,叢集中分為兩種類型的節點——metadata server與一般的儲存控制器節點。

叢集的規模

由於叢集式NAS是針對巨量資料的存取應用,因而能支援的叢集規模大小,也就成為一項重要的指標。

叢集能達到多大的規模是由叢集檔案系統來決定,我們通常可由節點數量、單一檔案系統容量、單一叢集可掛載的檔案系統數量等幾項指標,來衡量叢集式NAS的規模。

●  節點數量:

理論上,叢集可允許的節點數量越多,便能匯聚出更高的效能與頻寬,許多叢集檔案系統在規格上都能支援多達數千個節點,GlusterFS甚至號稱節點數量沒有上限。不過在實際環境中,考慮到複雜性、可用性、成本與實際需求,多數叢集式NAS都把節點數量上限,訂在十數個到100多個。

一般來說,開源或專案建置的叢集NAS解決方案,在節點數量上較有彈性,而商品化的叢集NAS套裝產品,則會依照預設的產品定位分別訂出固定的節點數量上限。

舉例來說,IBM的GPFS叢集檔案系統理論上可支援最多8,192個節點,某些專案建置的GPFS用戶,據說已組成了超過500個節點的GPFS叢集系統,不過IBM以GPFS為基礎的Scale-Out NAS套裝產品SONAS,節點上限僅定在最多30個介面節點(提供I/O服務)與60個儲存節點(提供儲存服務)。

而以開源的Lustre叢集檔案系統來說,Lustre的節點分為提供I/O服務的OSS節點與提供儲存服務的OST節點,規格上能支援1,000個以上的OSS節點與數千個OST節點,但實務上目前實證過的最大架構不過4、500個OSS與1,000多個OST節點。

類似的,IBRIX Fusion叢集檔案系統理論上也有支援1,000個以上節點的能力,但HP採用IBRIX的X9000系列NAS,規格上的最大節點數僅為16個。

扣除自行以開源資源建置、或專案建置的系統不提,當前商售的叢集NAS套裝產品中,允許最多節點數量的應是EMC Isilon的144個節點,其餘產品的節點數上限大多在4~32個之間。

●  單一檔案系統容量:

叢集檔案系統是為了應付高效能運算、或巨量資料的儲存與處理而設計,通常會擁有較一般單機型檔案系統更大的單一檔案系統或磁碟區容量,以便減少被迫切割多個檔案系統所帶來的複雜性增加等管理困擾。

不過到底能允許多大的容量,又有理論值與實際值的區別,如IBM GPFS理論上的單一檔案系統最大容量是16EB,不過目前實作出來的單一檔案系統最大只有4PB左右,距離理論極限值還有很大的距離。

類似的,架構特殊的GlusterFS,還宣稱理論上本身沒有檔案系統容量上限,而是依各節點(稱為Storage Brick)所使用的底層檔案系統而定,架構上號稱可達到72億EB的驚人數字,不過目前在實際環境中所建立的最大單一Volume只達到2.5PB。

以實際值來說,目前叢集檔案系統可允許的單一檔案系統大小,最大的可達15PB(Isilon OneFS),一般則大多在1~4PB之間。

●  單一叢集的最大空間:

每個叢集在單一命名空間下所允許掛載的檔案系統數量,以及由此匯聚而成的空間總和,決定了叢集式NAS的最大延展能力。目前的叢集檔案系統最大空間大都可達到十多PB等級或數十PB等級,有些系統理論上甚至還能達到EB、甚至更高的YB等級,不過落實到實際的產品部署上時,受產品設定的用戶定位、成本與硬體等方面的限制,實際的最大容量上限都遠小於理論值。

舉例來說,IBM GPFS單一叢集可允許掛載256個檔案系統,而單一檔案系統理論上限是299bytes,理論上可提供1億YB等級的空間。不過IBM以GPFS為基礎的SONAS產品,磁碟子系統的最大原生空間只有7,200臺硬碟與21.6PB,遠遠低於理論值上限。

就目前的情況來說,除了跨國或國家級實驗室等極少數環境外,對絕大多數企業應用環境來說,十多PB到數十PB等級的容量已經十分充裕。

節點間的互連

叢集式NAS雖然匯聚了多個節點與這些節點上的大量網路埠,不過對Client端來說,除非搭配使用一些特別的軟體,或採用一些特殊的協定(如pNFS等),否則在使用最普遍的NFS、CIFS等網路檔案存取協定,來存取叢集NAS時,Client端同一時間只能與1個節點建立聯繫,因此要存取分散在多個節點上的資料時,Client端的每個讀寫I/O要求,會透過查詢metadata、從接入的那個節點與實際存放了資料分段的各節點之間往返傳遞,節點之間將產生很大的通信流量。

為了應付這方面的需求,叢集式NAS多半會配有一套節點間互連的專用內部通信網路,有些還採用了高頻寬規格的網路介面,如InfiniBand、10GbE等。

所以叢集式NAS的I/O埠通常會有三種類型:首先,是提供Clinet端連接與存取用的叢集節點前端網路埠,通常是GbE或10GbE;其次,是叢集節點與後端儲存裝置連接的I/O埠,依不同產品採用的儲存連接架構,有些使用SAS、SATA介面直接連接,有些則透過FC、iSCSI等SAN介面介接;最後則是叢集節點間互連的內部網路,常見的介面類型是GbE、10GbE或InfiniBand。

兩種典型的儲存裝置架構

從NAS控制與後端儲存裝置間的連接方式來看,目前的叢集式NAS產品有SAN連接架構,以及DAS直接連接架構兩種典型型態:

●  SAN連接

叢集的儲存空間,來自各控制器節點後端透過SAN網路連接的SAN磁碟裝置,採用這種架構的產品有IBM的SONAS、Symantec的FileStore、HDS源自BlueArc的HNAS,以及Dell採用FluidFS的幾款Scale-Out NAS產品等。

藉由後端的SAN網路與SAN儲存設備,這種架構能提供穩定的高頻寬與IOPS效能,而且由於NAS控制器與後端SAN儲存設備彼此相對獨立,因此可以各自獨立的擴展,如只擴充NAS控制器數量、或只增加SAN儲存設備的容量等,而不用兩者同時擴充。

缺點則是成本相對較高,還需面臨SAN儲存設備既有的管理複雜,與擴展相對不易等問題。

●  DAS連接

叢集的儲存空間,來自每組節點各自連接的本機磁碟裝置(內接的SATA或SAS硬碟,或是透過SAS HBA卡直接串接的外接磁碟櫃等),然後由叢集檔案系統將各節點上的磁碟空間,構成一個單一命名空間。如EMC Isilon、GlusterFS都是屬於這種類型。

這種架構的成本相對較低,雖然磁碟裝置的效能通常不如SAN,不過由於磁碟裝置與叢集節點是合一的,所以只要透過增加叢集節點,就能以近乎線性增長的方式擴展存取效能。

資料保護機制

叢集式NAS的資料保護可分為兩個層次:可由叢集檔案系統透過快照功能,在本地端建立一個特定時間點下的複本;或透過遠端複製功能,在遠端同步維持一個複本。

以IBM SONAS為例,SONAS運行的GPFS叢集檔案提供了快照與同步/非同步遠端複製功能,快照可為指定的檔案系統建立特定時間點下的Copy-On-Write複本,至於同步/非同步遠端複製功能,則能把檔案系統從一個叢集複製到另一個叢集。

類似的,EMC Isilon OneFS也能提供遠端複製,與針對目錄或子目錄層級的快照功能。

一般來說,商售類型的叢集式NAS在這方面的功能比較完整,而一些開源類型的叢集檔案系統,就未必提供完整的功能,如GlusterFS便只有遠端複製功能,而沒有提供快照。

高可用性

叢級式NAS的高可用性功能通常有2個層次,底層是由後端磁碟裝置的控制器為磁碟機,提供基本的RAID保護;上層由叢集檔案系統提供跨節點的失效備援功能。藉由這2個層次的保護,來因應從單一磁碟到整個節點的失效。

至於整個叢級能允許多少臺硬碟或多少個節點的失效,則視磁碟裝置本身的RAID功能、叢集檔案系統的功能,以及叢級中的節點數量而定。就出現問題的機率來說,隨著單一群組中硬碟或節點數量的增加,任1臺硬碟或節點出問題的機率也隨之升高,因此需要更多的備援硬碟或節點。

舉例來說,當RAID群組中的硬碟數量,或叢集中的節點數量在4臺、8臺到10多臺左右時,可容忍一臺硬碟或節點失效的RAID 5或N+1高可用性組態,就已能滿足需求。不過若要將RAID群組或叢集規模擴大到20、30臺硬碟或節點時,就必須改用可容忍2臺硬碟或節點失效的RAID 6與N+2高可用性配置,才能將整個系統失效的機率,降到足夠低的程度。

許多叢集檔案系統都能提供彈性的高可用性配置選擇,可讓用戶自行決定要讓多少個節點設定為備用,不過可用性越高,相對的消耗在備援上的資源也越多,而可用的系統硬體資源越少。

為了提供足夠的可用性,許多產品都是採用先將整個磁碟裝置或叢集畫分為較小的高可用性單元,然後再組成大的群組的方式。

以IBM的SONAS為例,底層採用的FC磁碟陣列(稱為儲存控制器)可由RAID控制器提供RAID 5或RAID 6的保護,整個機箱共有60臺硬碟,分為4個RAID群組,理論上可容許每個群組都損壞1或2臺硬碟。而SONAS中的所有節點(包括介面節點、儲存Pod到儲存控制器)都是兩兩成對冗餘配置的,每個儲存Pod中的任1個儲存節點、或儲存控制器中的任1個RAID控制器失效,也仍然可以維持服務。

EMC Isilon則是另一個典型,Isilon並沒有硬體RAID功能,但OneFS檔案系統本身可對各節點中的硬碟,以及叢集中各個節點提供N+1~N+4的保護方式,N+1即相當於RAID 5,可允許單臺硬碟或是單個節點損壞,N+2則相當於RAID 6,可允許2臺硬碟或是兩個節點同時損壞,最高的N+4則能容忍4臺硬碟或4個節點同時失效。

系統管理

叢級NAS的管理方式通常有兩種:一種是由獨立的管理伺服器來執行整個叢級的管理作業,如IBM SONAS、Lustre、IBRIX Server等;也有許多系統是由叢級中的某個節點,來兼任管理伺服器功能,如EMC Isilon、DDN NAS Scaler等。

而在管理介面方面,商品化套裝產品大都能提供圖型化介面,用來執行系統設定、狀態監控等作業,而開源式的解決方案則只有文字命令列可用。

而在管理功能方面,最基本的有這幾項:狀態監控、系統設定(如節點的新增)、權限控制與容量配額。當前所有叢集檔案系統大致上都能提供這幾種管理功能,不過各功能支援的完整性彼此有很大區別。

附屬應用功能

NAS的基本功能是提供檔案層級的共享存取與相關管理功能,為了讓儲存空間的使用能達到最佳化,一些NAS產品還提供了自動分層儲存、或附帶備份軟體等附加應用功能。

而在叢集式NAS產品領域,一般來說供應商提供的附帶功能通常沒有傳統NAS那樣豐富,但選擇也不少,如EMC Isilon、DDN NAS Scaler等產品都能提供自動分層儲存,Symantec的FileStore也能整合備分軟體或防毒軟體。


相關報導請參考「Big Data 引爆 Scale-Out NAS風潮」

熱門新聞

Advertisement