在 KVM 环境中加速和扩展虚拟机映像的存储

此参考架构展示了可扩展的高性能数据存储和数据移动平台,专门用于优化数据访问延迟和带宽,特别是在负载高峰期间。

体系结构

该架构使用具有 3 个容错域的单个可用性域。解决方案的所有组件都具有高可用性,没有任何单点故障。

在每个节点上,数据存储在两个位置:RAM 和块存储卷。RAM 是使用 Linux 内核驱动器块 RAM 磁盘 (brd) 作为本地文件系统挂载的。基于 RAM 的位置和基于块存储卷的位置在两个文件系统中统一。每个文件系统通过使用 GlusterFS(一个可伸缩的并行文件系统)在节点之间共享。

GlusterFS 应用于 RAM 和连接的块存储卷以创建两个分布式卷。此两层文件存储允许以两个方向移动高性能数据:
  • 在节点内:任意数量的虚拟机 (Virtual Machine,VM) 引导时没有延迟,与实际的 VM 数量无关。因此,该架构消除了从共享存储读取 VM 映像的瓶颈,并防止在负载高峰期间出现服务延迟。
  • 跨节点:借助分布式卷,VM 在节点之间无缝移动。因此,任何节点都可以随时访问任何 VM 映像,这样,管理员可以在节点池增长(或者节点出现硬件故障时收缩)时,跨裸金属 (bare metal,BM) 节点快速重新平衡 VM 映像。您可以选择将两种共享存储类型(基于 RAM 和基于块存储卷的存储)分层为单个共享存储实例,其中 RAM 层用于频繁访问(热)存储,块存储卷用于长期(冷)存储。

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



vm-kvm-oci-oracle.zip

该体系结构具有以下组件:

  • 区域

    Oracle Cloud Infrastructure 区域是一个本地化地理区域,其中包含一个或多个数据中心(称为可用性域)。地区独立于其他地区,广阔的距离可以分隔它们(在各国甚至大陆)。

  • 可用性域

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

  • 容错域

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

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

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

  • 站点到站点 VPN

    站点到站点 VPN 在 Oracle Cloud Infrastructure 中提供内部部署网络与 VCN 之间的 IPSec VPN 连接。IPSec 协议套件在将数据包从源传输到目标之前对 IP 通信进行加密,并在通信到达时对通信进行解密。

  • FastConnect

    Oracle Cloud Infrastructure FastConnect 可以在您的数据中心与 Oracle Cloud Infrastructure 之间轻松创建专用连接。与基于 Internet 的连接相比,FastConnect 提供更高的带宽选项和更可靠的网络体验。

  • 动态路由网关 (DRG)

    DRG 是一个虚拟路由器,用于为同一区域中的 VCN 之间、VCN 与区域外的网络(例如另一个 Oracle Cloud Infrastructure 区域中的 VCN、内部部署网络或其他云提供商中的网络)之间的专用网络流量提供路径。

  • 网络地址转换 (NAT) 网关

    通过 NAT 网关,VCN 中的专用资源可以访问 Internet 上的主机,而不会向传入的 Internet 连接公开这些资源。

  • Internet 网关

    Internet 网关允许在 VCN 中的公共子网与公共 Internet 之间进行流量传输。

  • 安全列表

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

  • 路由表

    虚拟路由表包含将流量从子网路由到 VCN 外部目标(通常通过网关)的规则。

  • 堡垒主机

    堡垒主机是一个计算实例,它为用户从云外部访问拓扑提供了安全受控的入口点。堡垒主机通常预配在隔离区 (DMZ) 中。利用它,您可以将敏感资源放在无法从云中直接访问的专用网络中,以保护这些资源。拓扑具有已知的单个入口点,您可以定期对其进行监视和审计。因此,您可以避免公开拓扑中敏感度更高的组件,同时又不会影响对它们的访问。

  • 裸金属

    Oracle 裸金属服务器使用专用计算实例提供隔离、监视和控制。这些服务器支持需要高核心数、大量内存和高带宽的应用程序。他们可以扩展至 160 个核心(业内最大)、2 TB RAM 和 1 PB 块存储。客户可以在 Oracle 裸金属服务器上构建云环境,并与其他公共云和内部部署数据中心相比,获得可观的性能提升。

  • 块存储卷

    通过块存储卷,您可以创建、附加、连接和移动存储卷,并更改卷性能,从而满足您的存储、性能和应用要求。将卷连接到实例后,您可以像常规硬盘驱动器那样使用该卷。您还可以断开卷的连接并将其附加到另一实例而不会丢失数据。

