Amazon Elastic Compute Cloud
用户指南(适用于 Linux 实例)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

EFAs 入门

在本教程中,您创建一个启用了 EFA 的 AMI 和启用了 EFA 的安全组,然后使用该 AMI 和安全组在一个集群置放群组中启动启用了 EFA 的实例。

步骤 1:准备启用 EFA 的安全组

EFA 需要使用一个安全组,以允许传入和传出安全组本身的所有入站和出站流量。

创建启用了 EFA 的安全组

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格中,选择 Security Groups (安全组),然后选择 Create Security Group (创建安全组)

  3. Create Security Group (创建安全组) 窗口中,执行以下操作:

    1. 对于 Security group name (安全组名称),请输入一个描述性的安全组名称,例如 EFA-enabled security group

    2. (可选)对于 Description (描述),请输入安全组的简要描述。

    3. 对于 VPC,请选择要在其中启动启用了 EFA 的实例的 VPC。

    4. 选择 Create

  4. 选择您创建的安全组,然后在 Description (描述) 选项卡上复制 Group ID (组 ID)

  5. Inbound (入站)Outbound (出站) 选项卡上,执行以下操作:

    1. 选择 Edit

    2. 对于 Type (类型),请选择 All traffic (所有流量)

    3. 对于 Source,选择 Custom

    4. 将您复制的安全组 ID 粘贴到该字段中。

    5. 选择 Save

步骤 2:启动临时实例

启动一个临时实例,可用于安装和配置 EFA 软件组件。您使用该实例创建一个启用了 EFA 的 AMI,您可以从中启动启用了 EFA 的实例。

启动临时实例

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 选择 Launch Instance

  3. Choose an AMI (选择 AMI) 页面上,针对以下支持的 AMIs 之一选择选择:Amazon Linux, Amazon Linux 2, Red Hat Enterprise Linux 7.6, CentOS 7.6, Ubuntu 16.04, Ubuntu 18.04。

  4. Choose an Instance Type (选择实例类型) 页面上,选择以下支持的实例类型之一,然后选择下一步:配置实例详细信息:c5n.18xlarge, i3en.24xlarge, p3dn.24xlarge。

  5. Configure Instance Details (配置实例详细信息) 页面中,执行以下操作:

    1. 对于 Elastic Fabric Adapter,请选择启用

    2. Network Interfaces (网络接口) 部分中,为设备 eth0 选择 New network interface (新网络接口)

    3. 选择 Next: Add Storage

  6. Add Storage (添加存储) 页面上,除了 AMI 指定的卷(如根设备卷)以外,还要指定要附加到实例的卷,然后选择 Next: Add Tags (下一步:添加标签)

  7. Add Tags (添加标签) 页面上,指定一个可用于标识临时实例的标签,然后选择 Next: Configure Security Group (下一步:配置安全组)

  8. Configure Security Group (配置安全组) 页面上,为 Assign a security group (分配安全组) 选择 Select an existing security group (选择一个现有的安全组),然后选择在步骤 1 中创建的安全组。

  9. Review Instance Launch (核查实例启动) 页面上,检查这些设置,然后选择 Launch (启动) 以选择一个密钥对并启动您的实例。

步骤 3:安装 Libfabric 和 Open MPI

在临时实例上安装支持 EFA 所需的启用了 EFA 的内核、EFA 驱动程序、libfabric 和 Open MPI 堆栈。

在临时实例上安装 libfabric 和 Open MPI

  1. 连接到您在步骤 2 中启动的实例。有关更多信息,请参阅连接到 Linux 实例

  2. 下载 EFA 软件安装文件。要下载最新的稳定 版本,请使用以下命令。

    $ curl -O https://s3-us-west-2.amazonaws.com/aws-efa-installer/aws-efa-installer-1.5.0.tar.gz

    注意

    您也可以通过将上面命令中的版本号替换为 latest 来获取最新版本。

  3. 软件安装文件将打包为压缩的 .tar.gz 文件。从压缩的 .tar.gz 文件中提取文件,并导航到提取的目录。

    $ tar -xf aws-efa-installer-1.5.0.tar.gz
    $ cd aws-efa-installer
  4. 运行 EFA 软件安装脚本。

    $ sudo ./efa_installer.sh -y

    Libfabric 安装在 /opt/amazon/efa 目录中,而 Open MPI 安装在 /opt/amazon/openmpi 目录中。

  5. 注销实例,然后重新登录。

  6. 确认已成功安装 EFA 软件组件。

    $ fi_info -p efa

    该命令应返回有关 libfabric EFA 接口的信息。以下示例显示了命令输出。

    provider: efa fabric: EFA-fe80::94:3dff:fe89:1b70 domain: efa_0-rdm version: 2.0 type: FI_EP_RDM protocol: FI_PROTO_EFA provider: efa fabric: EFA-fe80::94:3dff:fe89:1b70 domain: efa_0-dgrm version: 2.0 type: FI_EP_DGRAM protocol: FI_PROTO_EFA provider: efa;ofi_rxd fabric: EFA-fe80::94:3dff:fe89:1b70 domain: efa_0-dgrm version: 1.0 type: FI_EP_RDM protocol: FI_PROTO_RXD

步骤 4:(可选)安装 Intel MPI

注意

如果您打算使用 Open MPI,请跳过此步骤。仅在您打算使用 Intel MPI 时执行此步骤。

Intel MPI 安装需要额外的安装脚本和环境变量配置。

先决条件

确保执行以下步骤的用户具有 sudo 权限。

