×

存储配置文件根据关联的存储类提供推荐的存储设置。每个存储类都分配一个存储配置文件。

容器化数据导入器 (CDI) 能够识别已配置为识别和交互存储提供程序功能的存储提供程序。

对于已识别的存储类型,CDI 提供优化 PVC 创建的值。您还可以通过自定义存储配置文件来配置存储类的自动设置。如果 CDI 未识别您的存储提供程序,则必须配置存储配置文件。

在将 Red Hat OpenShift Data Foundation 与 OpenShift Virtualization 配合使用时,创建虚拟机磁盘时,请指定 RBD 块模式持久卷声明 (PVC)。RBD 块模式卷比 Ceph FS 或 RBD 文件系统模式 PVC 更高效,并提供更好的性能。

要指定 RBD 块模式 PVC,请使用 'ocs-storagecluster-ceph-rbd' 存储类和VolumeMode: Block

自定义存储配置文件

您可以通过编辑供应程序存储类的StorageProfile对象来指定默认参数。只有当这些默认参数未在DataVolume对象中配置时,它们才应用于持久卷声明 (PVC)。

您无法修改存储类参数。要进行更改,请删除并重新创建存储类。然后,您必须重新应用以前对存储配置文件进行的任何自定义。

存储配置文件中空的status部分表示容器化数据接口 (CDI) 未识别存储供应程序。如果您拥有 CDI 未识别的存储供应程序,则需要自定义存储配置文件。在这种情况下,管理员会在存储配置文件中设置适当的值以确保成功分配。

如果您创建数据卷并省略 YAML 属性,并且这些属性未在存储配置文件中定义,则不会分配请求的存储,并且不会创建底层的持久卷声明 (PVC)。

先决条件
  • 确保您的计划配置受存储类及其提供程序支持。在存储配置文件中指定不兼容的配置会导致卷供应失败。

步骤
  1. 编辑存储配置文件。在此示例中,供应程序未被 CDI 识别。

    $ oc edit storageprofile <storage_class>
    存储配置文件示例
    apiVersion: cdi.kubevirt.io/v1beta1
    kind: StorageProfile
    metadata:
      name: <unknown_provisioner_class>
    # ...
    spec: {}
    status:
      provisioner: <unknown_provisioner>
      storageClass: <unknown_provisioner_class>
  2. 在存储配置文件中提供所需的属性值

    存储配置文件示例
    apiVersion: cdi.kubevirt.io/v1beta1
    kind: StorageProfile
    metadata:
      name: <unknown_provisioner_class>
    # ...
    spec:
      claimPropertySets:
      - accessModes:
        - ReadWriteOnce (1)
        volumeMode:
          Filesystem (2)
    status:
      provisioner: <unknown_provisioner>
      storageClass: <unknown_provisioner_class>
    1 您选择的accessModes
    2 您选择的volumeMode

    保存更改后,选定的值将显示在存储配置文件status元素中。

使用存储配置文件设置默认克隆策略

您可以使用存储配置文件为存储类设置默认克隆方法,从而创建克隆策略。例如,如果您的存储供应商只支持某些克隆方法,则设置克隆策略会很有帮助。它还允许您选择限制资源使用或最大化性能的方法。

克隆策略可以通过将存储配置文件中的cloneStrategy属性设置为以下值之一来指定

  • 当配置快照时,默认情况下使用snapshot。如果 CDI 识别存储提供程序并且提供程序支持容器存储接口 (CSI) 快照,则 CDI 将使用快照方法。此克隆策略使用临时卷快照来克隆卷。

  • copy使用源 Pod 和目标 Pod 将数据从源卷复制到目标卷。主机辅助克隆是最低效的克隆方法。

  • csi-clone使用 CSI 克隆 API 高效地克隆现有卷,而无需使用临时卷快照。与snapshotcopy(如果未定义存储配置文件,则默认使用)不同,只有当您在供应程序存储类的StorageProfile对象中指定它时,才会使用 CSI 卷克隆。

您还可以使用 CLI 设置克隆策略,而无需修改 YAML spec部分中的默认claimPropertySets

存储配置文件示例
apiVersion: cdi.kubevirt.io/v1beta1
kind: StorageProfile
metadata:
  name: <provisioner_class>
# ...
spec:
  claimPropertySets:
  - accessModes:
    - ReadWriteOnce (1)
    volumeMode:
      Filesystem (2)
  cloneStrategy: csi-clone (3)
status:
  provisioner: <provisioner>
  storageClass: <provisioner_class>
1 指定访问模式。
2 指定卷模式。
3 指定默认克隆策略。
表 1. 存储提供程序和默认行为
存储提供程序 默认行为

rook-ceph.rbd.csi.ceph.com

快照

openshift-storage.rbd.csi.ceph.com

快照

csi-vxflexos.dellemc.com

CSI 克隆

csi-isilon.dellemc.com

CSI 克隆

csi-powermax.dellemc.com

CSI 克隆

csi-powerstore.dellemc.com

CSI 克隆

hspc.csi.hitachi.com

CSI 克隆

csi.hpe.com

CSI 克隆

spectrumscale.csi.ibm.com

CSI 克隆

rook-ceph.rbd.csi.ceph.com

CSI 克隆

openshift-storage.rbd.csi.ceph.com

CSI 克隆

cephfs.csi.ceph.com

CSI 克隆

openshift-storage.cephfs.csi.ceph.com

CSI 克隆