云存储网关提供了NFS/SMB协议的访问接口可以访问阿里云对象存储。阿里云对象存储里面的对象有标准/低频/归档几种类型,这几种类型的存储各有特点,对于写入一次访问很少的数据,归档类型具有最高的性价比。云存储网关后端也支持这几种存储类型从而提高更好的TCO,在利用云存储网关实现数据分层存储里已经介绍了网关对接多种存储类型的实践。OSS归档文件是不支持直接读取的,如果偶尔想要访问一下归档文件,必须首先要执行解冻的操作,操作需要大概60s的时间窗口,体验不是很友好。云存储网关针对NFS共享提供了一种解决方案能够自动帮助用户执行解冻的动作,用户可以像访问正常的文件一样访问归档的文件而不会出现任何出错。下面我们就一起来看一看吧。
实践
我们在网关里面首先创建一个NFS共享,这个共享后端对应一个标准型的OSS Bucket。网关虽然支持直接对接归档Bucket,但是更友好的还是用标准Bucket然后以生命周期的方式来转换存储类型为归档类型。主要是因为文件上传到归档Bucket之后初始类型就是归档文件,然后很多备份软件会新写一个临时文件再重命名的方式来工作,网关对重命名的操作的回放是调用的oss_obj_api来实现的,而这个api要求源obj不能是归档对象,否则需要解冻。所以直接使用归档Bucket有时候并不理想,因为每个重命名动作都可能引起一个文件的解冻,比较理想的还是以生命周期的方式来将一段时间之前的文件转成归档存储。
下图是对应的OSS Bucket的生命周期相关设置。这里我们设置成了3天之后自动转成归档存储从而降低成本。
最后我们来体验一下通过网关对归档文件的访问。我们在OSS Bucket里面放了一个归档文件archive.txt。
通过NFS客户端挂载上对应的共享之后,然后对该文件执行一下cat命令进行访问,可以看到完全没有问题。因为归档文件还是有一个解冻的过程,所以感觉访问文件的速度有些慢,这个是无法避免的,其实就是网关自动做了一个解冻的过程。但是在解冻之后数据就会缓存在缓存盘里面了,没有被淘汰之前,即使后端的OSS文件又自动转成了归档类型,应用程序还是能通过缓存盘快速的进行访问。
当前透明读取归档文件功能主要在NFS共享上支持,在SMB共享上是不支持的,主要是NFS协议可以允许长时间的延时。不过针对SMB共享,网关也做了一定优化。虽然SMB共享的话读取归档文件就会碰到下面的错误,但是网关已经自动帮着执行了解冻动作,等几十秒再访问你会发现文件就可以打开了!!!
小结
本文通过具体的例子展示了云存储网关NFS共享所支持的对OSS Bucket里面归档文件的透明读写功能。对于SMB共享虽然不能完全支持透明读写功能,但是也能够帮助用户自动执行解冻过程。如果你有这方面的需求,赶紧来试一试吧。