Nutanix超融合系統一探究竟

提到存儲系統的技術發展趨勢,大家普遍會認爲超融合與Server SAN是未來主流的發展趨勢,會替代傳統存儲的技術架構。那麼超融合與ServerSAN到底有何技術獨特性?爲何能夠會成爲未來數據中心存儲架構的主流趨勢?這種架構到底解決了數據中心的什麼問題?這種架構主要需要解決的技術難點在什麼地方?在此,存儲老吳和大家一起分析一下Nutanix系統,從Nutanix系統來一起看一下這種超融合系統的架構獨特性,並且能夠從中體驗到超融合與Server SAN的本質所在。

 

Nutanix是由Google工程師創立的一家存儲公司,這個團隊的很多人是GFS的工程師,這家公司借鑑了互聯網分佈式的經驗,在通用服務器的基礎上構建了存儲系統,並且將存儲和計算一體化,推出超融合系統,尤其解決了虛擬化計算環境下的存儲問題。這家公司已經經歷了5輪融資,共獲得了超過317million美元的融資額。目前雖然面臨VmwareVSAN衝擊,但是還是擁有非常廣闊的市場前景。

 

Nutanix這套系統中存在太多的概念,例如軟件定義存儲、超融合、Server SAN等。在這麼多繁雜概念的背後,我們首先需要明確Nutanix到底需要解決存儲領域的什麼問題?存儲老吳認爲Nutanix需要解決虛擬化計算環境下的存儲問題。讓我們一起看一下傳統虛擬化計算環境下的系統體系結構,如下圖所示:


wKiom1Xpmf2TIERDAADnoKDuK48217.jpg


傳統虛擬計算系統由刀片服務器或者普通服務器節點構成計算集羣。在這些實際的服務器上部署虛擬機,虛擬機的部署可以簡化計算資源的管理。在整個系統中,所有虛擬機通過後端存儲網絡共享集中式存儲。這些集中式存儲可以採用EMCVMAXVNX或者Isilon存儲系統。爲了提高存儲服務的高可用,存儲網絡通常需要冗餘,至少需要採用兩個存儲交換機(FC交換機)連接計算和存儲資源。這種傳統存儲架構最大的問題有如下幾個方面:

1,存儲資源集中化,很難隨着計算資源擴展而擴展。特別是採用VNX這種Scale Up的存儲系統,無法適應數據中心的這種可擴展性需求。

2,採用存儲與計算分離的這種架構,需要獨立的網絡、獨立的存儲與獨立的計算。爲了提高系統可用性,需要通過資源冗餘的方式達到設計目標。因此,網絡、存儲控制器(雙控)都會進行多份冗餘,增加了數據中心的投資。

3,多種不同的系統在數據中心中進行部署無疑增加了數據中心的管理複雜度。尤其是後端多種類型的存儲設備,增加了數據中心的管理成本。


我們知道數據中心的發展趨勢是虛擬化,軟件定義數據中心是發展方向。基於多種複雜設備的數據中心最終都會歸一化成以通用服務器加互連網絡的體系架構。在這些通用服務器上部署關鍵的軟件,通過虛擬化的方式實現計算、存儲資源。然後再在這些虛擬化資源的基礎上部署應用,完成具體功能。


wKiom1XpmjyjNgjNAAFgpXrQh7g613.jpg


在這樣一種發展趨勢的推動下,Nutanix推出了這種超融合系統,爲虛擬化數據中心完成了分佈式存儲虛擬化的任務。符合了數據中心向雲時代發展的一種技術潮流。


wKioL1XpnHqysiEcAAEEg4_nA74567.jpg


Nutanix超融合系統的系統架構如下圖所示:

wKioL1XpnI_jZMOcAAEUq5x7yH4182.jpg


這是一個典型的Scale Out分佈式存儲架構。Nutanix系統由一系列的服務器節點構成,通過後端網絡將這些節點互連起來,形成一套分佈式的計算、存儲於一體的系統。在每個Nutanix節點中存在多個虛擬機,其中至少存在一個Controller VM,該虛擬機負責實現本地存儲資源的管理,並且與其它節點配合實現一套分佈式的存儲系統。客觀上講Controller VM所構成的分佈式存儲和EMCIsilon是類似的,Controller VM中運行Nutanix核心的分佈式文件系統,將本地和遠程的存儲資源虛擬化,並且通過SSDHDD進行性能優化,實現分層存儲。Controller VM對外可以提供傳統的IscsiNFS等接口。由於應用VMController VM都位於同一個物理設備中,所以,兩個VM(應用VMController VM)之間也可以通過特殊的接口實現更加高效的存儲訪問。

 

