标签: qcow2

令人难以置信的低 KVM 磁盘性能(qcow2 磁盘文件 + virtio)

我在设置 KVM 来宾时遇到了一些严重的磁盘性能问题。使用简单的dd测试,qcow2 映像所在的主机分区(镜像 RAID 阵列)的写入速度超过120MB/s,而我的来宾写入速度从0.5 到 3MB/s不等。

  • 来宾配置了几个 CPU 和 4G 内存,目前没有运行其他任何东西;目前这是一个完全最小的安装。
  • 性能测试使用time dd if=/dev/zero of=/tmp/test oflag=direct bs=64k count=16000.
  • 来宾配置为使用 virtio,但这似乎对性能没有影响。
  • 主机分区是 4kb 对齐的(无论如何,主机上的性能很好)。
  • 在磁盘上使用写回缓存会大大提高报告的性能,但我不想使用它;即使没有它,性能也应该比这好得多。
  • 主机和来宾都运行 Ubuntu 12.04 LTS,它带有 qemu-kvm 1.0+noroms-0ubuntu13 和 libvirt 0.9.8-2ubuntu17.1。
  • 主机启用了截止时间 IO 调度程序,来宾具有 noop。

似乎有很多指南可以调整 kvm 性能,我最终会到达那里,但似乎此时我应该获得比这更好的性能,所以似乎有些事情已经非常错误了。

更新 1

突然,当我现在回去测试时,它是26.6 MB/s;这更像是我对 qcrow2 的期望。如果有人对可能是什么问题有任何想法(并且以防它再次神秘地返回),我会留下这个问题。

更新 2

我不再担心 qcow2 的性能,只是使用原始图像切换到 RAID1 上的 LVM,仍然使用 virtio,但在磁盘驱动器上设置 cache='none' 和 io='native'。写入性能现在是 appx。135MB/s使用与上述相同的基本测试,所以当它可以很容易地完全解决时,弄清楚问题是什么似乎没有多大意义。

performance qcow2 kvm-virtualization

32
推荐指数
6
解决办法
8万
查看次数

释放 kvm/qemu 上 qcow2-image-file 上未使用的空间

我们正在为我们的虚拟机使用 kvm/qemu 和 qcow2-images。

qcow2 有一个很好的特性,镜像文件只分配虚拟机实际需要的空间。但是,如果虚拟机的分配空间变小,我如何缩小映像文件?

例子:

1.) 我创建了一个 qcow2 格式的新图像,大小为 100GB

2.) 我使用这个镜像来安装 ubuntu。安装需要大约 10 GB,图像文件增长到大约 10 GB。到目前为止没有什么意外。

3.) 我用大约 40 GB 的附加数据填充了图像。图像文件增长到 50GB。我没问题:-)

4.) 这就是奇怪的地方:我删除了图像上的所有 40GB 数据,但图像大小仍然占用了 50GB。

问题:如何释放 40GB 的数据并将图像缩小到仅需要的 10GB?

提前致谢,伯尼

disk-image qemu qcow2 kvm-virtualization

31
推荐指数
4
解决办法
4万
查看次数

哪个是更好的图像格式,raw 或 qcow2,用作其他 VM 的基本图像?

我正在使用 baseimage 并基于它创建了许多 VM。现在我想知道哪个更好,qcow2 或 raw 用于基础图像。此外,你能告诉我使用这个 baseimage 的东西,而不是克隆整个磁盘是否有任何优势。速度可能是一个因素,但就效率而言,使用基础映像然后使用该基础映像创建 VM 有什么问题吗?

编辑1:

我进行了一些实验并得到了 在此处输入图片说明在此处输入图片说明在此处输入图片说明

第一个是当 baseimage 和 overlay 都是 qcow2 时。第二,当 baseimage 是原始的但覆盖是 qcow2 时,在第三种情况下,我为每个 VM 提供单独的原始磁盘映像。令人惊讶的是,与其他两种情况相比,最后一种情况要高效得多。

实验装置: 
基础映像中的操作系统:Ubuntu Server 14.04 64 位。
主机操作系统:Ubuntu 12.04 64 位
内存:8GB
处理器 : Intel® Core™ i5-4440 CPU @ 3.10GHz × 4 
磁盘:500 GB 

在 x 轴上:同时启动的 VM 数量。从 1 开始递增到 15。

在 y 轴上:启动“x”台机器的总时间。

从图中可以看出,向 VM 提供完整磁盘映像似乎比其他 2 种方法更有效。

编辑2: 在此处输入图片说明

这适用于我们为每个 VM 提供单独的原始图像的情况。执行缓存刷新后,这是图表。它几乎类似于原始 baseimage + qcow 覆盖。

谢谢。

disk-image qemu qcow2 kvm-virtualization

