QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

AWS 文件存储网关初体验

  • 2019-11-18
  • 本文字数:5462 字

    阅读完需:约 18 分钟

AWS文件存储网关初体验

1. 背景介绍

AWS Storage Gateway 是一项可以帮助用户实现在混合架构环境中将本地数据中心内设施与 AWS 云端存储进行无缝集成的服务。通过 Storage Gateway 可以简化本地 IT 环境与云端存储间移动数据,将数据存储到 AWS 云,并且实现备份,存档以及灾难恢复等主要功能。


Storage Gateway 家族之前已经包含有基于卷接口以及磁带接口类型的网关设备,帮助用户可以在适当的场景下选择合适的方式去将本地的数据迁移到云端,在去年 Las Vegas 举办的 re:Invent 大会上,AWS 更进一步又推出基于文件接口(支持 NFS3 和 NFS4.1)类型的存储网关,给用户提供了更多的选择,方便用户可以通过标准的文件协议将文件作为对象直接存储在 Amazon S3 上,这样不但可以借助于 S3 超高的持久性优势对文件进行持久化保存,还可以将 S3 对象的版本控制,生命周期管理以及跨区域复制等存储策略直接应用到存储对象中。


要使用文件存储网关服务,必须为存储网关下载虚拟机镜像,并从 AWS 管理控制台或存储网关 API 激活它。写入到 NFS 的文件成为 Amazon S3 中的对象, 文件与对象之间存在一对一的映射,对象使用 Amazon S3 托管的加密密钥 (SSE-S3) 在服务器端加密,所有数据传输通过 HTTPS 执行。


文件存储网关服务使用分段并行上传等技术,优化了网关与 AWS 之间的数据传输,以更好利用可用带宽。与缓存卷类似,系统维护本地缓存以提供对最近访问数据的低延迟访问,并减少数据传出成本。


新年伊始,让我们撸起袖子,一起来体验一下新型的存储网关带来的超能力,尝试如果使用文件存储网关这项新的功能来实现对本地文件的云端迁移。

2. 部署与配置存储网关

文件存储网关适用于将数据传入到 S3 以供应用日常使用、备份和存档到 AWS 云上不同类型的存储服务。



图 1


在进入具体的安装部署环节之前,我们首先来了解一下使用文件存储网关中涉及到的主要调用流程。用户的应用服务器运行在自有数据中心内,在用户环境中部署文件存储网关(File Gateway),用户或应用服务器通过 NFS 客户端连接存储网关,利用网关,可以将 S3 中的存储桶作为 NFS 装载点,从而对文件进行写入和访问。

2.1 安装部署文件存储网关

首先登录到 AWS Storage Gateway Console


https://console.amazonaws.cn/storagegateway/home?region=cn-north-1


2.1.1 选择网关类型


在导航窗格中,选择 Gateways,然后选择 Create gateway;


在 Select gateway type 页面上,选择 File gateway,然后选择 Next;



图 2


2.1.2 选择主机平台


现阶段文件存储网关只支持本地运行在 VMware ESXi 虚拟化环境中,选择 Download image,下载安装包,解压后得到.ova 类型文件;



图 3


1)通过 VMware vCenter 控制台将 Storage Gateway 虚拟机部署到用户本地的虚拟化环境中。此处省略部署 Storage Gateway 虚拟机过程,详细步骤请参考:


http://docs.aws.amazon.com/zh_cn/storagegateway/latest/userguide/deploy-gateway-vmware.html


注意: 必须满足最低的主机配置要求;


选择 Thick provisioned format 磁盘类型;


确保存储网关主机上的时钟与网络时间协议 (NTP) 服务器同步。


2)添加存储网关本地磁盘存储


存储网关至少需要添加一个磁盘以便进行缓存,客户端对文件的访问会首先在缓存中去获取文件信息,这样将大大减少通过网络去 S3 直接获取文件的延迟,文件存储网关缓存最大值为 16TB。


建议:将用于缓冲区的磁盘专门使用一个数据存储。


2.1.3 连接网关


登录到 VMware vCenter 管理界面,点击网关虚拟机,在 Summary 页面中记录下网关 IP 地址信息


切换到 AWS 控制台界面,输入文件存储网关 IP,选择 Connect to gateway



图 4


2.1.4 激活网关


选择存储网关的时区并为网关命名,最后点击 Activate gateway



图 5


2.1.5 配置本地磁盘


选择在步骤 2.1.2 中为文件存储网关配置的新挂载的磁盘作为网关的缓存,确定要用于缓存存储的磁盘。



图 6


保存并完成配置任务,观察新创建的存储网关状态是否为 Running



图 7

2.2 创建文件共享

