開發與維運

雲存儲網關共享透明讀寫OSS歸檔文件

雲存儲網關提供了NFS/SMB協議的訪問接口可以訪問阿里雲對象存儲。阿里雲對象存儲裡面的對象有標準/低頻/歸檔幾種類型,這幾種類型的存儲各有特點,對於寫入一次訪問很少的數據,歸檔類型具有最高的性價比。雲存儲網關後端也支持這幾種存儲類型從而提高更好的TCO,在利用雲存儲網關實現數據分層存儲裡已經介紹了網關對接多種存儲類型的實踐。OSS歸檔文件是不支持直接讀取的,如果偶爾想要訪問一下歸檔文件,必須首先要執行解凍的操作,操作需要大概60s的時間窗口,體驗不是很友好。雲存儲網關針對NFS共享提供了一種解決方案能夠自動幫助用戶執行解凍的動作,用戶可以像訪問正常的文件一樣訪問歸檔的文件而不會出現任何出錯。下面我們就一起來看一看吧。

實踐

我們在網關裡面首先創建一個NFS共享,這個共享後端對應一個標準型的OSS Bucket。網關雖然支持直接對接歸檔Bucket,但是更友好的還是用標準Bucket然後以生命週期的方式來轉換存儲類型為歸檔類型。主要是因為文件上傳到歸檔Bucket之後初始類型就是歸檔文件,然後很多備份軟件會新寫一個臨時文件再重命名的方式來工作,網關對重命名的操作的回放是調用的oss_obj_api來實現的,而這個api要求源obj不能是歸檔對象,否則需要解凍。所以直接使用歸檔Bucket有時候並不理想,因為每個重命名動作都可能引起一個文件的解凍,比較理想的還是以生命週期的方式來將一段時間之前的文件轉成歸檔存儲。
image.png

下圖是對應的OSS Bucket的生命週期相關設置。這裡我們設置成了3天之後自動轉成歸檔存儲從而降低成本。
ar2.png

最後我們來體驗一下通過網關對歸檔文件的訪問。我們在OSS Bucket裡面放了一個歸檔文件archive.txt。
image.png

通過NFS客戶端掛載上對應的共享之後,然後對該文件執行一下cat命令進行訪問,可以看到完全沒有問題。因為歸檔文件還是有一個解凍的過程,所以感覺訪問文件的速度有些慢,這個是無法避免的,其實就是網關自動做了一個解凍的過程。但是在解凍之後數據就會緩存在緩存盤裡面了,沒有被淘汰之前,即使後端的OSS文件又自動轉成了歸檔類型,應用程序還是能通過緩存盤快速的進行訪問。
ar4.png

當前透明讀取歸檔文件功能主要在NFS共享上支持,在SMB共享上是不支持的,主要是NFS協議可以允許長時間的延時。不過針對SMB共享,網關也做了一定優化。雖然SMB共享的話讀取歸檔文件就會碰到下面的錯誤,但是網關已經自動幫著執行了解凍動作,等幾十秒再訪問你會發現文件就可以打開了!!!
a5.png

小結

本文通過具體的例子展示了雲存儲網關NFS共享所支持的對OSS Bucket裡面歸檔文件的透明讀寫功能。對於SMB共享雖然不能完全支持透明讀寫功能,但是也能夠幫助用戶自動執行解凍過程。如果你有這方面的需求,趕緊來試一試吧。

Leave a Reply

Your email address will not be published. Required fields are marked *