使用 Lustre 部署可扩展的分布式文件系统

Lustre 是用于高性能计算 (HPC) 群集和环境的开源并行分布式文件系统。Lustre 名称是 Linux群的 portmanteau。

使用 Lustre,可以在本地连接到计算节点的 Oracle Cloud Infrastructure 裸金属计算和网络连接块存储或 NVMe SSD 上构建 HPC 文件服务器。Terraform 模板提供了在 Oracle Cloud Infrastructure 上部署 Lustre 的简单方法。

Lustre 群集可扩展文件系统的吞吐量更高和/或存储容量更高。计算和存储合计每千兆字节仅需每月几美分。

Terraform 部署模板预配 Oracle Cloud Infrastructure 资源,包括计算、存储、虚拟云网络和子网。它还预配 Lustre 软件,包括管理服务器 (MGS)、元数据服务器 (MDS)、对象存储服务器 (OSS) 和 Lustre 客户机节点。

体系结构

此引用体系结构使用具有单个可用性域和区域子网的区域。可以在具有多个可用性域的区域中使用相同的引用体系结构。建议您使用区域子网进行部署,而不管可用性域数量如何。

下图说明了此引用体系结构。

后面是 lustre-oci.png 的说明
插图 lustre-oci.png 的说明

可伸缩 Lustre 体系结构包含以下组件:

  • 管理服务器 (MGS)

    MGS 存储一个或多个 Lustre 文件系统的配置信息,并将此信息提供给其他 Lustre 主机。此全局资源可以支持多个文件系统。

  • 元数据服务器 (MDS)

    MDS 提供 Lustre 文件系统的索引或名称空间。元数据内容存储在名为元数据目标 (MDT) 的卷上。Lustre 文件系统的目录结构和文件名、权限、扩展属性和文件布局将记录到 MDT 中。每个 Lustre 文件系统必须至少有一个 MDT。

  • 对象存储服务器 (OSS)

    OSS 为 Lustre 文件系统中的所有文件内容提供批量数据存储。通过每个 OSS 可以访问一组存储卷,称为对象存储目标 (Object Storage Targets, OST)。每个 OST 包含多个二进制对象,这些对象表示 Lustre 中文件的数据。Lustre 中的文件由一个或多个 OST 对象以及存储在 MDS 上的元数据 inode 组成。

  • Lustre 客户

    客户机是访问 Lustre 文件系统的计算实例。

  • 虚拟云网络 (VCN) 和子网

    VCN 是在 Oracle Cloud Infrastructure 区域中设置的软件定义的网络。VCN 可以分为特定于某个区域或可用性域的子网。特定于区域的子网和可用性域特定的子网都可以在同一 VCN 中共存。子网可以是公共的或专用的。

  • 安全列表

    对于每个子网,可以创建安全规则,以指定必须允许进出子网的源、目标和流量类型。

  • 可用性域

    可用性域是区域内的独立独立数据中心。每个可用性域中的物理资源都与其他可用性域中的资源隔离,这些资源提供故障容差。可用性域不共享基础设施,例如电源、冷却或内部可用性域网络。因此,一个可用性域出现故障不太可能影响该区域中的其他可用性域。

建议

您的要求可能不同于此处介绍的体系结构。使用以下建议案作为起点。

  • 计算形状,堡垒主机

    堡垒主机用于访问专用子网中的任何节点。使用 VM.Standard.E2.1 或 VM.Standard.E2.2 配置。

  • 计算形状、MGS 和 MDS

    由于 MGS 不是资源密集型,因此可以在同一实例上托管 MGS 和 MDS。要确保节点级别中断不影响文件系统,请使用具有高可用性的裸金属实例。

  • 具有块体积和高可用性的裸金属计算

    使用 BM.Standard2.52。每对配置两个节点。两个物理网络接口控制器 (physical network interface Controller, NIC),每个控制器的网络速度为 25-Gbps。对所有通信使用一个 NIC 来阻止存储,并将其他 NIC 用于从客户机节点传入 OSS 和 MDS 节点的数据。

    使用带有多实例连接的块存储卷(每个部署要求的大小和编号)将卷附加到两个计算节点。

  • 计算形状,OSS

    我们对 OSS 的建议与对 MGS 和 MDS 的建议相同。

  • 计算形状,Lustre 客户端

    根据您的部署计划,特别是网络带宽要求,选择虚拟机 (VM) 配置。

    单个客户机的吞吐量取决于容量。如果部署 10 个具有 2.5-Gbps 网络带宽的客户机,则聚合带宽为 25 Gbps。

  • RAID 配置

    (可选)可以使用 RAID 0 配置 DenseIO 配置。

    在每个 OSS 构建一个 OST 时使用 RAID。

    如果您使用的是每个 OSS 的一个 OST,建议使用每个 OSS 的八个块存储卷来最大化吞吐量(RAID 0 是可选的)。

    注意:

    Terraform 模板使用 DenseIO 或块存储卷构建裸金属形状。
  • VCN

    创建 VCN 时,确定每个子网所需的云资源的 IP 地址数。使用无类域间路由 (Classless Inter-Domain Routing, CIDR) 表示法,指定足够大于所需 IP 地址的子网掩码和网络地址范围。使用标准专用 IP 地址块内的地址空间。

    选择不与内部部署网络重叠的地址范围,以便可以根据需要在 VCN 与内部部署网络之间设置连接。

    创建 VCN 后,无法更改其地址范围。

    设计子网时,请考虑您的功能和安全要求。将同一层或角色中的所有计算实例附加到可用作安全边界的同一子网。

    使用区域子网。

  • 安全列表

    使用安全列表定义适用于整个子网的入站和出站规则。例如,此体系结构允许整个专用子网的内部 ICMP。

考虑事项

  • 性能

    要获得最佳性能,请选择具有相应带宽的正确计算形状。

  • 可用性

    考虑根据您的部署要求使用高可用性选项。

  • 成本

    裸金属服务可以提高网络带宽的性能,从而提高成本。评估需求以选择适当的计算形状。

  • 监测和预警

    为 MGS、MDS 和 OSS 节点设置 CPU 和内存使用情况的监视和预警,以根据需要向上或向下扩展 VM 配置。

部署

此引用体系结构的 Terraform 代码在 Oracle Cloud Infrastructure Resource Manager 中作为示例堆栈提供。您还可以从 GitHub 下载代码,并根据特定要求进行定制。

  • 使用 Oracle Cloud Infrastructure Resource Manager 中的示例堆栈进行部署:
    1. 单击部署到 Oracle Cloud

      如果尚未登录,请输入租户和用户身份证明。

    2. 复核并接受条款和条件。
    3. 选择要在其中部署堆栈的区域。
    4. 按照屏幕上的提示和说明创建堆栈。
    5. 创建堆栈后,单击 Terraform 操作,然后选择规划
    6. 等待作业完成,然后复查计划。

      要进行任何更改,请返回“堆栈详细信息”页,单击编辑堆栈,然后进行所需的更改。然后,再次运行计划操作。

    7. 如果不需要进一步更改,请返回“堆栈详细信息”页,单击 Terraform 操作,然后选择应用
  • 在 GitHub 中使用 Terraform 代码进行部署:
    1. 转到 GitHub
    2. 将资料档案库克隆或下载到本地计算机。
    3. 按照 README 文档中的说明操作。