VMware

上週的儲存月報中,對於VMware在vSAN 8儲存平臺新引進的「Express儲存架構(Express Storage Architecture,ESA)」,我們簡單扼要地介紹了這種新型架構的特點,以及與vSAN原有儲存架構(Original Storage Architecture,OSA)的差異。

而在這個專題中,我們將從底層構造與運作原理著手,進一步解析ESA架構,以便更深入認識這項堪稱vSAN問世以來最重大的技術變革。

ESA架構的目的,是讓vSAN這個問世已有9年的平臺,跟上IT應用環境的變化,充分應用當前新一代固態儲存硬體的效能,並滿足用戶對於簡化儲存管理,提高儲存資源利用效率,以及對於改善快照等資料服務的效率、減輕資料服務功能帶來的負載等需求。

VMware指出,在開始開發vSAN的2010年代初期,當時基於的主流伺服器組態,是4到10核心處理器,搭配硬碟結合SAS/SATA SSD的混合儲存配置,以及1/10Gb的網路規格。

而到了10年後的今日,伺服器主流規格已經大不相同,處理器可達到64核心以上,在儲存與網路組態方面,NVMe介面SSD,以及25/100Gb乙太網路,也都越來越普及。

而用戶的應用環境與型態也較過去更為複雜,例如,10年前的用戶多是以本地端應用為主,而今日的用戶已普遍使用了公有雲服務,面對的工作負載也多了容器(Container)這種嶄新的型式。

這也帶來了更新vSAN底層架構的需求,才能適應與發揮當前新一代硬體的效益,並因應用戶端更為複雜的應用環境,以及更多樣化的應用需求。

相較於過去vSAN的原有儲存架構(OSA),新的ESA架構主要改進之處,在於這2個面向:

● 儲存硬體改用NVMe全快閃儲存

vSAN最初是採用SSD結合硬碟的混合儲存架構,vSAN 6.0開始支援全快閃儲存組態,而vSAN 8.0的ESA架構進一步提供了全NVMe快閃儲存組態,

ESA架構也搭配新的儲存池(Storage Pool)管理架構,取代過往vSAN採用的磁碟群組(Disk Group)管理架構,以配合當前主流的NVMe儲存硬體,發揮新一代硬體的效能,同時簡化儲存管理架構的複雜性。

● 提供改進的I/O處理架構,以及資料服務功能

透過日誌結構(log-structured)檔案系統,以及日誌結構物件管理器(object manager)等2大新的軟體元件為核心,提供更具效率的新I/O處理架構,以及改進的壓縮、加密與快照等資料服務功能,並提高RAID-5/6 erasure coding架構的效能。

適應技術變遷的基礎架構升級
當前企業用戶的IT應用環境,相較於VMware開始開發vSAN的2010年代初期,已有非常大的變化,不僅伺服器處理器核心數大幅提高,儲存裝置與網路速度也都更快,用戶的工作負載也更複雜,這也促使VMware在vSAN 8中引進全新的ESA儲存架構,以適應用戶應用型態與硬體環境的變遷。
圖片來源/VMware

vSAN的固態儲存進化之路

在ESA架構提供的新功能中,最重要的部分,便是基於全NVMe SSD配置的儲存組態,是相對於vSAN過往儲存硬體架構的根本性改變。

在VMware開始開發vSAN的2010年代初期,全快閃儲存架構仍十分昂貴,當時的主流儲存架構,是結合SSD與傳統機械式硬碟的混合架構,

因而2014年初問世的vSAN最初版本,便是採用SSD搭配硬碟的混合儲存組態為基準,由SSD作為資料快取層,硬碟作為儲存容量層,並以磁碟群組(disk group)作為磁碟組態的基本單位。每個磁碟群組包含1到7臺用於提供儲存容量的硬碟,搭配1臺快取用SSD。每臺vSAN節點,可包含最多5個儲存群組。

快取層的SSD提供了讀取快取與寫入緩衝功能,系統預設以70%的快取用SSD容量作為讀取快取,30%容量作為寫入快取,快取與寫入緩衝的最大容量上限可達600GB,藉此將可大幅減少前端應用程式直接存取磁碟群組硬碟的機率,從而提高整體I/O效能——儘管硬碟是資料儲存的最終目的地,但是在SSD快取層的中介之下,VM與應用程式端絕大多數的讀、寫I/O需求,都是由快取用SSD來回應,應用程式將能得到SSD等級的效能與延遲。

