Red Hat OpenShift on IBM Cloud 存储器概述

虚拟私有云 经典基础设施 Satellite

请查看以下部分,以获取集群的可用存储选项的概述。

在确定哪种存储类型是适合您的 Red Hat® OpenShift® on IBM Cloud® 集群的正确解决方案之前,您必须了解 IBM Cloud 基础设施提供商、您的应用程序需求、您希望存储的数据类型,以及您希望访问这些数据的频率。

决定是否必须永久存储数据。

持久存储器: 即使除去了容器,工作程序节点或集群,持久存储器上存储的数据也会持久存在。 在有状态应用中,或对于核心业务数据,以及因法律要求(例如规定的保留期限)而必须可用的数据,应使用持久化存储。 持久存储器也是审计的良好选项。

**非持久性存储器:**除去容器、工作程序节点或集群时,可以除去数据。 非持久性存储器通常用于日志记录信息(例如,系统日志或容器日志)、开发测试或要从主机的文件系统访问数据时。

如果必须持久存储数据,请分析应用程序是否需要特定类型的存储器。 当您使用现有应用时,该应用可能采用以下其中一种方式来存储数据。

**在文件系统中:**数据可以作为目录中的文件进行存储。 例如,可以将此文件存储在本地硬盘上。 某些应用程序需要将数据存储在特定文件系统(如 nfsext4)中,以优化数据存储并实现性能目标。

**在数据库中:**数据必须存储在遵循特定模式的数据库中。 某些应用程序随附可用于存储数据的数据库接口。 例如,WordPress 已优化为可将数据存储在 MySQL 数据库中。 在这些情况下,会为您选择存储器类型。

确定要存储的数据类型。

**结构化数据:**可以存储在关系数据库中的数据,该数据库中有一个包含列和行的表。 表中的数据可以使用键进行连接,并且由于采用了预定义的数据模型,因此数据通常易于访问。 例如,电话号码、帐号、社会保障号或邮政编码。

**半结构化数据:**不适用于关系数据库的数据,但这类数据随附一些组织属性,可以用于更轻松地读取和分析这类数据。 例如,CSV、XML 或 JSON 等标记语言文件。

非结构化数据: 指不遵循任何组织模式、且复杂程度极高,以致无法使用预定义数据模型将其存储在关系型数据库中的数据。 要访问这类数据,需要高级工具和软件。 例如电子邮件、视频、照片、音频文件、演示文稿、社交媒体数据或网页。

如果您有结构化和非结构化数据,请尝试将每种数据类型分别存储在为此数据类型设计的存储解决方案中。 使用适合数据类型的存储解决方案可以轻松访问数据,并给予您高性能、可扩展性、耐久性和一致性等优点。

分析您希望如何访问数据。 存储解决方案通常是为了支持读或写操作而设计并优化的。
只读: 您不想写入或修改数据。 数据为只读。
**读写:**要读取、写入和更改数据。 对于读取和写入的数据,了解操作是多读少写、多写少读还是读写均衡很重要。
确定访问数据的频率。
**热数据:**频繁访问的数据。 常见用例是 Web 或移动应用程序。
**冷数据或温数据:**不经常访问(例如,每月一次或更低频率)的数据。 常见用例是归档、短期数据保留或灾难恢复。
**冷数据:**极少访问的数据(如果有访问的话)。 常见用例是归档、长期备份和历史数据。
**冻结数据:**不进行访问,但由于法律原因而需要保留的数据。

如果您无法预测访问频率,或者访问频率没有严格的规律,请确定您的工作负载是读取密集型、写入密集型还是均衡型。 然后,查看适合工作负载的存储选项,并调查哪个存储层为您提供所需的灵活性。 例如,IBM Cloud Object Storage 提供了 flex 存储类,该存储类会考虑在一个月内访问数据的频率,并基于对此度量的考量来优化按月计费。

调查数据是否必须在多个应用程序实例、专区或区域中共享。
**跨 pod 访问:**使用 Kubernetes 持久性卷访问存储器时,可以确定可同时安装该卷的 pod 的数量。 某些存储方案每次只能由一个 Pod 访问。 通过其他存储解决方案,可以在多个 pod 中共享卷。
**跨专区和区域访问:**您可能需要数据可跨专区或区域进行访问。 某些存储解决方案(例如文件存储和块存储)专用于数据中心,无法在多区域集群环境中跨区域共享。