簡單的從這個架構上來看,Nutanix僅僅是將存儲操作系統運行到了VM上,而不是傳統的控制器(物理服務器)上。EMCIsilon通過實際的物理服務器來實現存儲功能,從技術的角度來看,的確沒有太本質的變化。將存儲功能遷移到虛擬機平臺上,實際上使得存儲研發更加簡單。虛擬機平臺將不同物理服務器平臺進行了歸一化,使得存儲廠商可以對物理服務器平臺進行透明化處理,簡化了設計。當年備份領軍廠商DataDomain就有這種思路。DataDomain的主流產品是在物理服務器平臺上實現的,在定製過的物理服務器平臺上安裝核心的DataDomain操作系統實現備份數據的重複數據刪除。在虛擬化應用中,DataDomain同樣提供了虛擬化的解決方案,即在虛擬機平臺上安裝DataDomain操作系統實現一個虛擬化重複數據刪除系統。這個備份虛擬機可以和應用虛擬機位於同一個物理服務器平臺上,或者備份虛擬機可以安裝在VMAX這樣高端的陣列中,實現一體機解決方案。所以,從這一點上來看,Nutanix的架構其實沒有什麼過人之處,在EMCIsilon平臺上可以較爲容易的封裝成一套和Nutanix類似的超融合系統。

 

在虛擬機平臺上實現存儲功能,其本質上是將很大一部分服務器平臺管理的工作交給了虛擬機廠商,例如KVM或者Vmware,從而減輕了存儲廠商的工作量。存儲廠商原本需要研究多種服務器平臺,現在只需要研究vmware或者KVM這幾種有限的平臺了。但是,凡事都是兩面的,由於虛擬機軟件本身還存在很多缺陷,本身還處於發展過程中,所以,遷移到虛擬機平臺上之後,不一定給存儲廠商減少了工作量。這一點我們可以從Nutanix的團隊構成可以看出,其虛擬化方面的工程師佔了很大比例。雖然減少了服務器平臺工程師,但是卻增加了虛擬化方向的工程師資源。

 

所以,存儲老吳認爲,Nutanix產品在架構上並沒有太多的創新,傳統存儲中都有這樣的身影。Nutanix一個很重要的成功在於迎合了數據中心發展的趨勢,在超融合產品上做出了巨大創新,並且提出徹底拋棄SAN/NAS,加速了數據中心雲化、虛擬化的進程。這是解決方案和產品方面的巨大創新。

 

Nutanix產品的核心是一套軟件,該軟件被稱之爲NutanixOperating SystemNOS),在NOS中的核心爲分佈式文件系統。該文件系統實現了分佈式存儲的功能,其將SSD和磁盤資源進行全局虛擬化,然後再組織成卷或者文件提供給其他的應用虛擬機。從應用虛擬機的角度來看,其可以通過Iscsi initiator的方式來掛載分佈式Controller VM所提供的卷。數據在各個物理節點之間是冗餘的,可以採用多副本或者Erasure Code的方式冗餘數據,從而保障了數據的可靠性。基於存儲虛擬化技術的Nutanix架構如下圖所示:


wKiom1XpmoWBjYAAAAGWPEN5lF0407.jpg


可以說Nutanix是一個徹頭徹尾的軟件定義存儲系統。藉助了虛擬機技術之後,更是可以將存儲部署到任意的通用服務器平臺上,所以,Nutanix也是一種Server SAN系統。從技術的角度來看,Nutanix還是一個分層存儲系統,在Nutanix的節點內部都會配備SSD,該SSD用來作爲熱數據緩存,所有的熱點數據都可以放置到SSD中。在Nutanix節點之間通過互連網絡進行互連,互連網絡可以是10Gb以太網,也可以是IB網絡。在這樣的一個體繫結構下,整個系統的性能瓶頸點並不在於存儲盤、不在於CPU計算資源,而更多的是在於後端的互連。在數據訪問的過程中,無論是讀還是寫操作,都需要經過後端網絡的數據傳輸,從而會影響請求的整體吞吐量以及IO延遲。特別是系統中存在分佈式緩存的情況下,這種架構會對系統的可擴展性造成問題。這一點我們可以看看VmwareVSAN,爲什麼一直很難將系統的節點數量線性擴展,其最主要的一個原因在於節點之間存在數據相關性,而且還會存在分佈式鎖的問題。從技術角度來看,在存儲領域一直在研究這方面的問題,設計一個可以大規模擴展的分佈式文件系統/分佈式SAN系統纔是技術難點所在。在這一點上Nutanix採用了Lock-free的併發處理模型,採用無鎖併發的設計大幅度提升性能,可以達到線性Scale Out的目的。如下圖所示,NutanixVDI應用下呈現線性可擴展的性能:


