×

以下存储配置任务是强制性的

  • 您必须为集群配置一个默认存储类。否则,集群将无法接收自动启动源更新。

  • 如果您的存储提供程序未被 CDI 识别,则必须配置存储配置文件。存储配置文件根据关联的存储类提供推荐的存储设置。

可选:您可以使用主机路径供应程序 (HPP) 配置本地存储。

有关更多选项,包括配置容器化数据导入器 (CDI)、数据卷和自动启动源更新,请参阅存储配置概述

使用 HPP 配置本地存储

安装 OpenShift 虚拟化操作符时,会自动安装主机路径供应程序 (HPP) 操作符。HPP 操作符创建 HPP 供应程序。

HPP 是专为 OpenShift 虚拟化设计的本地存储供应程序。要使用 HPP,您必须创建一个 HPP 自定义资源 (CR)。

HPP 存储池不得与操作系统位于同一分区中。否则,存储池可能会填满操作系统分区。如果操作系统分区已满,则可能会影响性能,或者节点可能会变得不稳定或不可用。

使用 storagePools 语句为 CSI 驱动程序创建存储类

要使用主机路径供应程序 (HPP),您必须为容器存储接口 (CSI) 驱动程序创建一个关联的存储类。

创建存储类时,您设置影响属于该存储类的持久卷 (PV) 动态供应的参数。创建后,您无法更新StorageClass对象的参数。

虚拟机使用基于本地PV的数据卷。本地PV绑定到特定节点。在为虚拟机准备磁盘映像时,虚拟机可能无法调度到之前已绑定本地存储PV的节点。

为了解决这个问题,请使用Kubernetes Pod调度器将持久卷声明 (PVC) 绑定到正确节点上的PV。通过使用将volumeBindingMode参数设置为WaitForFirstConsumerStorageClass值,PV的绑定和预配将延迟到使用PVC创建Pod之后。

步骤
  1. 创建一个storageclass_csi.yaml文件来定义存储类。

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: hostpath-csi
    provisioner: kubevirt.io.hostpath-provisioner
    reclaimPolicy: Delete (1)
    volumeBindingMode: WaitForFirstConsumer (2)
    parameters:
      storagePool: my-storage-pool (3)
    1 两个可能的reclaimPolicy值是DeleteRetain。如果不指定值,则默认值为Delete
    2 volumeBindingMode参数决定动态预配和卷绑定何时发生。指定WaitForFirstConsumer以延迟持久卷 (PV) 的绑定和预配,直到创建使用持久卷声明 (PVC) 的Pod之后。这确保PV满足Pod的调度要求。
    3 指定在HPP CR中定义的存储池的名称。
  2. 保存文件并退出。

  3. 运行以下命令创建StorageClass对象:

    $ oc create -f storageclass_csi.yaml