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

A-B*_*A-B 29 disk-image qemu qcow2 kvm-virtualization

我正在使用 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 覆盖。

谢谢。

sho*_*hok 20

对于您的特定用例(基本图像 + qcow2 叠加),应首选 RAW 格式:

  1. 它更快:因为它没有关联的元数据,所以它尽可能快。另一方面,Qcow2 有两层间接访问,必须在命中实际数据之前交叉
  2. 由于叠加层必须是 Qcow2 文件,因此您不会失去一直有用的快照功能(RAW 图像本身不支持快照)

基本图像 + qcow2 覆盖与多个完整副本之间的选择取决于您的优先级:

  1. 为获得绝对性能,请使用错位的 RAW 图像。这有不支持快照的缺点,在大多数环境中付出的代价太高了
  2. 为了灵活性和空间效率,请使用 RAW 基础图像 + Qcow2 叠加。

无论如何,我发现 Qcow2 文件有些脆弱。

对于我的生产 KVM 管理程序,我基本上使用两种不同的设置:

  1. 性能排名第一的地方我使用直接连接到虚拟机的 LVM 卷,并使用 LVM 快照功能进行一致的备份
  2. 我可以牺牲一些性能来增强灵活性,我使用单个大 LVM 精简配置卷 + XFS + RAW 图像

另一种可能是使用普通的 LVM 卷 + XFS + RAW 图像。唯一的缺点是普通(非精简)LVM 快照非常慢,并且对繁忙的普通 LVM 卷进行快照会降低性能(在快照的生命周期内)。无论如何,如果您打算只偶尔使用快照,这可能是更简单、更安全的选择。

一些参考资料:
RHEL 6
KVM 存储性能上的 KVM I/O 缓慢和 RHEL 6.1 上的 Qcow2 预分配
以及 Red Hat Enterprise Linux 6.2 LVM 瘦卷上的Fedora 16 KVM 存储性能和缓存设置
解释


d h*_*hee 7

请注意....如果您使用的是 linux,您可以使用raw并获得与qcow2大小相同的好处。

...如果您的文件系统支持空洞(例如 Linux 上的 ext2 或 ext3 或 Windows 上的 NTFS),则只有写入的扇区才会保留空间。

https://docs.fedoraproject.org/en-US/Fedora/18/html/Virtualization_Administration_Guide/sect-Virtualization-Tips_and_tricks-Using_qemu_img.html

raw 原始磁盘映像格式(默认)。这可能是最快的基于文件的格式。如果您的文件系统支持空洞(例如 Linux 上的 ext2 或 ext3 或 Windows 上的 NTFS),则只有写入的扇区将保留空间。使用 qemu-img info 获取映像使用的实际大小或 ls -ls 在 Unix/Linux 上。