×

容器化数据导入器可以预分配磁盘空间,以提高创建数据卷时的写入性能。

您可以为特定的数据卷启用预分配。

关于预分配

容器化数据导入器 (CDI) 可以对数据卷使用 QEMU 预分配模式来提高写入性能。您可以将预分配模式用于导入和上传操作以及创建空白数据卷时。

如果启用了预分配,CDI 将根据底层文件系统和设备类型使用更好的预分配方法。

fallocate

如果文件系统支持,CDI 将使用操作系统的fallocate调用来使用posix_fallocate函数预分配空间,该函数分配块并将它们标记为未初始化。

full

如果无法使用fallocate模式,full模式将通过向底层存储写入数据来为镜像分配空间。根据存储位置的不同,所有空闲分配空间都可能被清零。

为数据卷启用预分配

您可以通过在数据卷清单中包含spec.preallocation字段来为特定数据卷启用预分配。您可以在 Web 控制台或使用 OpenShift CLI(oc)启用预分配模式。

所有 CDI 数据源类型都支持预分配模式。

步骤
  • 在数据卷清单中指定spec.preallocation字段

    apiVersion: cdi.kubevirt.io/v1beta1
    kind: DataVolume
    metadata:
      name: preallocated-datavolume
    spec:
      source: (1)
        registry:
          url: <image_url> (2)
      storage:
        resources:
          requests:
            storage: 1Gi
      preallocation: true
    # ...
    1 所有 CDI 数据源类型都支持预分配。但是,对于克隆操作,将忽略预分配。
    2 在您的注册表中指定数据源的 URL。