Red Hat OpenShift on IBM Cloud 存储器概述
虚拟私有云 经典基础架构 Satellite
请查看以下部分,以获取集群的可用存储选项的概述。
完成本页后,试试小测验。
在决定哪种存储类型是 Red Hat® OpenShift® on IBM Cloud® 集群的正确解决方案之前,您必须了解 IBM Cloud 基础架构提供商、您的应用程序要求、您希望存储的数据类型以及您希望访问这些数据的频率。
- 决定是否必须永久存储数据。
- 持久存储器: 即使除去了容器,工作程序节点或集群,持久存储器上存储的数据也会持久存在。 在有状态应用程序,核心业务数据或由于法律要求 (例如定义的保留期) 而必须可用的数据中使用持久存储器。 持久存储器也是审计的良好选项。
- **非持久性存储器:**除去容器、工作程序节点或集群时,可以除去数据。 非持久性存储器通常用于日志记录信息(例如,系统日志或容器日志)、开发测试或要从主机的文件系统访问数据时。
- 如果必须持久存储数据,请分析应用程序是否需要特定类型的存储器。 当您使用现有应用程序时,该应用程序可能会以下列方式之一存储数据。
- **在文件系统中:**数据可以作为目录中的文件进行存储。 例如,可以将此文件存储在本地硬盘上。 某些应用程序需要将数据存储在特定文件系统(如
nfs
或ext4
)中,以优化数据存储并实现性能目标。 - **在数据库中:**数据必须存储在遵循特定模式的数据库中。 某些应用程序随附可用于存储数据的数据库接口。 例如,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 帐户达到暂挂状态时,hostPath 或 emptyDir 卷中的数据将丢失。 此外,当从工作程序节点永久删除分配的 pod 时,将除去 emptyDir 卷中的数据,分配的 pod 将在另一个工作程序节点上调度。 |
常见用例 | 本地映像高速缓存或容器日志 | 设置高性能本地高速缓存,从工作程序节点文件系统访问文件或运行单元测试。 |
非理想用例 | 持久数据存储或在容器之间共享数据 | 持久数据存储 |
单专区集群
如果您有一个单区区域群集,您可以在 Red Hat OpenShift on IBM Cloud 中选择以下选项,以便快速访问您的数据。 为提高可用性,请使用专为地理分布数据设计的存储选项,如果可能,请创建多区群集。
下图显示了 Red Hat OpenShift on IBM Cloud 中用于在单个集群中永久存储数据的选项。
特征 | 描述 |
---|---|
部署指南 | 设置 File Storage for Classic。 |
理想的数据类型 | 全部 |
受支持的供应类型 | 动态和静态 |
数据使用模式 | 随机读写操作,顺序读写操作或写密集型工作负载 |
访问 | 通过已安装卷上的文件系统 |
支持 Kubernetes 访问模式 |
ReadWriteMany (RWX)
|
性能 | 由于分配了 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)
|
性能 | 由于分配了 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)
|
性能 | 对于读操作,性能高。 由于在使用非 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 |
常见用例 | 多专区集群,关系数据库和非关系数据库或地理分布数据。 |
非理想用例 | 旨在写入文件系统的应用程序。 |
后续步骤
要继续规划流程,请记录您的环境架构。