29
推荐指数
2
解决办法
10万
查看次数

有没有办法缩小 qcow2 图像而不将其转换为原始图像?

有没有办法缩小 qcow2 图像而不将其转换为原始图像?

我无法将其转换为原始图像,因为我没有足够的磁盘空间来存储原始图像。

hard-drive convert qemu qcow2 kvm-virtualization

21
推荐指数
5
解决办法
5万
查看次数

如何在 Linux 服务器上创建一个小而方便的 qcow2 文件?

我相信有 qcow2 文件会在服务器上替换少量 GB(在物理服务器上使用 df -h 进行验证),但在您登录到 virt-manager VM 并发出 df 时允许大量空间 - H。你如何创建这样的文件?如果/何时虚拟机增长到其最大大小并可能填满物理服务器,物理服务器如何知道不会出现问题?

truncate 命令不会创建小的 qcow2 文件。Virtual Machine Manager 的 GUI 允许通过 GUI 创建“硬件”。这两种创建 .qcow2 文件的方法都会创建最大大小的文件。

virtualization linux compression qcow2 sparse-files

10
推荐指数
1
解决办法
5万
查看次数

挂载 qcow2 快照

我正在运行一些 Xen 服务器并开始迁移到 KVM。

目前我的客人要么在原始图像上运行,要么在 LVM 上运行。

我发现 libvirt 提供了一些非常好的快照功能(virsh 快照创建,...),所以我决定使用 qcow2 而不是 raw/lvm。

这是我的问题:libvirt 在 qcow2 映像上创建相同类型的快照,就好像我使用 qemu-img - 是否可以安装它们?我读了一些关于 qemu-nbd 和安装 qcow 的可能性,但我找不到关于快照的词。

linux qcow2 kvm-virtualization

9
推荐指数
2
解决办法
4115
查看次数

如何为 libvirt/kvm 修复损坏的调整大小的 qcow2 磁盘映像?

今天我想增加一个虚拟机的大小,所以我做了我一直在做的事情(以前做过):

qemu-img resize diskimage.qcow2 +22GB
Run Code Online (Sandbox Code Playgroud)

然后文件损坏了,VM 不再启动。我尝试从 CD 启动 VM 以调整分区,但系统将不再读取磁盘:

qemu-img check -r all diskimage.qcow2
tcmalloc: large alloc 389841715200 bytes == (nil) @  0x7fdb4ea66bf3 0x7fdb4ea88488 0x7fdb4e5674a6 0x7fdb50236a37 0x7fdb50236bc8 0x7fdb50237011 0x7fdb5023941e 0x7fdb5023d891 0x7fdb5027848b 0x7fdb5027c196 0x7fdb491efb35 0x7fdb5021ee4d (nil)
No errors were found on the image.
Run Code Online (Sandbox Code Playgroud)

没有错误?听起来不错,但virsh start vm不起作用,日志说:

2017-05-21T10:02:30.755824Z qemu-system-x86_64: -drive file=/.../diskimage.qcow2,format=qcow2,if=none,id=drive-virtio-disk0: could not open disk image /.../diskimage.qcow2: qcow2: Image is corrupt; cannot be opened read/write
Run Code Online (Sandbox Code Playgroud)

我尝试转换为 raw 但转换失败(退出 1):

qemu-img convert -f qcow2 diskimage.qcow2 -O raw diskimage.raw
qcow2: …
Run Code Online (Sandbox Code Playgroud)

corruption libvirt qemu qcow2 kvm-virtualization

8
推荐指数
1
解决办法
2万
查看次数

我需要在压缩之前对 qcow2 图像进行零填充吗?

我想重新创建一个动态分配的 qcow2 图像以缩小它。删除所有不必要的文件就足够了,还是我还需要用零填充以前由这些文件占用的空间?换句话说,是 qemu-img 文件系统感知吗?

qcow2

6
推荐指数
1
解决办法
2943
查看次数

使用 qcow2 磁盘文件时备份 KVM 来宾

我有一个用于使用 KVM 进行虚拟化的 Ubuntu(hardy)系统。每个来宾都有自己的 qcow2 文件用作磁盘。来宾正在运行 Ubuntu (hardy)。对于这样的设置,好的备份策略是什么?我不想在备份期间关闭来宾。

virtualization ubuntu backup qcow2 kvm-virtualization

5
推荐指数
1
解决办法
6885
查看次数

有什么方法可以将 qcow2 转换为 ovf?

在我们的应用程序中,我们正在下载 qcow2 图像,然后我们应该将其导入为 OVF。

所以任何方式来转换qcow2 --> OVFqcow2 --> vmdk(using qemu-img convert) --> ovf.

qemu qcow2 vmware-vsphere ovf

5
推荐指数
1
解决办法
2万
查看次数