写点什么

如何在云上快速搭建 NFS

  • 2019-10-28
  • 本文字数:2503 字

    阅读完需:约 8 分钟

如何在云上快速搭建 NFS

简介

传统架构中我们常使用 NFS 来作为共享文件的存储。那么在搬迁到云中的时候我们该如何快速搭建相应的 NFS 系统?


本文将为您介绍快速搭建 NFS 系统的解决方案的四个关键词,分别是:


· 利用适用于文件的 AWS Storage Gateway 搭建云中 NFS


· 在 EC2 上使用 NFS


· NFS 只在 VPC 内网可连


· 工作于由光环新网运营的 AWS 中国(北京)区域

服务简介

File Gateway

文件网关提供了一个文件接口,让您可以使用行业标准 NFS 文件协议将文件作为对象存储在 Amazon S3 中,并通过 NFS 从您的数据中心或 Amazon EC2 访问这些文件,或通过 S3 API 以对象形式访问这些文件。所有权、权限和时间戳作为与该文件关联的对象的用户元数据,永久存储在 S3 中。当对象传输到 S3 之后,它们可以作为原生 S3 对象进行管理,版本控制、生命周期管理和跨区域复制等存储桶策略将直接应用于存储在存储桶中的对象。


客户使用文件网关 NFS 接口将文件数据存储到 S3 中,这些数据便可以供基于对象的工作负载使用,用作传统备份应用程序的经济高效的存储目标,或者用作应用程序文件存储的云端存储库或存储层。

在 EC2 上使用 File Gateway 作为 NFS


工作方式:


· 对象数据存储在 S3 中,提供数据可靠性和持久性


· Gateway 缓存为一个 EC2 实例,和 S3 定期同步数据


· 使用 NFS 的实例与 gateway 缓存实例交流读写数据

搭建步骤

创建网关

  1. 创建 Storage Gateway, 选择文件网关类型



  1. 选择 Amazon EC2 作为主机平台,按照设置说明配置 VPC,主机类型,添加新 EBS 卷,安全组等。


注意:


1)我们将配置 NFS 服务器只在 VPC 可连,所以请禁用自动分配公有 IP 选项


2)对添加的 EBS 卷,设置大小在 150G 以上


3)在安全组上临时配置安全策略,允许 VPC 内其它机器通过 80 端口访问该机器


4)保证该机器能够访问公网,一般通过 NAT 网关(https://docs.aws.amazon.com/zh_cn/AmazonVPC/latest/UserGuide/vpc-nat-gateway.html)等方式实现。



  1. 等待 EC2 创建完成,点击进入 EC2 详情页,记录下该机器的私有 IP (下文称该 IP 为: Gateway 私有 IP)

链接并激活网关

  1. 在 IAM 中创建新的 EC2 角色,配置拥有 AWS Storage Gateway Full Access




  1. 在同一个 VPC 中创建另外一台临时的 EC2 实例(Amazon Linux),并满足以下条件


a. 能够使用 SSH 登录


b. 绑定上一步中创建的 EC2 角色(ec2-storage-gateway)


  1. SSH 登录到临时 EC2 实例

  2. 运行以下命令得到 gateway 实例的激活码


curl -I [gateway 私有 IP]/?activationRegion=cn-north-1



记录下激活码 activationKey 的值


  1. 运行以下命令激活 file gateway


aws storagegateway activate-gateway –activation-key [activationKey] –gateway-name [gateway name] –gateway-timezone “[time zone]” –gateway-region cn-north-1 –gateway-type FILE_S3 –region cn-north-1



激活成功后命令返回 GatewayARN


  1. 返回 Storage Gateway,检查 my_gateway 是否已经建立



  1. 点击 my_gateway,编辑本地磁盘,将创建时添加的 EBS 卷配置成缓存,并且保存。

关联 S3 和 file gateway

1.点击并创建文件共件



2.配置文件共享设置。


1)选择网关 my_gateway


2)S3 存储段名称填写 s3 存储桶名称,可以为现有的 s3 存储桶,也可以新建一个



  1. 在 S3 存储桶和 file gateway 不在同一账号的情况下,我们也可以关联两者。需要在 S3 存储桶上额外设置存储桶策略。如果只是同一账号的情景,请直接跳到下一步。


注意:以下策略中的 Principal 中配置的角色为上一步中自动创建的新 IAM 角色。可以在 IAM 界面中查询到。


Json

{
                "Version": "2012-10-17",
    "Id": "FGWPolicy",
    "Statement": [
        {
            "Sid": "FGWStmt",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws-cn:iam::[account id]:role/service-role/StorageGatewayBucketAccessRole8e94d222-b375-4f29-ac2a-99d77c1bf3"
            },
            "Action": "s3:*",
            "Resource": [
                "arn:aws-cn:s3:::images-andrew",
                "arn:aws-cn:s3:::images-andrew/*"
            ]
        }
    ]
}