後來隨著快閃儲存應用的逐步普及,到了2015年初發布的vSAN 6.0版,除了繼續沿用原有的混合儲存組態外,也增加了支援全快閃組態的能力,允許全部使用SSD來構成vSAN的儲存資源,不僅資料快取使用SSD,資料儲存空間也可使用SSD來構成。

不過,vSAN 6.0的全快閃組態仍保留了vSAN原有的磁碟群組管理架構,以及快取層與容量層兩種儲存層級的區分,VMware的建議以速度較快、高耐用的SSD或PCIe SSD卡作為快取層,搭配成本相對較低的大容量SSD作為容量層。另一與先前混合儲存組態不同之處,是vSAN在全快閃組態下,快取層SSD只提供寫入緩衝功能,因而所有讀取I/O,都是直接由容量層的SSD來承擔。

vSAN OSA與ESA架構的差異
vSAN原有架構(OSA)採用快取層與儲存層的雙層架構,以及磁碟群組管理架構,新的ESA架構改用單一NVMe SSD儲存層,與更簡單的儲存池管理架構,可兼顧效能提升與儲存容量利用效率。
圖片來源/VMware

ESA架構的單一NVMe快閃儲存層

而到了2020年代的今日,快閃儲存的應用已更加普及,依照VMware的宣稱,目前的vSAN有70%的比例,都是執行在全快閃SSD陣列上。

但另一方面,雖然早在6.0版的vSAN,就已能支援全快閃儲存組態,然而vSAN既有的磁碟群組架構,並無法充分發揮全快閃組態的優勢。

如前所述,vSAN 6.0的全快閃組態,仍然沿用了快取層與容量層的雙層架構設計,每個磁碟群組中仍必須配置專門快取用的SSD,作為寫入緩衝使用。

問題在於,由於資料快取與資料儲存層同樣都是SSD,除非分別採用效能差距極大的SSD款式,否則,快取SSD提供的寫入緩衝,給整體I/O效能帶來的效益並不大。

也就是說,SSD快取與緩衝功能只能在「SSD+硬碟」混合配置之下,發揮最大效益,在「全部搭配SSD」配置下,效果便大打折扣,反而造成vSAN儲存資源配置上的限制,每個儲存群組依然得專門配置1臺SSD作為快取,既消耗了寶貴的SSD容量,卻又得不到顯著效益。

於是,vSAN 8新發展的ESA架構,徹底捨棄了以往磁碟群組的資料快取與資料儲存雙層架構,改為透過儲存池(storage pool)提供單一NVMe SSD儲存層,利用這種全面NVMe SSD化的組態,讓所有I/O都享有NVMe SSD的高效能,因而不再需要以往的SSD快取與緩衝,所有儲存裝置都可用於提供儲存容量,如此一來,既可發揮當前新一代硬體的效能優勢,同時也有更高的資源運用效率與彈性。

ESA架構的軟體堆疊

vSAN ESA架構在軟體堆疊中引進2項新元件:LFS檔案系統與日誌結構物件管理器,提供了改進的I/O處理架構與資料服務功能,而用戶則仍可以原有的vCenter執行管理。圖片來源/VMware

新的I/O處理架構

配合新的NVMe SSD單一儲存層架構,vSAN 8的ESA架構引進了2項新的軟體元件,藉此改進I/O處理程序。

第1項新元件,是簡稱為vSAN LFS的日誌結構(log-structured)檔案系統,LFS在資料寫入程序中,引進了效能分支(performance leg),以及容量分支(capacity leg)等2個概念,基本上,我們可以把這2個作業分支,理解為寫入程序的2個階段,分別對應以往vSAN快取/緩衝層與儲存層的角色。

其中效能分支提供類似寫入緩衝的作用,LFS首先會接收寫入資料,然後合併資料,並與其meta data打包,一同寫入到用於暫時保存的持久性日誌(durable log),隨後便向上層回覆完成寫入I/O,迅速回應VM端的寫入作業,將寫入延遲降到最低。

而持久性日誌則是以RAID-1鏡像複製方式,將寫入資料複製多份、再分散寫入vSAN叢集多臺節點的多臺SSD上,所以個別主機或SSD的失效,不會影響到寫入資料的完整性。而且,鏡像複製不涉及parity運算,也能提供較高的速度。

隨著持久性日誌資料的累積,LFS為了騰出持久性日誌的空間,用於新寫入資料,會將較舊資料將轉到容量分支。

