4.3. 存储集群创建
OpenShift Data Foundation 操作器本身不提供存储功能,而且必须定义所需的存储配置。
安装 Operator 后,可使用 OpenShift Container Platform 控制台向导或 CLI 创建新的 StorageCluster,并使用 ocs-operator 协调这个 StorageCluster。OpenShift Data Foundation 在每次安装中支持单个 StorageCluster。ocs-operator 协调忽略了在第一个 CR 之后创建的 StorageCluster CR。
OpenShift 数据基础允许以下三个 StorageCluster 配置:
- 内部
-
在 Internal 模式下,所有组件都在 OpenShift Container Platform 集群中容器化,并使用在安装向导中根据管理员指定的
StorageClass创建的动态置备持久性卷(PV)。 - 内部附加
-
此模式与内部模式类似,但管理员需要定义直接附加到 Ceph 用于其后备存储的群集节点的本地存储设备。另外,管理员需要创建与本地存储 operator 协调的 CR 以提供
StorageClass。ocs-operator使用这个StorageClass作为 Ceph 的后备存储。 - 外部
- 在这种模式下,Ceph 组件不会在 OpenShift Container Platform 集群内运行,而是为应用程序可以为其创建 PV 的外部 OpenShift Container Storage 安装提供连接。其他组件根据需要在集群中运行。
MCG Standalone: 此模式有助于在没有附带的 CephCluster 的情况下安装多云对象网关系统。
找到 StorageCluster CR 后,ocs-operator 会对其进行验证,并开始创建后续资源来定义存储组件。
4.3.1. 内部模式存储集群 复制链接链接已复制到粘贴板!
内部和外部附加存储集群的设置过程相同,如下所示:
|
| 创建集群应用用于创建 Ceph 卷的存储类。 |
|
| 创建集群应用用于创建 Ceph 卷快照的卷快照类。 |
| Ceph RGW 配置 | 创建各种 Ceph 对象 CR,以启用和提供对 Ceph RGW 对象存储端点的访问。 |
| Ceph RBD 配置 |
创建 |
| CephFS 配置 |
创建 |
| Rook-Ceph 配置 |
创建 |
|
|
创建 |
|
|
创建 |
| 作业模板 |
创建 |
| Quickstarts |
创建 |
4.3.1.1. 集群创建 复制链接链接已复制到粘贴板!
在 ocs-operator 创建 CephCluster CR 后,rook-operator 根据所需的配置创建 Ceph 集群。rook-operator 配置以下组件:
|
Ceph |
在集群中的不同节点上启动三个 Ceph |
|
Ceph | 此守护进程已启动,它会为集群收集指标并将其报告到 Prometheus。 |
| Ceph OSD |
这些 OSD 根据 |
| CSI 置备程序 |
为 RBD 和 |
|
CSI 卷插件和 |
RBD 和 |
配置 CephCluster CR 后,Rook 会协调剩余的 Ceph CR 以完成设置:
|
|
|
|
|
|
|
|
|
|
|
|
操作器监控 Ceph 健康状况,以确保存储平台健康。如果某个 mon 守护进程长时间停机(10 分钟),Rook 会在其位置启动一个新的 mon,以便能够完全恢复仲裁。
当 ocs-operator 更新 CephCluster CR 时,Rook 会立即响应请求的更改,以更新集群配置。
4.3.1.2. NooBaa 系统创建 复制链接链接已复制到粘贴板!
当创建 NooBaa 系统时,mcg-operator 会协调以下内容:
默认 BackingStore
根据部署 OpenShift Container Platform 和 OpenShift Data Foundation 的平台,会创建一个默认的后备存储资源,以便存储桶可以将其用于放置策略。不同的选项如下:
| Amazon Web Services(AWS)部署 |
|
| Microsoft Azure 部署 |
|
| Google Cloud Platform(GCP)部署 |
|
| On-prem 部署 |
如果 RGW 存在, |
| 以上所述部署都不适用 |
|
默认 BucketClass
创建带有放置策略到默认 BackingStore 的 BucketClass。
NooBaa pod
以下 NooBaa pod 已创建并启动:
| 数据库(DB) | 一个 Postgres DB 用来保存元数据、统计信息和事件等。然而,它不会保存存储的实际数据。 |
| Core | 这是处理配置、后台进程、元数据管理、统计信息等的 pod。 |
| Endpoints |
这些 pod 执行与 I/O 相关的实际工作,如重复数据删除和压缩、与不同服务通信以写入和读取数据等。端点与 |
Route
为使用 S3 的应用创建 NooBaa S3 接口的路由。
服务
为 NooBaa S3 接口创建一个服务,供使用 S3 的应用创建。