写点什么

如何在云上快速搭建 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:00986

评论

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

【新模型速递】PAI-Model Gallery云上一键部署Qwen3-Next系列模型

阿里云大数据AI技术

阿里云 大模型 通义千问 PAI

AI Agents 能自己开发工具自己使用吗?一项智能体自迭代能力研究

Baihai IDP

AI LLM AI Agent

从慕尼黑街头的伪装车,看汽车背后的“千锤百炼”

DevOps和数字孪生

即时通讯软件,能聊天还能协同办公的企业IM

BeeWorks

即时通讯 IM 私有化部署

哈尔滨等保测评:标准化流程与分级周期指南

等保测评

EdgeOne Pages成为中小企业与开发者出海首选平台

极客天地

大数据-99 Spark Streaming 数据源全面总结:原理、应用 文件流、Socket、RDD队列流

武子康

Java 大数据 flink spark 分布式

企业内网IM:构建高效安全的企业内网即时通讯系统

BeeWorks

即时通讯 IM 私有化部署

KWDB 携手“开放原子校源行”走进河北工业大学

KaiwuDB

数据库

亚马逊商品详情API秘籍!轻松获取商品详情数据

tbapi

亚马逊API 亚马逊商品详情API 亚马逊商品数据采集 亚马逊数据分析

CST软件如何获取二极管的IV曲线

思茂信息

cst电磁仿真 CST软件 CST Studio Suite

AI大模型如何生成PPT?7个主流PPT生成器大盘点

职场工具箱

PPT AI大模型 AIGC AI工具 AI生成PPT

如何在 OpenShift 上部署和使用 KubeBlocks

小猿姐

k8s 容器化 Redshift

速卖通商品列表API秘籍!轻松获取商品列表数据

tbapi

速卖通商品数据采集 速卖通API 速卖通商品详情API 速卖通商品数据分析

RFID技术应用中常见的误区与防坑指南

斯科信息

RFID技术 RFID读写器 RFID标签

“融海计划”一周年,金融AI产业交出一张生态答卷

脑极体

AI

纯电拐点,一场尚未到来的革命

脑洞汽车

AI

鸿蒙应用开发从入门到实战(七):ArkTS组件声明语法

程序员潘Sir

鸿蒙 HarmonyOS

AI 英语写作 APP 的核心功能

北京木奇科技有限公司

软件外包公司 AI英语学习 AI英语写作

docker启动mysql多实例连接报错Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’

刘大猫

人工智能 数据挖掘 机器学习 算法 数据分析

AI Compass前沿速览:GPT-5-Codex 、宇树科技世界模型、InfiniteTalk美团数字人、ROMA多智能体框架、混元3D 3.0

汀丶人工智能

挖掘PDF生成器中的SSRF漏洞:从发现到利用

qife122

网络安全 SSRF

上线半年客户数增长超300%,腾讯云音视频低代码互动直播组件释放全球开发者生产力

极客天地

【IEEE出版|上海理工大学主办】第六届大数据、人工智能与物联网工程国际会议(ICBAIE 2025)

搞科研的小刘

人工智能 大数据 国际学术会议 上海理工

黑龙江等保测评全流程解析:合规之路的关键步骤

等保测评

行业分享丨汽车电磁兼容仿真技术与应用

Altair RapidMiner

人工智能 AI 汽车 仿真 CAE

工具过多:如何管理前端工具泛滥?

掘金安东尼

第五届电气工程与机电一体化技术国际学术会议(ICEEMT 2025)

搞科研的小刘

国际学术会议 电器工程 机电一体化

鸿蒙5.0应用开发——V2装饰器@ObservedV2和@Trace的使用

高心星

鸿蒙 装饰器 HarmonyOS5.0 V2装饰器 @ObservedV2

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