11.3.2. 配置默认和 virt-default 存储类


存储类决定了如何为工作负载置备持久性存储。在 OpenShift Virtualization 中,virt-default 存储类优先于集群默认存储类,用于虚拟化工作负载。

在一个时间点上,仅一个存储类应被设置为 virt-default 或 cluster default。如果多个存储类被标记为默认,virt-default 存储类会覆盖集群默认。为确保一致的行为,请仅配置一个存储类作为虚拟化工作负载的默认值。

重要

引导源使用默认存储类创建。当默认存储类更改时,会使用新的默认存储类自动更新旧的引导源。如果您的集群没有默认存储类,则必须定义一个。

如果引导源镜像存储为卷快照,并且集群默认和 virt-default 存储类都未设置,则会清理卷快照,并创建新的数据卷。但是,在设置了默认存储类前,新创建的数据卷不会开始导入。

先决条件

  • 已安装 OpenShift CLI(oc)。

流程

  1. 将当前的 virt-default 或集群默认存储类进行补丁为 false:

    1. 运行以下命令,识别当前标记为 virt-default 的所有存储类:

      $ oc get sc -o json| jq '.items[].metadata|select(.annotations."storageclass.kubevirt.io/is-default-virt-class"=="true")|.name'
    2. 对于返回的每个存储类,运行以下命令来删除 virt-default 注解:

      $ oc patch storageclass <storage_class_name> -p '{"metadata": {"annotations": {"storageclass.kubevirt.io/is-default-virt-class": "false"}}}'
    3. 运行以下命令,识别当前标记为集群默认的所有存储类:

      $ oc get sc -o json| jq '.items[].metadata|select(.annotations."storageclass.kubernetes.io/is-default-class"=="true")|.name'
    4. 对于返回的每个存储类,运行以下命令来删除集群默认注解:

      $ oc patch storageclass <storage_class_name> -p '{"metadata": {"annotations": {"storageclass.kubernetes.io/is-default-class": "false"}}}'
  2. 设置新的默认存储类:

    1. 运行以下命令,将 virt-default 角色分配给存储类:

      $ oc patch storageclass <storage_class_name> -p '{"metadata": {"annotations": {"storageclass.kubevirt.io/is-default-virt-class": "true"}}}'
    2. 或者,运行以下命令将集群默认角色分配给存储类:

      $ oc patch storageclass <storage_class_name> -p '{"metadata": {"annotations": {"storageclass.kubernetes.io/is-default-class": "true"}}}'
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部