如果要使数据可以在各个专区或区域中进行访问,请确保咨询法律部门,以验证您的数据是否可以存储在多个专区或者不同的国家或地区中。

了解影响您选择的其他存储特征。
**一致性:**保证读操作返回文件的最新版本。 保证始终收到最新版本的文件时,存储解决方案可以提供strong consistency;或者,在读操作可能无法返回最新版本时,存储解决方案可以提供eventual consistency。 通常,在必须首先在所有实例中复制写操作的地理分布式系统上可获得最终一致性。
**性能:**完成读或写操作所需的时间。
**耐久性:**保证落实到存储器的写操作能持久生存,不会被损坏或丢失,即使同时将数千兆字节或太字节的数据写入存储器时也不例外。
**弹性:**能够从中断恢复并继续运行,即使硬件或软件组件发生故障时也不例外。 例如,物理存储器遇到断电、网络中断或在自然灾害期间被破坏的情况。
**可用性:**能够提供对数据的访问,即使数据中心或区域不可用时也不例外。 通常通过添加冗余和设置故障转移机制来实现数据的可用性。
**可扩展性:**能够根据需求扩展容量和定制性能。
**加密:**在未经授权的用户访问数据时,掩蔽数据以阻止查看。

必须在创建工人池时添加辅助本地存储。 不支持在创建工作池后从基础架构层手动添加存储,也不会在群集中产生额外的短暂存储。

非持久存储器选项

如果数据不需要持久存储,或者要对应用程序组件进行单元测试,那么可以使用非持久性存储选项。 下图显示 Red Hat OpenShift on IBM Cloud 中可用的非持久性数据存储选项。

非持久性存储选项
特征 容器内 在工作程序节点的主磁盘或辅助磁盘上
支持多专区
数据类型 全部 全部
容量 限于工作程序节点的可用辅助磁盘。 要限制 Pod 占用的二级存储空间,请为 临时存储设置资源请求和限制。 限于主磁盘 (hostPath) 或辅助磁盘 (emptyDir) 上工作程序节点的可用空间。要限制 pod 所使用的辅助存储量,请将资源请求和限制用于 临时存储
数据访问模式 任何频率的读写操作 任何频率的读写操作
访问 通过容器的本地文件系统 通过 Kubernetes hostPath 以访问工作节点的主存储。 通过 Kubernetes emptyDir 访问工作节点上的二级存储。
性能 使用 SSD 时,性能高,等待时间更短
弹性
可用性 特定于容器 特定于工作程序节点
可伸缩性 难以扩展,因为限于工作程序节点的辅助磁盘容量 难以扩展,因为限于工作程序节点的主磁盘容量和辅助磁盘容量
耐久性 容器崩溃或除去容器时,数据会丢失。 删除工作程序节点,重新装入或更新工作程序节点,删除集群,IBM Cloud 帐户达到暂挂状态时,hostPathemptyDir 卷中的数据将丢失。 此外,当从工作程序节点永久删除分配的 pod 时,将除去 emptyDir 卷中的数据,分配的 pod 将在另一个工作程序节点上调度。
常见用例 本地映像高速缓存或容器日志 设置高性能本地高速缓存,从工作程序节点文件系统访问文件或运行单元测试。
非理想用例 持久数据存储或在容器之间共享数据 持久数据存储

单专区集群

如果您拥有一个单区域集群,可以在 Red Hat OpenShift on IBM Cloud 中选择以下选项之一,这些选项可让您快速访问数据。 为了提高可用性,请使用专为地理分布式数据设计的存储方案,并在满足您需求的前提下,尽可能创建多区域集群。

下图显示了 Red Hat OpenShift on IBM Cloud 中用于在单个集群中永久存储数据的选项。

单区域集群的存储选项
特征 描述
部署指南 设置 File Storage for Classic
理想的数据类型 全部
受支持的供应类型 动态和静态
数据使用模式 随机读/写操作、顺序读/写操作或写密集型工作负载
访问 通过已安装卷上的文件系统
支持的 Kubernetes 访问模式
  • ReadWriteMany (RWX)
  • ReadOnlyMany (ROX)
  • ReadWriteOnce (RWO)
