教程:使用本地 Linux 客户端进行装载 - Amazon Elastic File System

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

教程:使用本地 Linux 客户端进行装载

当使用 AWS Direct Connect 或连接到 Amazon 时,您可以将您的 Amazon EFS VPC 文件系统挂载到本地数据中心服务器上VPN。下图显示了从本地挂载 Amazon EFS 文件系统 AWS 服务 所需的高级示意图。

使用时在本地客户端上挂载EFS文件系统 AWS Direct Connect。
注意

不支持在基于微软 Windows 的客户端上使用亚马逊EFS。

先决条件

请确保您已经有 AWS Direct Connect 或VPN连接。有关 AWS Direct Connect的更多信息,请参阅 AWS Direct Connect 用户指南。有关设置VPN连接的更多信息,请参阅 Amazon VPC 用户指南中的VPN连接

VPN建立 AWS Direct Connect 或连接后,在您的 Amazon 中创建EFS文件系统和挂载目标VPC。之后,您就可以下载并安装这些 amazon-efs-utils 工具。接下来,您从本地客户端中测试文件系统。最后,本演练结束时的清理步骤提供了删除这些资源的信息。

此演练在美国西部(俄勒冈州)区域(us-west-2)创建所有这些资源。无论 AWS 区域 您使用哪种方式,请务必始终如一地使用它。您的所有资源(您的VPC、您的挂载目标和 Amazon EFS 文件系统)都必须处于相同的位置 AWS 区域,如下图所示。

使用时在本地客户端上挂载EFS文件系统 AWS Direct Connect。
注意

在某些情况下,您的本地应用程序可能需要知道EFS文件系统是否可用。在这些情况下,您的应用程序应能在第一个挂载点暂时不可用时指向其他挂载点 IP 地址。在这种情况下,我们建议您将两个本地客户端通过不同的可用区 (AZs) 连接到您的文件系统,以获得更高的可用性。

您可以使用您的根凭证 AWS 账户 登录控制台并尝试本练习。但是, AWS Identity and Access Management (IAM) 最佳实践建议您不要使用您的根证书 AWS 账户。而是在您的账户中创建一个管理员用户,并使用这些凭证来管理您的账户中的资源。有关更多信息,请参阅用户指南中的为IAM身份中心用户分配 AWS 账户 访问权限。AWS IAM Identity Center

您可以使用在账户中创建的默认值VPC或自定义VPC值。在本演练中,默认VPC配置有效。但是,如果您使用自定义VPC,请验证以下内容:

  • 互联网网关已连接到您的VPC。有关更多信息,请参阅 Amazon VPC 用户指南中的互联网网关

  • VPC路由表包含一条规则,用于将所有互联网流量发送到 Internet 网关。

第 1 步:创建您的EFS资源

在此步骤中,您将创建EFS文件系统和挂载目标。

创建 EFS 文件系统
  1. 打开 Amazon Elastic File System 控制台,网址为https://console.aws.amazon.com/efs/

  2. 选择创建文件系统

  3. VPC从VPC列表中选择您的默认值。

  4. 选中所有可用区的复选框。确保它们全都选择了默认子网、自动 IP 地址和默认安全组。这些是您的挂载目标。有关更多信息,请参阅 管理挂载目标

  5. 选择下一步

  6. 命名您的文件系统,选择通用型以作为您的默认性能模式,然后选择下一步

  7. 选择创建文件系统

  8. 从列表中选择您的文件系统,并记下安全组值。在下一个步骤中,您需要用到此值。

您刚刚创建的文件系统具有挂载目标。每个挂载目标都具有一个关联的安全组。该安全组充当虚拟防火墙以控制网络流量。如果您在创建挂载目标时未提供安全组,Amazon 会EFS将的默认安全组VPC与该安全组相关联。如果您完全按照上述步骤进行操作,则挂载目标使用默认安全组。

接下来,向挂载目标的安全组添加一条规则,允许入站流量进入网络文件系统 (NFS) 端口 (2049)。您可以使用将规则 AWS Management Console 添加到您的挂载目标的安全组中VPC。

