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

可扩展的分布式网络文件系统适用于图像处理和介质流等数据密集型任务。在高性能计算 (HPC) 环境中使用时,GlusterFS 提供对大型数据集的高性能访问,特别是不可变文件。

体系结构

此引用体系结构包含分布式网络文件系统所需的基础结构组件。它包含三个裸金属实例,这是为 GlusterFS 设置高可用性所需的最小实例。

在三服务器配置中,必须至少有两个服务器处于联机状态才能允许对集群执行写入操作。数据在所有节点之间复制,如图中所示。

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

glusterfs-oci-oracle.zip

  • 区域

    Oracle Cloud Infrastructure 区域是一个本地化地理区域,包含一个或多个数据中心,称为可用性域。区域独立于其他区域,其距离很大(跨越国家或甚至大陆)可以分开。

  • 可用性域

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

  • 容错域

    容错域是可用性域内的一组硬件和基础设施。每个可用性域都有三个具有独立电源和硬件的故障域。在多个故障域之间分配资源时,应用程序可以容忍故障域中的物理服务器故障、系统维护和电源故障。

  • 虚拟云网络和子网

    VCN 是在 Oracle Cloud Infrastructure 区域中设置的可自定义、软件定义的网络。与传统的数据中心网络一样,VCN 允许您完全控制您的网络环境。VCN 可以有多个非重叠 CIDR 块,您可以在创建 VCN 后更改这些块。您可以将 VCN 细分为子网,子网可以被限定为区域或可用性域。每个子网包含一系列与 VCN 中的其他子网不重叠的地址。您可以在创建后更改子网的大小。子网可以是公共的或专用的。

    此体系结构使用两个子网:公共子网用于创建 DMZ 并托管堡垒服务器;专用子网用于托管 GlusterFS 节点。

  • 网络安全组 (NSG)

    NSG 充当云资源的虚拟防火墙。使用 Oracle Cloud Infrastructure 的零信任安全模型时,所有通信都将被拒绝,您可以控制 VCN 中的网络通信。NSG 包含一组入站和出站安全规则,这些规则仅适用于单个 VCN 中的一组指定 VNIC。

  • 安全列表

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

  • GFS-nodes

    这些是 GlusterFS 前端,每个实例连接了 1 TB 的块存储。

  • /gfs-data

    在引用体系结构中,客户机在挂载点/gfs-data 处挂载 GlusterFS 卷,应用程序可通过该挂载点访问文件系统。多个服务器可以并行访问前端节点。

  • 堡垒主机

    堡垒主机是一个计算实例,用作云外部拓扑的安全受控入口点。堡垒主机通常预配在非军事区 (DMZ) 中。它使您可以通过将敏感资源放置在无法直接从云外部访问的专用网络中来保护敏感资源。拓扑有一个已知的单个入口点,您可以定期监视和审计。因此,可以避免公开拓扑的更敏感的组件,而不会影响对这些组件的访问。

建议

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

  • GlusterFS 体系结构

    此体系结构使用复制的 GlusterFS 卷;将在所有节点上复制数据。此配置提供最高的数据可用性,但也使用最大的空间量。如体系结构图中所示,创建 File1 时,会在节点之间复制它。

    GlusterFS 支持以下体系结构。选择适合您的要求的体系结构:
    • 分布式卷

      此体系结构是默认的 GlusterFS 配置,用于获取最大卷大小和可扩展性。没有数据冗余。因此,如果卷中的砖块出现故障,则会导致数据完全丢失。

    • 复制卷

      在高可用性至关重要的情况下,最常使用此体系结构。通过在两个或多个块之间复制数据,可以避免由于砖块故障而产生的数据丢失问题。此引用体系结构使用复制的卷配置。

    • 分布式复制卷

      此体系结构是分布式卷和复制卷的组合,用于获取比复制卷更大的卷大小以及比分布式卷更高的可用性。在此配置中,数据将复制到总块数的子集。砖数必须是副本计数的倍数。例如,四个块,每个块 1 TB 将为您提供分布式空间 2 TB,并进行双重复制。

    • 条带化卷

      此体系结构用于大型文件,这些文件将划分为较小的块,每个块都存储在一个块中。负载分布在砖中,可以更快地提取文件,但没有可用的数据冗余。

    • 分布式条带化卷

      此体系结构用于分布在多个砖中的大型文件。使用此配置进行的权衡是,如果要增加卷大小,则必须添加条带计数的倍数块。

  • 计算配置

    此体系结构对所有 GlusterFS 节点使用裸金属形状 (BM.Standard2.52)。这些裸金属计算实例具有两个物理 NIC,可以将流量推送到 25 Gbps。第二个物理 NIC 专用于 GlusterFS 通信。

  • 块存储

    此体系结构使用 1 TB 块存储。建议您配置逻辑卷管理器 (logical volume Manager, LVM),以便在需要更多空间时允许卷增长。每个块卷配置为使用平衡性能,并提供 35K IOPS 和 480 MB/秒吞吐量。

  • 虚拟云网络 (VCN)

    创建 VCN 时,根据计划附加到 VCN 中子网的资源数确定所需的 CIDR 块数和每个块的大小。使用标准专用 IP 地址空间内的 CIDR 块。

    选择不与您要设置专用连接的任何其他网络(在 Oracle Cloud Infrastructure、内部部署数据中心或其他云提供商中)重叠的 CIDR 块。

    创建 VCN 后,可以更改、添加和删除其 CIDR 块。

    设计子网时,请考虑流量和安全要求。将特定层或角色中的所有资源附加到可用作安全边界的同一子网。

  • 网络安全组 (NSG)

    可以使用 NSG 定义一组适用于特定 VNIC 的入站和出站规则。我们建议使用 NSG 而不是安全列表,因为 NSG 允许您将 VCN 的子网体系结构与应用程序的安全要求分开。在引用体系结构中,所有网络通信都通过 NSG 进行控制。

  • 安全列表

    使用安全列表定义适用于整个子网的入站和出站规则。

考虑事项

  • 性能

    要获得最佳性能,请使用专用 NIC 从应用程序到用户和 GlusterFS 前端的通信。使用主 NIC 在应用程序和用户之间进行通信。使用辅助 NIC 与 GlusterFS 前端通信。您还可以更改块存储的卷性能,以增加或减少磁盘的 IOPS 和吞吐量。

  • 可用性

    故障域提供可用性域中的最佳弹性。如果需要更高的可用性,请考虑使用多个可用性域或多个区域。对于关键任务工作负载,请考虑使用分布式条带化 GlusterFS 卷。

  • 成本
    GlusterFS 部署的成本取决于您对磁盘性能和可用性的要求:
    • 您可以从以下性能选项中进行选择:高性能、均衡性能和低成本。
    • 要获得更高的可用性,您需要更多的 GlusterFS 节点和卷。

部署

部署此引用体系结构所需的代码在 GitHub 中可用。单击一次即可将代码拉入 Oracle Cloud Infrastructure Resource Manager,创建堆栈并部署该堆栈。或者,也可以使用 Terraform CLI 将代码从 GitHub 下载到计算机,定制代码并部署体系结构。

  • 使用 Oracle Cloud Infrastructure Resource Manager 进行部署:
    1. 单击部署到 Oracle Cloud

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

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

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

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

更改日志

此日志列出了重大更改: