2012年,AWS发布存储网关,用来打通本地和云端的存储,是照顾企业用户原有数据资产的需求而推出的产品服务,也是因为有了存储网关,云端存储和本地存储建立联系,做统一的数据存储资源池。
存储网关支持的混合云存储能干啥呢?简单而言,能让本地存储对接上云,能备份,归档,做灾难恢复,还能用来做分层存储,这是存储网关最擅长的事儿了。
AWS的存储网关支持用户本地的文件,块和磁带存储,在云端可连接S3,Glacier存储还有EBS快照,分别支持NFS,iSCSI以及磁带库接口。

文件存储网关,将本地的数据存储在云上,本地的文件以对象的形式存储在S3上,文件的元数据和对象的元数据都在云上,而且,云上可以利用多种云服务实现数据分层。
AWS的存储网关提供了标准化的存储协议,能与本地的存储设备对接,在实际使用中,有了存储网关的帮助,用户既能享受到本地的高速缓存存储,也能享受到云端存储的便利。

块存储网关,块存储卷通过iSCSI连到云端,云端备份本地的卷,本地可以从云端创建卷,AWS的云存储网关最大支持1PB。卷网关有两种使用场景:
第一种,存储主要的本地数据,按时间点将数据备份同步到EBS上,每个网关最多支持32个卷,每个卷最大16TB,所以,每个网关最大512TB。

第二种卷网关,用作Cache,将主要数据存放在AWS上,频繁的访问本地的数据,也是按时间点备份存放到EBS,每个网关支持32个卷,每个卷最大32TB,每个网关最大1PB。

磁带网关,把磁带里的备份数据存放到S2和Glacier磁带存储网关上,最大1PB,如果要做云上归档的话,容量没有限制,支持主流的磁带存储备份厂商,Veritas,DELL/EMC,Veeam等。
在各种云存储网关的帮助下,最终云上云下实现无缝跨平台的数据传输,而且用上了云也能享受到低延迟数据存储体验。既然用上了云,自然可以享受到云上各种服务提供的各种便利,比如在监控,管理和安全性等方面。
1,创建IAM role


选择账户类型:AWS services,并选择使用该角色的服务:EC2。点击创建

搜索栏里搜索s3,然后选择,AmazonS3FullAccess。
这个角色是用来管理Gateway所需要的S3存储的,所以,对应我们要创建一个S3bucket。
创建S3 Bucket

创建一个名为boxer-bucket的bucket,一路next默认完成创建。
创建VPC
然后设置访问权限,创建一个VPC,用于连接EC2和本地设备。
点击VPC服务,点击SecurityGroup安全组,命名为OUTREACH:

然后修改一下OUTREACH vpc的进栈出栈规则,打开ssh端口22的入栈,这样我们可以随意用SSH访问这个vpc下的资源。
创建EC2
然后回去创建一个全新的EC2,注意创建的时候选择你创建的IAM roles。其它设置可以选择默认。

下一步选择默认的存储就行,第六步的时候要选你之前创建的安全组:

点击创建虚拟机,记得配置好PEM文件,这个是登录过程中很重要的文件。等新的主机启动好之后用ssh连接,查看一下关联的bucket,这里有两个,其中有一个是我们新创建的。

接下来进入正题,开始设置Stroagegateway。

点击GetStarted开始……

选择默认的文件网关,FileGateWay,文件存储网关,点击Next。

为了方便起见,还是选择ESXi,下载这个大概800多兆的OVA文件,是个zip文件,顺便解压成OVA文件。
然后登陆vSphere Web Client。

点击创建VM。

用刚刚下载的OVA文件创建。

起个名字,然后选中解压的OVA文件,点击Next。

第三步,存储设置选择默认,第四步,Disk Provisioing选择Thick。

第五步,点击完成。

如果不出啥问题的话,虚拟机就会这样启动了,下图是我们新创建的虚拟机。

