背景
阿里云云存储网关支持以传统文件访问协议(NFS/SMB)来访问阿里云对象存储服务,网关通过暴露一个文件共享来和后端的OSS Bucket映射。用户操作对应的文件共享也就相当于在相应的OSS Bucket上进行操作,大大的便利了习惯于传统的文件协议的用户。另外云存储网关还通过缓存技术,将一部分热数据缓存在共享对应的缓存盘里,不用每次读请求都到OSS Bucket里获取数据,而是直接返回网关已经缓存的数据,不用每次写请求都写入到OSS Bucket,而是缓存数据在网关里,最后一次性写入到OSS Bucket里,大大提高了效率。
在网关1.1.21版本之前,单共享和一个OSS Bucket是一一对应的,也可以对应OSS Bucket里面的一个子目录。这样的模型好处是比较简单,容易理解。但是也有一定的局限性,比如:
- 业务需要管理多个OSS Bucket,在之前的模型下,只能创建多个共享并挂载到应用服务器上,略显繁琐。
- 业务需要增加新的OSS Bucket,需要新建一个共享,但是实际上网关管理的共享数目是有限制的,即使每个OSS Bucket里面数据都很少,也很容易达到上限。
- 业务需要切换OSS Bucket,在以前的模型下,需要新建一个共享,并从旧的共享拷贝数据过去,最后还需要有一个切换共享挂载点的过程,无法做到挂载点不变。
在单共享能够管理多个OSS Bucket的情况下,这些问题都可以解决。多个OSS Bucket可以通过一个共享来管理,提供单一的挂载点。当需要增加新的OSS Bucket时,只需要在GUI上进行简单的配置,在共享目录里面就可以访问新的OSS Bucket了。当需要切换OSS Bucket时,可以同时管理新旧OSS Bucket从而进行数据的拷贝,同时维持共享挂载地址不变。
实践
下面我们通过具体的实践来体验一下完整的操作流程。需要注意的是当前单共享支持多OSS Bucket功能只在增强型以及以上的网关才支持该功能,同时需要提交工单开通白名单。整个配置过程非常的简单,我们只需要在创建共享的时候选择“启用多Bucket支持”选项即可。在这里我们创建了一个NFS共享,能够管理账号下位于杭州的所有OSS Bucket,这里我们只选择了其中的两个Bucket。
下面我们试试从客户端挂载一下这个共享。下图就是我们挂载成功之后的截图。我们看到共享的顶层目录里面有两个子文件夹,其实就是对应我们创建共享时候的两个OSS Bucket。进入这两个子目录之后,就可以操作对应的OSS Bucket了。
动态增加和动态移除OSS Bucket都是支持的,设置也很容易,在共享的高级设置菜单里进行设置。动态添加一个Bucket,网关则会自动创建出来一个顶层的和Bucket同名的文件夹。当OSS Bucket里面数据比较多时,动态移除OSS Bucket可能会比较耗时。因为动态移除需要清理掉网关缓存盘里存储的相关数据和元数据,当Bucket里面的文件数目达到百万或者千万的时候,清理元数据是需要一定时间。整个清理的过程是异步在后端执行的,当整个清理工作完成后,共享里面对应OSS Bucket的文件夹才会消失。
通过上面的流程可以知道,整个创建或者设置过程还是非常简单的。在单一个共享里面管理多个OSS Bucket,使得数据在多个Bucket之间流动也变得非常的方便,我们可以很方便的将一整个目录通过一条简单的mv命令就从一个OSS Bucket挪到另一个OSS Bucket里面。
小结
本文介绍了阿里云云存储网关的单共享支持多OSS Bucket功能,同时通过具体的实践操作进行了进一步的展示。通过单共享绑定多个OSS Bucket,使得用户可以很容易的通过单一的文件共享挂载点管理多个OSS Bucket。和以前相比,管理有了很大的简化,但是从功能上来说更加的强大。