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.2.22. 上传本地磁盘镜像至块存储 DataVolume
您可使用 virtctl
命令行实用程序上传本地磁盘镜像至块 DataVolume 中。
在此工作流中,您会创建一个本地块设备用作 PersistentVolume,将此块卷与 upload
DataVolume 关联,并使用 virtctl
将本地磁盘镜像上传至 DataVolume 中。
先决条件
- 如果根据 CDI 支持的操作列表规定需要涂销空间,您必须首先定义一个 StorageClass 或准备 CDI 涂销空间才能成功完成此操作。
2.22.1. 关于 DataVolume 复制链接链接已复制到粘贴板!
DataVolume
对象是 Containerized Data Importer (CDI) 项目提供的自定义资源。DataVolume 编配与底层 PersistentVolumeClaim (PVC) 关联的导入、克隆和上传操作。DataVolume 与 KubeVirt 集成,它们可在 PVC 准备好前阻止虚拟机启动。
2.22.2. 关于块 PersistentVolume 复制链接链接已复制到粘贴板!
块 PersistentVolume (PV) 是一个受原始块设备支持的 PV。这些卷没有文件系统。对于可以直接写入磁盘或者实现其自己的存储服务的虚拟机来说,使用它可以获得性能优势。
原始块卷可以通过在 PV 和 PersistentVolumeClaim (PVC) 规格中指定 volumeMode: Block
来置备。
2.22.3. 创建本地块 PersistentVolume 复制链接链接已复制到粘贴板!
通过填充文件并将其挂载为循环设备,在节点上创建本地块 PersistentVolume (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
- 上一步中创建的 PersistentVolume 的文件名。
2.22.4. 创建上传 DataVolume 复制链接链接已复制到粘贴板!
使用 upload
数据源创建 DataVolume,用于上传本地磁盘镜像。
2.22.5. 上传本地磁盘镜像至新 DataVolume 复制链接链接已复制到粘贴板!
您可使用 virtctl
CLI 实用程序将虚拟机磁盘镜像从客户端机器上传至集群中的 DataVolume (DV)。上传镜像后,您可将其添加到虚拟机中。
先决条件
-
具有 RAW、ISO 或 QCOW2 格式的虚拟机磁盘镜像,可选择使用
xz
或gz
进行压缩。 -
kubevirt-virtctl
软件包必须安装在客户端机器上。 - 客户端机器必须配置为信任 OpenShift Container Platform 路由器的证书。
- 具有一个大小不低于您要上传的磁盘的备用 DataVolume。
流程
确定以下各项:
- 要上传的虚拟机磁盘镜像的文件位置
- DataVolume 的名称
运行
virtctl image-upload
命令以上传您的磁盘镜像。您必须指定 DV 名称以及文件位置。例如:virtctl image-upload --dv-name=<upload-datavolume> --image-path=</images/fedora.qcow2>
$ virtctl image-upload --dv-name=<upload-datavolume> --image-path=</images/fedora.qcow2>
1 2 Copy to Clipboard Copied! Toggle word wrap Toggle overflow Important若要在使用 HTTPS 时允许不安全的服务器连接,请使用
--insecure
参数。注意,在使用--insecure
标志时,不会验证上传端点的真实性。要验证 DV 是否已创建,请查看所有 DV 对象:
oc get dvs
$ oc get dvs
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.22.6. CDI 支持的操作列表 复制链接链接已复制到粘贴板!
此列表针对端点显示内容类型支持的 CDI 操作,以及哪些操作需要涂销空间(scratch space)。
内容类型 | HTTP | HTTPS | HTTP 基本身份验证 | Registry | 上传 |
---|---|---|---|---|---|
KubeVirt(QCOW2) |
✓ QCOW2 |
✓ QCOW2** |
✓ QCOW2 |
✓ QCOW2* |
✓ QCOW2* |
KubeVirt (RAW) |
✓ RAW |
✓ RAW |
✓ RAW |
✓ RAW* |
✓ RAW* |
Archive+ | ✓ TAR | ✓ TAR | ✓ TAR | □ TAR | □ TAR |
✓ 支持的操作
□ 不支持的操作
* 需要涂销空间
** 如果需要自定义证书颁发机构,则需要涂销空间
+ 存档不支持块模式 DV