3.5. Storage


选择满足 OpenShift 应用需求的存储后端,同时将复杂性降至最低。OpenStack Platform 和 OpenShift Container Platform 都独立且成熟的存储解决方案。但是,无需规划,将解决方案结合到各个平台,从而增加复杂性和不需要的性能开销。

如果要避免重复存储组件,请考虑您的工作负载。

3.5.1. 总体存储后端

Red Hat Ceph Storage 为 OpenStack 提供首选、可扩展、集成和支持的云存储。Red Hat Ceph Storage 与完整的红帽云软件堆栈紧密集成。它提供块和对象存储功能。

Ceph 集群服务器被分成 monitor 和 Object Storage Device (OSD)节点。

  • Ceph 监视器运行 monitor 守护进程,它会保留集群拓扑的主要副本。
  • 客户端通过算法计算数据的位置,它决定了如何存储和检索数据(称为"CRUSH 映射")
  • 客户端直接向 OSD 读取和写入数据。
  • monitor 维护集群运行状况、状态和拓扑。
  • 客户端直接与 OSD 交互。客户端仅检查 monitor,以确保 CRUSH map 为最新版本。
  • 数据在节点的物理磁盘之间复制。

3.5.1.1. Ceph 后端

Red Hat OpenStack Platform 16.2 使用 Red Hat Ceph Storage (RHCS) 4 作为 director 驱动的存储解决方案的一部分。默认使用 BlueStore 后端。RHCS 4 及更新版本的安装只支持使用更高性能的 BlueStore 后端。

有关 RHCS 支持的存储后端的更多信息,请参阅 架构指南中的 Ceph ObjectStore

有关配置 RHCS 的更多信息,请参阅 支持的配置

3.5.2. 对象存储(OpenStack swift)

OpenStack 支持通过 OpenStack Object Store 服务(swift)访问对象存储。

默认情况下,在使用 director 安装 Red Hat OpenStack Platform 时,会在控制器上放置一个简单的对象存储部署。对于最小工作负载(如 glance 的后端),在生产环境中支持此对象存储。

3.5.2.1. OpenShift registry

OpenShift 安装程序遵循 扩展 registry 的建议做法,并尝试将 OpenStack 的对象存储服务用作内部镜像 registry 后端的首选位置。为此,安装程序会检查可访问的对象存储位置,并在找到时使用该位置。如果无法找到,它将 推荐的最佳实践用于非扩展的 registry, 并创建 ReadWriteOnce (RWO) cinder 卷。

3.5.3. 镜像存储(OpenStack glance)

使用 director 部署 Red Hat Ceph Storage (RHCS)时,OpenStack Image 服务(glance)的默认安装使用 RHCS 作为后端。这允许镜像存储在冗余、快速存储上,提供写时复制克隆(CoW),以便更快地引导和最佳存储。

但是,这也意味着不建议使用 QCOW2 格式的镜像。如需更多信息,请参阅将镜像转换为 RAW 格式。您必须使用 RAW 镜像从临时后端或卷启动实例。

RHOCP 安装程序自动下载并使用公开的 QCOW2 格式镜像。您可以通过将 clusterOSImage 安装变量设置为外部 RAW 格式的镜像的 URL 或已存储在 OpenStack 镜像服务中的现有 RAW 格式镜像的名称来更改它。对于 OpenShift 4.12,请从 官方源 获取 OpenStack 镜像。

在指导安装中无法使用 clusterOSImage 变量。您必须手动将其添加到 install-config.yaml 文件中。

OpenShift 安装程序使用镜像服务来实现两个目的:

  • 要存储启动 bootstrap 集群的 openshift ignition 文件。
  • 要存储 Red Hat Enterprise Linux CoreOS 镜像。

3.5.4. OpenShift 的持久性存储

Kubernetes 持久卷(PV)框架允许 OpenShift 用户从底层存储子系统请求存储,而无需了解存储架构。

OpenShift 支持多种提供存储后端访问的方法。对于 OpenStack 16.2 上的 OpenShift 4.12,我们建议尽可能使用支持 Container Storage Interface (CSI)标准的存储后端。CSI 提供了标准化的方法,为容器化工作负载提供对底层块和文件系统的访问。

