開發與維運

雲存儲網關NFS共享歸檔管理

前言

在文章雲存儲網關共享透明讀寫OSS歸檔文件,介紹了雲存儲網關的NFS共享可以支持對OSS歸檔文件的透明讀寫。透明讀取雖然很棒,但是因為讀取的時候需要解凍,所以IO有可能會有幾十秒的延時。實際上對於NFS共享,雲存儲網關還有更豐富的歸檔相關功能支持,通過網關提供的GLI管理工具,可以對某個文件就行歸檔狀態查詢/設置/解凍等等,這樣就可以提前規劃對歸檔文件進行解凍而避免讀取時的延時。也很方便的可以做到對某個文件夾下面的文件進行批量的歸檔設置或者查詢。下面我們就直接來體驗一下吧。

配置實戰

首先創建一個NFS共享,歸檔管理功能當前只在NFS共享上支持,因為網關在每個文件都存儲了一部分額外的歸檔設置相關信息,需要不少額外的資源,所以當前只在標準型以及更高的型號支持。通過勾選“歸檔支持”就可以創建一個能夠用CLI進行歸檔管理的共享了。
am1.png

按照網關的創建嚮導一步步走下去,我們創建出了一個NFS共享。
am2.png

本質上設置歸檔以及解凍的動作仍然是在OSS側完成,網關也是藉助了OSS的標籤功能從而提供了CLI可以方便的做歸檔管理。這裡我們按照網關的幫助手冊在對應的OSS Bucket進行了生命週期的相關配置。“轉換到歸檔型存儲”的時間決定了大概多久之後帶有標籤的文件會被轉為歸檔類型。
am3.png

接下來我們就可以掛載共享並嘗試使用網關提供的CLI工具sgw_archive_util啦。將該工具下載到本地並配置好執行權限。

[root@hangzhoutestclient0 ~]# mount 172.16.159.140:/test-archive /mnt/test/
[root@hangzhoutestclient0 ~]# wget -O sgw_archive_util http://gosspublic.alicdn.com/sgw/sgw_archive_util?spm=a2c4g.11186623.2.22.105d4d81tqCpQ6
[root@hangzhoutestclient0 ~]# chmod a+x sgw_archive_util`

sgw_archive_util主要有三個小功能,分別可以查詢/設置歸檔屬性以及解凍。

我們首先試試查詢命令,可以看到不同的歸檔狀態。

[root@hangzhoutestclient0 ~]# ./sgw_archive_util -q /mnt/test/archive_file
State: archive
[root@hangzhoutestclient0 ~]# ./sgw_archive_util -q /mnt/test/normal_file
State: normal

對於歸檔文件,可以用下面的命令就行解凍,最終文件可以變成restored狀態。

[root@hangzhoutestclient0 ~]# ./sgw_archive_util -r /mnt/test/archive_file
[root@hangzhoutestclient0 ~]# ./sgw_archive_util -q /mnt/test/archive_file
State: restoring
[root@hangzhoutestclient0 ~]# ./sgw_archive_util -q /mnt/test/archive_file
State: restored

最後通過下面的命令可以設置歸檔功能。

[root@hangzhoutestclient0 ~]# ./sgw_archive_util -a /mnt/test/normal_file
[root@hangzhoutestclient0 ~]# ./sgw_archive_util -q /mnt/test/normal_file
State: normal

你可以能會有一個疑問,為什麼設置了歸檔之後,文件的狀態仍然是正常的。這主要是因為網關是通過在文件上設置Tag的方式來配合OSS生命週期異步執行歸檔的。文件上正確的設置了標籤之後,經過一定時間(前面“轉換到歸檔型存儲”所定義的值)之後就會異步自動轉成歸檔存儲了。如果通過ossutil去查看可以看到文件已經被設置上正確的標籤了。所以放心的等上一天之後再來查詢吧,你會看到文件已經變成歸檔了。
am4.png

批量操作

有了這麼方便的工具,我們配合linux下面的find命令可以很容易的實現文件夾下面所有文件的解凍或者歸檔。我們在文件夾下面準備了下述幾個歸檔文件。

[root@hangzhoutestclient0 ~]# ./sgw_archive_util -q /mnt/test/archive_file
State: archive
[root@hangzhoutestclient0 ~]# ./sgw_archive_util -q /mnt/test/dir1/archive_file
State: archive
[root@hangzhoutestclient0 ~]# ./sgw_archive_util -q /mnt/test/dir2/archive_file
State: archive

然後通過find命令以及sgw_archive_uitil命令來對所有文件執行解凍。

[root@hangzhoutestclient0 ~]# find /mnt/test -type f -exec ./sgw_archive_util -q {} ;
State: archive
State: archive
State: archive
State: normal
[root@hangzhoutestclient0 ~]# find /mnt/test -type f -exec ./sgw_archive_util -r {} ;
[root@hangzhoutestclient0 ~]# find /mnt/test -type f -exec ./sgw_archive_util -q {} ;
State: restoring
State: restoring
State: restoring
State: normal

是不是很方便呢?很容易就完成了文件夾下面的所有歸檔文件的解凍,對不對?

小結

本文具體展示了雲存儲網關的歸檔管理相關功能。通過結合OSS Bucket的標籤和生命週期功能,網關可以通過專有的CLI來對網關裡面的文件就行歸檔以及解凍等動作,對某個文件夾下面所有文件進行批量操作也是非常的便捷。

Leave a Reply

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