使用对象存储作为资料档案库在 OCI 上实施 NFS 集群服务器

当我们的关键非结构化数据在创建之初经常访问,但此后不常访问时,最佳选择是 Oracle Cloud Infrastructure Object Storage

但是,由于某些应用无法原生使用对象存储,因此我们需要使用第三方解决方案。对于此体系结构,我们将使用:

  • 克隆以读取和写入对象存储。
  • Corosync 和 Pacemaker 可以构建到集群(活动备用),确保关键应用(例如,克隆、辅助 IP、NFS 服务、挂载点等)所需的高可用性。
  • 辅助 IP,用于挂载由群集共享的网络文件系统 (Network File System,NFS),以及在群集节点之间进行自动故障转移。

此参考架构描述了客户激励的配置,并结合了高可用性和灵活性。

体系结构

下图说明了此参考体系结构。

在此方案中,为了加快切换过程,我们将保留:Rclone 和 NFS 服务正在运行;Rclone 在挂载模型中;NFS 服务共享由 Rclone 挂载的文件夹;以及仅连接到其中一个节点的辅助 IP。

该体系结构具有以下组成部分:



oci-rclone-architecture-diagram-oracle.zip

可在 OTube 上查看节点之间的切换过程。

APP Server => inst-i6hjc-rclone-ha -  Client Server
                        /mnt/nfs_rclone_v2 =  Mount point client side 

NFS - Floating IP = 172.10.0.100 

RCLONE => nfs-rclone = Cluster Node1 = IP = 172.10.0.287
RCLONE STANDBY => inst-e2fc3-rclone-ha =  Cluster Node 2 - IP = 172.10.0.121

NFS -  SHARE
/mnt/nfs_rclone =  From Object Storage 

可以使用跨区域备份创建灾难恢复;如果在设置中使用变量,则 Rclone 配置是静态的。



oci-nfs-cluster-architecture-diagram-oracle.zip

对于灾难恢复:

  • 通过在其他区域中创建数据副本,使用对象存储复制进行灾难恢复。请参见“浏览更多:使用复制”。
  • 为计算实例创建灾难恢复解决方案。请参见“浏览更多:复制卷”。

此体系结构包含以下组件:

  • 区域

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

  • 可用性域

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

  • 容错域

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

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

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

  • 对象存储

    通过对象存储,可以快速访问任意内容类型的大量结构化和非结构化数据,包括数据库备份、分析数据以及丰富的内容(例如图像和视频)。您可以安全可靠地存储数据,然后直接从互联网或云平台检索数据。您可以无缝扩展存储,而不会降低性能或服务可靠性。将标准存储用于“热”存储,您需要快速、立即和频繁地访问这些存储。将归档存储用于保留很长时间、很少或很少访问的“冷”存储。

  • 克隆

    Rclone 是一个用于管理云存储上的文件的开源命令行程序,此处用于通过 NFS 提供对象存储。

  • Corosync 和 Pacemaker

    Corosync 和 Pacemaker 都是适用于小型和大型集群的开源服务,并负责在应用内提供高可用性。

  • OCI CLI

    OCI CLI 负责将 Linux Corosync/Pacemaker VirtualIP IPaddr2 资源与 Oracle Cloud Infrastructure vNIC 辅助 IP 集成。

  • Oracle Linux

    Oracle Linux 8.6 实例用于托管此环境。其他 Linux 发行版也可以使用,只要它们支持 Linux Rclone/Corosync/Pacemaker。

  • 辅助 IP

    辅助专用 IP 可以在实例启动后添加到实例。您可以将其添加到实例上的主要或辅助 VNIC。此辅助 IP 将在节点之间浮动;如果节点关闭,则浮动 IP 将传递给另一个。Corosync 和 Pacemaker 将负责此变更流程。

建议

将以下建议用作使用具有辅助 IP 和对象存储的 OCI 实例进行 NFS 集群配置的起点。 您的要求可能不同于此处所述的体系结构。
  • 克隆

    在两个群集节点上使用相同的目录名称。请注意 NFS 导出配置,以便使用 Rclone 文件系统不会出现问题。如果使用图形界面挂载目录,则可以通过图形界面监视该目录。

    如果您未在 Linux 集群中配置 Rclone 服务,我们建议在 crontab 中使用 shell 脚本在服务器启动期间启动服务

  • VCN

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

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

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

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

  • 计算配置

    此体系结构使用弹性配置为 E3 或 E4 的 Oracle Linux OS 映像,其中最少资源用于将计算主机托管到群集节点。如果您的应用需要更多吞吐量网络、内存或核心,您可以选择其他配置。

  • Oracle Linux 群集

    预配 Oracle Linux 实例后,您需要按公共文档中的说明设置 CLI,然后安装和配置 Corosync/Pacemaker 集群及其要求(stonith、法定、资源、约束条件等)。配置 Corosync/Pacemaker 集群和 CLI 后,您需要设置 VirtualIP 资源。此链接是如何使用命令行在 Corosync/Pacemaker 上设置 VirtualIP 资源的快速示例。也可以通过 Web 浏览器 UI 执行相同的流程。

  • 对象存储

    使用对象生命周期管理(请参阅“浏览更多”)更改类型,并使用保留规则保留数据(请参阅“浏览更多”)在上载文件后更改和管理存储桶中的数据。

  • Corosync 和 Pacemaker

    将 Linux Corosync 和 Pacemaker 与 OCI CLI 集成时,应尽可能使用多个变量,使脚本保持静态且独立于正在运行的服务器。

确认

  • 作者:Diego Mariano
  • 贡献者:John Sulyok