点击上方的Edit编辑虚拟机配置,点击添加新磁盘,add new disk,设置150GB空间,用作存储网关的cache。

创建完毕后能看见,150GB的磁盘已经挂载到了我们刚才创建的虚拟机上。

我们点击黑色的Console控制台,以账号和密码形式登录。

账号和密码是啥?我在AWS官网上找到了这个,账号是admin,密码是password。

这里我们能看到这个虚拟机的一些参数,比如IP地址是:192.168.1.103。

回到AWS的页面中继续创建GateWay,点击Next。输入刚才的IP地址。

时区选择跟本地主机一个时区,东八区,最好跟本地主机在一个时区。
网关已激活,等着下面刷新出本地虚拟机上的磁盘。

额,看来找不到本地磁盘,网上查了下资料,看来还得重启一下本地虚拟机。

重启机器之后,150GB的磁盘找到了。

Storage Gateway建立完成,已经在运行当中了。
接下来我们体验一下这个云存储网关,设置一下共享文件夹。点击上方的Creata fiile share。填写对应的s3 bucket。
点击Next,Next,最后看到的配置如下图。

注意看看感叹号的内容,说是允许任何NFS客户端的访问,这有点不安全了。点击编辑改成192.168.1.0/24,仅限本地网段的访问。
好,到这里,就算AWS云存储网关的配置完毕了。
我们用本地的机器连一下这个网关,看看能不能把本地的文件存到AWS上。
笔者用的是MacOS,所以就用自带的SSH Terminal来操作吧
1,将当前目录cd到/users/wu_yuzheng/skmc;
2,键入如下命令:sudomount -t nfs -o vers=3,nolock -v 192.168.1.103:/boxer-bucket /dev
挂载成功:

此刻,我的这台小小的Macbookair后端就是存储网关了,试着创建一个文件看看效果吧。
在/user/wu_yuzheng/skmc目录下执行:vim helloAWSGateway.txt

随便打几个字儿,算是又一个HelloWorld吧。
这个txt文件应该已经通过存储网关传到S3里面了,我们可以确认一下。
找到了

所以,我们能看到本地写的文件能轻松的同步到云端,当然也可以访问到云端的数据资源。
那么,云端服务器EC2能否顺利访问这些数据呢?来试试。
登录我们刚刚创建的EC2主机,查看一下关联的S3存储。
键入命令:aws s3 ls boxer-bucket。

我们刚才创建的helloAWSGateway.txt出现了。
EC2的访问方式有所不同,本地因为有网关的存在,操作起云端S3就像操作本地一样,EC2查看S3的文件,方式有所不同,我们需要把文件下载下来。
1,创建一个下载目录叫downloads3
2,从aws下载文件到这个目录里面:awss3 cp s3://boxer-bucket/helloAWSGateway.txt downloads3
3,查看一下下载的文件

Hello Nice to meet you AWS Gateway storage,I am boxer~
好的,以上就是这次体验AWS存储网关的全部内容了。需要注意的点还是很多的。
花絮:这次体验,环境搭建是最费时间了:
1,为了这次体验,我先是在本地机器上安装VMware的ESXI,版本上最新的是6.7,因为知道VMware的这套东西很麻烦,新东西的兼容性一般会差点,而且出问题,想百度都很难,所以选择了ESXi6.5。
2,手头也没有物理服务器,首先想在PC上安装一下,为了防止启动项的干扰,我就想装在U盘上算了,后来因为缺少网卡驱动而作罢,最后还是用VMwareworkstation安装出来了。
3,VMware以前有个vSphereClient来着,这次还想下载个这个软件,结果找了半天没有找到vSphere Client 6.5,网上也有很多人在找这个,调查了解后发现,VMware现在不更新这个Client了,现在用webclient更简单,直接在浏览器里敲出来服务器地址就好了。
4,默认的虚拟机给ESXi的容量是40GB,这次测试最好让磁盘大一点,我设置的是400GB,够用了。