建议

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

  • VCN

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

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

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

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

    使用区域子网。

  • 云卫士

    使用 Oracle Cloud Guard 主动监视和维护 Oracle Cloud Infrastructure 中资源的安全性。Cloud Guard 使用可以定义的检测器配方来检查资源是否存在安全弱点,以及监视操作员和用户是否存在有风险的活动。检测到任何配置错误或不安全活动时,Cloud Guard 将根据您可以定义的响应器配方建议更正操作并协助采取这些操作。

    克隆并定制 Oracle 提供的默认配方,以创建定制检测器和响应器配方。使用这些配方可以指定哪些类型的安全违规生成警告以及允许对其执行哪些操作。例如,您可能需要检测可见性设置为“公共”的对象存储桶。

    在租户级别应用 Cloud Guard,以涵盖最广泛的范围并减轻维护多个配置的管理负担。

    您还可以使用托管列表功能将某些配置应用于检测器。

  • 安全区域

    对于需要最高安全性的资源,Oracle 建议使用安全区域。安全区域是与 Oracle 定义的基于最佳实践的安全策略配方关联的区间。例如,安全区域中的资源不能从公共 Internet 访问,并且必须使用客户管理的密钥对它们进行加密。在安全区域中创建和更新资源时,Oracle Cloud Infrastructure 将根据安全区域配方中的策略验证操作,并拒绝违反任何策略的操作。

  • 网络安全组 (NSG)

    您可以使用 NSG 定义一组适用于特定 VNIC 的入站和出站规则。我们建议使用 NSG,而非安全列表,因为您可以通过 NSG 将 VCN 的子网架构与应用的安全要求区分开来。

  • 虚拟机管理程序节点

    部署 HPC 裸金属配置以获得全面性能。此体系结构使用 BM.Standard.E4 配置。

考虑事项

部署此引用体系结构时,请考虑以下几点。

  • 性能

    要实现出色的性能,请选择具有适当带宽的正确计算配置。

  • 可用性

    根据您的部署要求和区域,考虑使用高可用性选项。选项包括在一个区域和容错域中使用多个可用性域。

    • 监视和预警

      对节点的 CPU 和内存使用情况设置监视和预警,以便您可以根据需要纵向扩展或收缩配置。

    • 成本

      裸金属 GPU 实例可提供必要的 CPU 功率,从而实现更高的成本。评估您的需求,选择合适的计算配置。

      在没有作业正在运行时,您可以删除群集。

  • 群集文件系统

    有多种情况:

    • 带有 HPC 配置的经过优化的 DenseIO 配置。
    • 多连接块存储卷可提供高达 2,680 MB/s 的 IO 吞吐量或 700k IOPS。
    • 您还可以在 NVMe SSD 存储或块存储之上安装自己的并行文件系统,具体取决于您的性能要求。OCI 提供基于暂存和永久 NFS 的 (NFS-HA,FSS) 或并行文件系统 (weka.io,Spectrum Scale,BeeGFS,BeeOND,Lustre,GlusterFS,Quobyte) 解决方案。

部署

Oracle Cloud Marketplace 中提供了 Linux KVM 的 GlusterFS 应用程序和 Terraform 代码。

Oracle Cloud Marketplace 中提供了用于创建 Oracle Linux KVM 实例的 Terraform 堆栈。

  1. 转到 Oracle Cloud Marketplace
  2. 单击获取应用程序
  3. 按照屏幕上的提示操作。

GlusterFS 应用程序在 Oracle Cloud Marketplace 中提供。必须在每个实例上手动部署 GlusterFS。

  1. 转到 Oracle Cloud Marketplace
  2. 单击获取应用程序
  3. 按照屏幕上的提示操作。

确认

Authors:Yuri Rassokhin,Deepak Soni