通过云存储网关实现阿里云对象存储跨地域访问

  1. 云栖社区>
  2. 阿里云存储服务>
  3. 博客>
  4. 正文

通过云存储网关实现阿里云对象存储跨地域访问

xiaoli_test 2019-01-10 19:01:25 浏览1441

某客户在阿里云的上海地域内有一台位于VPC内部的ECS,想访问同一阿里云账号下位于北京地域的一个OSS Bucket里面的数据,同时又希望走阿里云的内网流量以享受内网的带宽。因为北京上海属于不同的地域,所以如果使用ossutil或者ossfs这样的工具进行Bucket里面的文件的直接访问,只能走公网的Endpoint,不满足客户的需求。我们知道阿里云的云企业网或者高速通道产品提供了VPC之间的私网连接,那么在云企业网或者高速通道存在的情况下,是否可以通过OSS的内网Endpoint进行访问呢?遗憾的是在这种情况下,在上海的ECS内部仍然没有办法直接访问北京的OSS Bucket的内网的Endpoint。好消息是在云企业网或者高速通道存在的情况下,不同地域的网络实际上已经打通,我们可以利用云存储网关进行OSS Bucket里面的数据访问,而且走的是内网流量,完全满足客户的需求。

云存储网关

云存储网关是一款可以部署在用户IDC和阿里云上的网关产品。它以阿里云对象存储(OSS)为后端存储,为云上和云下应用提供业界标准的文件服务(NFS和SMB)和块存储服务(iSCSI),具体可见云存储网关的产品介绍在云企业网或者高速通道存在的情况下,我们利用云存储网关访问不同地域的OSS的数据的架构如下图所示。

24b75af206c5996d3c54624fead0d40289222dc9

配置实战

下面我们通过一台位于上海VPC内部的ECS和北京的OSS Bucket的例子来展示整个配置过程。上海的ECS的私网IP是172.31.202.106,北京的OSS Bucket的名称是test-bucket-sydney-1229。

配置云存储网关

首先我们需要在北京创建一个云存储网关,创建的过程很简单。首先我们需要开通云存储网关服务 ,然后可以直接参考云存储网关的帮助手册创建一个网关。如果需要NFS/SMB协议访问,则需要创建文件类型的网关。如果需要iSCSI协议访问,则需要创建块网关。如果希望能够访问以前通过其他手段上传到OSS里面的存量数据,推荐使用文件网关。因为不同于文件网关,块网关只能够访问通过块网关上传到OSS Bucket的数据,通过其他手段上传到OSS Bucket的文件是没有办法通过iSCSI协议访问的。这里我们创建了一个文件网关,它的私网IP172.27.151.200。然后根据帮助手册配置缓存盘配置OSS资源,最后配置了一个NFS共享,这个共享绑定到了北京的OSS Bucket test-bucket-sydney-1229

c39f5ac5e2705dc0f21a3db635f1751e5fe19bec

需要注意的是在配置OSS资源的过程中,因为我们期望的数据要走内网,所以在绑定云资源的时候,我们的区域要选择内网,不要错误的选择为公网而导致产生外网流量。

01be1b4d80ca6cc0dbd0d8df6711ce93ab4a1330

在创建NFS共享的过程中,如果需要访问已经存在于OSS Bucket中的数据,我们需要设置反向同步选项,这样网关就会去OSS Bucket上将元数据同步到本地,我们就可以通过网关上的NFS共享来访问原来存在于OSS Bucket里面的存量数据。另外,模式保持默认的缓存模式。这样云存储网关会只保存热数据在本地,冷数据本地只存有元数据,数据会按需去OSS Bucket上抓取,这一切对用户都是透明的。

ae7a72c60e6f89a043060f645d3423de59260aa5

经过配置缓存盘,配置云资源,创建NFS共享这简单的三步之后,网关侧的配置就完成了。如果你在北京有和云存储网关在同一VPCECS,应该已经可以直接挂载NFS共享进行数据访问了。

配置云企业网

因为我们的目标是让上海的ECS能访问位于北京的OSS Bucket,所以接下来需要打通上海和北京的网络,在这里我们选择的是云企业网。云企业网的配置很简单,具体可以参考云企业网同账号VPCVBR互通。通过简单的几步之后,我们就连接了上海ECS所在的VPC和北京云存储网关所在的VPC。配置成功之后我们在云企业网的控制台就可以看到互通的VPC

d2bdfb58152d2ee42b6ac3ed58486a0756ea88de

跨地域的情况下我们必须购买带宽包用来满足业务的带宽需要。在购买带宽包的时候,区域的选择需要参考什么是云企业网。在当前的例子中,上海和北京都属于中国大陆区域。如果需要跨国访问,选择对应的互通区域购买带宽资源包即可。

c79f402285bccef53b7c91d595bcc7d618e9d972

配置云存储网关安全组

当云存储网关和云企业网都配置完成之后,我们可以登陆到上海的ECS里面通过telnet命令”telnet 172.27.151.200 111” 去试着连接网关提供NFS协议的一个端口111,来验证连接是否有问题。绝大部分情况下,连接是有问题的,除非不同区域的两个VPC恰巧在同一网段。这是因为为了安全性考虑,云存储网关默认只允许创建时候指定的VPC内部的ECS主机访问。但是我们可以通过配置网关的安全组来实现跨VPC访问。我们可以在北京地域的ECS控制台里的安全组选项里找到云存储网关的安全组”Cloud_Storage_Gateway”并进行配置规则。

35521edc1ce1457bf8ab0e33c55a2c23d187adcd

默认云存储网关安全组只对指定安全组的ECS开放了下列端口,所以即使通过云企业网打通了不同区域的VPC,在上面的例子里,位于上海的ECS仍然不能访问位于北京的云存储网关。

e6aca8a77d62d801ea15349faaebc55d9c657170

 为了能够让上海的ECS能够通过NFS协议访问共享,我们可以在网关侧的安全组里加上如下NFS端口相关的配置,允许位于上海的某个或者某些ECS进行访问。如果需要SMB或者iSCSI协议访问,根据上图配置上相应的安全组规则即可。

d9078f7b26817e61098c6abed742e02b155f5f14

再回到位于上海的ECS,首先用telnet命令连接网关的111端口,从下图我们可以看到连接成功。之后执行mount命令挂载网关的testnfs目录到本地的/mnt/test_sydney/,成功挂载!

23b235bef3f5bd48762ce8dbcbb971beed3cd8f0

至此,整个配置过程就结束了。现在就可以通过对上海ECS的本地目录/mnt/test_sydney的读写从而实现内网流量访问位于北京的OSS Bucket了!

小结

在云企业网或者高速通道存在的情况下,云存储网关给我们提供了一种手段,让我们可以走阿里云的内网流量来访问位于不同地域的OSS Bucket。而且云存储网关提供了NFS/SMB/iSCSI协议支持,可以适应不同用户以及应用的需求,使用起来非常的便捷。