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 登录
2.2 创建
- Click on “Create file system.”
- Select the VPC
- select define
第一次创建只能选择弹性的
- Select the VPC
如果不想用默认的vpc和安全组,请自行修改
- 检查是否配置的正确
- 效果
1.配置安全组
- 编辑安全组,默认 traffic (port 2049)
这里是允许所有的,你也可以配置指定的ec2来控制
2.3 efs挂载
1.ip
ip需要选定区域
点击attach可以选择方式
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
#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
使用以下命令创建要用作文件系统装载点的目录
efs
:sudo mkdir efs
sudo mkdir efs
运行以下命令之一来挂载文件系统。
注意
如果 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-point
。file-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/