3.2. 使用 MCG 命令行界面为混合或多云添加存储资源

多云对象网关 (MCG) 简化了跨云供应商和集群的数据生成过程。

添加 MCG 可以使用的后备存储。

根据部署类型,您可以选择以下步骤之一来创建后备存储:

对于 VMware 部署,请跳至 第 3.3 节 “创建兼容 s3 的多云对象网关后备存储” 以了解更多详细信息。

3.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 命令行界面

  • 在 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 添加存储资源

  1. 使用凭证创建 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>
    <AWS ACCESS KEY><AWS SECRET ACCESS KEY>
    使用 Base64 提供并编码您自己的 AWS 访问密钥 ID 和 secret 访问密钥,并使用结果代替 <AWS ACCESS KEY ID ENCODED IN BASE64><AWS SECRET ACCESS KEY ENCODED IN BASE64>
    <backingstore-secret-name>
    上一步中创建的后备存储 secret 的名称。
  2. 为特定的后备存储应用以下 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 存储桶名称。
    <backingstore-secret-name>
    上一步中创建的后备存储 secret 的名称。

3.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 软件包

    注意

    根据您的架构选择正确的产品变体。

流程

使用命令行界面

  1. 在 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、secret 访问密钥和适当的区域端点,对应于现有 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 添加存储资源

  1. 使用凭证创建 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>
    <IBM COS ACCESS KEY ID ENCODED IN BASE64><IBM COS SECRET ACCESS KEY ENCODED IN BASE64>
    使用 Base64 提供并编码您自己的 IBM COS 访问密钥 ID 和 secret 访问密钥,并使用这些属性的结果来代替这些属性。
    <backingstore-secret-name>
    后备存储 secret 的名称。
  2. 为特定的后备存储应用以下 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 存储桶名称的位置对应的区域端点。此参数指示 MCG 关于用于其后备存储的端点,然后是数据存储和管理。
    <backingstore-secret-name>
    上一步中创建的 secret 的名称。

3.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 命令行界面

  • 在 MCG 命令行界面中运行以下命令:

    noobaa backingstore create azure-blob <backingstore_name> --account-key=<AZURE ACCOUNT KEY> --account-name=<AZURE ACCOUNT NAME> --target-blob-container <blob container name> -n openshift-storage
    <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 添加存储资源

  1. 使用凭证创建 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>
    <AZURE ACCOUNT NAME ENCODED IN BASE64><AZURE ACCOUNT KEY ENCODED IN BASE64>
    使用 Base64 提供并编码您自己的 Azure 帐户名称和帐户密钥,并分别使用这些属性代替这些属性。
    <backingstore-secret-name>
    唯一的后备存储 secret 名称。
  2. 为特定的后备存储应用以下 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 的名称。

3.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 命令行界面

  • 在 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> -n openshift-storage
    <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 添加存储资源

  1. 使用凭证创建 secret:

    apiVersion: v1
    kind: Secret
    metadata:
      name: <backingstore-secret-name>
    type: Opaque
    data:
      GoogleServiceAccountPrivateKeyJson: <GCP PRIVATE KEY ENCODED IN BASE64>
    <GCP PRIVATE KEY ENCODED IN BASE64>
    使用 Base64 提供并编码您自己的 GCP 服务帐户私钥,并将结果用于此属性。
    <backingstore-secret-name>
    后备存储 secret 的唯一名称。
  2. 为特定的后备存储应用以下 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 的名称。

3.2.5. 创建由本地持久性卷支持的后备存储

先决条件

  • 下载多云对象网关(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 命令行界面添加存储资源

  • 在 MCG 命令行界面中运行以下命令:

    注意

    此命令必须从 openshift-storage 命名空间内运行。

    $ noobaa -n openshift-storage backingstore create pv-pool <backingstore_name> --num-volumes <NUMBER OF VOLUMES>  --pv-size-gb <VOLUME SIZE> --request-cpu <CPU REQUEST> --request-memory <MEMORY REQUEST> --limit-cpu <CPU LIMIT> --limit-memory <MEMORY LIMIT> --storage-class <LOCAL STORAGE CLASS>

使用 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>
            cpu: <CPU REQUEST>
            memory: <MEMORY REQUEST>
          limits:
            cpu: <CPU LIMIT>
            memory: <MEMORY LIMIT>
        storageClass: <LOCAL STORAGE CLASS>
      type: pv-pool
    <backingstore_name>
    后备储存的名称。
    <NUMBER OF VOLUMES>
    要创建的卷数量。请注意,增加卷数量可向上扩展存储。
    <VOLUME SIZE>
    每个卷所需的大小(以 GB 为单位)。
    <CPU REQUEST>
    保证的 CPU 请求,以 CPU 单元 m 为单位。
    <MEMORY REQUEST>
    保证请求的内存量。
    <CPU LIMIT>
    可消耗的最大 CPU 量,以 CPU 单元 m 为单位。
    <MEMORY LIMIT>
    可消耗的最大内存量。
    <LOCAL STORAGE CLASS>

    本地存储类名称,建议使用 ocs-storagecluster-ceph-rbd

    输出结果类似如下:

    INFO[0001] ✅ Exists: NooBaa "noobaa"
    INFO[0002] ✅ Exists: BackingStore "local-mcg-storage"