2.2.1 Amazon S3 上创建存储桶,以便作为 NFS 挂载点保存文件;


2.2.2 创建文件共享


在 Storage Gateway 服务导航窗格上,选择 File shares,然后选 择 Create file share;


选择之前创建的网关,输入已建立好的 S3 存储桶名称,并且必须有访问存储桶的权限。我们可以创建新的 IAM role 或者通过已有的 IAM role 的方式来使用。



图 8


如果使用已有 IAM role,则请确保赋予如下的信任关系及访问权限


1)信任策略允许 Storage Gateway


{


"Version": "2012-10-17",


"Statement": [


{


"Sid": "",


"Effect": "Allow",


"Principal": {


"Service": "storagegateway.amazonaws.com"


},


"Action": "sts:AssumeRole",


"Condition": {


"StringEquals": {


"sts:ExternalId":"account-id"


}


}


}


]


}


2)将 IAM role 赋予如下 S3 访问及操作权限,请注意中国区 arn 独特的标示 以及将存储桶名替换为之前需要访问的存储桶名称


{


"Version": "2012-10-17",


"Statement": [


{


"Action": [


"s3:GetAccelerateConfiguration",


"s3:GetBucketLocation",


"s3:GetBucketVersioning",


"s3:ListBucket",


"s3:ListBucketVersions",


"s3:ListBucketMultipartUploads"


],


"Resource": "arn:aws-cn:s3:::filegatewaybucket",


"Effect": "Allow"


},


{


"Action": [


"s3:AbortMultipartUpload",


"s3:DeleteObject",


"s3:DeleteObjectVersion",


"s3:GetObject",


"s3:GetObjectVersion",


"s3:ListMultipartUploadParts",


"s3:PutObject"


],


"Resource": "arn:aws-cn:s3:::filegatewaybucket/*",


"Effect": "Allow"


}


]


}

2.3 如何使用文件存储网关

现在我们已经安装部署了文件存储网关,并且创建了 S3 存储桶作为文件共享的容器,下面我们就以 Microsoft Windows 操作系统为例,来看看如何实际使用文件存储网关。


2.3.1 将文件共享连接到 Microsoft Windows 客户端


1)在 Windows 客户端中为 NFS 启用服务;


2)在 Windows 客户端的命令提示符下,键入挂载命令,将 S3 存储桶作为 Windows 系统映射的驱动器盘符:


mount –o nolock 网关 IP 地址:/S3 存储桶名称 Windows 客户端上的驱动器盘符:


具体执行命令如下所示:


mount –o nolock 10.29.1.2:/filegatewaybucket Z: (注意命令最后的驱动器盘符的:)


2.3.2 测试文件网关


在 Windows 客户端上,导航到文件共享的驱动器盘符(Z:)。驱动器名称前面是您的 S3 存储桶的名称。


将一些文件或文件夹复制到驱动器。



图 9


在 S3 管理控制台上,导航到您映射的存储桶。此时应该看到在您指定的 S3 存储桶中复制的文件和文件夹。



图 10


通过 NFS 客户端可以对文件进行写入、读取、删除等操作。


读取操作首先访问本地磁盘中的缓存文件,如果文件不在缓存,则从 S3 中提取并添加到缓存中。写入操作,通过回写式缓存,将文件分段上传写入到 S3。


注意:如果使用 Linux 操作系统,可通过如下命令进行挂载,使用方法相似:


mount –t nfs –o nolock 网关 IP:/S3 存储桶名称 [MountPath]

3. 管理与监控存储网关

3.1 管理存储网关

除了使用 AWS Storage Gateway 管理控制台进行日常的管理和维护工作外,用户还可以通过使用默认用户名 sguser 和密码 sgpassword 来登录存储网关虚拟机的管理配置界面,下图为网关虚拟机本地控制界面。



图 11


3.1.1 测试网络连接情况


键入 3 测试网络连接情况



图 12


键入 6 ,选择测试中国区,测试 Internet 连接。当排查网关的网络问题时,此测试可能会很有用,如果提示[FAILED]信息,请检查网络或防火墙配置是否正确。



图 13


3.1.2 可用管理命令


键入 5 以打开 AWS Storage Gateway 控制台,键入 h 以打开 AVAILABLE COMMANDS (可用命令) 窗口。



图 14


可以通过控制台命令行来获取网关的 IP,修改密码以及申请支持等能力。


3.1.3 网关系统资源检查


键入 6 可以查看网关资源配置情况,如果资源配置不满足要求,则会提示资源不足错误,网关将无法正常运行。



图 15

3.2 监控存储网关

