前言
在文章云存储网关共享透明读写OSS归档文件,介绍了云存储网关的NFS共享可以支持对OSS归档文件的透明读写。透明读取虽然很棒,但是因为读取的时候需要解冻,所以IO有可能会有几十秒的延时。实际上对于NFS共享,云存储网关还有更丰富的归档相关功能支持,通过网关提供的GLI管理工具,可以对某个文件就行归档状态查询/设置/解冻等等,这样就可以提前规划对归档文件进行解冻而避免读取时的延时。也很方便的可以做到对某个文件夹下面的文件进行批量的归档设置或者查询。下面我们就直接来体验一下吧。
配置实战
首先创建一个NFS共享,归档管理功能当前只在NFS共享上支持,因为网关在每个文件都存储了一部分额外的归档设置相关信息,需要不少额外的资源,所以当前只在标准型以及更高的型号支持。通过勾选“归档支持”就可以创建一个能够用CLI进行归档管理的共享了。
按照网关的创建向导一步步走下去,我们创建出了一个NFS共享。
本质上设置归档以及解冻的动作仍然是在OSS侧完成,网关也是借助了OSS的标签功能从而提供了CLI可以方便的做归档管理。这里我们按照网关的帮助手册在对应的OSS Bucket进行了生命周期的相关配置。“转换到归档型存储”的时间决定了大概多久之后带有标签的文件会被转为归档类型。
接下来我们就可以挂载共享并尝试使用网关提供的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去查看可以看到文件已经被设置上正确的标签了。所以放心的等上一天之后再来查询吧,你会看到文件已经变成归档了。
批量操作
有了这么方便的工具,我们配合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来对网关里面的文件就行归档以及解冻等动作,对某个文件夹下面所有文件进行批量操作也是非常的便捷。