This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.8.16. 导入虚拟机
8.16.1. 数据卷导入的 TLS 证书 复制链接链接已复制到粘贴板!
8.16.1.1. 添加用于身份验证数据卷导入的 TLS 证书 复制链接链接已复制到粘贴板!
registry 或 HTTPS 端点的 TLS 证书必须添加到配置映射中,才能从这些源导入数据。此配置映射必须存在于目标数据卷的命名空间中。
通过引用 TLS 证书的相对文件路径来创建配置映射。
流程
确定您处于正确的命名空间中。配置映射只能被数据卷引用(如果位于同一命名空间中)。
oc get ns
$ oc get ns
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建配置映射:
oc create configmap <configmap-name> --from-file=</path/to/file/ca.pem>
$ oc create configmap <configmap-name> --from-file=</path/to/file/ca.pem>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
8.16.1.2. 示例:从 TLS 证书创建的配置映射 复制链接链接已复制到粘贴板!
以下示例是从 ca.pem
TLS 证书创建的配置映射。
8.16.2. 使用数据卷导入虚拟机镜像 复制链接链接已复制到粘贴板!
使用 Containerized Data Importer(CDI)通过使用数据卷将虚拟机镜像导入到持久性卷声明(PVC)中。您可以将数据卷附加到虚拟机以获取持久性存储。
虚拟机镜像可以托管在 HTTP 或 HTTPS 端点上,也可以内嵌在容器磁盘中,并存储在容器镜像仓库中。
当您将磁盘镜像导入到 PVC 中时,磁盘镜像扩展为使用 PVC 中请求的全部存储容量。要使用该空间,可能需要扩展虚拟机中的磁盘分区和文件系统。
调整大小的流程因虚拟机上安装的操作系统而异。详情请查看操作系统文档。
8.16.2.1. 先决条件 复制链接链接已复制到粘贴板!
- 如果端点需要 TLS 证书,该证书必须 包含在与数据卷相同的命名空间中的配置映射 中,并在数据卷配置中引用。
导入容器磁盘:
- 您可能需要从虚拟机镜像准备容器磁盘,并在导入前将其存储在容器镜像仓库中。
-
如果容器镜像仓库没有 TLS,您必须将 registry 添加到
HyperConverged
自定义资源的insecureRegistries
字段中,然后才能从中导入容器磁盘。
- 您可能需要定义存储类或准备 CDI 涂销空间才能成功完成此操作。
8.16.2.2. CDI 支持的操作列表 复制链接链接已复制到粘贴板!
此列表针对端点显示内容类型支持的 CDI 操作,以及哪些操作需要涂销空间(scratch space)。
内容类型 | HTTP | HTTPS | HTTP 基本身份验证 | Registry | 上传 |
---|---|---|---|---|---|
KubeVirt (QCOW2) |
✓ QCOW2 |
✓ QCOW2** |
✓ QCOW2 |
✓ QCOW2* |
✓ QCOW2* |
KubeVirt (RAW) |
✓ RAW |
✓ RAW |
✓ RAW |
✓ RAW* |
✓ RAW* |
✓ 支持的操作
□ 不支持的操作
* 需要涂销空间
** 如果需要自定义证书颁发机构,则需要涂销空间
CDI 现在使用 OpenShift Container Platform 集群范围的代理配置。
8.16.2.3. 关于数据卷 复制链接链接已复制到粘贴板!
DataVolume
对象是 Containerized Data Importer (CDI) 项目提供的自定义资源。DataVolume 编配与底层持久性卷声明(PVC)关联的导入、克隆和上传操作。数据卷与 OpenShift Virtualization 集成,它们可在 PVC 准备好前阻止虚拟机启动。
8.16.2.4. 使用数据卷将虚拟机镜像导入到存储中 复制链接链接已复制到粘贴板!
您可以使用数据卷将虚拟机镜像导入到存储中。
虚拟机镜像可以托管在 HTTP 或 HTTPS 端点上,或者镜像可以构建到容器磁盘中,并存储在容器镜像仓库中。
您可以在 VirtualMachine
配置文件中为镜像指定数据源。创建虚拟机时,包含虚拟机镜像的数据卷将导入到存储中。
先决条件
要导入虚拟机镜像,必须有以下内容:
-
RAW、ISO 或 QCOW2 格式的虚拟机磁盘镜像,可选择使用
xz
或gz
进行压缩。 - 托管镜像的 HTTP 或 HTTPS 端点,以及访问数据源所需的任何身份验证凭证。
-
RAW、ISO 或 QCOW2 格式的虚拟机磁盘镜像,可选择使用
- 要导入容器磁盘,您必须将虚拟机镜像构建到容器磁盘中,并存储在容器镜像仓库中,以及访问数据源所需的任何身份验证凭证。
- 如果虚拟机必须与未由系统 CA 捆绑包签名的证书的服务器通信,则必须在与数据卷相同的命名空间中创建一个配置映射。
流程
如果您的数据源需要身份验证,请创建一个
Secret
清单,指定数据源凭证,并将其保存为endpoint-secret.yaml
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 应用
Secret
清单:oc apply -f endpoint-secret.yaml
$ oc apply -f endpoint-secret.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑
VirtualMachine
清单,为要导入的虚拟机镜像指定数据源,并将其保存为vm-fedora-datavolume.yaml
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建虚拟机:
oc create -f vm-fedora-datavolume.yaml
$ oc create -f vm-fedora-datavolume.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意oc create
命令创建数据卷和虚拟机。CDI 控制器创建一个带有正确注解和导入过程的底层 PVC。导入完成后,数据卷状态变为Succeeded
。您可以启动虚拟机。数据卷置备在后台进行,因此无需监控进程。
验证
importer pod 从指定的 URL 下载虚拟机镜像或容器磁盘,并将其存储在置备的 PV 上。运行以下命令,查看 importer pod 的状态:
oc get pods
$ oc get pods
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令监控数据卷,直到其状态为
Succeeded
:oc describe dv fedora-dv
$ oc describe dv fedora-dv
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 指定您在
VirtualMachine
清单中定义的数据卷名称。
通过访问其串行控制台来验证置备是否已完成,并且虚拟机是否已启动:
virtctl console vm-fedora-datavolume
$ virtctl console vm-fedora-datavolume
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
8.16.3. 使用数据卷将虚拟机镜像导入到块存储中 复制链接链接已复制到粘贴板!
您可将现有虚拟机镜像导入到您的 OpenShift Container Platform 集群中。OpenShift Virtualization 使用数据卷自动导入数据并创建底层持久性卷声明(PVC)。
当您将磁盘镜像导入到 PVC 中时,磁盘镜像扩展为使用 PVC 中请求的全部存储容量。要使用该空间,可能需要扩展虚拟机中的磁盘分区和文件系统。
调整大小的流程因虚拟机上安装的操作系统而异。详情请查看操作系统文档。
8.16.3.1. 先决条件 复制链接链接已复制到粘贴板!
- 如果您根据 CDI 支持的操作列表要求涂销空间,您必须首先定义一个 StorageClass 或准备 CDI 涂销空间才能成功完成此操作。
8.16.3.2. 关于数据卷 复制链接链接已复制到粘贴板!
DataVolume
对象是 Containerized Data Importer (CDI) 项目提供的自定义资源。DataVolume 编配与底层持久性卷声明(PVC)关联的导入、克隆和上传操作。数据卷与 OpenShift Virtualization 集成,它们可在 PVC 准备好前阻止虚拟机启动。
8.16.3.3. 关于块持久性卷 复制链接链接已复制到粘贴板!
块持久性卷(PV)是一个受原始块设备支持的 PV。这些卷没有文件系统,可以通过降低开销来为虚拟机提供性能优势。
原始块卷可以通过在 PV 和持久性卷声明(PVC)规格中指定 volumeMode: Block
来置备。
8.16.3.4. 创建本地块持久性卷 复制链接链接已复制到粘贴板!
通过填充文件并将其挂载为循环设备,在节点上创建本地块持久性卷(PV)。然后,您可以在 PV 清单中将该循环设备作为 Block(块)
卷引用,并将其用作虚拟机镜像的块设备。
流程
-
以
root
身份登录节点,在其上创建本地 PV。本流程以node01
为例。 创建一个文件并用空字符填充,以便可将其用作块设备。以下示例创建
loop10
文件,大小为 2Gb(20,100 Mb 块):dd if=/dev/zero of=<loop10> bs=100M count=20
$ dd if=/dev/zero of=<loop10> bs=100M count=20
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
loop10
文件挂载为 loop 设备。losetup </dev/loop10>d3 <loop10>
$ losetup </dev/loop10>d3 <loop10>
1 2 Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建引用所挂载 loop 设备的
PersistentVolume
清单。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建块 PV。
oc create -f <local-block-pv10.yaml>
# oc create -f <local-block-pv10.yaml>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 上一步中创建的持久性卷的文件名。
8.16.3.5. 使用数据卷将虚拟机镜像导入到块存储中 复制链接链接已复制到粘贴板!
您可以使用数据卷将虚拟机镜像导入到块存储中。在创建虚拟机前,您要在 VirtualMachine
清单中引用数据卷。
先决条件
-
RAW、ISO 或 QCOW2 格式的虚拟机磁盘镜像,可选择使用
xz
或gz
进行压缩。 - 托管镜像的 HTTP 或 HTTPS 端点,以及访问数据源所需的任何身份验证凭证。
流程
如果您的数据源需要身份验证,请创建一个
Secret
清单,指定数据源凭证,并将其保存为endpoint-secret.yaml
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 应用
Secret
清单:oc apply -f endpoint-secret.yaml
$ oc apply -f endpoint-secret.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建
DataVolume
清单,为虚拟机镜像指定数据源,并为storage.volumeMode
指定Block
。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建数据卷来导入虚拟机镜像:
oc create -f import-pv-datavolume.yaml
$ oc create -f import-pv-datavolume.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
在创建虚拟机前,您可以在 VirtualMachine
清单中引用此数据卷。
8.16.3.6. CDI 支持的操作列表 复制链接链接已复制到粘贴板!
此列表针对端点显示内容类型支持的 CDI 操作,以及哪些操作需要涂销空间(scratch space)。
内容类型 | HTTP | HTTPS | HTTP 基本身份验证 | Registry | 上传 |
---|---|---|---|---|---|
KubeVirt (QCOW2) |
✓ QCOW2 |
✓ QCOW2** |
✓ QCOW2 |
✓ QCOW2* |
✓ QCOW2* |
KubeVirt (RAW) |
✓ RAW |
✓ RAW |
✓ RAW |
✓ RAW* |
✓ RAW* |
✓ 支持的操作
□ 不支持的操作
* 需要涂销空间
** 如果需要自定义证书颁发机构,则需要涂销空间
CDI 现在使用 OpenShift Container Platform 集群范围的代理配置。