IBM Cloud Docs
使用本地磁盘的 OpenShift Data Foundation

使用本地磁盘的 OpenShift Data Foundation

为 IBM Cloud Satellite® 集群设置 OpenShift Data Foundation。 您可以使用 Satellite 存储模板来创建存储配置。 将存储器配置分配给集群时,所选存储器提供者的存储器驱动程序将安装在集群中。 请注意,使用 OpenShift Data Foundation 服务时会发生费用。 使用“成本估算器”根据您的预计使用量生成成本估算。

OpenShift Data Foundation 仅以内部方式提供,这意味着应用程序在与存储器相同的集群中运行。 不支持外部方式或存储器繁重的配置,其中存储器与应用程序位于不同的集群中。

在可以将存储器模板部署到您所在位置的集群之前,请确保通过在控制台中选择 对 Satellite Config 启用集群管理访问权 选项或者在创建集群时包含 --enable-config-admin 选项来设置 Satellite 配置。

不能将 Satellite 存储服务的作用域限定为资源组。 但是,如果要将其他资源 (例如,位置和集群) 限定为资源组,那么需要为帐户中的所有资源添加 Satellite 阅读器和链接管理员角色。

了解要使用的 ODF 存储器模板

将 OpenShift Data Foundation 部署到 Satellite 集群 (即 odf-localodf-remote 存储模板) 时,有两个选项可供选择。

  • odf-local: 当您具有可供工作程序节点使用的本地存储器时,请选择此模板。 如果存储卷在运行 lsblk 时可视,那么可以在部署 ODF 时使用这些磁盘 (如果它们是原始磁盘且未格式化)。
  • odf-remote: 如果在集群中安装了 CSI 驱动程序,请选择此模板。 例如,azuredisk-csi-driver 驱动程序。 部署 ODF 时,可以使用 CSI 驱动程序动态供应存储卷。

ODF 集群附加组件在 Satellite 集群上不受支持。 必须使用 odf-localodf-remote 存储模板在 Satellite上部署 ODF。

ODF 的先决条件

要将 ODF 存储器与本地存储操作程序和本地存储设备配合使用,请完成以下任务:

  1. 确保您拥有以下权限
    • 计费服务的 编辑器
    • ManagerEditor for Kubernetes 服务。
    • Satellite 服务的 Satellite Link 管理员读者
  2. 创建 Satellite 位置
  3. 创建 Satellite 集群
    • 确保在创建集群时选择 对 Satellite 配置 选项启用集群管理访问权。 如果在创建集群时未对 Satellite 配置启用管理员 (admin) 访问权,那么必须重新创建集群并启用管理员访问权,然后才能部署存储器。
    • 集群必须至少有 3 个工作程序节点,每个工作程序节点至少有 16CPUs 和 64GB RAM。
    • 除了具有以下某个本地存储器配置外,您的主机还必须满足 Satellite 主机需求
      • 除了最低主机需求外,每个工作程序节点还有一个额外的原始设备。 此磁盘不得已分区或具有格式化文件系统。
      • 除了最低主机需求外,每个工作程序节点还有一个额外的原始分区。 如果主机存储设备已分区,那么每个工作程序节点每个磁盘必须至少有一个额外的原始/无格式分区。
      • 除了最低主机需求外,每个工作程序节点还有两个额外的原始设备。 这些磁盘不得是分区文件系统或格式化文件系统。 如果您的设备未分区,那么每个节点都必须具有 2 个可用磁盘。 一个磁盘用于 OSD,一个磁盘用于 MON。
      • 除最低主机需求外,每个工作程序节点还有两个额外的原始分区。 这些磁盘不得是格式化文件系统。 如果原始设备已分区,那么每个工作程序节点的每个磁盘必须至少有 2 个分区。
  4. 可选: 如果要使用 IBM Cloud Object Storage 作为对象服务,请 创建 Object Storage 服务实例 和 HMAC 凭证。 您创建的 Object Storage 实例将用作 ODF 配置中的 NooBaa 支持存储。 支持存储是 NooBaa 存储区中数据的底层存储器。 如果在创建存储配置时未指定 IBM Cloud Object Storage 服务实例,那么将配置缺省 NooBaa 支持存储。 在将存储配置分配给集群并安装 ODF 之后,可以创建其他支持存储,包括 IBM Cloud Object Storage 支持存储。
  5. 可选: 获取要用于配置的原始无格式设备的详细信息。 存储磁盘的设备标识用于创建 Satellite 存储配置。

如果使用 VMWare 主机,请确保在虚拟机设置中将 disk.EnableUUID 参数和 ctkEnabled 参数设置为 TRUE

(可选) 为 ODF 设置 IBM Cloud Object Storage 支持存储

如果要使用 IBM Cloud Object Storage 作为对象服务,请创建 Object Storage 服务实例和 HMAC 凭证。 您创建的 Object Storage 实例是 ODF 配置中的 NooBaa 支持存储。 支持存储是 NooBaa 存储区中数据的底层存储器。 如果在创建存储配置时未指定 IBM Cloud Object Storage 服务实例,那么将配置缺省 NooBaa 支持存储。 在将配置分配给集群并安装 ODF 之后,可以创建更多支持商店,包括 IBM Cloud Object Storage 支持商店。

  1. 创建 IBM Cloud Object Storage 服务实例。

    ibmcloud resource service-instance-create noobaa-store cloud-object-storage standard global
    
  2. 创建 HMAC 凭证并记下 HMAC 凭证的服务访问密钥和访问密钥标识。

    ibmcloud resource service-key-create cos-cred-rw Writer --instance-name noobaa-store --parameters '{"HMAC": true}'
    

(可选) 获取 ODF 配置的设备详细信息

以下步骤显示如何从集群中的每个工作程序节点手动检索本地设备信息。 请注意,对于 V 4.8 集群和更高版本,您可以通过设置 auto-discover-devices=true 参数来自动查找工作程序节点上的可用设备。 但是,如果您有 4.7 集群,那么必须完成以下步骤来检索工作程序节点上磁盘的设备路径。

