如果你在多服务器应用程序环境中工作, 需要在多台服务器之间共享文件系统, 则必须设置NFS(网络文件系统)。
NFS使你可以在多台服务器上共享文件系统, 但是实现需要一些管理技能。
在传统的基础架构环境中, 你可能必须涉及多个团队, 并且需要花费一些时间来创建NFS。但是, 如果你使用的是AWS, 则可以通过其EFS(弹性文件系统)服务在几分钟内完成。
AWS EFS使你可以创建可伸缩文件存储以在EC2上使用。你不必担心容量预测, 因为它可以按需扩大或缩小。
快速图表让你了解其工作原理。
AWS很棒。如果你是新手, 并且对学习感兴趣, 我会推荐A Cloud Guru提供的出色在线课程。
EFS的一些优点是:
- 由AWS完全管理
- 成本低廉, 用所用
- 高可用性和耐用性
- 自动放大或缩小
- 可扩展的性能
我正在运行两个EC2 Ubuntu实例, 在本教程中, 我将创建一个EFS, 然后将其安装在两台EC2服务器上。
让我们开始吧。
- 登录到AWS控制台
- 转到服务, 然后在存储(直接链接)下选择EFS。
- 点击”创建文件系统”。
- AWS会在可用区中自动分配一个IP地址。如果需要更改, 可以在下一个屏幕上进行更改。
- 如果需要, 请添加标签, 然后在”通用”或”最大I / O”之间选择性能模式
- 查看配置, 如果一切正常, 然后单击”创建文件系统”。
可能要花几秒钟, 然后完成;你将收到一条成功消息。
成功!你已经创建了文件系统。你可以从安装了NFSv4.1客户端的EC2实例挂载文件系统。你还可以通过AWS Direct Connect连接从本地服务器挂载文件系统。单击此处获取EC2安装说明, 并单击此处获取本地安装说明。
你将能够在列表中看到新创建的弹性文件系统。
到此, 你已经创建了EFS, 并准备将其安装在EC2实例上。
在EC2上安装EFS
挂载之前, 需要安装nfs客户端。如果你展开列表并单击” Amazon EC2安装说明”, 则将获取详细信息。
但是, 让我们看看它如何进行。
- 登录到两个EC2实例并安装nfs客户端。我正在使用Ubuntu, 因此我将使用以下内容
apt-get install nfs-common
- 让我们创建一个要在其中装载EFS的文件夹。
例如:/ apps
cd /
mkdir apps
使用说明中给出的命令挂载文件系统。
例如:
mount -t nfs4 -o nfsvers=4.1, rsize=1048576, wsize=1048576, hard, timeo=600, retrans=2 fs-4fd14a06.efs.us-east-1.amazonaws.com:/ apps
注意:如果在安装过程中遇到任何问题, 请参阅此疑难解答指南, 并且不要忘记检查安全组以确保以下事项。
- EC2实例入站规则中允许使用NFS端口(2049)
- EFS安全组中允许EC2安全组
这将花费几秒钟, 如果执行df -h命令, 你会注意到/ apps已挂载
[email protected]:/# df -h | grep apps
fs-4fd14a06.efs.us-east-1.amazonaws.com:/ 8.0E 0 8.0E 0% /apps
[email protected]:/#
现在, 你必须登录到要使用此/ apps的另一台服务器, 然后重复创建文件夹并挂载EFS。
为了进行验证, 我将EFS安装在另一台服务器上, 可以看到在两台服务器上都可以访问/ apps。
[email protected]:/apps# df -h | grep apps
fs-4fd14a06.efs.us-east-1.amazonaws.com:/ 8.0E 0 8.0E 0% /apps
[email protected]:/apps#
这很简单, 不是吗?
我尝试创建几个文件, 总体性能看起来不错。 AWS EFS看起来很有希望, 如果你需要跨EC2实例共享文件系统, 请尝试一下, 我相信你会喜欢的。