性能 由于分配了 IOPS 和大小,因此可预测。 IOPS 在访问卷的 pod 之间共享。
一致性
耐久性
弹性 中等,因为特定于数据中心。 File Storage 服务器由 IBM 通过冗余联网进行集群。
可用性 中等,因为特定于数据中心。
可伸缩性 难以扩展到数据中心之外。 无法更改现有的存储层。
加密 静态
备份和恢复 设置定期快照,复制快照,重复存储,将数据备份到 IBM Cloud Object Storage,或者将数据复制到 pod 和容器以及从中复制数据。
常见用例 跨单个专区集群的批量或单个文件存储器或文件共享。
非理想用例 多专区集群或地理分布数据。
单区域集群的存储选项
特征 描述
部署指南 设置 Block Storage for Classic
理想的数据类型 全部
受支持的供应类型 动态和静态
数据使用模式 随机读/写操作、顺序读/写操作或写密集型工作负载
访问 通过已挂载卷上的文件系统。
支持的 Kubernetes 访问模式 ReadWriteOnce (RWO)
性能 由于分配了 IOPS 和大小,因此可预测。 IOPS 不在 pod 之间共享。
一致性
耐久性
弹性 中等,因为特定于数据中心。 Block Storage 服务器由 IBM 通过冗余联网进行集群。
可用性 中等,因为特定于数据中心。
可伸缩性 难以扩展到数据中心之外。 无法更改现有的存储层。
加密 休息
备份和恢复 设置定期快照,复制快照,重复存储,将数据备份到 IBM Cloud Object Storage,或者将数据复制到 pod 和容器以及从中复制数据。
常见用例 有状态集,在您运行自己的数据库时支持存储,或者对单个 Pod 进行高性能访问。
非理想用例 多专区集群,地理分布的数据或跨多个应用程序实例共享数据。
单区域集群的存储选项
特性 描述
部署指南 设置 File Storage for VPC
理想的数据类型 全部
受支持的供应类型 动态和静态
数据使用模式 随机读/写操作、顺序读/写操作或写密集型工作负载
访问 通过已安装卷上的文件系统
支持的 Kubernetes 访问模式
  • ReadWriteMany (RWX)
  • ReadOnlyMany (ROX)
  • ReadWriteOnce (RWO) 版本 1.2 及更高版本。
性能 由于分配了 IOPS 和大小,因此可预测。 IOPS 不在 pod 之间共享。
一致性
耐久性
弹性 中等,因为特定于数据中心。 File Storage 服务器由 IBM 通过冗余联网进行集群。
可用性 中等,因为特定于数据中心。
可伸缩性 难以扩展到数据中心之外。 无法更改现有的存储层。
加密
备份和恢复 运行 kubectl cp 或从 pod 和容器复制数据。
常见用例 跨单个专区集群的批量或单个文件存储器或文件共享。
非理想用例 多专区集群,地理分布的数据或跨多个应用程序实例共享数据。
单区域集群的存储选项
特征 描述
部署指南 设置 Block Storage for VPC
支持多专区 否,因为特定于数据中心。 除非您自行实现数据复制,否则数据无法在不同区域之间共享。
理想的数据类型 全部
数据使用模式 随机读/写操作、顺序读/写操作或写密集型工作负载
访问 通过已安装卷上的文件系统
支持的 Kubernetes 访问写操作 ReadWriteOnce (RWO)
性能 由于分配了 IOPS 和大小,因此可预测。 IOPS 不在 pod 之间共享。
一致性
耐久性
弹性 中等,因为特定于数据中心。 Block Storage 服务器由 IBM 通过冗余联网进行集群。
可用性 中等,因为特定于数据中心。
可伸缩性 难以扩展到数据中心之外。 无法更改现有的存储层。
加密 使用 Key Protect 传输中的加密
备份和恢复 设置定期快照,复制快照,重复存储,将数据备份到 IBM Cloud Object Storage,或者将数据复制到 pod 和容器以及从中复制数据。
常见用例 有状态集,在您运行自己的数据库时支持存储,或者对单个 Pod 进行高性能访问。
非理想用例 多专区集群,地理分布的数据或跨多个应用程序实例共享数据。

多专区集群

以下各节介绍了在 Red Hat OpenShift on IBM Cloud 中可用于将数据永久存储在多区域集群中并确保数据高可用性的各项选项。 您可以在单专区集群中使用这些选项,但可能无法获得应用程序所需的高可用性优点。