wKioL1XpnMXDuTRDAAD2D4NUafo485.jpg


Nutanix的另一個很重要的特點是提供高可靠數據服務和高可用應用服務。當應用服務器出現問題的時候,可以利用虛擬機提供的VM遷移服務,將應用從故障節點上遷移到一個可用的服務器節點上,從而可以在較短的時間內實現應用的切換,從而保證服務的高可用。當一個Nutanix節點中的本地數據盤發生故障時,其他節點中的Controller VM會接替數據服務的功能,並且通過分佈式的數據冗餘對數據進行恢復,從而保證數據的可靠性。由於Nutanix採用了存儲池的數據管理方式,所以,整個系統中的所有Controller VM都可以併發的爲故障盤恢復數據,從而可以在極短的時間內恢復數據,保證了數據的可靠性。這個思想和華爲的RAID2.0本質上是相同的。只不過Nutanix採用Erasure Code數據冗餘級別或者多副本的方式實現數據保護,本質上還是一個分佈式RAID。在服務高可用方面,Nutanix充分利用了虛擬機的VM遷移功能,這一點是非常值得借鑑的。

 

存儲領域的另一個發展方向是閃存技術,尤其是全閃存系統的推動和發展會引領數據中心向全閃存的方向發展。在Nutanix這種架構下,由於性能的瓶頸點侷限在後端網絡,如果後端網絡技術不突破,那麼高性能的閃存技術(NVMe SSD)將很難在這種架構下得以應用。當然,RDMAROCE100Gb以太網技術正在發展之中,相信有一天網絡瓶頸一定會被突破。在目前網絡瓶頸的前提下,在Nutanix這種平臺下都無法充分發揮NVMe SSD的性能,這也是這種系統存在的一個問題。無法很好的發揮閃存性能,這就意味着Nutanix這樣的平臺未來可能比較適合對性能不是特別敏感,對可擴展性和易管理非常重視的應用場景。

 

看到Nutanix這樣一種計算與存儲融合的架構之後,存儲老吳在想,如果在Nutanix平臺上引入全閃存技術,那麼一個Nutanix節點需要多少CPU、內存資源?在全閃存系統中,CPU本身是一種非常寶貴的資源,是重要的性能瓶頸點,並且大量的內存資源需要被用於閃存存儲系統中去。在這樣的資源需求下,如何在這種全閃存系統中再劃分一部分資源跑應用服務?如何這麼做了,該如何保證應用的性能以及IO性能的一致性?這樣的控制將會變得異常複雜。所以,在海量全閃存系統中,Nutanix這種超融合的架構很難達到低延遲、一致性的性能。

 

與計算、存儲一體化的超融合架構略有不同,另一種高性能獨立的軟件定義分佈式存儲系統配合虛擬化計算節點同樣可以構建軟件定義的虛擬化數據中心,那麼這種存儲與計算相互獨立的架構同樣可以獲得很好的可擴展性與易管理性,並且可以獲得很好的性能,應用網絡和數據網絡可以根據具體需求進行配置,也能帶來很好的總體投資成本。北美Solid Fire就爲數據中心提供了這樣的一種全閃存系統,爲數據中心提供高性能存儲服務。所以,未來虛擬化數據中心是否Nutanix架構能夠一統江湖?個人覺得那是不太現實的。但是,分佈式存儲一定是虛擬化數據中心的發展方向,傳統雙控SAN/NAS將越來越不適應數據中心雲化的發展方向。

 

總的來說,Nutanix是一款非常先進的超融合系統,其充分利用了虛擬機平臺,通過軟件定義的方式在通用服務器平臺上實現了分佈式存儲,從而徹底拋棄了傳統SAN/NAS系統。降低了數據中心管理和設備投入總體成本。從技術的角度來看,Nutanix系統的關鍵點在於分佈式文件系統,實現了一套易於擴展的分佈式文件系統。隨着雲數據中心的發展,相信Nutanix系統會大展宏圖。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章