允许入站流量进入端NFS口
  1. 登录 AWS Management Console 并打开 Amazon EC2 控制台,网址为https://console.aws.amazon.com/ec2/

  2. NETWORK& 下SECURITY,选择安全组

  3. 选择与您的文件系统关联的安全组。您在第 1 步:创建您的EFS资源的结尾记录了该值。

  4. 在安全组列表下面显示的分页窗格中,选择入站选项卡。

  5. 选择编辑

  6. 选择添加规则,然后选择以下类型的规则:

    • 类型NFS

    • 任何位置

    我们建议您仅使用任何位置源进行测试。您可以创建一个设置为本地客户端 IP 地址的自定义源,或者从客户端本身中使用控制台并选择我的 IP

    注意

    您不需要添加出站规则,因为默认出站规则允许所有出站流量。如果您没有此默认出站规则,请添加一条出站规则以在NFS端口上打开TCP连接,将挂载目标安全组标识为目的地。

步骤 2:安装NFS客户端

在此步骤中,您将安装NFS客户端。

在本地服务器上安装NFS客户端
注意

如果您需要在传输过程中对数据进行加密,请使用 Amazon EFS 挂载帮助程序代替NFS客户端。amazon-efs-utils有关安装的信息 amazon-efs-utils,请参阅 “可选:加密传输中的数据” 部分。

  1. 访问本地客户端的终端。

  2. 安装NFS。

    如果您使用的是红帽 Linux,请NFS使用以下命令进行安装。

    $ sudo yum -y install nfs-utils

    如果您使用的是 Ubuntu,请使用以下NFS命令进行安装。

    $ sudo apt-get -y install nfs-common

步骤 3:在本地客户端上挂载 Amazon EFS 文件系统

创建挂载目录
  1. 使用以下命令为挂载点创建目录。

    mkdir ~/efs
  2. 选择可用区中的挂载目标的所需 IP 地址。您可以从本地 Linux 客户端中测量延迟。为此,请使用基于终端的工具,例如ping对照不同可用区中EC2实例的 IP 地址,找到延迟最低的实例。

  • 运行挂载命令以使用挂载目标的 IP 地址挂载文件系统。

    $ sudo mount -t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport mount-target-IP:/ ~/efs

现在,您已经安装了 Amazon EFS 文件系统,可以按照以下步骤对其进行测试。

测试 Amazon EFS 文件系统连接
  1. 使用以下命令将目录更改为您创建的新目录。

    $ cd ~/efs
  2. 创建子目录并将该子目录的所有权更改为您的EC2实例用户。接下来,使用以下命令导航到该新目录。

    $ sudo mkdir getting-started $ sudo chown ec2-user getting-started $ cd getting-started
  3. 使用以下命令创建一个文本文件。

    $ touch test-file.txt
  4. 使用以下命令列出目录内容。

    $ ls -al

这样,将会创建以下文件。

-rw-rw-r-- 1 username username 0 Nov 15 15:32 test-file.txt
警告

请在自动挂载文件系统时使用 _netdev 选项,它用于指定网络文件系统。如果_netdev缺失,您的EC2实例可能会停止响应。出现该结果是因为,需要在计算实例启动其网络后初始化网络文件系统。有关更多信息,请参阅 自动挂载失败,并且实例没有响应

步骤 4:清理资源并保护您的 AWS 账户

完成本演练后,或者如果您不想探索这些演练,则应执行如下步骤以清理您的资源并保护您的 AWS 账户。

清理资源并保护您的 AWS 账户
  1. 使用以下命令卸载 Amazon EFS 文件系统。

    $ sudo umount ~/efs
  2. 打开 Amazon EFS 控制台,网址为https://console.aws.amazon.com/efs/

  3. 从EFS文件系统列表中选择要删除的 Amazon 文件系统。

  4. 对于操作,选择删除文件系统

  5. 永久删除文件系统对话框中,键入要删除的 Amazon EFS 文件系统的文件系统 ID,然后选择删除文件系统

  6. 打开 Amazon EC2 控制台,网址为https://console.aws.amazon.com/ec2/

  7. 在导航窗格中,选择安全组

  8. 选择您针对本演练向其中添加了规则的安全组的名称。

    警告

    不要删除您的默认安全组VPC。

  9. 对于操作,请选择编辑入站规则

  10. 选择在添加的入站规则末尾的 X,然后选择保存

