AWS上搭建Storage Gateway并创建SMB和NFS服务
- 创建File Gateway
2.选择EC2
3.选择对应的EC2 Instance,官方推荐是m4.xlarge
设定网络和子网,这个地方要注意选择跟后续你要将这个Storage Gateway挂载在的Windows或Linux EC2在同一个子网,因为后续SMB和NFS是通过内网IP,例如172网段来挂载的,而不是公网IP
添加EBS,这个地方也关键,因为后续Storage Gateway自动创建和使用的缓存空间就是这个
Security Group填写要开发的端口,这个111和20048尤其重要,如果没有的话,SMB和NFS挂载会失败,而对于这两个端口,官方文档也没写清楚,文档新旧间也存在差异,我是尝试了好几遍才搞清楚一定要添加这2个端口,而对于允许访问这些端口的IP,建议设置为后续需要访问的EC2的内网IP,因为后续激活Gateway要通过HTTP,尤其对于中国区,因为默认禁止公网http访问,因此通过内网IP EC2才能可以访问并激活Gateway,这个也让我绕了圈子才想到。国外region的Gateway可以通过公网IP访问激活也没有问题,但中国区的就不行
然后就可以Launch这个Instance了
- 等Instance ready后,回到这个界面点Next
- 输入内网IP(中国区只能这样)或公网IP激活,其中中国区激活可以复制这个链接到同一网段的Windows EC2打开激活:http://172.22.xx.xxx/?gatewayType=FILE_S3&activationRegion=cn-north-1
激活这部关键,如果无法激活,需要重新创建EC2 Instance,因为激活后,这个激活的连接就无法再访问了。激活的过程会将之前创建的EBS卷自动初始化为缓存区。
激活后即可看到Gateway显示在下面
接着就要创建NFS或者SMB
先说说创建 NFS
Create file share
填写需要与Gateway绑定的S3 bucket名字,选择NFS
保持默认选择
Allow client填写需要访问这个NFS的EC2的内网IP
然后File shares就创建完了
然后就可以通过如下提示的命令挂载NFS
对于Windows Server的加载还需要安装NFS客户端,我的测试环境是Server 2012,需要添加Client for NFS,不然CMD的时候会提示mount命令无法识别的问题
- 挂载后便可像本地盘一样使用了
接着是创建SMB,由于我有的服务器的是Windosw环境,所以SMB也非常适合
- 创建SMB前,首先要为访问SMB设定密码,后面Windows挂载是需要用到这个密码验证,之前我不知道这一部,导致在创建提示页面去搞Active Directory了,走了不少弯路,其实完全不需要AD支持也可以,就是激活Guest访问就好了,而创建Guest访问就在这里设定,官方文档太操蛋了,这点没写清楚
2.填写对应的S3 bucket和选择SMB
按照默认选择
这里选择Guest access,然后点close
完成后可以看到下面提示的命令,可以这命令不好用,不断提示没有权限或者密码不对的错误,我用另一个直接的方法挂载
进入Windows EC2,打开Computer
按照提示输入用户名:smbguest, 和之前设定的SMB密码,完成挂载
而外:
1部Gateway最多支持创建10个File Share
1个S3 bucket在同一部gateway下只能挂在一个File Share下面
关于创建的Storage Gateway instance,可通过用户名:adimin 访问,不过登入后没什么可特别设定的
Recommended for file gateway types
General-purpose instance family- m4 or m5 instance type.
Compute-optimized instance family- c4 or c5 instance types. Select the 2xlarge instance size or higher to meet the required RAM requirements.
Memory-optimized instance family-r3 instance types.
Storage-optimized instance family- i3 instance types.
NFS挂载命令,这个命令在windows下我复制粘贴到windows时提示命令有问题,可是手动敲入却运行正常,不知什么原因
mount -o nolock -o mtype=hard 172.1.1.111:/s3-bucket X: