背景
网关网关提供了从OSS到NAS协议转换,依托于OSS的稳定性和经济性,降低了用户的使用成本,又具备了传统NAS的易用性和POSIX兼容性,可以与用户的已有应用无缝对接,满足了中小企业客户的需求。随着企业规模的增大,用户的分支机构也增多,多地共享数据的需求也逐渐凸显。云存储网关上线一年多的时间里,不断的在收集用户的需求,推出新的功能,解决用户的痛点。今天我们就来看一下网关是如何解决多地共享数据这个难题的。
网关协同场景一
如果用户使用同一个区域的线上网关共享数据,并且在不同网关间进行负载均衡。如下图,就是一个典型的同区域的多网关高效共享Bucket数据的拓扑图。
线上网关在同一个VPC内,或者通过云企业网打通,通过VPC endpoint高速访问OSS,可以将文件快速上传至OSS。这里的难点是如何将其他网关的上传文件信息推送给其他网关,让每个网关在最短的时间内可以看到相同的共享数据的视图。极速同步功能为共享的Bucket创建OSS事件通知规则,并创建对应的MNS消息主题和消息队列,当网关有文件上传到OSS时,OSS会匹配事件通知规则,将该文件的变更信息以MNS消息的方式投递到MNS消息主题,消息主题会分发消息给订阅的各个消息队列,同步组的每个共享监听和接收对应的消息队列的消息。共享解析获取到的消息,再从OSS上获取对应对象的完整元数据信息,实现了增量的同步更新。由于MNS也在同一个区域内,网关可以通过MNS VPC endpoint接收消息,时延很小。在批量上传的场景下,网关可以多路并发接收消息,每秒可以处理上千个OSS通知消息,实现高效极速同步。
网关协同场景二
在更加复杂的协同办公环境下,文件网关还有可能部署在线下机房,通过专线或者公网访问OSS,如果考虑到多地跨区域共享的话,异地的文件网关只能通过广域网发起访问,拓扑图如下:
如果线下机房有专线连接阿里云,只要配置好OSS endpoint,就能在同一个VPC内高速访问OSS;如果线下机房只能公网访问阿里云,配置网关共享的时候只能选择公网OSS endpoint作为访问点。同样的,跨地域的网关想要访问OSS,创建共享的时候需要勾选跨域选项,这时候选择OSS所在区域的公网endpoint。由于公网复杂多变,有时延高,带宽受限,网络抖动等诸多限制,如果要共享Bucket中的数据,用扫描Bucket对象的方式去同步元数据,是相当低效的。极速同步功能的推出,将共享从公网定期扫描云上对象的泥潭中解放出来,用增量的方式去及时获取云上数据的变化,无惧Bucket中有海量数据的事实,轻松在秒级获取最新的元数据。实验数据表明,在线下或者跨域公网访问MNS消息队列时,并发处理OSS事件消息的数量可以达到百级,除了初始的全量扫描之外,避免了后续全量扫描文件的开销,满足了大部分广域网协同共享数据的需求,具体的拓扑图如下:
小结
本文分别从同VPC多网关共享数据和线下/跨域网关通过公网共享数据这两个典型的场景分析了全量扫描同步元数据的挑战以及利用云存储网关的极速同步功能如何有效解决这个问题,极速同步让多网关间秒级同步共享,高效协同成为现实。