LFS會將寫入資料的負載本體與meta data拆開,其中資料負載本體儲存在容量分支key value儲存庫,依照用戶設定的不同保護層級(RAID-5、6等),將資料合併為合適的stripe大小,再實際寫入目的地。而meta data先寫入到效能分支的metadata日誌(metadata log),保存一段時間,讓立即可用的metadata盡可能保持在最大數量,當metadata日誌滿載後,再轉為更具空間效率的B-Tree格式儲存。

由於LFS容量分支會合併多個小型寫入I/O,只以完整的stripe大區塊將資料寫入SSD,可發揮「減少寫入I/O數量、避免零碎寫入I/O」的功效,從而達到減少寫入放大、降低CPU處理負荷的效益,連帶也能減少SSD的寫入損耗。

至於效能分支所使用的鏡像複製份數,以及容量分支採用的srtipe數量,都是視用戶設定的系統保護政策而定,前者與用戶設定的系統失效容許數量(FTT)有關,後者則反映RAID類型。

第2項新元件,是為LFS提供儲存作業服務的日誌結構物件管理器(object manager),其下包含了3項主要元件:首先,是提供平行I/O處理作業的I/O平行區塊引擎(parallel block engine);其次,是用於資料與metadata儲存的鍵值(key value)儲存庫,以及用於管理儲存裝置頻寬的IO layer。

由於在ESA架構下,只有NVMe SSD構成的單一儲存層,所以,在物件管理器的控制下,LFS使用一種新的物件格式,在同個物件同時儲存效能分支與容量分支的資料,而底層的每一臺NVMe SSD,也都同時用於LFS效能分支的寫入資料暫存,與LFS分支路程的資料本體儲存,以及metadata儲存用途。

LFS與日誌結構物件管理器,主要都是針對vSAN個別節點內部的I/O處理,而針對跨多臺vSAN節點間的I/O處理,ESA架構則利用vSAN Network Traffic功能,提供智慧化的I/O管理機制,以便讓VM使用的網路流量,與vSAN節點間同步作業使用的網路流量,達到最佳的平衡,可讓每臺vSAN節點自動感知I/O調節,避免vSAN節點間的同步作業導致網路流量的飽和。

LFS檔案系統的I/O處理程序

LFS提供的改進I/O處理程序分為效能分支(Performance Leg)與容量分支(Capacity Leg)等2個階段:

LFS首先將寫入I/O合併、打包後寫入效能分支的持久性日誌中暫存,然後便向VM回覆寫入完成。

效能分支會將資料以鏡像複製方式,分散寫入多臺節點NVMe SSD中的持久性日誌儲存區。

接下來LFS會將持久性日誌中的較舊的資料轉出,先將資料本體與metadata拆開,接著將資料

本體交由容量分支將整併為完整的stripe區塊後,依照不同的RAID設定,分散寫入到多臺節點上。

metadata則先保存在效能分支的metadata日誌,然後再轉為B-Tree形式存放。圖片來源/VMware

改進的資料服務功能

藉由引進LFS檔案系統,ESA架構也將壓縮、加密等資料服務功能,以及checksum檢驗功能,移到軟體堆疊中更高的層級執行,這意味著,在資料寫入底層與分散傳輸到其他vSAN節點之前,就已完成了壓縮、加密與checksun作業,從而可以減少這些作業的CPU與網路負載。

在ESA架構下,壓縮功能是預設啟用,在LFS效能分支與容量分支將資料寫入SSD前,便已完成壓縮(壓縮後再寫入)。用戶可為個別VM啟用基於政策的壓縮功能,每4kB資料區塊的壓縮率,較OSA架構提高4倍。

而加密是在壓縮之後進行,可藉此減少需要加密的資料量,而且由於加密是在上層執行,跨節點之間流動的資料都是已加密的,不像以往架構下,針對跨節點的加密資料傳輸,需執行額外的解密與再加密程序。

除了快照與壓縮方面的改進外,ESA架構還利用新引進的LFS,透過LFS的B-Tree meta data儲存架構,將快照功能改為基於B-Tree、效率更高的尋找表(lookup table)架構,進而可讓快照整併與刪除的速度提高了100倍。

兼具效率與可用性的ESA寫入機制

ESA的LFS檔案系統在不同寫入作業階段,採取不同的寫入機制。

效能分支會將寫入資料以鏡像複製方式,寫入到持久性日誌、metadate日誌與B-Tree中,鏡像複製不涉及parity運算,可提供較高速度,而資料複製的份數則依用戶設定的FTT而定。而容量分支則會以將資料負載本體以完整的Stripe區塊寫入Key vaule儲存庫,stripe切割方式依用戶設定的RAID層級而定。

上圖為FTT=2與RAID-6設定下的圖解,效能分支將資料複製3份再分散寫入到不同節點,容量分支則將資料拆成6個stripe區塊,然後分散寫入到不同節點。圖片來源/VMware

改進的RAID架構

vSAN 8 ESA架構透過引進新的LFS檔案系統與物件格式,不僅改善了I/O處理程序,連帶也改善RAID-5/6 erasure coding模式的效能。VMware宣稱,ESA架構下的RAID-5/6 erasure coding效能,可相當於RAID-1,這意味著用戶不再需要為了確保效能,而選用消耗空間較大的RAID-1,只需使用RAID-5/6 erasure coding,就能兼顧效能與容量節省。

除了憑藉LFS檔案系統所帶來的RAID效能改善,ESA架構還進一步提供了新的模式,稱為自適應(Aadaptive)RAID-5 erasure coding,主要的應用目的,是改善使用RAID-5 erasure coding模式的小規模vSAN叢集空間利用率。

所謂的「自適應」,指的是這種模式可以視vSAN叢集節點數量,自動調整資料配置結構。當應用在規模3到5臺節點的vSAN叢集時,RAID-5 erasure coding會自動使用2+1的資料配置結構(2個資料區塊+1個parity區塊);當應用在6臺節點以上的vSAN叢集時,則使用4+1的資料配置結構。

在以往的OSA架構下,必須建置4節點以上的vSAN叢集規模,才能使用RAID-5 erasure coding,而較小規模的vSAN叢集,大多使用較占空間的RAID-1鏡像複製模式,此時的資料本體加上複本等資料保護機制,會占用掉相當於原始資料量2倍以上的容量;而現在小規模vSAN叢集,透過改用自適應RAID-5 erasure coding,只需耗用相當於原始資料量1.25倍或1.5倍的容量(4+1或2+1資料配置結構),就能達到與RAID-1相同的保護效果與同等效能。

ESA改進的資料服務運作架構

在ESA架構下,壓縮、加密與Checksum檢核作業,都是更高的軟體堆疊層中完成,在LFS完成資料寫入作業前,就先行完成了這些資料服務作業,從而可減少CPU負荷與I/O放大,也減少了跨節點網路傳輸作業的頻寬需求。散寫入到不同節點。圖片來源/VMware

vSAN架構的全面「重構」

當前vSAN的底層I/O架構與主要的資料服務功能,其實是延續自6.x版的基礎上,6.0版提供了新的VMFS-FS檔案系統與新的磁碟格式,以及vSAN自身的vsanSparse快照,6.2版新增支援Erasure Coding組態,並引進壓縮、重複資料刪除與靜態加密功能等。至於後來的7.0.x版,主要更新重點放在擴展支援能力,以及管理功能的改進,例如增加原生的檔案存取服務,改進對於Kubernetes,至於底層I/O架構與資料服務功能方面的更新,著墨並不多,只有7 update1版新增傳輸加密,以及關閉重複資料刪除、僅啟用壓縮的選項等。

這也就是說,vSAN 8.0所引進的ESA架構,是自vSAN 6.x版以來,時隔6年多後,首次進行的底層I/O架構與資料服務功能大翻新。

但從另一方面來看,嚴格來說,ESA架構的重點並不是為vSAN提供「全新功能」,而是提供核心的「重構」,換句話說,是透過新的核心,讓相同的功能運行得更有效率。ESA架構提供的功能,其實沒有超過vSAN 6.x版的範疇,關鍵在於ESA是以新的底層架構,來提供相同的功能。

舉例來說,早在vSAN 6.0版,就已支援了全快閃儲存組態,並提供vSAN原生的快照功能,接著在6.1版開始支援NVMe SSD,壓縮功能,以及RAID-5與RAID-6 Erasure Coding架構,都是6.2版時便已提供。

而ESA架構雖然同樣是支援NVMe SSD,但同時也改用單一NVMe快閃儲存層的新框架,進而達到簡化管理、提高效能的目的。類似的,ESA架構透過基於LFS檔案系統而成的新軟體核心,以更有效率的方式,來提供快照、壓縮、加密,以及RAID-5/6 Erasure Coding等既有功能。

反過來說,以往的vSAN OSA架構,即便採用同樣的全NVMe硬體,但受到舊的核心架構制約,效能與便利性也無法與ESA相比擬。