有关 CSI 的更多信息,请参阅 Kubernetes Container Storage Interface 中的 "Kubernetes CSI Developer" 部分。

3.5.4.1. Manila-CSI 用于 RWX PV

OpenShift 支持 OpenStack Manila CSI Driver Operator,以便 OpenShift 能够与 OpenStack 的共享文件系统服务(manila)交互,以从远程共享文件系统置备 PV。

使用共享文件系统服务访问远程共享文件系统意味着容器工作负载可以使用存储后端,允许同时访问计算实例、裸机节点和容器。这种类型的访问(称为 OpenShift PV 作为其访问模式)名为 ReadWriteMany (RWX),对于复杂的容器用例是必需的。

使用 Manila-CSI 时,OpenShift 用户可以通过 OpenStack API 和共享文件系统服务轻松使用远程共享文件系统。

图 3.4. 为容器工作负载使用 Manila

有助于为容器工作负载使用 Manila 的技术图。

如果 OpenShift 检测到底层 OpenStack 云中的 Manila,OpenShift 安装程序会自动创建一个存储类。安装程序不会将该存储类设置为默认存储类。

安装程序置备的基础架构安装方法创建的存储类

$ oc get sc
NAME                   PROVISIONER                RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
csi-manila-default     manila.csi.openstack.org   Delete          Immediate              false                  37d
standard-csi (default) cinder.csi.openstack.org   Delete          WaitForFirstConsumer   true                   37d

有关设置默认 StorageClass 的更多信息,请参阅 更改默认存储类

3.5.4.2. RWO PV 的 Cinder 和块存储

OpenShift 支持 Cinder CSI 驱动程序来置备卷。使用这个驱动程序置备的 PV 会动态分配。这些卷通常与 ReadWriteOnce (RWO)访问模式一起使用,但可以在它们使用 multiattach 卷类型 时将卷附加到多个实例。它通常更适合需要块存储和/或较低延迟的应用程序。

本文档会考虑这一点,并使用适用于其用途的最佳选项。

3.5.5. OpenShift 节点存储

对于为 OpenShift 节点提供需要了解的 OpenShift 节点(特别是对于运行 etcd 的节点),有一些要求和选项。本节涵盖您的选项,但请与红帽员工联系以了解更多详细信息。

安装 OpenShift 时,您必须提供快速存储。

3.5.5.1. etcd 的最低磁盘要求

control plane 虚拟机必须满足已知资源要求才能运行 etcd 键-值存储。低延迟是 etcd 稳定性和性能的要求。红帽要求所有控制器都可以访问快速磁盘(SSD 或更高),以确保稳定性和可支持性。请注意,无论 OSD 使用的磁盘技术,在与 OpenShift control plane 一起使用时,都需要额外的注意事项。如果需要 Ceph 用于 control plane 实例,请联系红帽支持,以获取指导和支持的详细信息。

要了解更多有关 etcd 磁盘要求的信息,请参阅 etcd 文档

3.5.5.2. 为 OpenShift 节点提供磁盘的选项

您有几个选项可用于为集群提供存储。为了帮助您做出决定,我们突出显示以下三个选项:

  • Compute 上的临时
  • Ceph 支持的临时性
  • Cinder 提供的卷
3.5.5.2.1. Compute 上的临时

使用托管在计算节点上本地托管的磁盘运行虚拟机是为 control plane 提供存储的最简单方法。nova 实例的卷直接存储在计算虚拟机监控程序的磁盘上。为此,磁盘必须是 SSD 或更好。在使用此方法时,请注意,丢失物理 OpenStack 计算节点会销毁使用此虚拟机监控程序上临时存储的虚拟机实例。使用具有反关联性的服务器组,在不同的虚拟机监控程序上置备 OpenShift control-plane 节点非常重要。

在我们的解决方案中,我们将此方法用于 control plane 节点,以便为 etcd 提供最佳性能。

3.5.5.2.2. Ceph 支持的临时