可选:加密传输中的数据

要对传输中的数据进行加密,请使用 Amazon EFS 挂载帮助程序代替NFS客户端。 amazon-efs-utils

amazon-efs-utils 软件包是 Amazon EFS 工具的开源集合。该 amazon-efs-utils 集合附带挂载助手和工具,可以更轻松地加密传输至 Amazon 的数据EFS。有关此软件包的更多信息,请参阅安装亚马逊EFS客户端。该软件包可从免费下载 GitHub,您可以通过克隆软件包的存储库来获取。

要 amazon-efs-utils 从中进行克隆 GitHub
  1. 访问本地客户端的终端。

  2. 在终端上,使用以下命令将 amazon-efs-utils 工具克隆 GitHub 到您选择的目录中。

    git clone https://github.com/aws/efs-utils

现已具有该软件包,您可以开始进行安装了。该安装是以不同方式处理的,具体取决于本地客户端的 Linux 发行版。支持以下发行版:

  • Amazon Linux 2

  • Amazon Linux

  • Red Hat Enterprise Linux(和衍生产品,如 CentOS)7 和更新版本

  • Ubuntu 16. LTS 04 及更高版本

以RPM软件包 amazon-efs-utils 形式构建和安装
  1. 在您的客户端上打开终端,然后导航到包含克隆 amazon-efs-utils 软件包的 GitHub目录。

  2. 使用以下命令构建该软件包。

    make rpm
    注意

    如果尚未安装 rpm-builder 软件包,请使用以下命令进行安装。

    sudo yum -y install rpm-build
  3. 使用以下命令安装 软件包。

    sudo yum -y install build/amazon-efs-utils*rpm
amazon-efs-utils 作为 deb 软件包进行构建和安装
  1. 在您的客户端上打开终端,然后导航到包含克隆 amazon-efs-utils 软件包的 GitHub目录。

  2. 使用以下命令构建该软件包。

    ./build-deb.sh
  3. 使用以下命令安装 软件包。

    sudo apt-get install build/amazon-efs-utils*deb

安装软件包后,使用 AWS Direct Connect 或 amazon-efs-utils 进行配置,以便在您的软件中 AWS 区域 使用VPN。

配置 amazon-efs-utils 为在您的 AWS 区域
  1. 使用所选的文本编辑器打开 /etc/amazon/efs/efs-utils.conf 以进行编辑。

  2. 查找 “dns_name_format = {fs_id}.efs.{region}.amazonaws.com” 行。

  3. 使用您的 AWS 区域的 ID 更改 {region},例如,us-west-2

要在本地客户端上安装EFS文件系统,请先在本地 Linux 客户端上打开终端。要挂载系统,您需要使用文件系统 ID、其中一个挂载目标的 IP 地址,以及文件系统的 AWS 区域。如果您为文件系统创建了多个挂载目标,则可选择其中任一项。

在具有该信息时,您可以使用三个步骤挂载文件系统:

创建挂载目录
  1. 使用以下命令为挂载点创建目录。

    mkdir ~/efs
  2. 选择可用区中的挂载目标的所需 IP 地址。您可以从本地 Linux 客户端中测量延迟。为此,请使用基于终端的工具,例如ping对照不同可用区中EC2实例的 IP 地址,找到延迟最低的实例。

更新 /etc/hosts
  • 在本地 /etc/hosts 文件中添加一个具有文件系统 ID 和挂载目标 IP 地址的条目,格式如下所示。

    mount-target-IP-Address file-system-ID.efs.region.amazonaws.com
    192.0.2.0 fs-12345678.efs.us-west-2.amazonaws.com
创建挂载目录
  1. 使用以下命令为挂载点创建目录。

    mkdir ~/efs
  2. 运行 mount 命令以挂载文件系统。

    sudo mount -t efs fs-12345678 ~/efs

    如果要使用传输中的数据加密,mount 命令类似于以下内容。

    sudo mount -t efs -o tls fs-12345678 ~/efs