多区域集群的存储选项
特性 描述
部署指南 设置 IBM Cloud Object Storage
支持的基础架构提供者 Classic,VPC 和 Satellite
理想的数据类型 半结构化数据和非结构化数据
数据使用模式 读密集型工作负载。 写入操作很少或根本没有。
访问 通过已安装卷(插件)上的文件系统或通过应用程序中的 REST API
支持的 Kubernetes 访问模式 ReadWriteMany (RWX)
性能 对于读操作,性能高。 由于在使用非 SDS 机器时分配了 IOPS 和大小,因此可预测。
一致性 最终
耐久性 数据切片分散在存储节点集群上时,耐久性非常高。 每个节点只存储一部分数据。
弹性 数据切片分散在三个专区或区域时,弹性高。 “中等”仅适用于单一区域的情况。
可用性 高,因为跨专区或区域进行分布。
可伸缩性 自动缩放
加密 动态和静态
备份和恢复 数据会在多个节点之间自动复制,以实现高耐久性。 有关更多信息,请参阅 IBM Cloud Object Storage 服务条款中的 SLA。
常见用例 地理分布数据,静态大数据,静态多媒体内容,Web 应用,备份,归档,有状态集。
非理想用例 写密集型工作负载,随机写操作,增量数据更新或事务数据库。
多区域集群的存储选项
特征 描述
部署指南 设置 Portworx
支持的基础架构提供者 Classic,VPC 和 Satellite
理想的数据类型 任意
数据使用模式 读写密集型工作。
访问 通过已安装卷(插件)上的文件系统或通过应用程序中的 REST API
支持的 Kubernetes 访问模式
  • ReadWriteMany (RWX)
  • ReadOnlyMany (ROX)
  • ReadWriteOnce (RWO)
性能 对于读操作,性能高。 由于在使用非 SDS 机器时分配了 IOPS 和大小,因此可预测。
一致性
耐久性 数据切片分散在存储节点集群上时,耐久性非常高。 每个节点只存储一部分数据。
弹性 数据切片分散在三个专区或区域时,弹性高。 “中等”仅适用于单一区域的情况。
可用性 高,因为跨专区或区域进行分布。
可伸缩性 自动缩放
加密 自带密钥通过 IBM Key Protect 来保护动态和静态数据。
备份和恢复 数据会在多个节点之间自动复制,以实现高耐久性。 有关更多信息,请参阅 IBM Cloud Object Storage 服务条款中的 SLA。 使用本地快照或云快照来保存卷的当前状态。 如需了解更多信息,请参阅 “创建和使用本地快照”
常见用例 多专区集群。 按地理分布的数据。 静态大数据。 静态多媒体内容
非理想用例 写密集型工作负载,随机写操作,增量数据更新或事务数据库。
多区域集群的存储选项
特性 描述
部署指南 部署 OpenShift Data Foundation
支持的基础架构提供者 Classic,VPC 和 Satellite
理想的数据类型 任意
数据使用模式 写密集型工作负载。 随机读写操作。 顺序读写操作。
访问 全部
性能 使用 SDS 机器时,顺序读写操作的性能接近于裸机。 根据所需的存储类性能 (IOPs) 创建存储层。
一致性
耐久性 非常高,因为始终维护数据的三个副本。
弹性 设置为在三个专区中进行复制时,弹性高。 仅在单个专区中存储数据时,弹性中等。
可用性 在跨不同专区的三个工作程序节点中复制数据时,可用性高。
可伸缩性 通过调整卷大小来提高卷容量。 要增加总体存储层容量,必须添加工作程序节点或远程块存储器。 这两种场景都需要用户来监视容量。
加密 使用 IBM Key Protect 或 HPCS 自带密钥。 在途和休息。
备份和恢复 使用本地快照或云快照来保存卷的当前状态。
多区域集群的存储选项
特征 描述
部署指南 将Cloud Databases部署连接到IBM Cloud Kubernetes Service应用程序
支持的基础架构提供者 Classic,VPC 和 Satellite
理想的数据类型 取决于 DBaaS
数据使用模式 读/写密集型工作负载
访问 通过应用程序中的 REST API。
支持的 Kubernetes 访问写操作 不适用,因为是直接通过应用程序访问的。简体中文(大陆)
性能 如果部署到应用程序所在的数据中心,那么性能高。
一致性 取决于 DBaaS
耐久性
弹性 取决于 DBaaS 和设置。
可用性 如果设置了多个实例,可用性为高。
可伸缩性 自动缩放
加密 静态
备份和恢复 取决于 DBaaS
常见用例 多专区集群,关系数据库和非关系数据库或地理分布数据。
非理想用例 一款专为向文件系统写入数据而设计的应用程序。

后续步骤

要继续规划流程,请记录您的环境架构