Skip to content

1. EFS (Elastic File System)

官当

1.1 介绍

AWS提供的三种主要的存储:AWS Elastic Block Store (EBS)Simple Storage Service (Amazon S3)Elastic File System (EFS)

AWS S3对于静态页面的托管、多媒体分发、版本管理、大数据分析、数据存档来说都非常有用。S3可以和AWS CloudFront结合使用而达到更快的上传和下载速度。

AWS EBS是可以用来做数据库或托管应用程序的持续性文件系统,EBS具有很高的IO读写速度并且即插即用。

相比前面两种存储,AWS EFS是比较新的一项服务。它提供了可以在多个EC2实例之间共享的网络文件系统,功能类似于NAS设备。可以用EFS来处理大数据分析、多媒体处理和内容管理

1.2 特点

  • 支持Network File System vesion 4 (NFSv4) 协议
  • 只为使用的EFS份额付费
  • 容量可以扩展到PB级别
  • 可以同时间支持成千上万的NFS连接
  • EFS的数据会保存在一个区域内的多个可用区
  • 读写一致性(Read After Write Consistency)
  • 高性能单区域iops/7000

2. EFS操作

2.1 登录

image-20241114145913868

2.2 创建

  • Click on “Create file system.”

img

  • Select the VPC

image-20241114150125150

  • select define

img

img

第一次创建只能选择弹性的

  • Select the VPC

如果不想用默认的vpc和安全组,请自行修改

image-20250713131313375

image-20241114152004391

  • 检查是否配置的正确

image-20241114152100145

  • 效果

image-20241114152155360

1.配置安全组

  • 编辑安全组,默认 traffic (port 2049)

这里是允许所有的,你也可以配置指定的ec2来控制

img

2.3 efs挂载

1.ip

ip需要选定区域

点击attach可以选择方式

bash
yum install -y nfs-utils

mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport <ip>:/ efs
yum install -y nfs-utils

mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport <ip>:/ efs

2.dns

有两种协议进行挂载,efs,nfs

bash
#efs
sudo mount -t efs -o tls efs_id_name:/ /path/dir

#nfs
mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport <dns>:/ /path/dir
#efs
sudo mount -t efs -o tls efs_id_name:/ /path/dir

#nfs
mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport <dns>:/ /path/dir
  • 测试磁盘吞吐量
time dd if=/dev/zero of=/mnt/efs/20G-dd-$(date +%Y%m%d%H%M%S.%3N) bs=1M count=20480 conv=fsync
time dd if=/dev/zero of=/mnt/efs/20G-dd-$(date +%Y%m%d%H%M%S.%3N) bs=1M count=20480 conv=fsync

3.efs

安装amazon-efs-utils

  1. 使用以下命令创建要用作文件系统装载点的目录 efs

    sudo mkdir efs
    sudo mkdir efs
  2. 运行以下命令之一来挂载文件系统。

    注意

    如果 EC2 实例和要挂载的文件系统位于不同的 AWS 区域 s 中从其他服务器装载 EFS 文件系统 AWS 区域,请参阅编辑efs-utils.conf文件中的region属性。

    • 要使用文件系统 id 来装载,请执行以下操作:

      sudo mount -t efs file-system-id efs-mount-point/
      sudo mount -t efs file-system-id efs-mount-point/

      使用要安装的文件系统的 ID efs 代替efs-mount-pointfile-system-id

      sudo mount -t efs fs-abcd123456789ef0 efs/
      sudo mount -t efs fs-abcd123456789ef0 efs/

      或者,如果要使用传输中的数据加密,您可以使用以下命令挂载文件系统。

      sudo mount -t efs -o tls fs-abcd123456789ef0:/ efs/
      sudo mount -t efs -o tls fs-abcd123456789ef0:/ efs/
    • 使用文件系统 DNS 名称挂载:

      sudo mount -t efs -o tls file-system-dns-name efs-mount-point/
      sudo mount -t efs -o tls file-system-dns-name efs-mount-point/
      sudo mount -t efs -o tls fs-abcd123456789ef0.efs.us-east-2.amazonaws.com efs/
      sudo mount -t efs -o tls fs-abcd123456789ef0.efs.us-east-2.amazonaws.com efs/
    • 使用挂载目标 IP 地址挂载:

      sudo mount -t efs -o tls,mounttargetip=mount-target-ip file-system-id efs-mount-point/
      sudo mount -t efs -o tls,mounttargetip=mount-target-ip file-system-id efs-mount-point/
      sudo mount -t efs -o tls,mounttargetip=192.0.2.0 fs-abcd123456789ef0 efs/
      sudo mount -t efs -o tls,mounttargetip=192.0.2.0 fs-abcd123456789ef0 efs/

官方文档:

https://docs.aws.amazon.com/zh_cn/efs/latest/ug/efs-backup-solutions.html

https://aws.amazon.com/cn/blogs/china/quickly-build-nfs-file-system-with-efs/