×

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

如果已配置容器化数据导入器 (CDI) 以识别并与存储提供程序的功能交互,则它可以识别存储提供程序。

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

自定义存储配置文件

您可以通过编辑供应程序存储类的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克隆