除了日常的管理工作,用户可以通过使用 CloudWatch 来监控与存储网关相关的主要参数,其中包括 CloudBytesDownloaded,CloudBytesUploaded, CacheUsed, CacheHitPercentage 等指标,通过不同指标可以监控 Storage Gateway 到云端上传及下载的使用量及 Cache 相关的使用情况,如下图所示。


用户还可以通过 CloudTrail 捕获 Storage Gateway 调用 API 的情况,并将日志文件保存在 S3 存储桶中 。



图 16

4. 小结

文件存储网关服务的推出是对当前基于数据卷和 VTL 存储网关的一个补充,通过对标准的文件系统协议的支持,使得用户可以无需修改现有应用程序便可以将文件存储在云端。大大简化了混合架构模式下用户希望借助 Amazon S3 来替代本地存储的过程,以帮助用户实现节约成本和更高持久化的保障。存储网关还通过本地缓存方式提供对数据的低延迟访问,集成 AWS Identity and Access Management (IAM) 进行访问控制,以及使用 AWS 管理控制台和 AWS Command Line Interface (AWS CLI) 进行管理操作。


当然,文件存储网关现阶段只支持 VMware ESXi 虚拟化环境,对于需要使用其他虚拟化软件的小伙伴还需要再耐心等待一下。另外,网络条件也将会成为影响文件存储网关使用体验的重要因素之一。


作者介绍:



周琦,亚马逊 AWS 解决方案架构师,拥有 10 年 IT 领域工作经验,先后在 IBM,VMware 等公司担任工程师及架构师等职位,现负责 AWS 云服务在国内的推广和支持工作,同时致力于企业混合云,DevOps 以及微服务等领域的研究。


本文转载自 AWS 技术博客。


原文链接:


https://amazonaws-china.com/cn/blogs/china/storage-gateway-first-experience/


2019-11-18 08:001065

评论

发布
暂无评论
发现更多内容

一份超级完整实用的PyCharm图解教程,8K字赶紧收藏起来

计算机与AI

Python IDLE 开发环境

Scikit-Learn中的特征排名与递归特征消除

计算机与AI

学习 数据科学 特征选择 降维 scikit-learn

分布式文件存储数据库 MongoDB

哈喽沃德先生

数据库 nosql mongodb mongo 非关系型数据库

勾魂!在Github白嫖左程云1470页数据结构与算法+视频

996小迁

Java 架构 面试

发布3个月获得5K Star的Luckysheet - 基于MIT协议的开源电子表格

奇异石榴果

Java 开源 大前端 Excel html/css

week04总结

xxx

c++bind函数使用

良知犹存

c++

Docker架构

混沌畅想

Docker 容器 Docker架构

一文搞懂ReactNative生命周期的进化

凌宇之蓝

react.js 面试 大前端 React Native

一文带你读懂 Swift 社区最新开源的算法库

镜画者

ios swift 算法 apple

在线EXCEL编辑器-Luckysheet

奇异石榴果

Java 开源 Excel bigtable js

week04 作业

xxx

Java中的5大队列,你知道几个?

王磊

Java

【得物技术】谈谈缓存的一二三四五

得物技术

缓存 架构 技术 缓存穿透 缓存击穿

架构师训练营第2期 第1周 作业一:食堂就餐卡系统设计

老腊肉

架构师训练营第2期 第1周 作业二:学习总结.md

老腊肉

iOS性能优化 — 二、卡顿监控及处理

iOSer

性能优化 编程语言 监控 ios开发 卡顿

C/C++最佳实践

jiangling500

c c++ 最佳实践

分布式缓存架构,消息队列,负载均衡

garlic

极客大学架构师训练营

服了,这款开源类库可以帮你简化每一行代码

沉默王二

Java GitHub 后端 hutool

spring-boot-route(二十三)开发微信公众号

Java旅途

Java Spring Boot

项目吐槽之需求分析一

Geek_XOXO

项目管理 pmp

Linux内核系统结构

Linux 操作系统 内核 系统调用 操作系统结构

编码之路,与君共勉

yes

程序人生

6小时搞定云原生:从基础概念到上手实践

京东科技开发者

云原生

1024!奈学教育致敬程序员3+2战略发布会重磅来袭

奈学教育

1024 奈学教育

「架构师训练营」第 1 周作业 - 食堂就餐卡系统设计

小黄鱼

极客大学架构师训练营

一文读懂线程池的工作原理(故事白话文)

捡田螺的小男孩

Java 面试 线程池 线程池工作原理

架构作业:一致性hash

Nick~毓

甲方日常 36

句子

工作 随笔杂谈 日常

java安全编码指南之:线程安全规则

程序那些事

java安全编码 java安全 java安全编码指南 java代码规范 java代码安全

AWS文件存储网关初体验_语言 & 开发_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章