但另一方面,由於ESA架構是專門針對NVMe全快閃儲存環境設計,對於硬體的要求較高,用戶得準備全面配置NVMe SSD、且已通過ESA相關認證的vSAN ReadyNodes主機,以及vSAN Advanced版授權。所以VMware也未要求vSAN 8一定要使用ESA架構,而只是作為一個選項,用戶仍然可以選用以前的OSA架構。但若條件足夠,我們認為用戶務必優先採用ESA架構,以發揮新一代硬體的效能。

概觀vSAN快照功能的演進
vSAN 8的ESA架構提供了更有力的全新快照功能,可以克服vSphere與vSAN原有的快照功能的局限,提供更靈活的資料保護與複本應用

自vSphere平臺的誕生以來,快照這項技術,便被作為一種快速的資料保護與還原手段。但vSphere的快照功能一直存在許多限制,例如,快照運作的凍結時間與效能衝擊、快照整合作業的負擔,以及快照的應用規模有限等。

而vSAN 8 ESA架構中的快照功能,是vSphere平臺的第3代快照功能,克服了以往vSphere快照在應用規模、效能方面的問題,成為一項更有力的工具。

vSphere與vSAN快照功能的演變

在VMFS 5以前,vSphere採用的是VMFSsparse快照,主要是基於VMFS檔案系統的redo-log異動日誌來運作,屬於copy-on-write型式的snapshot技術,但有著2TB磁碟容量(VMDK)的上限,而自VMFS 5開始,可以應用在超過2TB的磁碟上。

從VMFS 6起,vSphere引進了略為改進的VMFS SEsparse快照,改善空間效率,並降低快照合併,以及連續使用下的效能影響,然而,此時仍不適合大規模、長時間使用。理論上,VMFS快照允許為每個VM建立最多32份快照,但VMware建議,最多只使用2至3份快照,且不要連續啟用快照超過48小時,並避免對延遲敏感性高的VM負載,使用深度的快照鏈(deep snapshot chains)。所謂的深度快照鏈是指,對一個來源端磁碟連續執行多次快照後,所形成一連串彼此相依的多份快照。

與vSphere 5.5一同推出的最初版本vSAN,直接沿用了VMFS快照,直到vSAN 6.0,VMware才引進vSAN自身的vsanSparse快照,改用redirect-on-write型式的快照技術,擴展了快照應用規模,可為每個VM提供完整的32份快照,並透過記憶體快取改善了快照讀取效能,但快照導致的凍結時間,以及長時間運行後的快照合併,仍然是個問題。

而vSAN快照功能的侷限,也制約了快照應用面向。今日的企業用戶,不僅只希望將快照用於備份與資料保護,還希望能夠對目標磁碟執行更多快照,並將快照保留更長的時間,以便支援自動化的持續作業,例如複本資料管理(Copy Data Management),以及軟體開發的持續整合/持續交付(CI/CD)。

ESA架構下的全新快照功能

到了vSAN 8引進的ESA架構,則藉由ESA引進的LFS檔案系統,改用了全新的快照運作架構。

ESA所用的快照,並不像早先版本的快照是基於redo-log異動日誌——由基礎(Base)磁碟加上增量磁碟組成的鏈型(chain)架構,而是利用LFS檔案系統的B-Tree型式meta data存放架構,提供效率更高的尋找表(lookup table)架構,透過metadata記錄的資料指針,可迅速找出對應於不同快照的資料區塊,減少快照導致的凍結時間,連續執行大量快照對系統效能的影響也大為減少,還免除了傳統快照的合併與刪除作業中,所帶來的運算與資料搬移作業。

對於傳統的redo-log架構快照處理來說,大量累積的異動資料都是位於快照產生的增量磁碟中,若要刪除快照或將快照整併到基礎磁碟時,便會帶來龐大的資料搬移作業,因而快照的刪除、合併與整合,是傳統快照最消耗資源,但卻也是最常見的作業。

而對ESA的快照來說,刪除快照或合併主要都是metadata方面的作業。舉例來說,刪除快照在邏輯上是立即生效的,稍後系統會於背景再實際刪除metadata與資料本體。這樣的特性,對於基於快照的SRM與遠端複製作業,都能帶來顯著的效能改善。而基於VADP API的VM備份軟體,在搭配ESA架構的vSAN叢集的時候,也將自動改用效率更高的ESA快照。

理論上,ESA的快照是沒有數量限制的,但受vSphere平臺的限制,每個物件可建立的快照數量,仍與先前版本vSAN同樣是32份。

ESA改進的快照功能

ESA架構基於LFS檔案系統提供了新的快照運作方式,可減少快照導致的停滯等待時間與效能衝擊,並大幅提高了快照刪除與整併的效率。圖片來源/VMware

熱門新聞

Advertisement