1 什么是集群NAS?
集群(Cluster)是由多個節點構成的一種松散耦合的計算節點集合,協同起來對外提供服務。集群主要分為高性能集群HPC(High Performance Cluster)、高可用集群HAC(High Availablity Cluster)和負載均衡集群LBC(Load Balancing Cluster)。集群NAS是指協同多個節點(即通常所稱的NAS機頭)提供高性能、高可用或高負載均衡的NAS(NFS/CIFS)服務。
非結構化數據目前呈現快速增長趨勢,IDC研究報告分析指出,到2012年非結構化數據將占到數據存儲總量的80%以上。集群NAS是一種橫向擴展(Scale-out)存儲架構,具有容量和性能線性擴展的優勢,已經得到全球市場的認可。從EMC對ISILON、HP對IBRIX、DELL對Exanet等收購事件,以及IBM推出SONAS、NetApp發布Data ONTAP 8,都可以看出集群NAS已經成為主流存儲技術之一。在國內,我們也看到UIT UFS、龍存LoongStore、九州初志CZSS、美地森YFS等集群NAS解決方案。集群NAS的未來潛在市場巨大,在高性能計算HPC、廣電IPTV、視頻監控、雲存儲等行業領域將逐步得到廣泛應用。
2 集群NAS的三種主流技術架構
從整體架構來看,集群NAS由存儲子系統、NAS集群(機頭)、客戶端和網絡組成。存儲子系統可以采用存儲區域網絡SAN、直接連接存儲DAS或者面向對象存儲設備OSD的存儲架構,SAN和DAS架構方式需要通過存儲集群來管理后端存儲介質,並以SAN文件系統或集群文件系統的方式為NAS集群提供標准文件訪問接口。在基於OSD架構中,NAS集群管理元數據,客戶端直接與OSD設備直接交互進行數據訪問,這就是並行NAS,即pNFS/NFSv4.1。NAS集群是NFS/CIS網關,為客戶端提供標准文件級的NAS服務。對於SAN和DAS架構,NAS集群同時承擔元數據和I/O數據訪問功能,而OSD架構方式僅需要承擔元數據訪問功能。根據所采用的后端存儲子系統的不同,可以把集群NAS分為三種技術架構,即SAN共享存儲架構、集群文件系統架構和pNFS/NFSv4.1架構。
(1)SAN共享存儲架構
這種架構(如圖1所示)后端存儲采用SAN,所有NAS集群節點通過光纖連接到SAN,共享所有的存儲設備,通常采用SAN並行文件系統管理並輸出POSIX接口到NAS集群。SAN並行文件系統通常需要元數據控制服務器,可以是專用的MDC,也可以采用完全分布的方式分布到SAN客戶端上。NAS集群上安裝SAN文件系統客戶端即可實現對SAN共享存儲的並發訪問,然后運行NFS/CIFS服務為客戶端提供服務。這里前端網絡采用以太網,后面存儲連接則采用SAN網絡。
圖1 SAN共享存儲集群NAS架構
由於采用了高性能的SAN存儲網絡,這種集群NAS架構可以提供穩定的高帶寬和IOPS性能,而且可以通過增加存儲盤陣或NAS集群節點實現存儲容量和性能單獨擴展。客戶端可以直接連接具體的NAS集群節點,並采用集群管理軟件來實現高可用性;也可以采用DNS或LVS實現負載均衡和高可用性,客戶端使用虛擬IP進行連接。SAN存儲網絡和並行文件系統成本都比較高,因此這種集群NAS架構的缺點就是成本較高,同時也繼承了SAN存儲架構的缺點,比如部署管理復雜、擴展規模有限等。采用這種架構的集群NAS典型案例是IBM SONAS(圖2)和Symantec FileStore。
圖2 SONAS
(2)集群文件系統架構
這種架構(如圖3所示)后端存儲采用DAS,每個存儲服務器直連各自的存儲系統,通常為一組SATA磁盤,然后由集群文件系統統一管理物理分布的存儲空間而形成一個單一命名空間的文件系統。實際上,集群文件系統是將RAID、Volume、File System的功能三者合一了。目前的主流集群文件系統一般都需要專用元數據服務或者分布式的元數據服務集群,提供元數據控制和統一名字空間,當然也有例外,如無元數據服務架構的GlusterFS。NAS集群上安裝集群文件系統客戶端,實現對全局存儲空間的訪問,並運行NFS/CIFS服務對外提供NAS服務。NAS集群通常與元數據服務集群或者存儲節點集群運行在相同的物理節點上,從而減少物理節點部署的規模,當然會對性能產生一定的影響。與SAN架構不同,集群文件系統可能會與NAS服務共享TCP/IP網絡,相互之間產生性能影響,導致I/O性能的抖動。諸如ISILON等集群文件系統存儲節點之間采用InfiniBand網絡互聯,可以消除這種影響,保持性能的穩定性。
圖3 集群文件系統集群NAS架構
在這種架構下,集群NAS的擴展通過增加存儲節點來實現,往往同時擴展存儲空間和性能,很多系統可以達到接近線性地擴展。客戶端訪問集群NAS的方式與第一種架構方式相同,負載均衡和可用性也可以采用類似的方式。由於服務器和存儲介質都可以采用通用標准的廉價設備,在成本上有很大優勢,規模可以很大。然而,這類設備是非常容易發生故障的,服務器或者磁盤的損壞都會導致部分數據不可用,需要采用HA機制保證服務器的可用性,采用復制保證數據的可用性,這往往會降低系統性能和存儲利用率。另外,由於服務器節點比較多,這種架構不太適合產品化,可能更加適合於存儲解決方案。用這種架構的集群NAS典型案例包括EMC ISILON、龍存LoongStore、九州初志CZSS、美地森YFS和GlusterFS(圖4)等。
圖4 GluterFS架構
(3)pNFS/NFSv4.1架構
這種架構(如圖5所示)實際是並行NAS,即pNFS/NFSv4.1,RFC 5661標准已於2010.01獲得批准通過。它的后端存儲采用面對對象存儲設備OSD,支持FC/NFS/OSD多種數據訪問協議,客戶端讀寫數據時直接與OSD設備相互,而不像上述兩種架構需要通過NAS集群來進行數據中轉。這里的NAS集群僅僅作為元數據服務,I/O數據則由OSD處理,實現了元數據與數據的分離。這種架構更像原生的並行文件系統,不僅系統架構上更加簡單,而且性能上得到了極大提升,擴展性非常好。
圖5 pNFS/NFSv4.1集群NAS架構
顯而易見,這種架構與上述兩種有着本質的區別,pNFS采用元數據集群解決了傳統NAS的單點故障和性能瓶頸問題,元數據與數據的分離則解決了性能和擴展性問題。這才是真正的並行NAS,pNFS才是集群NAS的真正未來。然而,畢竟pNFS標准獲得批准才一年,目前還沒有成熟的產品實現,OSD存儲設備發展多年也沒有得到市場廣泛認可和普及。Panasas公司的PanFS(圖6)應該是最接近於這種集群NAS架構,當然Panasas也是pNFS標准的主要制定者之一。目前很多存儲公司都在研發pNFS產品,比如BlueArc,筆者預測到2012年就會有產品陸續推出。
圖6 PanFS架構
3 開源解決方案
上述提到的集群NAS存儲產品或者解決方案,大多都是商業實現,而且成本比較昂貴。可能有些用戶想利用開源軟件來實現集群NAS,有沒有這樣的開源解決方案呢?集群NAS的核心是底層的並行文件系統、集群文件系統或pNFS協議,下面就簡單介紹開源在集群NAS方面的支持和實現。
(1)SAN共享存儲架構:Redhat GFS是開源SAN共享文件系統,它也支持DAS連接方式,然后整合NFS/Samba服務即可實現集群NAS。
(2)集群文件系統架構:Lustre, Gluster, PVFS2, Ceph,這些都是優秀的集群文件系統,Gluster本身就是一個完整的集群NAS系統。類似Gluster實現,集群文件系統通過NFS/Samba網關提供NAS服務,實現集群NAS。
(3)pNFS/NFSv4.1架構:Linux內核當前已經集成了pNFS源碼,但處於實驗階段。另外開源OSD實現很少,GFS2可以支持pNFS。想嘗新的用戶可以一試,實際應用還是要謹慎。