天天看點

雲存儲網關的緩存最佳實踐

前言

雲存儲網關支援通過傳統的檔案協定(SMB/NFS)來通路OSS Bucket裡面的資料,并能夠通過緩存技術将使用者頻繁通路的熱點資料保留在網關側的緩存盤裡,進而提供給使用者更好的通路體驗。使得使用者在享受雲上海量OSS存儲空間的同時,還兼具本地的高速通路性能。下面是阿裡雲檔案網關的架構圖。

雲存儲網關的緩存最佳實踐

使用者在使用阿裡雲雲存儲網關時,經常會碰到一些緩存相關的問題,比如在建立共享時如何選擇緩存盤的容量和類型,比如緩存的資料淘汰政策是什麼等。本文接下來的内容将結合緩存盤的工作原理來解開這些困惑。雲存儲網關根據支援的協定的不同,分為支援NFS/SMB檔案協定的檔案網關和支援iSCSI協定的塊網關。它們兩者的緩存工作機制是不一樣的,本文主要針對的檔案網關。

工作原理

檔案網關支援緩存模式和複制模式兩種模式,絕大部分使用者使用的應該都是緩存模式。緩存模式是指緩存盤的資料到一定比例之後,檔案網關會自動淘汰那些通路不頻繁的資料。在這種模式下,固定容量的緩存盤可以管理遠遠大于緩存盤實際容量的OSS Bucket。複制模式則不同,資料在網關側和OSS Bucket裡面是1:1的,是以網關不會去做資料的淘汰,一定容量的緩存盤理論上隻能管理對應于緩存盤容量的OSS Bucket。複制模式針對的場景主要是OSS Bucket總資料量基本不會增長且總資料量不是特别大,同時希望将所有資料都保持在網關共享裡加速通路。不過這種場景畢竟在少數,絕大多數使用者會選擇緩存模式以應對日後OSS Bucket裡面的資料增長。

雲存儲網關的緩存最佳實踐

在緩存模式下,緩存盤的資料會在60%滿的時候觸發淘汰直到實際資料量落到60%以下,進而保證永遠有足夠的緩存容量面對新的資料寫入。那麼淘汰的政策是如何的呢,如何決定哪些資料是可以淘汰的呢?檔案網關淘汰的實際上是已經同步到OSS Bucket裡面的檔案,也就是說對某個檔案的最後一次修改應用到網關的SMB或者NFS共享之後,并且網關已經将這個檔案上傳到OSS Bucket裡面,那麼這個檔案就是可以淘汰的。如果使用者還在持續的對某個檔案進行寫入,這個檔案是不會被選為一個淘汰的對象的。是以使用者如果同時打開多個檔案進行寫入,緩存盤的容量就應該比同時在寫的所有檔案的總容量要大,否則就有可能導緻資料來不及淘汰而造成寫入錯誤!!!

在複制模式下,因為資料不會發生淘汰,相對來說就簡單很多。緩存盤的容量比OSS Bucket裡面的總資料大就可以,這種模式注定它不可能管理特别大的資料量,因為目前支援的緩存盤的最大容量32TB。是以除非對複制模式有強需求,還是推薦使用緩存模式,相對來說更加靈活。

另外檔案網關會預留一部分緩存盤空間存儲中繼資料,一般會預留20%。這部分中繼資料主要是用來存儲單個檔案的中繼資料,包括大小,修改時間等等。是以即使某個檔案的資料被淘汰之後,網關還是存儲了一個樁檔案在中繼資料裡,這樣使用者從用戶端進行檔案夾浏覽的時候,還是能夠看到資料被淘汰掉的這個檔案,給使用者一緻的體驗。使用者如果試圖讀取這個檔案内容,網關會負責将資料再次從OSS Bucket裡擷取到緩存盤裡面。這部分中繼資料空間關系到目前共享可以支援的最大檔案數目,畢竟40GB的緩存盤的中繼資料空間肯定低于50GB的緩存盤的中繼資料空間。一般來說100G的緩存盤已經可以支援到1000萬檔案了。

注意事項

了解緩存的工作原理之後,下面這些其實都比較好了解了。

如果你的業務對帶寬和IOPS的要求比較高,比如跑的資料庫之類的對時延要求比較高的業務,那麼可能SSD類型的緩存盤更适合,因為它擁有更好的帶寬和IOPS。SSD類型的緩存盤的帶寬和IOPS都會比高效雲盤更優秀,SSD緩存的最高IOPS可以到25000,高效雲盤緩存是5000,帶寬方面SSD緩存最高可以到300MB,高效雲盤緩存的帶寬最高可以到140MB。

容量的選擇主要和并發數和最大檔案大小有關。緩存盤的可用容量(需要扣除中繼資料空間)需要大于并發數和最大檔案大小的乘積,這樣才不會造成資料寫入錯誤。當然越大的緩存盤本地能夠緩存的熱資料量也就越多,總體來說性能會更好。是以如果希望能夠獲得比較好的性能,緩存盤還是要設定的稍微大一些。

雲存儲網關的控制台現在也提供了非常友善的電腦,根據使用者輸入的IOPS和帶寬需求等可以作出合适的緩存容量和類型的推薦。結合我們前面講的對照看下圖中每一個條目,相信很好了解。

雲存儲網關的緩存最佳實踐

小結

本文介紹了雲存儲網關檔案網關的緩存工作原理,包括緩存盤中繼資料空間管理,資料淘汰政策等,旨在解答使用者在選擇和使用緩存盤時遇到的一些問題。