这是使用 director 部署的 Ceph 环境的默认配置。此配置方法将变量 NovaEnableRBDBackend 设置为 True。此设置指示所有 nova 后端磁盘使用 Ceph RBD,其优点如下:

  • 卷是临时的,但来自 Ceph 集群。
  • Ceph 存储集群本身提供弹性。

Ceph 集群可以更自定义,因为 Ceph 可以实施分层选项 来定义其存储磁盘的使用方式。

有关使用 Ceph 后端的基于 etcd 工作负载的环境稳定性和可靠性的重要信息,请参阅有关将 Ceph 与 OpenStack 搭配使用的文章

使用 director 部署 Ceph 时,默认可以轻松地实现此配置方法:

使用 director 部署 Ceph 时设置的默认值

# cat /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible.yaml
...
CinderEnableIscsiBackend: false
CinderEnableRbdBackend: true
CinderBackupBackend: ceph
NovaEnableRbdBackend: true
GlanceBackend: rbd
...

3.5.5.2.3. cinder 提供的卷

Cinder 是为多个后端存储提供商(包括 Ceph)提供 API 前端的 OpenStack 块存储服务。

Nova 实例可以从 Cinder API 请求卷。然后,Cinder 通过后端插件请求存储,将其与实例搭配使用。

使用 Ceph 部署创建可用于 OpenShift 安装程序的默认设置,以向 OpenShift 节点提供由 Ceph 支持的 Cinder 卷。这个方法为您提供了一个高度精细的解决方案,您可以在其中执行以下操作:

  • 从 Ceph 中的快速存储池置备 Ceph 支持的 Cinder 卷,以确保 etcd 性能。
  • 创建复杂和优化的存储层(类),以出现在不同的节点。
  • 将来自不同后端存储层的卷分配给 control plane 和 worker 节点。

我们将此解决方案用于我们的解决方案中的 worker 节点,以提供灵活性和弹性。

3.5.6. 红帽测试的解决方案:存储

在我们的解决方案中,我们使用 ceph-ansible 提供的内置 director 模板,通过 director 部署 Red Hat Ceph Storage (RHCS) 4。我们在 director 中将 NovaEnableRbdBackend 属性设置为 false,以将本地存储用于 nova 临时驱动器。

部署使用 超融合基础架构(HCI)模式 进行测试。在 HCI 部署模式计算和存储服务(超融合)中,并针对资源使用情况进行了优化。这等同于具有专用存储节点,但物理基础架构需要较少的。对于您自己的工作负载,您可以选择最适合您的要求的存储布局类型。Ceph 监控器在 OpenStack 控制器上并置。

此 director 部署模式将本地存储(ephemeral)配置为 control plane 节点的后备存储,以及 worker 节点、cinder 卷、glance 镜像和对象存储的 RHCS。此配置可确保 OpenShift control plane 的快速存储,并利用 etcd 为 HA 的弹性构建,同时通过 RHCS 提供 worker 节点和 OpenStack 服务的冗余。

我们使用 director 安装共享文件系统服务(manila),并使用使用 Ganesha 进行 NFS 的 RHCS 后端进行配置。有关 CephFS NFS 和 Manila CSI 的更多信息,请参阅 Red Hat OSP 16.x 的建议

有关 Manila CSI 支持的并经认证的第三方存储驱动程序和厂商,请参阅 红帽合作伙伴生态系统目录

在我们的解决方案中,Red Hat Ceph Storage 支持以下服务:

  • Block (cinder)
  • Image (glance)
  • 通过 radosgw (RGW)的对象(swift),它是 Ceph RADOS 对象存储的网关。

在我们的解决方案中,OpenShift 将存储用于各种目的。

  • 容器工作负载的存储由 cinder (RWO)& manila (RWX)提供。
  • OpenShift registry 的存储由 ceph RGW (对象存储)提供,OpenStack 租户被授予 swift operator 角色。
  • 每个租户集群的 RHCOS 镜像文件和 bootstrap ignition 文件存储在 OpenStack 的镜像服务 glance 中。每个 RHCOS 镜像都会保留,直到集群被删除为止。ignition 镜像会在安装过程结束时被安装程序临时删除。
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部