创建 ODF 配置时,必须指定要在存储集群中使用的磁盘的设备路径。 存储集群由对象存储守护程序 (OSD) pod 和监视 (MON) pod 组成。 指定为 OSD 设备的设备是存储应用程序数据的存储设备,指定为 MON 设备的设备由 MON pod 管理,用于存储和维护存储集群映射以及监视存储事件。 有关 OSD 和 MON 的更多信息,请参阅 Ceph 文档

  1. 登录到集群并获取可用工作程序节点的列表。 记下要在 ODF 配置中使用的工作程序节点。

    oc get nodes
    
  2. 登录到要用于 ODF 配置的每个工作程序节点。

    oc debug node/<node-name>
    
  3. 在工作程序节点上部署调试 pod 时,运行以下命令以列出工作程序节点上的可用磁盘。

    1. 允许主机二进制文件。

      chroot /host
      
    2. 列出您的设备。

      lsblk
      
  4. 查看可用磁盘的命令输出。 必须卸载可用于 ODF 配置的磁盘。 在 lsblk 命令的以下示例输出中,sdc 磁盘有两个可用的未格式化分区,可用于此工作程序节点的 OSD 和 MON 设备路径。 如果工作程序节点具有没有分区的原始磁盘,那么需要一个磁盘用于 OSD,一个磁盘用于 MON。 最佳实践是,要使此磁盘上的存储容量最大化,可以为 MON 指定较小的分区或磁盘,并为 OSD 指定较大的分区或磁盘。 请注意,ODF 配置的初始存储容量等于您在创建配置时指定为 osd-device-path 的磁盘大小。

    NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
    sda      8:0    0   931G  0 disk
    |-sda1   8:1    0   256M  0 part /boot
    |-sda2   8:2    0     1G  0 part
    `-sda3   8:3    0 929.8G  0 part /
    sdb      8:16   0 744.7G  0 disk
    `-sdb1   8:17   0 744.7G  0 part /disk1
    sdc      8:32   0 744.7G  0 disk
    |-sdc1   8:33   0  18.6G  0 part
    `-sdc2   8:34   0 260.8G  0 part
    
  5. 查找要在配置中使用的每个磁盘的 by-id。 在这种情况下,sdc1sdc2 分区将取消格式化并卸载。 创建配置时,会将每个磁盘的 by-id 指定为命令参数。

    ls -l /dev/disk/by-id/
    

    如果您有 VMware 主机,请运行以下命令。

    ls -l /dev/disk/by-path/
    
  6. 查看命令输出并记下要在配置中使用的磁盘的 by-id 值。 在以下示例输出中,sdc1sdc2 分区的磁盘标识为: scsi-3600605b00d87b43027b3bc310a64c6c9-part1scsi-3600605b00d87b43027b3bc310a64c6c9-part2

    lrwxrwxrwx. 1 root root  9 Feb  9 04:15 scsi-3600605b00d87b43027b3bbb603150cc6 -> ../../sda
    lrwxrwxrwx. 1 root root 10 Feb  9 04:15 scsi-3600605b00d87b43027b3bbb603150cc6-part1 -> ../../sda1
    lrwxrwxrwx. 1 root root 10 Feb  9 04:15 scsi-3600605b00d87b43027b3bbb603150cc6-part2 -> ../../sda2
    lrwxrwxrwx. 1 root root 10 Feb  9 04:15 scsi-3600605b00d87b43027b3bbb603150cc6-part3 -> ../../sda3
    lrwxrwxrwx. 1 root root  9 Feb  9 04:15 scsi-3600605b00d87b43027b3bbf306bc28a7 -> ../../sdb
    lrwxrwxrwx. 1 root root 10 Feb  9 04:15 scsi-3600605b00d87b43027b3bbf306bc28a7-part1 -> ../../sdb1
    lrwxrwxrwx. 1 root root  9 Feb  9 04:17 scsi-3600605b00d87b43027b3bc310a64c6c9 -> ../../sdc
    lrwxrwxrwx. 1 root root 10 Feb 11 03:14 scsi-3600605b00d87b43027b3bc310a64c6c9-part1 -> ../../sdc1
    lrwxrwxrwx. 1 root root 10 Feb 11 03:15 scsi-3600605b00d87b43027b3bc310a64c6c9-part2 -> ../../sdc2
    
  7. 对要用于 ODF 配置的每个工作程序节点重复上述步骤。

想要使用 Terraform 部署 OpenShift Data Foundation? 有关详细信息,请参阅 IBM-Cloud repo 中的示例。

在控制台中创建和分配配置

  1. 查看 参数参考

  2. 从 "位置" 控制台,选择要在其中创建存储配置的位置。

  3. 选择 存储器 > 创建存储器配置

  4. 输入配置名称。

  5. 选择存储类型

  6. 选择版本并单击下一步

  7. 如果您选择的 存储器类型 接受定制参数,请在 参数 选项卡上输入这些参数。

  8. 如果您选择的 存储器类型 需要私钥,请在 私钥 选项卡上输入私钥。

  9. 存储类 选项卡上,查看配置所部署的存储类或创建定制存储类。

  10. 分配给服务 选项卡上,选择要将配置分配给的服务。

  11. 单击 完成 以分配存储器配置。

在 CLI 中创建配置

  1. 查看要使用的模板版本的 参数参考

  2. 登录到 IBM Cloud CLI。

    ibmcloud login
    
  3. 列出 Satellite 位置并记下 Managed from 列。

    ibmcloud sat location ls
    
  4. 将 Satellite 位置的 Managed from 区域作为目标。 例如,对于 wdc target us-east。 有关更多信息,请参阅 Satellite 区域

    ibmcloud target -r us-east
    
  5. 如果使用除 default 以外的资源组,请将其作为目标。

    ibmcloud target -g <resource-group>
    
  6. 针对要使用的模板版本,复制以下某个示例命令。 有关该命令的更多信息,请参阅 命令参考 中的 ibmcloud sat storage config create

    用于创建 V 4.12 配置的示例命令。

    ibmcloud sat storage config create --location LOCATION --name NAME --template-name odf-local --template-version 4.12 --param "auto-discover-devices=AUTO-DISCOVER-DEVICES"  [--param "osd-device-path=OSD-DEVICE-PATH"]  --param "num-of-osd=NUM-OF-OSD"  [--param "worker-nodes=WORKER-NODES"]  --param "odf-upgrade=ODF-UPGRADE"  --param "billing-type=BILLING-TYPE"  [--param "ibm-cos-endpoint=IBM-COS-ENDPOINT"]  [--param "ibm-cos-location=IBM-COS-LOCATION"]  [--param "ibm-cos-access-key=IBM-COS-ACCESS-KEY"]  [--param "ibm-cos-secret-key=IBM-COS-SECRET-KEY"]  --param "cluster-encryption=CLUSTER-ENCRYPTION"  --param "iam-api-key=IAM-API-KEY"  --param "perform-cleanup=PERFORM-CLEANUP"  --param "kms-encryption=KMS-ENCRYPTION"  [--param "kms-instance-name=KMS-INSTANCE-NAME"]  [--param "kms-instance-id=KMS-INSTANCE-ID"]  [--param "kms-base-url=KMS-BASE-URL"]  [--param "kms-token-url=KMS-TOKEN-URL"]  [--param "kms-root-key=KMS-ROOT-KEY"]  [--param "kms-api-key=KMS-API-KEY"]  --param "ignore-noobaa=IGNORE-NOOBAA"
    

    用于创建 V 4.13 配置的示例命令。

    ibmcloud sat storage config create --location LOCATION --name NAME --template-name odf-local --template-version 4.13 --param "auto-discover-devices=AUTO-DISCOVER-DEVICES"  [--param "osd-device-path=OSD-DEVICE-PATH"]  --param "num-of-osd=NUM-OF-OSD"  [--param "worker-nodes=WORKER-NODES"]  --param "odf-upgrade=ODF-UPGRADE"  --param "billing-type=BILLING-TYPE"  [--param "ibm-cos-endpoint=IBM-COS-ENDPOINT"]  [--param "ibm-cos-location=IBM-COS-LOCATION"]  [--param "ibm-cos-access-key=IBM-COS-ACCESS-KEY"]  [--param "ibm-cos-secret-key=IBM-COS-SECRET-KEY"]  --param "cluster-encryption=CLUSTER-ENCRYPTION"  --param "iam-api-key=IAM-API-KEY"  --param "perform-cleanup=PERFORM-CLEANUP"  --param "kms-encryption=KMS-ENCRYPTION"  [--param "kms-instance-name=KMS-INSTANCE-NAME"]  [--param "kms-instance-id=KMS-INSTANCE-ID"]  [--param "kms-base-url=KMS-BASE-URL"]  [--param "kms-token-url=KMS-TOKEN-URL"]  [--param "kms-root-key=KMS-ROOT-KEY"]  [--param "kms-api-key=KMS-API-KEY"]  --param "ignore-noobaa=IGNORE-NOOBAA"  --param "disable-noobaa-LB=DISABLE-NOOBAA-LB"  --param "encryption-intransit=ENCRYPTION-INTRANSIT"  --param "taint-nodes=TAINT-NODES"
    

    用于创建 V 4.14 配置的示例命令。

    ibmcloud sat storage config create --location LOCATION --name NAME --template-name odf-local --template-version 4.14 --param "auto-discover-devices=AUTO-DISCOVER-DEVICES"  [--param "osd-device-path=OSD-DEVICE-PATH"]  --param "num-of-osd=NUM-OF-OSD"  [--param "worker-pools=WORKER-POOLS"]  [--param "worker-nodes=WORKER-NODES"]  --param "odf-upgrade=ODF-UPGRADE"  --param "billing-type=BILLING-TYPE"  [--param "ibm-cos-endpoint=IBM-COS-ENDPOINT"]  [--param "ibm-cos-location=IBM-COS-LOCATION"]  [--param "ibm-cos-access-key=IBM-COS-ACCESS-KEY"]  [--param "ibm-cos-secret-key=IBM-COS-SECRET-KEY"]  --param "cluster-encryption=CLUSTER-ENCRYPTION"  --param "iam-api-key=IAM-API-KEY"  --param "perform-cleanup=PERFORM-CLEANUP"  --param "kms-encryption=KMS-ENCRYPTION"  [--param "kms-instance-name=KMS-INSTANCE-NAME"]  [--param "kms-instance-id=KMS-INSTANCE-ID"]  [--param "kms-base-url=KMS-BASE-URL"]  [--param "kms-token-url=KMS-TOKEN-URL"]  [--param "kms-root-key=KMS-ROOT-KEY"]  [--param "kms-api-key=KMS-API-KEY"]  --param "ignore-noobaa=IGNORE-NOOBAA"  --param "disable-noobaa-LB=DISABLE-NOOBAA-LB"  --param "encryption-intransit=ENCRYPTION-INTRANSIT"  --param "add-single-replica-pool=ADD-SINGLE-REPLICA-POOL"  --param "taint-nodes=TAINT-NODES"  --param "prepare-for-disaster-recovery=PREPARE-FOR-DISASTER-RECOVERY"
    

    用于创建 V 4.15 配置的示例命令。

    ibmcloud sat storage config create --location LOCATION --name NAME --template-name odf-local --template-version 4.15 --param "auto-discover-devices=AUTO-DISCOVER-DEVICES"  [--param "osd-device-path=OSD-DEVICE-PATH"]  --param "num-of-osd=NUM-OF-OSD"  [--param "worker-pools=WORKER-POOLS"]  [--param "worker-nodes=WORKER-NODES"]  --param "odf-upgrade=ODF-UPGRADE"  --param "billing-type=BILLING-TYPE"  [--param "ibm-cos-endpoint=IBM-COS-ENDPOINT"]  [--param "ibm-cos-location=IBM-COS-LOCATION"]  [--param "ibm-cos-access-key=IBM-COS-ACCESS-KEY"]  [--param "ibm-cos-secret-key=IBM-COS-SECRET-KEY"]  --param "cluster-encryption=CLUSTER-ENCRYPTION"  --param "iam-api-key=IAM-API-KEY"  --param "perform-cleanup=PERFORM-CLEANUP"  --param "kms-encryption=KMS-ENCRYPTION"  [--param "kms-instance-name=KMS-INSTANCE-NAME"]  [--param "kms-instance-id=KMS-INSTANCE-ID"]  [--param "kms-base-url=KMS-BASE-URL"]  [--param "kms-token-url=KMS-TOKEN-URL"]  [--param "kms-root-key=KMS-ROOT-KEY"]  [--param "kms-api-key=KMS-API-KEY"]  --param "ignore-noobaa=IGNORE-NOOBAA"  --param "disable-noobaa-LB=DISABLE-NOOBAA-LB"  --param "encryption-intransit=ENCRYPTION-INTRANSIT"  --param "add-single-replica-pool=ADD-SINGLE-REPLICA-POOL"  --param "taint-nodes=TAINT-NODES"  --param "prepare-for-disaster-recovery=PREPARE-FOR-DISASTER-RECOVERY"  --param "enable-nfs=ENABLE-NFS"  --param "use-ceph-rbd-as-default-storage-class=USE-CEPH-RBD-AS-DEFAULT-STORAGE-CLASS"  --param "resource-profile=RESOURCE-PROFILE"
    
  7. 根据要使用的设置定制命令。

  8. 运行命令创建配置。

  9. 验证是否已创建配置。

    ibmcloud sat storage config get --config CONFIG
    

在 API 中创建配置

  1. 生成 API 密钥,然后请求刷新令牌。 有关详细信息,请参阅 使用 API 密钥生成 IBM Cloud IAM 令牌

  2. 查看要使用的模板版本的 参数参考

  3. 复制以下某个示例请求并替换要使用的变量。

    用于创建 V 4.12 配置的示例请求。

    curl -X POST "https://containers.cloud.ibm.com/global/v2/storage/satellite/createStorageConfigurationByController" -H "accept: application/json" -H "Authorization: TOKEN" -H "Content-Type: application/json" -d "{ \"config-name\": \"string\", \"controller\": \"string\", \"storage-class-parameters\": [ { \"additionalProp1\": \"string\", \"additionalProp2\": \"string\", \"additionalProp3\": \"string\" } ], \"storage-template-name\": \"odf-local\", \"storage-template-version\": \"4.12\", \"update-assignments\": true, \"user-config-parameters\": { \"entry.name\": \"AUTO-DISCOVER-DEVICES\", { \"entry.name\": \"OSD-DEVICE-PATH\", { \"entry.name\": \"NUM-OF-OSD\", { \"entry.name\": \"WORKER-NODES\", { \"entry.name\": \"ODF-UPGRADE\", { \"entry.name\": \"BILLING-TYPE\", { \"entry.name\": \"IBM-COS-ENDPOINT\", { \"entry.name\": \"IBM-COS-LOCATION\", { \"entry.name\": \"CLUSTER-ENCRYPTION\", { \"entry.name\": \"PERFORM-CLEANUP\", { \"entry.name\": \"KMS-ENCRYPTION\", { \"entry.name\": \"KMS-INSTANCE-NAME\", { \"entry.name\": \"KMS-INSTANCE-ID\", { \"entry.name\": \"KMS-BASE-URL\", { \"entry.name\": \"KMS-TOKEN-URL\", { \"entry.name\": \"IGNORE-NOOBAA\",\"user-secret-parameters\": { \"entry.name\": \"IBM-COS-ACCESS-KEY\",{ \"entry.name\": \"IBM-COS-SECRET-KEY\",{ \"entry.name\": \"IAM-API-KEY\",{ \"entry.name\": \"KMS-ROOT-KEY\",{ \"entry.name\": \"KMS-API-KEY\",}
    

    用于创建 V 4.13 配置的示例请求。

    curl -X POST "https://containers.cloud.ibm.com/global/v2/storage/satellite/createStorageConfigurationByController" -H "accept: application/json" -H "Authorization: TOKEN" -H "Content-Type: application/json" -d "{ \"config-name\": \"string\", \"controller\": \"string\", \"storage-class-parameters\": [ { \"additionalProp1\": \"string\", \"additionalProp2\": \"string\", \"additionalProp3\": \"string\" } ], \"storage-template-name\": \"odf-local\", \"storage-template-version\": \"4.13\", \"update-assignments\": true, \"user-config-parameters\": { \"entry.name\": \"AUTO-DISCOVER-DEVICES\", { \"entry.name\": \"OSD-DEVICE-PATH\", { \"entry.name\": \"NUM-OF-OSD\", { \"entry.name\": \"WORKER-NODES\", { \"entry.name\": \"ODF-UPGRADE\", { \"entry.name\": \"BILLING-TYPE\", { \"entry.name\": \"IBM-COS-ENDPOINT\", { \"entry.name\": \"IBM-COS-LOCATION\", { \"entry.name\": \"CLUSTER-ENCRYPTION\", { \"entry.name\": \"PERFORM-CLEANUP\", { \"entry.name\": \"KMS-ENCRYPTION\", { \"entry.name\": \"KMS-INSTANCE-NAME\", { \"entry.name\": \"KMS-INSTANCE-ID\", { \"entry.name\": \"KMS-BASE-URL\", { \"entry.name\": \"KMS-TOKEN-URL\", { \"entry.name\": \"IGNORE-NOOBAA\", { \"entry.name\": \"DISABLE-NOOBAA-LB\", { \"entry.name\": \"ENCRYPTION-INTRANSIT\", { \"entry.name\": \"TAINT-NODES\",\"user-secret-parameters\": { \"entry.name\": \"IBM-COS-ACCESS-KEY\",{ \"entry.name\": \"IBM-COS-SECRET-KEY\",{ \"entry.name\": \"IAM-API-KEY\",{ \"entry.name\": \"KMS-ROOT-KEY\",{ \"entry.name\": \"KMS-API-KEY\",}
    

    用于创建 V 4.14 配置的示例请求。

    curl -X POST "https://containers.cloud.ibm.com/global/v2/storage/satellite/createStorageConfigurationByController" -H "accept: application/json" -H "Authorization: TOKEN" -H "Content-Type: application/json" -d "{ \"config-name\": \"string\", \"controller\": \"string\", \"storage-class-parameters\": [ { \"additionalProp1\": \"string\", \"additionalProp2\": \"string\", \"additionalProp3\": \"string\" } ], \"storage-template-name\": \"odf-local\", \"storage-template-version\": \"4.14\", \"update-assignments\": true, \"user-config-parameters\": { \"entry.name\": \"AUTO-DISCOVER-DEVICES\", { \"entry.name\": \"OSD-DEVICE-PATH\", { \"entry.name\": \"NUM-OF-OSD\", { \"entry.name\": \"WORKER-POOLS\", { \"entry.name\": \"WORKER-NODES\", { \"entry.name\": \"ODF-UPGRADE\", { \"entry.name\": \"BILLING-TYPE\", { \"entry.name\": \"IBM-COS-ENDPOINT\", { \"entry.name\": \"IBM-COS-LOCATION\", { \"entry.name\": \"CLUSTER-ENCRYPTION\", { \"entry.name\": \"PERFORM-CLEANUP\", { \"entry.name\": \"KMS-ENCRYPTION\", { \"entry.name\": \"KMS-INSTANCE-NAME\", { \"entry.name\": \"KMS-INSTANCE-ID\", { \"entry.name\": \"KMS-BASE-URL\", { \"entry.name\": \"KMS-TOKEN-URL\", { \"entry.name\": \"IGNORE-NOOBAA\", { \"entry.name\": \"DISABLE-NOOBAA-LB\", { \"entry.name\": \"ENCRYPTION-INTRANSIT\", { \"entry.name\": \"ADD-SINGLE-REPLICA-POOL\", { \"entry.name\": \"TAINT-NODES\", { \"entry.name\": \"PREPARE-FOR-DISASTER-RECOVERY\",\"user-secret-parameters\": { \"entry.name\": \"IBM-COS-ACCESS-KEY\",{ \"entry.name\": \"IBM-COS-SECRET-KEY\",{ \"entry.name\": \"IAM-API-KEY\",{ \"entry.name\": \"KMS-ROOT-KEY\",{ \"entry.name\": \"KMS-API-KEY\",}
    

    用于创建 V 4.15 配置的示例请求。

    curl -X POST "https://containers.cloud.ibm.com/global/v2/storage/satellite/createStorageConfigurationByController" -H "accept: application/json" -H "Authorization: TOKEN" -H "Content-Type: application/json" -d "{ \"config-name\": \"string\", \"controller\": \"string\", \"storage-class-parameters\": [ { \"additionalProp1\": \"string\", \"additionalProp2\": \"string\", \"additionalProp3\": \"string\" } ], \"storage-template-name\": \"odf-local\", \"storage-template-version\": \"4.15\", \"update-assignments\": true, \"user-config-parameters\": { \"entry.name\": \"AUTO-DISCOVER-DEVICES\", { \"entry.name\": \"OSD-DEVICE-PATH\", { \"entry.name\": \"NUM-OF-OSD\", { \"entry.name\": \"WORKER-POOLS\", { \"entry.name\": \"WORKER-NODES\", { \"entry.name\": \"ODF-UPGRADE\", { \"entry.name\": \"BILLING-TYPE\", { \"entry.name\": \"IBM-COS-ENDPOINT\", { \"entry.name\": \"IBM-COS-LOCATION\", { \"entry.name\": \"CLUSTER-ENCRYPTION\", { \"entry.name\": \"PERFORM-CLEANUP\", { \"entry.name\": \"KMS-ENCRYPTION\", { \"entry.name\": \"KMS-INSTANCE-NAME\", { \"entry.name\": \"KMS-INSTANCE-ID\", { \"entry.name\": \"KMS-BASE-URL\", { \"entry.name\": \"KMS-TOKEN-URL\", { \"entry.name\": \"IGNORE-NOOBAA\", { \"entry.name\": \"DISABLE-NOOBAA-LB\", { \"entry.name\": \"ENCRYPTION-INTRANSIT\", { \"entry.name\": \"ADD-SINGLE-REPLICA-POOL\", { \"entry.name\": \"TAINT-NODES\", { \"entry.name\": \"PREPARE-FOR-DISASTER-RECOVERY\", { \"entry.name\": \"ENABLE-NFS\", { \"entry.name\": \"USE-CEPH-RBD-AS-DEFAULT-STORAGE-CLASS\", { \"entry.name\": \"RESOURCE-PROFILE\",\"user-secret-parameters\": { \"entry.name\": \"IBM-COS-ACCESS-KEY\",{ \"entry.name\": \"IBM-COS-SECRET-KEY\",{ \"entry.name\": \"IAM-API-KEY\",{ \"entry.name\": \"KMS-ROOT-KEY\",{ \"entry.name\": \"KMS-API-KEY\",}
    
  4. 验证是否已部署存储配置资源。 请注意,此过程可能需要最多 10 分钟才能完成。

    1. 获取已部署的 storagecluster,并验证阶段是否为 Ready

      oc get storagecluster -n openshift-storage
      

      示例输出

      NAME                 AGE   PHASE   EXTERNAL   CREATED AT             VERSION
      ocs-storagecluster   72m   Ready              2021-02-10T06:00:20Z   4.6.0
      
    2. 获取 openshift-storage 名称空间中的 pod 列表,并验证状态是否为 Running

      oc get pods -n openshift-storage
      

      示例输出

      NAME                                                              READY   STATUS      RESTARTS   AGE
      csi-cephfsplugin-9g2d5                                            3/3     Running     0          8m11s
      csi-cephfsplugin-g42wv                                            3/3     Running     0          8m11s
      csi-cephfsplugin-provisioner-7b89766c86-l68sr                     5/5     Running     0          8m10s
      csi-cephfsplugin-provisioner-7b89766c86-nkmkf                     5/5     Running     0          8m10s
      csi-cephfsplugin-rlhzv                                            3/3     Running     0          8m11s
      csi-rbdplugin-8dmxc                                               3/3     Running     0          8m12s
      csi-rbdplugin-f8c4c                                               3/3     Running     0          8m12s
      csi-rbdplugin-nkzcd                                               3/3     Running     0          8m12s
      csi-rbdplugin-provisioner-75596f49bd-7mk5g                        5/5     Running     0          8m12s
      csi-rbdplugin-provisioner-75596f49bd-r2p6g                        5/5     Running     0          8m12s
      noobaa-core-0                                                     1/1     Running     0          4m37s
      noobaa-db-0                                                       1/1     Running     0          4m37s
      noobaa-endpoint-7d959fd6fb-dr5x4                                  1/1     Running     0          2m27s
      noobaa-operator-6cbf8c484c-fpwtt                                  1/1     Running     0          9m41s
      ocs-operator-9d6457dff-c4xhh                                      1/1     Running     0          9m42s
      rook-ceph-crashcollector-169.48.170.83-89f6d7dfb-gsglz            1/1     Running     0          5m38s
      rook-ceph-crashcollector-169.48.170.88-6f58d6489-b9j49            1/1     Running     0          5m29s
      rook-ceph-crashcollector-169.48.170.90-866b9d444d-zk6ft           1/1     Running     0          5m15s
      rook-ceph-drain-canary-169.48.170.83-6b885b94db-wvptz             1/1     Running     0          4m41s
      rook-ceph-drain-canary-169.48.170.88-769f8b6b7-mtm47              1/1     Running     0          4m39s
      rook-ceph-drain-canary-169.48.170.90-84845c98d4-pxpqs             1/1     Running     0          4m40s
      rook-ceph-mds-ocs-storagecluster-cephfilesystem-a-6dfbb4fcnqv9g   1/1     Running     0          4m16s
      rook-ceph-mds-ocs-storagecluster-cephfilesystem-b-cbc56b8btjhrt   1/1     Running     0          4m15s
      rook-ceph-mgr-a-55cc8d96cc-vm5dr                                  1/1     Running     0          4m55s
      rook-ceph-mon-a-5dcc4d9446-4ff5x                                  1/1     Running     0          5m38s
      rook-ceph-mon-b-64dc44f954-w24gs                                  1/1     Running     0          5m30s
      rook-ceph-mon-c-86d4fb86-s8gdz                                    1/1     Running     0          5m15s
      rook-ceph-operator-69c46db9d4-tqdpt                               1/1     Running     0          9m42s
      rook-ceph-osd-0-6c6cc87d58-79m5z                                  1/1     Running     0          4m42s
      rook-ceph-osd-1-f4cc9c864-fmwgd                                   1/1     Running     0          4m41s
      rook-ceph-osd-2-dd4968b75-lzc6x                                   1/1     Running     0          4m40s
      rook-ceph-osd-prepare-ocs-deviceset-0-data-0-29jgc-kzpgr          0/1     Completed   0          4m51s
      rook-ceph-osd-prepare-ocs-deviceset-1-data-0-ckvv2-4jdx5          0/1     Completed   0          4m50s
      rook-ceph-osd-prepare-ocs-deviceset-2-data-0-szmjd-49dd4          0/1     Completed   0          4m50s
      rook-ceph-rgw-ocs-storagecluster-cephobjectstore-a-7f7f6df9rv6h   1/1     Running     0          3m44s
      rook-ceph-rgw-ocs-storagecluster-cephobjectstore-b-554fd9dz6dm8   1/1     Running     0          3m41s
      
  5. 列出 ODF 存储类。

    oc get sc
    

    示例输出

    NAME                          PROVISIONER                             RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
    localblock                    kubernetes.io/no-provisioner            Delete          WaitForFirstConsumer   false                  107s
    localfile                     kubernetes.io/no-provisioner            Delete          WaitForFirstConsumer   false                  107s
    ocs-storagecluster-ceph-rbd   openshift-storage.rbd.csi.ceph.com      Delete          Immediate              true                   87s
    ocs-storagecluster-ceph-rgw   openshift-storage.ceph.rook.io/bucket   Delete          Immediate              false                  87s
    ocs-storagecluster-cephfs     openshift-storage.cephfs.csi.ceph.com   Delete          Immediate              true                   88s
    sat-ocs-cephfs-gold           openshift-storage.cephfs.csi.ceph.com   Delete          Immediate              true                   2m46s
    sat-ocs-cephrbd-gold          openshift-storage.rbd.csi.ceph.com      Delete          Immediate              true                   2m46s
    sat-ocs-cephrgw-gold          openshift-storage.ceph.rook.io/bucket   Delete          Immediate              false                  2m45s
    sat-ocs-noobaa-gold           openshift-storage.noobaa.io/obc         Delete          Immediate              false                  2m45s
    
  6. 列出持久卷并验证是否已创建 MON 和 OSD 卷。

    oc get pv
    

    示例输出

    NAME                CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                                            STORAGECLASS   REASON   AGE
    local-pv-180cfc58   139Gi      RWO            Delete           Bound    openshift-storage/rook-ceph-mon-b                localfile               12m
    local-pv-67f21982   139Gi      RWO            Delete           Bound    openshift-storage/rook-ceph-mon-a                localfile               12m
    local-pv-80c5166    100Gi      RWO            Delete           Bound    openshift-storage/ocs-deviceset-2-data-0-5p6hd   localblock              12m
    local-pv-9b049705   139Gi      RWO            Delete           Bound    openshift-storage/rook-ceph-mon-c                localfile               12m
    local-pv-b09e0279   100Gi      RWO            Delete           Bound    openshift-storage/ocs-deviceset-1-data-0-gcq88   localblock              12m
    local-pv-f798e570   100Gi      RWO            Delete           Bound    openshift-storage/ocs-deviceset-0-data-0-6fgp6   localblock              12m
    

在 CLI 中创建任务

  1. 列出存储配置,并记下要分配给集群的存储配置。

    ibmcloud sat storage config ls
    
  2. 获取要向其分配存储器的集群,集群组或服务的标识。

    要确保集群已向 Satellite 配置注册或要创建组,请参阅 设置集群以与 Satellite 配置配合使用

    用于列出集群组的示例命令。

    ibmcloud sat group ls
    

    用于列出集群的示例命令。

    ibmcloud oc cluster ls --provider satellite
    

    用于列出 Satellite 服务的示例命令。

    ibmcloud sat service ls --location <location>
    
  3. 将存储器配置分配给先前检索的集群,组或服务。 有关更多信息,请参阅 ibmcloud sat storage assignment create 命令

    用于将配置分配给集群组的示例命令。

    ibmcloud sat storage assignment create --group GROUP --config CONFIG --name NAME
    

    用于将配置分配给集群的示例命令。

    ibmcloud sat storage assignment create --cluster CLUSTER --config CONFIG --name NAME
    

    用于将配置分配给服务集群的示例命令。

    ibmcloud sat storage assignment create --service-cluster-id CLUSTER --config CONFIG --name NAME
    
  4. 确认任务已创建。

    ibmcloud sat storage assignment ls (--cluster CLUSTER | --config CONFIG | --location LOCATION | --service-cluster-id CLUSTER)
    

在 API 中创建存储器分配

  1. 复制以下某个示例请求。

    用于将 配置分配给集群的示例请求。

    curl -X POST "https://containers.cloud.ibm.com/global/v2/storage/satellite/createAssignmentByCluster" -H "accept: application/json" -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" -d "{ \"channelName\": \"CONFIGURATION-NAME\", \"cluster\": \"CLUSTER-ID\", \"controller\": \"LOCATION-ID\", \"name\": \"ASSIGNMENT-NAME\"}"
    

    请求 将配置分配给集群组的示例。

    curl -X POST "https://containers.cloud.ibm.com/global/v2/storage/satellite/createAssignment" -H "accept: application/json" -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" -d "{ \"channelName\": \"CONFIGURATION-NAME\", \"cluster\": \"string\", \"groups\": [ \"CLUSTER-GROUP\" ], \"name\": \"ASSIGNMENT-NAME\"}"
    
  2. 将变量替换为详细信息并运行请求。

  3. 通过列出分配来验证是否已创建分配。

    curl -X GET "https://containers.cloud.ibm.com/global/v2/storage/satellite/getAssignments" -H "accept: application/json" -H "Authorization: Bearer TOKEN"
    

在控制台中更新存储器分配

您可以使用 Satellite 控制台 对分配应用最新补丁更新。

  1. Satellite 控制台中的“位置”页面,选择您的位置。

  2. 单击 存储器 选项卡以查看配置。

  3. 单击要更新的配置。

  4. 单击信息 信息 (i) 图标以应用最新修订版或补丁。

  5. 可选: 为存储器分配启用自动补丁更新。 启用自动补丁更新可确保分配始终具有最新的安全修订。

如果启用自动补丁更新,那么仍必须手动应用主要更新。

在 CLI 中手动升级分配

升级分配以使用最新的存储器模板修订版。

  1. 列出 Satellite 存储分配,记录要升级的 Satellite 分配。

    ibmcloud sat storage assignment ls
    
  2. 列出 Satellite 存储模板以查看最新的可用版本。

    ibmcloud sat storage template ls
    
  3. 升级 Satellite 分配。

    用于升级分配的示例命令。

    ibmcloud sat storage assignment upgrade --assignment ASSIGNMENT
    

在 CLI 中为配置和分配启用自动补丁更新

您可以使用 sat storage assignment autopatch enable CLI 为分配启用自动补丁更新。 启用自动补丁更新将自动应用最新的存储模板修订 (补丁)。 您仍必须手动应用主要更新。

  1. 列出 Satellite 存储配置。 记下配置 ID。

    ibmcloud sat storage assignment ls
    
  2. 运行以下某个示例命令以对配置及其关联的分配启用自动补丁更新。 输入您在上一步中获取的配置 ID。

    用于对分配启用自动补丁更新的示例命令。

    ibmcloud sat storage assignment autopatch enable --config CONFIG  (--all | --assignment ASSIGNMENT-ID [--assignment ASSIGNMENT-ID])
    

    用于对给定配置下的所有存储器分配启用自动补丁更新的示例命令。

    ibmcloud sat storage assignment autopatch enable --config CONFIG --all
    

    用于禁用特定配置下所有分配的自动补丁更新的示例命令。

    ibmcloud sat storage assignment autopatch disable --config CONFIG --all
    

    用于禁用单个分配和特定配置的自动补丁更新的示例命令。

    ibmcloud sat storage assignment autopatch disable --config CONFIG --assignment ASSIGNMENT-ID
    

    用于对多个分配和特定配置禁用自动补丁更新的示例命令。

    ibmcloud sat storage assignment autopatch disable --config CONFIG --assignment ASSIGNMENT-ID --assignment ASSIGNMENT-ID
    

在 API 中升级配置和分配

您可以使用 /v2/storage/satellite/updateAssignment API 通过新的集群或集群组更新分配。 将 updateConfigVersion 设置为 true 以应用修订更新。

  1. 复制以下示例请求,并替换要更新的集群组和分配的变量。

    curl -X PATCH "https://containers.cloud.ibm.com/global/v2/storage/satellite/updateAssignment" -H "accept: application/json" -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" -d "{ \"groups\": [ \"CLUSTER-GROUPS\" ], \"name\": \"ASSIGNMENT-NAME\", \"updateConfigVersion\": true, \"uuid\": \"ASSIGNMENT-ID\"}"
    
  2. 运行请求。

  3. 获取分配的详细信息以验证更新。

    curl -X GET "https://containers.cloud.ibm.com/global/v2/storage/satellite/getAssignment?uuid=ASSIGNMENT-ID" -H "accept: application/json" -H "Authorization: Bearer TOKEN"
    

在 API 中为分配启用自动补丁更新

您可以使用 /v2/storage/satellite/setAssignmentAutoupgrade API 为分配启用自动补丁更新。 启用自动补丁更新将自动应用最新的存储模板修订 (补丁)。 您仍必须手动应用主要更新。

  1. 复制以下示例请求,并替换要更新的集群组和分配的变量。

    curl -X PATCH "https://containers.cloud.ibm.com/global/v2/storage/satellite/setAssignmentAutoupgrade" -H "accept: application/json" -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" -d { "config": "string", "controller": "string", "autopatch": boolean,"assignment" : { "all": boolean, "uuid": ["string", "string", ...], } }
    
  2. 运行请求。

  3. 获取分配的详细信息以验证升级。

    curl -X GET "https://containers.cloud.ibm.com/global/v2/storage/satellite/getAssignment?uuid=ASSIGNMENT-ID" -H "accept: application/json" -H "Authorization: Bearer TOKEN"
    

部署使用 OpenShift Data Foundation 的应用程序

您可以使用 ODF 存储类为集群中的应用程序创建 PVC。

  1. 为 PVC 创建 YAML 配置文件。 为了使 PVC 与 PV 匹配,必须对存储类和存储器大小使用相同的值。

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: ocs-pvc
    spec:
      accessModes:
        - ReadWriteOnce
      storageClassName: sat-ocs-cephfs-gold
      resources:
        requests:
          storage: 5Gi
    
  2. 在集群中创建 PVC。

    oc apply -f pvc.yaml
    
  3. 为安装您创建的 PVC 的 pod 创建 YAML 配置文件。 以下示例创建将当前日期和时间写入 test.txt 文件的 nginx pod。

    apiVersion: v1
    kind: Pod
    metadata:
      name: app
    spec:
      containers:
      - name: app
        image: nginx
        command: ["/bin/sh"]
        args: ["-c", "while true; do echo $(date -u) >> /test/test.txt; sleep 5; done"]
        volumeMounts:
        - name: persistent-storage
          mountPath: /test
      volumes:
      - name: persistent-storage
        persistentVolumeClaim:
          claimName: ocs-pvc
    
  4. 在群集中创建 pod。

    oc apply -f pod.yaml
    
  5. 验证 pod 是否已部署。 请注意,应用程序进入 Running 状态可能需要几分钟时间。

    oc get pods
    

    示例输出

    NAME                                READY   STATUS    RESTARTS   AGE
    app                                 1/1     Running   0          2m58s
    
  6. 验证应用程序是否可以写入数据。

    1. 登录到 pod。

      oc exec <app-pod-name> -it bash
      
    2. 显示 test.txt 文件的内容,以确认应用程序可以将数据写入持久存储器。

      cat /test/test.txt
      

      示例输出

      Tue Mar 2 20:09:19 UTC 2021
      Tue Mar 2 20:09:25 UTC 2021
      Tue Mar 2 20:09:31 UTC 2021
      Tue Mar 2 20:09:36 UTC 2021
      Tue Mar 2 20:09:42 UTC 2021
      Tue Mar 2 20:09:47 UTC 2021
      
    3. 退出 pod。

      exit
      

在 CLI 中手动升级配置

您可以升级 Satellite 存储配置,以获取同一主版本中的最新存储模板修订版。

  1. 列出 Satellite 存储配置,记录要升级的 Satellite 配置。

    ibmcloud sat storage config ls
    
  2. 升级Satellite配置。 请注意,仅更新配置。 如果要升级使用此配置的分配,可以指定 --include-assignments 选项,也可以使用 assignment update 命令手动更新每个分配。

    用于将配置升级到最新修订版的示例命令。

    ibmcloud sat storage config upgrade --config CONFIG [--include-assignments]
    

    用于将配置及其关联的分配升级到最新修订版的示例命令。

    ibmcloud sat storage config upgrade --config CONFIG --include-assignments
    

通过连接原始磁盘来扩展 ODF 配置

要通过向工作程序节点添加磁盘来扩展 ODF 配置,请增大 num-of-osd 参数值,并使用 worker-nodes 参数指定新的工作程序节点名称。

在以下示例中,会将 3 工作程序节点添加到先前创建的配置中。 您可以通过按如下所示添加更新命令参数来扩展配置:

  • --name- 使用新名称创建配置。
  • --template-name-使用与现有配置中相同的参数值。
  • --template-version-使用与现有配置中相同的参数值。
  • osd-device-path-指定现有配置中的所有先前 osd-device-path 值以及已添加到集群的工作程序节点中的设备路径。 要检索新工作程序节点的设备标识值,请参阅 获取设备详细信息
  • mon-device-path-指定现有配置中的所有先前 mon-device-path 值。 ODF 需要 3 MON 设备。 要检索新工作程序节点的设备标识值,请参阅 获取设备详细信息
  • num-of-osd-针对添加到配置的每组 3 磁盘或分区,将 OSD 编号增加 1。
  • worker-nodes-指定现有配置中的工作程序节点。
  • ibm-cos-access-key-可选: 使用与现有配置中相同的参数值。 如果未将 IBM Cloud Object Storage 服务实例用作现有配置中的支持存储,请不要指定此参数。
  • ibm-cos-secret-access-key-可选: 使用与现有配置中相同的参数值。 如果未将 IBM Cloud Object Storage 服务实例用作现有配置中的支持存储,请不要指定此参数。
  • ibm-cos-endpoint-可选: 使用与现有配置中相同的参数值。 如果未将 IBM Cloud Object Storage 服务实例用作现有配置中的支持存储,请不要指定此参数。
  • ibm-cos-location-可选: 使用与现有配置中相同的参数值。 如果未将 IBM Cloud Object Storage 服务实例用作现有配置中的支持存储,请不要指定此参数。
  1. 创建存储配置并指定更新后的值。 在此示例中,osd-device-path 参数将更新为包含要使用的磁盘的设备标识,并且 num-of-osd 值将增大为 2。 如果未将 IBM Cloud Object Storage 服务实例用作现有配置中的支持存储,请不要在创建配置时指定 Object Storage 参数。

    ibmcloud sat storage config create --name ocs-config2 --template-name odf-local --template-version <template_version> -p "ocs-cluster-name=ocscluster" -p "osd-device-path=/dev/disk/by-id/scsi-3600605b00d87b43027b3bc310a64c6c9-part2,/dev/disk/by-id/scsi-3600605b00d87b43027b3bbf306bc28a7-part2,/dev/disk/by-id/scsi-3600062b206ba6f00276eb58065b5da94-part2,/dev/disk/by-id/scsi-3600605b00d87b43027b3bc310a64c6c9-part3,/dev/disk/by-id/scsi-3600605b00d87b43027b3bbf306bc28a7-part3,/dev/disk/by-id/scsi-3600062b206ba6f00276eb58065b5da94-part3" -p "mon-device-path=/dev/disk/by-id/scsi-3600605b00d87b43027b3bc310a64c6c9-part1,/dev/disk/by-id/scsi-3600605b00d87b43027b3bbf306bc28a7-part1,/dev/disk/by-id/scsi-3600062b206ba6f00276eb58065b5da94-part1" -p "num-of-osd=2" -p "worker-nodes=169.48.170.83,169.48.170.88,169.48.170.90" -p "ibm-cos-endpoint=<ibm-cos-endpoint>" -p "ibm-cos-location=<ibm-cos-location>" -p "ibm-cos-access-key=<ibm-cos-access-key>" -p "ibm-cos-secret-key=<ibm-cos-secret-key>"
    
  2. 为此配置创建新分配:

    ibmcloud sat storage assignment create --name ocs-sub2 --group test-group2 --config ocs-config2
    

使用 auto-discover-devices 扩展 ODF 配置

如果在 ODF 配置中将 auto-discover-devices 参数设置为 true,那么可以通过在以下命令中增大 num-of-osd 参数值来缩放配置。

ibmcloud sat storage config param set --config <config-name> -p num-of-osd=2 --apply
ibmcloud sat storage config create --name odf-local --template-name odf-local --template-version 4.11 --location odf-sat-stage-location  -p "auto-discover-devices=true" -p "iam-api-key=<api-key>"
  1. 将配置分配给集群。
    ibmcloud sat storage assignment create --name <name> --group <group> --config <config>
    
  2. 验证配置。
    ibmcloud sat storage config get --config <config>
    

从应用程序中除去 OpenShift Data Foundation

如果不再需要 OpenShift Data Foundation,那么可以从集群中除去 PVC,PV 和 ODF 操作程序。

  1. 列出 PVC 并记下 PVC 的名称以及要除去的相应 PV。
    oc get pvc
    
  2. 除去安装了 PVC 的所有 pod。
    1. 列出当前安装要删除的 PVC 的所有 pod。 如果未返回任何 pod,那么您当前没有任何使用 PVC 的 pod。
      oc get pods --all-namespaces -o=jsonpath='{range .items[*]}{"\n"}{.metadata.name}{":\t"}{range .spec.volumes[*]}{.persistentVolumeClaim.claimName}{" "}{end}{end}' | grep "<pvc_name>"
      
      示例输出
      app    sat-ocs-cephfs-gold
      
    2. 除去使用 PVC 的 pod。 如果 pod 是部署的一部分,请除去该部署。
      oc delete pod <pod_name>
      
      oc delete deployment <deployment_name>
      
    3. 验证是否已除去 pod 或部署。
      oc get pods
      
      oc get deployments
      
  3. 删除 PVC。
    oc delete pvc <pvc_name>
    
  4. 删除相应的 PV。
    oc delete pv <pv_name>
    

从集群中除去 ODF 本地存储器配置

如果不再计划在集群中使用 OpenShift Data Foundation,那么可以从存储配置中除去集群中的分配。

请注意,如果除去存储器配置,那么将从所有分配的集群中卸载 ODF 操作程序。 不会除去 PVC,PV 和数据。 但是,在重新将驱动程序安装到集群中之前,您可能无法访问数据。

  1. 运行以下命令以删除 ODF 存储器分配。

    oc delete ocscluster --all
    
  2. 列出存储器分配并查找用于集群的存储分配。

    ibmcloud sat storage assignment ls (--cluster CLUSTER | --config CONFIG | --location LOCATION | --service-cluster-id CLUSTER)
    
  3. 除去分配。 除去分配后,将从属于存储分配的所有集群中除去 ODF 驱动程序 pod 和存储类。

    ibmcloud sat storage assignment rm --assignment <assignment_ID>
    
  4. 列出 ODF 和本地存储类。

    oc get sc
    

    示例输出

    localblock                    kubernetes.io/no-provisioner            Delete          WaitForFirstConsumer   false                  42m
    localfile                     kubernetes.io/no-provisioner            Delete          WaitForFirstConsumer   false                  42m
    ocs-storagecluster-ceph-rbd   openshift-storage.rbd.csi.ceph.com      Delete          Immediate              true                   41m
    ocs-storagecluster-ceph-rgw   openshift-storage.ceph.rook.io/bucket   Delete          Immediate              false                  41m
    ocs-storagecluster-cephfs
    
  5. 删除存储类。

    oc delete sc localblock localfile ocs-storagecluster-ceph-rbd ocs-storagecluster-ceph-rgw ocs-storagecluster-cephfs
    

    示例输出

    storageclass.storage.k8s.io "localblock" deleted
    storageclass.storage.k8s.io "localfile" deleted
    storageclass.storage.k8s.io "ocs-storagecluster-ceph-rgw" deleted
    storageclass.storage.k8s.io "ocs-storagecluster-cephfs" deleted
    storageclass.storage.k8s.io "ocs-storagecluster-cephrbd" deleted
    

参数参考

4.12 参数参考

4.4.12参数参考
显示名称 CLI 选项 类型 描述 必需? 缺省值
自动存储卷发现 auto-discover-devices 配置 自动发现并使用工作程序节点上的存储卷。 如果设置为 false,则必须明确提供卷 ID。 true
OSD 卷标识 osd-device-path 配置 本地存储设备路径。 示例:/dev/sdcauto-discover-devices 设置为 false 时需要。 不适用
OSD 卷数 num-of-osd 配置 要创建的存储设备副本数。 默认值为 1,即在 3 个节点上创建 1 个设备。 针对每个额外的 3 设备集增加 1。 对于必须使用的情况,请保留默认值 1 1
工作程序节点名 worker-nodes 配置 要在其中部署 ODF 的工作程序节点名称的逗号分隔列表。 保留此字段为空可跨集群中的所有工作程序节点部署 ODF。 最小工作程序节点数为 3。 您可以运行 oc get nodes 查找工作节点名称。 不适用
升级 odf-upgrade 配置 如果要升级现有的 ODF 安装,请设置为 true false
计费类型 billing-type 配置 要使用的计费类型。 选择 essentialsadvanced advanced
IBM COS 端点 ibm-cos-endpoint 配置 IBM COS 区域公共端点。 不适用
IBM COS 位置约束 ibm-cos-location 配置 创建 COS 存储区时要使用的位置约束。 例如:us-east-standard 不适用
访问密钥标识 ibm-cos-access-key 私钥 您的 IBM COS HMAC 访问密钥标识。 不适用
访问私钥 ibm-cos-secret-key 私钥 您的 IBM COS HMAC 私钥访问密钥。 不适用
已启用加密 cluster-encryption 配置 如果要启用全集群加密,请设置为 true false
IAM API 密钥 iam-api-key 私钥 您的 IAM API 密钥。 不适用
执行清除 perform-cleanup 配置 如果要在删除任务时完全清理 ODF,请设置为 true false
KMS 加密 kms-encryption 配置 如果要启用存储类加密,请设置为 true false
KMS 实例名称 kms-instance-name 配置 您的 KMS 实例名称。 实例名称必须仅包含字母数字字符 -_.,并以字母数字字符开头和结尾。 不适用
KMS 实例标识 kms-instance-id 配置 您的 KMS 实例标识。 不适用
KMS 实例基本 URL kms-base-url 配置 用于连接到实例的 KMS 实例公用 URL。 不适用
KMS 实例 API 密钥令牌 URL kms-token-url 配置 用于为 KMS 实例生成令牌的 API 密钥令牌 URL。 不适用
KMS 根密钥 kms-root-key 私钥 实例的 KMS 根密钥。 不适用
KMS IAM API 密钥 kms-api-key 私钥 用于访问 KMS 实例的 IAM API 密钥。 您提供的 API 密钥必须至少对 KMS 实例具有"查看者"访问权。 不适用
忽略 Noobaa ignore-noobaa 配置 如果要部署 MultiCloud Object Gateway (Noobaa),请设置为 false true

4.13 参数参考

4.4.13参数参考
显示名称 CLI 选项 类型 描述 必需? 缺省值
自动存储卷发现 auto-discover-devices 配置 自动发现并使用工作程序节点上的存储卷。 如果设置为 false,则必须明确提供卷 ID。 true
OSD 卷标识 osd-device-path 配置 本地存储设备路径。 示例:/dev/sdcauto-discover-devices 设置为 false 时需要。 不适用
OSD 卷数 num-of-osd 配置 要创建的存储设备副本数。 默认值为 1,即在 3 个节点上创建 1 个设备。 针对每个额外的 3 设备集增加 1。 对于必须使用的情况,请保留默认值 1 1
工作程序节点名 worker-nodes 配置 要在其中部署 ODF 的工作程序节点名称的逗号分隔列表。 保留此字段为空可跨集群中的所有工作程序节点部署 ODF。 最小工作程序节点数为 3。 您可以运行 oc get nodes 查找工作节点名称。 不适用
升级 odf-upgrade 配置 如果要升级现有的 ODF 安装,请设置为 true false
计费类型 billing-type 配置 要使用的计费类型。 选择 essentialsadvanced advanced
IBM COS 端点 ibm-cos-endpoint 配置 IBM COS 区域公共端点。 不适用
IBM COS 位置约束 ibm-cos-location 配置 创建 COS 存储区时要使用的位置约束。 例如:us-east-standard 不适用
访问密钥标识 ibm-cos-access-key 私钥 您的 IBM COS HMAC 访问密钥标识。 不适用
访问私钥 ibm-cos-secret-key 私钥 您的 IBM COS HMAC 私钥访问密钥。 不适用
已启用加密 cluster-encryption 配置 如果要启用全集群加密,请设置为 true false
IAM API 密钥 iam-api-key 私钥 您的 IAM API 密钥。 不适用
执行清除 perform-cleanup 配置 如果要在删除任务时完全清理 ODF,请设置为 true false
KMS 加密 kms-encryption 配置 如果要启用存储类加密,请设置为 true false
KMS 实例名称 kms-instance-name 配置 您的 KMS 实例名称。 实例名称必须仅包含字母数字字符 -_.,并以字母数字字符开头和结尾。 不适用
KMS 实例标识 kms-instance-id 配置 您的 KMS 实例标识。 不适用
KMS 实例基本 URL kms-base-url 配置 用于连接到实例的 KMS 实例公用 URL。 不适用
KMS 实例 API 密钥令牌 URL kms-token-url 配置 用于为 KMS 实例生成令牌的 API 密钥令牌 URL。 不适用
KMS 根密钥 kms-root-key 私钥 实例的 KMS 根密钥。 不适用
KMS IAM API 密钥 kms-api-key 私钥 用于访问 KMS 实例的 IAM API 密钥。 您提供的 API 密钥必须至少对 KMS 实例具有"查看者"访问权。 不适用
忽略 Noobaa ignore-noobaa 配置 如果要部署 MultiCloud Object Gateway (Noobaa),请设置为 false true
禁用 Noobaa LB disable-noobaa-LB 配置 如果要禁用 Noobaa 公共负载平衡器,请设置为 true false
传输中加密 encryption-intransit 配置 如果要启用传输中加密,请设置为 true false
污染节点 taint-nodes 配置 设置时,所选工作程序节点将专用于 Data Foundation false

4.14 参数参考

4.4.14参数参考
显示名称 CLI 选项 类型 描述 必需? 缺省值
自动存储卷发现 auto-discover-devices 配置 自动发现并使用工作程序节点上的存储卷。 如果设置为 false,则必须明确提供卷 ID。 true
OSD 卷标识 osd-device-path 配置 本地存储设备路径。 示例:/dev/sdcauto-discover-devices 设置为 false 时需要。 不适用
OSD 卷数 num-of-osd 配置 要创建的存储设备副本数。 默认值为 1,即在 3 个节点上创建 1 个设备。 针对每个额外的 3 设备集增加 1。 对于必须使用的情况,请保留默认值 1 1
工作程序池名称/标识 worker-pools 配置 指定要用于 ODF 的工作程序池的名称或标识的逗号分隔列表。 如果要使用 worker-nodes,请将此字段留空。 如果要将集群中的所有工作程序节点用于 ODF,请将 worker-poolsworker-nodes 留空。 不适用
工作程序节点名 worker-nodes 配置 要在其中部署 ODF 的工作程序节点名称的逗号分隔列表。 如果要使用 worker-pools,请将此字段留空。 如果要将集群中的所有工作程序节点用于 ODF,请将 worker-nodesworker-pools 留空。 最小工作程序节点数为 3。 您可以运行 oc get nodes 查找工作者节点名称。 不适用
升级 odf-upgrade 配置 如果要升级现有的 ODF 安装,请设置为 true false
计费类型 billing-type 配置 要使用的计费类型。 选择 essentialsadvanced advanced
IBM COS 端点 ibm-cos-endpoint 配置 IBM COS 区域公共端点。 不适用
IBM COS 位置约束 ibm-cos-location 配置 创建 COS 存储区时要使用的位置约束。 例如:us-east-standard 不适用
访问密钥标识 ibm-cos-access-key 私钥 您的 IBM COS HMAC 访问密钥标识。 不适用
访问私钥 ibm-cos-secret-key 私钥 您的 IBM COS HMAC 私钥访问密钥。 不适用
已启用加密 cluster-encryption 配置 如果要启用全集群加密,请设置为 true false
IAM API 密钥 iam-api-key 私钥 您的 IAM API 密钥。 不适用
执行清除 perform-cleanup 配置 如果要在删除任务时完全清理 ODF,请设置为 true false
KMS 加密 kms-encryption 配置 如果要启用存储类加密,请设置为 true false
KMS 实例名称 kms-instance-name 配置 您的 KMS 实例名称。 实例名称必须仅包含字母数字字符 -_.,并以字母数字字符开头和结尾。 不适用
KMS 实例标识 kms-instance-id 配置 您的 KMS 实例标识。 不适用
KMS 实例基本 URL kms-base-url 配置 用于连接到实例的 KMS 实例公用 URL。 不适用
KMS 实例 API 密钥令牌 URL kms-token-url 配置 用于为 KMS 实例生成令牌的 API 密钥令牌 URL。 不适用
KMS 根密钥 kms-root-key 私钥 实例的 KMS 根密钥。 不适用
KMS IAM API 密钥 kms-api-key 私钥 用于访问 KMS 实例的 IAM API 密钥。 您提供的 API 密钥必须至少对 KMS 实例具有"查看者"访问权。 不适用
忽略 Noobaa ignore-noobaa 配置 如果要部署 MultiCloud Object Gateway (Noobaa),请设置为 false true
禁用 Noobaa LB disable-noobaa-LB 配置 如果要禁用 Noobaa 公共负载平衡器,请设置为 true false
传输中加密 encryption-intransit 配置 如果要启用传输中加密,请设置为 true false
添加单个副本池(一旦启用,就不能禁用) add-single-replica-pool 配置 启用此功能将创建没有数据复制的单个副本池,从而增加数据丢失、数据损坏和潜在系统不稳定的风险。 一旦启用,就无法将其禁用 false
污染节点 taint-nodes 配置 设置时,所选工作程序节点将专用于 Data Foundation false
为灾难恢复做好准备 prepare-for-disaster-recovery 配置 启用此项将为灾难恢复服务设置具有基本配置的存储系统。 这随后将允许为您的工作负载无缝实施 DR 策略 false

4.15 参数参考

4.4.15参数参考
显示名称 CLI 选项 类型 描述 必需? 缺省值
自动存储卷发现 auto-discover-devices 配置 自动发现并使用工作程序节点上的存储卷。 如果设置为 false,则必须明确提供卷 ID。 true
OSD 卷标识 osd-device-path 配置 本地存储设备路径。 示例:/dev/sdcauto-discover-devices 设置为 false 时需要。 不适用
OSD 卷数 num-of-osd 配置 要创建的存储设备副本数。 默认值为 1,即在 3 个节点上创建 1 个设备。 针对每个额外的 3 设备集增加 1。 对于必须使用的情况,请保留默认值 1 1
工作程序池名称/标识 worker-pools 配置 指定要用于 ODF 的工作程序池的名称或标识的逗号分隔列表。 如果要使用 worker-nodes,请将此字段留空。 如果要将集群中的所有工作程序节点用于 ODF,请将 worker-poolsworker-nodes 留空。 不适用
工作程序节点名 worker-nodes 配置 要在其中部署 ODF 的工作程序节点名称的逗号分隔列表。 如果要使用 worker-pools,请将此字段留空。 如果要将集群中的所有工作程序节点用于 ODF,请将 worker-nodesworker-pools 留空。 最小工作程序节点数为 3。 您可以运行 oc get nodes 查找工作者节点名称。 不适用
升级 odf-upgrade 配置 如果要升级现有的 ODF 安装,请设置为 true false
计费类型 billing-type 配置 要使用的计费类型。 选择 essentialsadvanced advanced
IBM COS 端点 ibm-cos-endpoint 配置 IBM COS 区域公共端点。 不适用
IBM COS 位置约束 ibm-cos-location 配置 创建 COS 存储区时要使用的位置约束。 例如:us-east-standard 不适用
访问密钥标识 ibm-cos-access-key 私钥 您的 IBM COS HMAC 访问密钥标识。 不适用
访问私钥 ibm-cos-secret-key 私钥 您的 IBM COS HMAC 私钥访问密钥。 不适用
已启用加密 cluster-encryption 配置 如果要启用全集群加密,请设置为 true false
IAM API 密钥 iam-api-key 私钥 您的 IAM API 密钥。 不适用
执行清除 perform-cleanup 配置 如果要在删除任务时完全清理 ODF,请设置为 true false
KMS 加密 kms-encryption 配置 如果要启用存储类加密,请设置为 true false
KMS 实例名称 kms-instance-name 配置 您的 KMS 实例名称。 实例名称必须仅包含字母数字字符 -_.,并以字母数字字符开头和结尾。 不适用
KMS 实例标识 kms-instance-id 配置 您的 KMS 实例标识。 不适用
KMS 实例基本 URL kms-base-url 配置 用于连接到实例的 KMS 实例公用 URL。 不适用
KMS 实例 API 密钥令牌 URL kms-token-url 配置 用于为 KMS 实例生成令牌的 API 密钥令牌 URL。 不适用
KMS 根密钥 kms-root-key 私钥 实例的 KMS 根密钥。 不适用
KMS IAM API 密钥 kms-api-key 私钥 用于访问 KMS 实例的 IAM API 密钥。 您提供的 API 密钥必须至少对 KMS 实例具有"查看者"访问权。 不适用
忽略 Noobaa ignore-noobaa 配置 如果要部署 MultiCloud Object Gateway (Noobaa),请设置为 false true
禁用 Noobaa LB disable-noobaa-LB 配置 如果要禁用 Noobaa 公共负载平衡器,请设置为 true false
传输中加密 encryption-intransit 配置 如果要启用传输中加密,请设置为 true false
添加单个副本池(一旦启用,就不能禁用) add-single-replica-pool 配置 启用此功能将创建没有数据复制的单个副本池,从而增加数据丢失、数据损坏和潜在系统不稳定的风险。 一旦启用,就无法将其禁用 false
污染节点 taint-nodes 配置 设置时,所选工作程序节点将专用于 Data Foundation false
为灾难恢复做好准备 prepare-for-disaster-recovery 配置 启用此项将为灾难恢复服务设置具有基本配置的存储系统。 这随后将允许为您的工作负载无缝实施 DR 策略 false
启用 NFS enable-nfs 配置 允许从网络文件系统 ( NFS ) 导出文件,然后可从 OpenShift 集群进行内部或外部访问 false
使用 Ceph RBD 作为缺省存储类 use-ceph-rbd-as-default-storage-class 配置 在 OpenShift Data Foundation 部署期间,将 Ceph RADOS 块设备 (RBD) 存储类设置为缺省存储类 false
资源概要文件 resource-profile 配置 根据部署期间的资源可用性选择资源概要文件。 在 leanbalancedperformance 之间进行选择。 balanced

ODF 的存储类引用

查看 OpenShift Data Foundation 的 Satellite 存储类。 您可以使用 oc describe sc <storage-class-name> 命令在命令行中描述存储类。

OpenShift容器存储的存储类参考
存储类名 类型 文件系统 供应者 卷绑定方式 允许卷扩展 回收策略
sat-ocs-cephrbd-gold 阻止 ext4 openshift-storage.rbd.csi.ceph.com 立即 True 删除(T)
sat-ocs-cephfs-gold 文件 不适用 openshift-storage.cephfs.csi.ceph.com 立即 True 删除(T)
sat-ocs-cephrgw-gold 对象 不适用 openshift-storage.ceph.rook.io/bucket 立即 不适用 删除(T)
sat-ocs-noobaa-gold 缺省值 OBC 不适用 openshift-storage.noobaa.io/obc 立即 不适用 删除(T)
sat-ocs-cephrbd-gold-metro 阻止 ext4 openshift-storage.rbd.csi.ceph.com WaitForFirstConsumer True 删除(T)
sat-ocs-cephfs-gold-metro 文件 不适用 openshift-storage.cephfs.csi.ceph.com WaitForFirstConsumer True 删除(T)