10.4. 为混合或多云添加存储资源
10.4.1. 创建新的后备存储
在 OpenShift Data Foundation 中使用此流程创建新的后备存储。
先决条件
- OpenShift Data Foundation 的管理员访问权限。
流程
-
在 OpenShift Web 控制台中,点 Storage
Data Foundation。 - 单击 Backing Store 选项卡。
- 单击 Create Backing Store。
在 Create New Backing Store 页面中执行以下操作:
- 输入后端存储名称。
- 选择 Provider。
- 选择 Region。
- 输入 端点.这是可选的。
从下拉列表中选择一个 Secret,或者创建自己的 secret。另外,您也可以切换到 Credentials 视图来填写所需的 secret。
有关创建 OCP secret 的更多信息,请参阅 Openshift Container Platform 文档中的 创建 secret 部分。
每个后备存储都需要不同的机密。有关为特定后备存储创建 secret 的更多信息,请参阅 第 10.4.2 节 “使用 MCG 命令行界面为混合或多云添加存储资源” 并按照使用 YAML 添加存储资源的步骤进行操作。
注意此菜单与 Google Cloud 和本地 PVC 以外的所有供应商相关。
- 输入 Target bucket。目标 bucket 是托管在远程云服务的容器存储。它允许您创建一个连接,告诉 MCG 它可以将此存储桶用于系统。
- 单击 Create Backing Store。
验证步骤
-
在 OpenShift Web 控制台中,点 Storage
Data Foundation。 - 单击 Backing Store 选项卡,以查看所有后备存储。
10.4.2. 使用 MCG 命令行界面为混合或多云添加存储资源
多云对象网关 (MCG) 简化了跨云供应商和集群的数据生成过程。
您必须添加 MCG 可以使用的后备存储。
根据部署类型,您可以选择以下步骤之一来创建后备存储:
- 有关创建 AWS 支持的后备存储,请参阅 第 10.4.2.1 节 “创建 AWS 支持的后备存储”
- 有关创建 IBM COS 支持的后备存储,请参考 第 10.4.2.2 节 “创建 IBM COS 支持的后备存储”
- 有关创建 Azure 支持的后备存储,请参阅 第 10.4.2.3 节 “创建 Azure 支持的后备存储”
- 有关创建 GCP 支持的后备存储,请参阅 第 10.4.2.4 节 “创建由 GCP 支持的后备存储”
- 有关创建本地持久性卷支持的后备存储,请参阅 第 10.4.2.5 节 “创建由本地持久性卷支持的后备存储”
对于 VMware 部署,请跳至 第 10.4.3 节 “创建兼容 s3 的多云对象网关后备存储” 以了解更多详细信息。
10.4.2.1. 创建 AWS 支持的后备存储
先决条件
下载多云对象网关(MCG)命令行界面。
# subscription-manager repos --enable=rh-odf-4-for-rhel-8-x86_64-rpms # yum install mcg
注意指定使用订阅管理器启用存储库的适当架构。例如,如果是 IBM Z 基础架构,请使用以下命令:
# subscription-manager repos --enable=rh-odf-4-for-rhel-8-s390x-rpms
另外,您还可以从位于 https://access.redhat.com/downloads/content/547/ver=4/rhel---8/4/x86_64/packages的 OpenShift Data Foundation RPM 安装 MCG 软件包。
注意根据您的架构选择正确的产品变体。
流程
在 MCG 命令行界面中运行以下命令:
noobaa backingstore create aws-s3 <backingstore_name> --access-key=<AWS ACCESS KEY> --secret-key=<AWS SECRET ACCESS KEY> --target-bucket <bucket-name> -n openshift-storage
-
将
<backingstore_name>
替换为后备存储的名称。 -
将
<AWS ACCESS KEY>
和<AWS SECRET ACCESS KEY>
替换为您为此创建的 AWS 访问密钥 ID 和 secret 访问密钥。 将
<bucket-name>
替换为现有的 AWS 存储桶名称。此参数告知 MCG 将哪一个存储桶用作其后备存储的目标存储桶,以及随后数据存储和管理。输出结果类似如下:
INFO[0001] ✅ Exists: NooBaa "noobaa" INFO[0002] ✅ Created: BackingStore "aws-resource" INFO[0002] ✅ Created: Secret "backing-store-secret-aws-resource"
您还可以使用 YAML 添加存储资源:
使用凭证创建 secret:
apiVersion: v1 kind: Secret metadata: name: <backingstore-secret-name> namespace: openshift-storage type: Opaque data: AWS_ACCESS_KEY_ID: <AWS ACCESS KEY ID ENCODED IN BASE64> AWS_SECRET_ACCESS_KEY: <AWS SECRET ACCESS KEY ENCODED IN BASE64>
-
您必须使用 Base64 提供并编码您自己的 AWS 访问密钥 ID 和 secret 访问密钥,并使用结果代替
<AWS ACCESS KEY ID ENCODED IN BASE64>
和<AWS SECRET ACCESS KEY ENCODED IN BASE64>
。 -
将
<backingstore-secret-name>
替换为唯一名称。
-
您必须使用 Base64 提供并编码您自己的 AWS 访问密钥 ID 和 secret 访问密钥,并使用结果代替
为特定的后备存储应用以下 YAML:
apiVersion: noobaa.io/v1alpha1 kind: BackingStore metadata: finalizers: - noobaa.io/finalizer labels: app: noobaa name: bs namespace: openshift-storage spec: awsS3: secret: name: <backingstore-secret-name> namespace: openshift-storage targetBucket: <bucket-name> type: aws-s3
-
将
<bucket-name>
替换为现有的 AWS 存储桶名称。此参数告知 MCG 将哪一个存储桶用作其后备存储的目标存储桶,以及随后数据存储和管理。 -
将
<backingstore-secret-name>
替换为上一步中创建的 secret 的名称。
-
将
10.4.2.2. 创建 IBM COS 支持的后备存储
先决条件
下载多云对象网关(MCG)命令行界面。
# subscription-manager repos --enable=rh-odf-4-for-rhel-8-x86_64-rpms # yum install mcg
注意指定使用订阅管理器启用存储库的适当架构。例如,
- 对于 IBM Power,使用以下命令:
# subscription-manager repos --enable=rh-odf-4-for-rhel-8-ppc64le-rpms
- 对于 IBM Z 基础架构,使用以下命令:
# subscription-manager repos --enable=rh-odf-4-for-rhel-8-s390x-rpms
另外,您还可以从位于 https://access.redhat.com/downloads/content/547/ver=4/rhel---8/4/x86_64/packages的 OpenShift Data Foundation RPM 安装 MCG 软件包。
注意根据您的架构选择正确的产品变体。
流程
在 MCG 命令行界面中运行以下命令:
noobaa backingstore create ibm-cos <backingstore_name> --access-key=<IBM ACCESS KEY> --secret-key=<IBM SECRET ACCESS KEY> --endpoint=<IBM COS ENDPOINT> --target-bucket <bucket-name> -n openshift-storage
-
将
<backingstore_name>
替换为后备存储的名称。 将
<IBM ACCESS KEY>
、、<IBM SECRET ACCESS KEY>
、<IBM COS ENDPOINT>
替换为 IBM 访问密钥 ID、机密访问密钥和对应于现有 IBM 存储桶位置的适当区域端点。要在 IBM 云中生成上述密钥,您必须在为您的目标存储桶创建服务凭证时包含 HMAC 凭证。
将
<bucket-name>
替换为现有的 IBM 存储桶名称。此参数告知 MCG 将哪一个存储桶用作其后备存储的目标存储桶,以及随后数据存储和管理。输出结果类似如下:
INFO[0001] ✅ Exists: NooBaa "noobaa" INFO[0002] ✅ Created: BackingStore "ibm-resource" INFO[0002] ✅ Created: Secret "backing-store-secret-ibm-resource"
-
将
您还可以使用 YAML 添加存储资源:
使用凭证创建 secret:
apiVersion: v1 kind: Secret metadata: name: <backingstore-secret-name> namespace: openshift-storage type: Opaque data: IBM_COS_ACCESS_KEY_ID: <IBM COS ACCESS KEY ID ENCODED IN BASE64> IBM_COS_SECRET_ACCESS_KEY: <IBM COS SECRET ACCESS KEY ENCODED IN BASE64>
-
您必须使用 Base64 提供和编码您自己的 IBM COS 访问密钥 ID 和 secret 访问密钥,并使用结果代替
<IBM COS ACCESS KEY ID ENCODED IN BASE64>
和<IBM COS SECRET ACCESS KEY ENCODED IN BASE64>
。 -
将
<backingstore-secret-name>
替换为唯一名称。
-
您必须使用 Base64 提供和编码您自己的 IBM COS 访问密钥 ID 和 secret 访问密钥,并使用结果代替
为特定的后备存储应用以下 YAML:
apiVersion: noobaa.io/v1alpha1 kind: BackingStore metadata: finalizers: - noobaa.io/finalizer labels: app: noobaa name: bs namespace: openshift-storage spec: ibmCos: endpoint: <endpoint> secret: name: <backingstore-secret-name> namespace: openshift-storage targetBucket: <bucket-name> type: ibm-cos
-
将
<bucket-name>
替换为现有的 IBM COS 存储桶名称。此参数告知 MCG 将哪一个存储桶用作其后备存储的目标存储桶,以及随后数据存储和管理。 -
将
<endpoint>
替换为与现有 IBM 存储桶名称位置对应的区域端点。这个参数告诉 Multicloud Object Gateway 使用哪个端点进行后备存储,然后再将哪一端点用于数据存储和管理。 -
将
<backingstore-secret-name>
替换为上一步中创建的 secret 的名称。
-
将
10.4.2.3. 创建 Azure 支持的后备存储
先决条件
下载多云对象网关(MCG)命令行界面。
# subscription-manager repos --enable=rh-odf-4-for-rhel-8-x86_64-rpms # yum install mcg
注意指定使用订阅管理器启用存储库的适当架构。例如,如果是 IBM Z 基础架构,请使用以下命令:
# subscription-manager repos --enable=rh-odf-4-for-rhel-8-s390x-rpms
另外,您还可以从位于 https://access.redhat.com/downloads/content/547/ver=4/rhel---8/4/x86_64/packages的 OpenShift Data Foundation RPM 安装 MCG 软件包。
注意根据您的架构选择正确的产品变体。
流程
在 MCG 命令行界面中运行以下命令:
noobaa backingstore create azure-blob <backingstore_name> --account-key=<AZURE ACCOUNT KEY> --account-name=<AZURE ACCOUNT NAME> --target-blob-container <blob container name>
-
将
<backingstore_name>
替换为后备存储的名称。 -
将
<AZURE ACCOUNT KEY>
和<AZURE ACCOUNT NAME>
替换为您为此创建的 AZURE 帐户密钥和帐户名称。 将
<blob container name>
替换为现有的 Azure blob 容器名称。此参数告知 MCG 将哪一个存储桶用作其后备存储的目标存储桶,以及随后数据存储和管理。输出结果类似如下:
INFO[0001] ✅ Exists: NooBaa "noobaa" INFO[0002] ✅ Created: BackingStore "azure-resource" INFO[0002] ✅ Created: Secret "backing-store-secret-azure-resource"
-
将
您还可以使用 YAML 添加存储资源:
使用凭证创建 secret:
apiVersion: v1 kind: Secret metadata: name: <backingstore-secret-name> type: Opaque data: AccountName: <AZURE ACCOUNT NAME ENCODED IN BASE64> AccountKey: <AZURE ACCOUNT KEY ENCODED IN BASE64>
-
您必须使用 Base64 提供和编码您自己的 Azure 帐户名称和帐户密钥,并使用结果代替
<AZURE ACCOUNT NAME ENCODED IN BASE64>
和<AZURE ACCOUNT KEY ENCODED IN BASE64>
。 -
将
<backingstore-secret-name>
替换为唯一名称。
-
您必须使用 Base64 提供和编码您自己的 Azure 帐户名称和帐户密钥,并使用结果代替
为特定的后备存储应用以下 YAML:
apiVersion: noobaa.io/v1alpha1 kind: BackingStore metadata: finalizers: - noobaa.io/finalizer labels: app: noobaa name: bs namespace: openshift-storage spec: azureBlob: secret: name: <backingstore-secret-name> namespace: openshift-storage targetBlobContainer: <blob-container-name> type: azure-blob
-
将
<blob-container-name>
替换为现有的 Azure blob 容器名称。此参数告知 MCG 将哪一个存储桶用作其后备存储的目标存储桶,以及随后数据存储和管理。 -
将
<backingstore-secret-name>
替换为上一步中创建的 secret 的名称。
-
将
10.4.2.4. 创建由 GCP 支持的后备存储
先决条件
下载多云对象网关(MCG)命令行界面。
# subscription-manager repos --enable=rh-odf-4-for-rhel-8-x86_64-rpms # yum install mcg
注意指定使用订阅管理器启用存储库的适当架构。例如,如果是 IBM Z 基础架构,请使用以下命令:
# subscription-manager repos --enable=rh-odf-4-for-rhel-8-s390x-rpms
另外,您还可以从位于 https://access.redhat.com/downloads/content/547/ver=4/rhel---8/4/x86_64/packages的 OpenShift Data Foundation RPM 安装 MCG 软件包。
注意根据您的架构选择正确的产品变体。
流程
在 MCG 命令行界面中运行以下命令:
noobaa backingstore create google-cloud-storage <backingstore_name> --private-key-json-file=<PATH TO GCP PRIVATE KEY JSON FILE> --target-bucket <GCP bucket name>
-
将
<backingstore_name>
替换为后备存储的名称。 -
将
<PATH TO GCP PRIVATE KEY JSON FILE>
替换为为此创建的 GCP 私钥的路径。 将
<GCP bucket name>
替换为现有的 GCP 对象存储桶名称。此参数告知 MCG 将哪一个存储桶用作其后备存储的目标存储桶,以及随后数据存储和管理。输出结果类似如下:
INFO[0001] ✅ Exists: NooBaa "noobaa" INFO[0002] ✅ Created: BackingStore "google-gcp" INFO[0002] ✅ Created: Secret "backing-store-google-cloud-storage-gcp"
-
将
您还可以使用 YAML 添加存储资源:
使用凭证创建 secret:
apiVersion: v1 kind: Secret metadata: name: <backingstore-secret-name> type: Opaque data: GoogleServiceAccountPrivateKeyJson: <GCP PRIVATE KEY ENCODED IN BASE64>
-
您必须使用 Base64 提供并编码您自己的 GCP 服务帐户私钥,并使用结果代替
<GCP PRIVATE KEY ENCODED IN BASE64>
。 -
将
<backingstore-secret-name>
替换为唯一名称。
-
您必须使用 Base64 提供并编码您自己的 GCP 服务帐户私钥,并使用结果代替
为特定的后备存储应用以下 YAML:
apiVersion: noobaa.io/v1alpha1 kind: BackingStore metadata: finalizers: - noobaa.io/finalizer labels: app: noobaa name: bs namespace: openshift-storage spec: googleCloudStorage: secret: name: <backingstore-secret-name> namespace: openshift-storage targetBucket: <target bucket> type: google-cloud-storage
-
将
<target bucket>
替换为现有的 Google 存储桶。此参数告知 MCG 将哪一个存储桶用作其后备存储的目标存储桶,以及随后数据存储和管理。 -
将
<backingstore-secret-name>
替换为上一步中创建的 secret 的名称。
-
将
10.4.2.5. 创建由本地持久性卷支持的后备存储
先决条件
下载多云对象网关(MCG)命令行界面。
# subscription-manager repos --enable=rh-odf-4-for-rhel-8-x86_64-rpms # yum install mcg
注意指定使用订阅管理器启用存储库的适当架构。例如,如果是 IBM Z 基础架构,请使用以下命令:
# subscription-manager repos --enable=rh-odf-4-for-rhel-8-s390x-rpms
另外,您还可以从位于 https://access.redhat.com/downloads/content/547/ver=4/rhel---8/4/x86_64/packages的 OpenShift Data Foundation RPM 安装 MCG 软件包。
注意根据您的架构选择正确的产品变体。
流程
在 MCG 命令行界面中运行以下命令:
注意此命令必须从
openshift-storage
命名空间内运行。noobaa backingstore create pv-pool <backingstore_name> --num-volumes=<NUMBER OF VOLUMES> --pv-size-gb=<VOLUME SIZE> --storage-class=<LOCAL STORAGE CLASS>
-
将
<backingstore_name>
替换为后备存储的名称。 -
将
<NUMBER OF VOLUMES>
替换为您要创建的卷数。请注意,增加卷数量可向上扩展存储。 -
将
<VOLUME SIZE>
替换为每个卷所需的大小(以 GB 为单位)。 将
<LOCAL STORAGE CLASS>
替换为本地存储类,建议使用ocs-storagecluster-ceph-rbd
。输出结果类似如下:
INFO[0001] ✅ Exists: NooBaa "noobaa" INFO[0002] ✅ Exists: BackingStore "local-mcg-storage"
-
将
您还可以使用 YAML 添加存储资源:
为特定的后备存储应用以下 YAML:
apiVersion: noobaa.io/v1alpha1 kind: BackingStore metadata: finalizers: - noobaa.io/finalizer labels: app: noobaa name: <backingstore_name> namespace: openshift-storage spec: pvPool: numVolumes: <NUMBER OF VOLUMES> resources: requests: storage: <VOLUME SIZE> storageClass: <LOCAL STORAGE CLASS> type: pv-pool
-
将
<backingstore_name>
替换为后备存储的名称。 -
将
<NUMBER OF VOLUMES>
替换为您要创建的卷数。请注意,增加卷数量可向上扩展存储。 -
将
<VOLUME SIZE>
替换为每个卷所需的大小(以 GB 为单位)。请注意,字母 G 应保留。 -
将
<LOCAL STORAGE CLASS>
替换为本地存储类,建议使用ocs-storagecluster-ceph-rbd
。
-
将
10.4.3. 创建兼容 s3 的多云对象网关后备存储
多云对象网关(MCG)可以使用任何 S3 兼容对象存储作为后备存储,例如,Red Hat Ceph Storage 的 RADOS 对象网关(RGW)。以下步骤演示了如何为 Red Hat Ceph Storage 的 RGW 创建 S3 兼容 MCG 后备存储。请注意,部署 RGW 时,OpenShift Data Foundation operator 会自动为 MCG 创建 S3 兼容后备存储。
流程
在 MCG 命令行界面中运行以下命令:
注意此命令必须从
openshift-storage
命名空间内运行。noobaa backingstore create s3-compatible rgw-resource --access-key=<RGW ACCESS KEY> --secret-key=<RGW SECRET KEY> --target-bucket=<bucket-name> --endpoint=<RGW endpoint>
要获取
<RGW ACCESS KEY>
和<RGW SECRET KEY>
,请使用您的 RGW 用户 secret 名称运行以下命令:oc get secret <RGW USER SECRET NAME> -o yaml -n openshift-storage
- 解码 Base64 中的访问密钥 ID 和访问密钥,并保留它们。
-
将
<RGW USER ACCESS KEY>
和<RGW USER SECRET ACCESS KEY>
替换为上一步中的相应已解码数据。 -
将
<bucket-name>
替换为现有的 RGW 存储桶名称。此参数告知 MCG 将哪一个存储桶用作其后备存储的目标存储桶,以及随后数据存储和管理。 要获取
<RGW endpoint>
,请参阅访问 RADOS 对象网关 S3 端点。输出结果类似如下:
INFO[0001] ✅ Exists: NooBaa "noobaa" INFO[0002] ✅ Created: BackingStore "rgw-resource" INFO[0002] ✅ Created: Secret "backing-store-secret-rgw-resource"
您还可以使用 YAML 创建后备存储:
创建
CephObjectStore
用户。这还会创建一个包含 RGW 凭证的 secret:apiVersion: ceph.rook.io/v1 kind: CephObjectStoreUser metadata: name: <RGW-Username> namespace: openshift-storage spec: store: ocs-storagecluster-cephobjectstore displayName: "<Display-name>"
-
将
<RGW-Username>
和<Display-name>
替换为唯一的用户名和显示名称。
-
将
为 S3-Compatible 后备存储应用以下 YAML:
apiVersion: noobaa.io/v1alpha1 kind: BackingStore metadata: finalizers: - noobaa.io/finalizer labels: app: noobaa name: <backingstore-name> namespace: openshift-storage spec: s3Compatible: endpoint: <RGW endpoint> secret: name: <backingstore-secret-name> namespace: openshift-storage signatureVersion: v4 targetBucket: <RGW-bucket-name> type: s3-compatible
-
将
<backingstore-secret-name>
替换为上一步中使用CephObjectStore
创建的 secret 的名称。 -
将
<bucket-name>
替换为现有的 RGW 存储桶名称。此参数告知 MCG 将哪一个存储桶用作其后备存储的目标存储桶,以及随后数据存储和管理。 -
要获取
<RGW endpoint>
,请参阅访问 RADOS 对象网关 S3 端点。
-
将
10.4.4. 使用用户界面为混合和多云添加存储资源
流程
-
在 OpenShift Web 控制台中,点 Storage
Data Foundation。 -
在 Storage Systems 选项卡中,选择 storage 系统,然后点 Overview
Object 选项卡。 - 选择 Multicloud Object Gateway 链接。
选择左侧的资源选项卡,突出显示下方。从填充的列表中,选择 Add Cloud Resource。
选择 Add new connection。
选择相关的原生云供应商或 S3 兼容选项并填写详情。
选择新创建的连接并将其映射到现有存储桶。
- 重复这些步骤,根据需要创建任意数量的后备存储。
在 NooBaa UI 中创建的资源不能由 OpenShift UI 或 MCG CLI 使用。
10.4.5. 创建新存储桶类
bucket 类是一个 CRD,代表一种存储桶类别,用于定义对象 Bucket 类 (OBC) 的分层策略和数据放置。
在 OpenShift Data Foundation 中创建存储桶类。
流程
-
在 OpenShift Web 控制台中,点 Storage
Data Foundation。 - 单击 Bucket Class 选项卡。
- 点 Create Bucket Class。
在 Create new Bucket Class 页面中,执行以下操作:
选择 bucket 类类型,再输入 bucket 类名称。
选择 BucketClass 类型。选择以下选项之一:
- Standard :数据将由多云对象网关(MCG)使用,已取消、压缩和加密。
Namespace :数据存储在 Namespace 存储中,而无需执行重复数据删除、压缩或加密。
默认选择 Standard。
- 输入 Bucket Class Name。
- 点 Next。
在 放置策略 中,选择 Tier 1 - Policy Type 并单击 Next。您可以根据要求选择任一选项。
- Spread 允许在选定资源之间分散数据。
- Mirror 允许在选定资源中完全重复数据。
- 单击 Add Tier 以添加另一个策略层。
如果您为 Spread 选择了 Tier 1 - Policy Type,从可用列表中选择至少一个 Backing Store 资源并点 Next。或者,您也可以创建新的后备存储。
注意当在上一步中选择 Policy Type 作为 Mirror 时,至少需要选择 2 个后备存储。
- 检查并确认 Bucket 类设置。
- 点 Create Bucket Class。
验证步骤
-
在 OpenShift Web 控制台中,点 Storage
Data Foundation。 - 单击 Bucket Class 选项卡,再搜索新的 Bucket 类。
10.4.6. 编辑存储桶类
使用以下步骤,通过 YAML 文件编辑存储桶类组件,方法是点击 Openshift Web 控制台上的 edit
按钮。
先决条件
- 管理员对 OpenShift Web 控制台的访问权限。
流程
-
在 OpenShift Web 控制台中,点 Storage
Data Foundation。 - 单击 Bucket Class 选项卡。
- 点击您要编辑的 Bucket 类旁边的 Action Menu (⋮)。
- 点 Edit Bucket Class。
- 您将被重定向到 YAML 文件,在此文件中进行必要的更改并点 Save。
10.4.7. 为存储桶类编辑后备存储
使用以下步骤编辑现有的多云对象网关(MCG)存储桶类,以更改存储桶类中使用的底层后备存储。
先决条件
- 管理员对 OpenShift Web 控制台的访问权限。
- 存储桶类。
- 后备存储。
流程
-
在 OpenShift Web 控制台中,点 Storage
Data Foundation。 - 单击 Bucket Class 选项卡。
点击您要编辑的 Bucket 类旁边的 Action Menu (⋮)。
- 点 Edit Bucket Class Resources。
在 Edit Bucket Class Resources 页面中,通过添加后备存储到存储桶类或从存储桶类中删除后备存储来编辑存储桶类资源。您还可以编辑使用一或两个分层和不同的放置策略创建的 bucket 类资源。
- 要将后备存储添加到 bucket 类,请选择后备存储的名称。
要从存储桶类中删除后备存储,请清除后备存储的名称。
- 点击 Save。