安装 Intel MPI

  1. 下载 Intel MPI 安装脚本。

    $ curl -O http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15553/aws_impi.sh
  2. 更改脚本权限以添加组读/写权限。

    $ chmod 755 aws_impi.sh
  3. 运行安装脚本。

    $ ./aws_impi.sh install

    Intel MPI 将安装到 /opt/intel/impi/2019.4.243/intel64 目录中。

  4. 将 Intel MPI 环境变量添加到相应的 shell 启动脚本,以确保每次实例启动时都设置它们。根据您的 shell 执行下列操作之一。

    注意

    由于环境变量长度限制,不支持 csh shell。

    • 对于 bash,将以下环境变量添加到 /home/username/.bashrc/home/username/.bash_profile

      source /opt/intel/impi/2019.4.243/intel64/bin/mpivars.sh
    • 对于 tcsh,将以下环境变量添加到 /home/username/.cshrc

      source /opt/intel/impi/2019.4.243/intel64/bin/mpivarsh.csh
  5. 注销实例,然后重新登录。

  6. 运行以下命令以确认是否已成功安装 Intel MPI。

    $ which mpicc

    以下示例显示了命令输出。

    /opt/intel/compilers_and_libraries_2019.4.243/linux/mpi/intel64/bin/mpicc

注意

如果您不再需要使用 Intel MPI,请从 shell 启动脚本中删除环境变量。

步骤 5:安装 HPC 应用程序

在临时实例上安装 HPC 应用程序。安装过程因特定的 HPC 应用程序而异。有关在 Linux 实例上安装软件的更多信息,请参阅在 Linux 实例上管理软件

注意

您可能需要参阅 HPC 应用程序文档以了解安装说明。

步骤 6:创建启用 EFA 的 AMI

在安装所需的软件组件后,您创建一个 EFA-AMI,可以将其重复使用以启动启用了 EFA 的实例。

从临时实例中创建 AMI

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格中,选择实例

  3. 选择您在步骤 2 中创建的实例,然后选择 Actions (操作)Image (映像)Create Image (创建映像)

  4. Create Image (创建映像) 窗口中,执行以下操作:

    1. 对于 Image name (映像名称),请输入一个描述性的 AMI 名称,例如 EFA-enabled AMI

    2. (可选)对于 Image description (映像描述),请输入 AMI 的简要描述。

    3. 选择 Create Image (创建映像),然后选择 Close (关闭)

  5. 在导航窗格中,选择 AMI

  6. 在列表中找到您创建的 AMI。等待状态从 pending 转变为 available,然后再继续执行下一步。

步骤 7:在集群置放群组中启动启用 EFA 的实例

使用在步骤 5 中创建的启用了 EFA 的 AMI 以及在步骤 1 中创建的启用了 EFA 的安全组,在集群置放群组中启动启用了 EFA 的实例。

注意

在集群置放群组中启动启用了 EFA 的实例并不是一个绝对要求。不过,我们建议在集群置放群组中运行启用了 EFA 的实例,因为它在单个可用区的低延迟组中启动实例。

在集群置放群组中启动启用了 EFA 的实例

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 选择 Launch Instance

  3. 选择 AMI 页面上,选择我的 AMI,找到您在步骤 5 中创建的 AMI,然后选择选择

  4. Choose an Instance Type (选择实例类型) 页面上,选择以下支持的实例类型之一,然后选择下一步:配置实例详细信息:c5n.18xlarge, i3en.24xlarge, p3dn.24xlarge。

  5. Configure Instance Details (配置实例详细信息) 页面中,执行以下操作:

    1. 对于 Number of instances (实例的数量),请输入要启动的启用了 EFA 的实例数量。

    2. 对于 Network (网络)Subnet (子网),请选择要在其中启动实例的 VPC 和子网。

    3. 对于 Placement group (置放群组),请选择 Add instance to placement group (将实例添加到置放群组)

    4. 对于 Placement group name (置放群组名称),请选择 Add to a new placement group (添加到新的置放群组),输入一个描述性的置放群组名称,然后为 Placement group strategy (置放群组策略) 选择 cluster (集群)

    5. 对于 EFA,请选择 Enable (启用)

    6. Network Interfaces (网络接口) 部分中,为设备 eth0 选择 New network interface (新网络接口)。您可以选择指定主 IPv4 地址以及一个或多个辅助 IPv4 地址。如果在具有关联的 IPv6 CIDR 块的子网中启动实例,您可以选择指定主 IPv6 地址以及一个或多个辅助 IPv6 地址。

    7. 选择 Next: Add Storage

  6. Add Storage (添加存储) 页面上,除了 AMI 指定的卷(如根设备卷)以外,还要指定要附加到实例的卷,然后选择 Next: Add Tags (下一步:添加标签)

  7. Add Tags (添加标签) 页面上,为实例指定标签(例如,便于用户识别的名称),然后选择 Next: Configure Security Group (下一步:配置安全组)

  8. Configure Security Group (配置安全组) 页面上,为 Assign a security group (分配安全组) 选择 Select an existing security group (选择一个现有的安全组),然后选择在步骤 1 中创建的安全组。

  9. 选择 Review and Launch

  10. Review Instance Launch (核查实例启动) 页面上,检查这些设置,然后选择 Launch (启动) 以选择一个密钥对并启动您的实例。

步骤 8:终止临时实例

此时,您不再需要使用在步骤 2 中启动的临时实例。您可以终止该实例以停止产生费用。

终止临时实例

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格中,选择实例

  3. 选择您在步骤 2 中创建的临时实例,然后选择操作实例状态终止是,终止