当然,你也可以控制 file gateway 账户只对 S3 存储桶拥有只读权限。


Json

{
    "Version": "2012-10-17",
    "Id": "FGWPolicy",
    "Statement": [
        {
            "Sid": "FGWStmt",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws-cn:iam::[account id]:role/service-role/StorageGatewayBucketAccessRole8e94d222-b375-4f29-ac2a-99d77c1bf3"
            },
            "Action": [
                "s3:Get*",
                "s3:List*"
            ],
            "Resource": [
                "arn:aws-cn:s3:::images-andrew",
                "arn:aws-cn:s3:::images-andrew/*"
            ]
        }
    ]
}


4.点击下一步,确认,等待文件共享状态变为可用。


在 Ec2 上使用 file gateway 上的 NFS

  1. 登录已经创建的临时 EC2 实例。我们将在该机器上测试 NFS 的配置。

  2. 运行以下命令


sudo mount -t nfs -o nolock [gateway 私有 IP]:/[s3 存储桶名] [MountPath]



  1. 成功 mount 后,您就可以在/nfs 文件夹看到 s3 存储桶中的内容了。您可以添加,删除,或者查看这些内容。


注意: 您在/nfs 文件夹下的操作会直接映射到 gateway 缓存实例上。缓存实例会定期和 S3 做同步。所以如果您添加了一个文件在/nfs 中,过若干秒就能在 S3 存储桶中看到它了。

注意事项

Gateway 缓存实例在该架构中为一个潜在的单点故障,建议使用一些机制来减小它的影响。比如在该机器上设置自动恢复机制。详情请参考:


https://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/ec2-instance-recover.html


作者介绍:


任庆杰


任庆杰,AWS解决方案架构师。负责基于AWS的云计算方案架构的咨询和设计,同时致力于AWS云服务在国内和全球的应用和推广。在加入AWS前,拥有超过7年的软件开发和IT项目管理经验。
复制代码


本文转载自 AWS 技术博客。


原文链接:


https://amazonaws-china.com/cn/blogs/china/how-to-establish-nfs


2019-10-28 08:00947

评论

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

BSN祝全体技术工作者新春快乐!

BSN研习社

扪心自问,我们在用户旅程的投入有多匮乏?

Yestodorrow

再获认可!天翼云荣获“行业应用实践优秀合作伙伴”授牌

天翼云开发者社区

加速数字化转型,天翼云携手央国企积蓄发展新动能

天翼云开发者社区

丢掉丑陋的 toast,会动的 toast 更有趣!

岛上码农

flutter ios 安卓 移动端开发 跨平台开发

小令动态丨令牌云2022年度盘点

令牌云数字身份

盘点2022

大公司为什么禁止SpringBoot项目使用Tomcat?

程序员大彬

Java springboot

到底卡在了哪里,2023年再撒谎网慢就说不过去了

Yestodorrow

架构 可观测性 网站性能

软件测试/测试开发 | 接口测试中,请求超时该怎么办?

测试人

软件测试 自动化测试 接口测试 测试开发

IM通讯协议专题学习(八):金蝶随手记团队的Protobuf应用实践(原理篇)

JackJiang

网络编程 即时通讯 protobuf im开发

基于 std::variant 的运行时多态

SkyFire

c++ 多态

数据可视化图表系列解析——雷达图

Data 探险实验室

数据分析 可视化 数据可视化 图表 可视化数据

重新思考边缘负载均衡

俞凡

架构 netflix 大厂实践

web前端培训课程怎么选择

小谷哥

高效学 C++|函数参数的引用传递和函数重载

TiAmo

c++ 编程语言、

培训学习前端开发技术好吗?

小谷哥

大数据培训课程哪家比较好

小谷哥

如何打造一支有战斗力的团队?

石云升

极客时间 1月月更 技术领导力实战笔记

不过是享受了互联网的十年红利期而已。

why技术

Java 程序员 大学生

百度百舸 · AI 异构计算平台,加速自动驾驶模型迭代

百度Geek说

人工智能 自动驾驶 企业号 1 月 PK 榜

厉害了!天翼云位列中国医疗云基础设施服务市场榜首

天翼云开发者社区

北京有哪些java培训中心

小谷哥

参加前端培训班哪个好

小谷哥

零代码应用搭建规范建议

明道云

视觉大模型训练和推理加速

百度Geek说

人工智能 深度学习 transform 企业号 1 月 PK 榜

“天翼云杯”决赛收官!看看你pick的队伍战绩如何?

天翼云开发者社区

复习前端:JavaScript 字符串操作方法

devpoint

JavaScript 前端开发 字符串处理

如何减少网站卡顿的代码级别详细文章

Yestodorrow

将混沌实验内建到持续交付过程中提升系统稳定性

QE_LAB

混沌工程 混沌测试 测试技术

100万条数据解读2023银行APP用户体验升级方向

易观分析

金融 手机银行

架构5作业

梁山伯

如何在云上快速搭建 NFS_语言 & 开发_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章