本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。

存储验证器

SUSE Virtualization支持使用外部容器存储接口(CSI)驱动程序配置 root 卷和数据卷。一旦安装了CSI驱动程序并配置了SUSE Virtualization集群,您可以使用第三方存储解决方案来存储和管理虚拟机镜像,将虚拟机磁盘存储在CSI驱动程序配置的卷上,并执行其他关键存储功能。

storage-validator工具执行基本测试,以验证存储解决方案与SUSE Virtualization虚拟机和卷生命周期操作的兼容性。它旨在:

  • 集群管理员:验证您的存储解决方案是否正确配置并针对SUSE Virtualization进行了优化。

    存储供应商可以使用SUSE Virtualization来验证其解决方案,以确保更好的互操作性。您可以在SUSE Virtualization文档中找到经过认证与SUSE® Rancher Prime兼容的企业级存储解决方案的信息,该文档可通过 SUSE客户中心访问。

  • 第三方存储合作伙伴:通过与SUSE Virtualization参考架构验证您的存储解决方案,获得 SUSE虚拟化认证存储认证。要完成认证要求,您可以在 最新稳定版本上运行此工具,并将结果提交给SUSE。

    该工具执行的测试将在未来的版本中扩展,以满足 SUSE虚拟化认证数据保护认证的要求。

`storage-validator`测试以下操作:

  • 卷创建和使用

  • 卷快照创建

  • 离线卷扩展

  • 使用指定的StorageClass创建虚拟机镜像

  • 从创建的镜像启动虚拟机

  • 虚拟机在线迁移

  • 将两个卷热插拔到虚拟机中

先决条件

配置文件

要使用 storage-validator,请创建一个名为 config.yml 的配置文件,其中包含相关字段。该工具在执行验证测试时使用此配置文件中的值。

如果您只指定云镜像 URL,storage-validator 将使用其他字段的默认值,包括集群的默认 StorageClass。

字段 说明 默认值 必需

namespace

运行测试的名称空间

default

imageURL

云镜像的 URL

没有默认值

storageClass

用于卷创建的 StorageClass

集群的默认 StorageClass

snapshotClass

用于快照操作的 VolumeSnapshotClass

与 StorageClass 匹配的 VolumeSnapshotClass

vmConfig.cpu

分配给虚拟机的核心数

2

vmConfig.memory

分配给虚拟机的内存

2Gi

vmConfig.diskSize

虚拟机引导磁盘的大小

10Gi

skipCleanup

在验证测试完成后跳过资源清理的选项(对调试故障很有用)

false

timeout

该工具在终止验证运行之前等待的秒数

600

快照创建要求 StorageClass 和 VolumeSnapshotClass 使用相同的供应器(CSI 驱动程序)。例如,如果 StorageClass 使用 lvm.driver.harvesterhci.io,则 VolumeSnapshotClass 也必须使用 lvm.driver.harvesterhci.io

config.yml 内容示例:

namespace: default
imageURL: "https://download.opensuse.org/repositories/Cloud:/Images:/Leap_15.6/images/openSUSE-Leap-15.6.x86_64-NoCloud.qcow2"
storageClass: lvm
snapshotClass: lvm-snapshot
vmConfig:
  cpu: 2
  memory: 2Gi
  diskSize: 10Gi
skipCleanup: false
timeout: 600

运行该工具

您可以从 发布 页面下载 storage-validator 可执行文件。

该工具接受以下标志:

storage-validator -h
Usage of /tmp/storage-validator:
  -config string
        Path to config file (default "config.yaml")
  -debug
        Debug mode
  -kubeconfig string
        Paths to a kubeconfig. Only required if out-of-cluster.

输出示例:

storage-validator -config ./sample/config.yaml
INFO[0000] 🚀 initiate: preflight checks
INFO[0003] ✅  completed: preflight checks
INFO[0007] 🚀 initiate: ensure volume is created and used successfully
INFO[0015] ✅  completed: ensure volume is created and used successfully
INFO[0015] 🚀 initiate: ensure volume snapshot can be created successfully
INFO[0022] ✅  completed: ensure volume snapshot can be created successfully
INFO[0022] 🚀 initiate: ensure offline volume expansion is successful
INFO[0059] ✅  completed: ensure offline volume expansion is successful
INFO[0059] 🚀 initiate: ensure vm image creation is successful
INFO[0077] ✅  completed: ensure vm image creation is successful
INFO[0077] 🚀 initiate: ensure vm can boot from recently created vmimage
INFO[0113] ✅  completed: ensure vm can boot from recently created vmimage
INFO[0113] 🚀 initiate: trigger VM migration
INFO[0130] ✅  completed: trigger VM migration
INFO[0130] 🚀 initiate: hotplug 2 volumes to existing VM
INFO[0136] ✅  completed: hotplug 2 volumes to existing VM
INFO[0136] cleaning up objects created from validation
-------------------------------------
environmentInfo:
  harvesterVersion: v1.6.0
  nodeCount: 2
  validatorVersion: dev
inputConfiguration:
  imageURL: http://10.115.1.6/iso/opensuse/openSUSE-Leap-15.5.x86_64-NoCloud.qcow2
  namespace: default
  skipCleanup: false
  snapshotClass: longhorn-snapshot
  storageClass: harvester-longhorn
  timeout: 600
  vmConfig:
    cpu: 2
    diskSize: 10Gi
results:
- name: hotplug 2 volumes to existing VM
  status: success
- name: trigger VM migration
  status: success
- name: ensure vm can boot from recently created vmimage
  status: success
- name: ensure vm image creation is successful
  status: success
- name: ensure offline volume expansion is successful
  status: success
- name: ensure volume snapshot can be created successfully
  status: success
- name: ensure volume is created and used successfully
  status: success