第 10 章 虚拟机磁盘

10.1. 虚拟机存储介绍

Red Hat Enterprise Virtualization 支持三种存储类型:NFS、iSCSI 和 FCP。
在每种存储类型中都有一个称为存储池管理器(Storage Pool Manager - SPM)的主机来管理主机和存储间的访问。
在默认的情况下,NFS、本地或 POSIX 兼容的数据中心中的 SPM 通过在文件系统上创建一个文件来创建自动精简配置(thin provisioning)格式的虚拟机磁盘。
在 iSCSI 和其它基于块的数据中心中,SPM 会在逻辑单元号(Logical Unit Number - LUN)上创建一个卷组,并使用这些卷组作为虚拟机磁盘。在默认的情况下,块存储上的虚拟磁盘是预分配(preallocated)格式的。
如果虚拟磁盘是预分配的(preallocated),一个特定大小(以 GB 为单位)的逻辑卷会被创建。它可以被挂载到 Red Hat Enterprise Linux 服务器上,使用 kpartxvgscanvgchangemount 来检查虚拟机的进程或可能出现的问题。
如果虚拟磁盘是自动精简配置的(think provisioned),一个 1 GB 的逻辑卷会被创建。这个逻辑卷会实时地被虚拟机所在的主机监测。当虚拟磁盘的可用空间达到它的阈值时,主机会通知 SPM,SPM 会为这个逻辑卷增加 1 GB 的容量。在逻辑卷的容量被扩展后,主机会继续运行虚拟机。如果虚拟机处于暂停的状态,这就意味着 SPM 没有为虚拟磁盘扩展空间。造成它的原因可能是 SPM 太繁忙而无法处理容量扩展;或者是系统中没有足够的存储空间来为虚拟磁盘进行扩展。
预分配(RAW)格式的虚拟磁盘的写操作速度比自动精简配置 (QCOW2) 格式的虚拟磁盘要快很多,而创建自动精简配置格式的虚拟磁盘比创建预分配格式的虚拟磁盘要快很多。自动精简格式的磁盘适用于不需要大量 IO 操作的虚拟机。而需要进行大量 I/O 写操作的虚拟机则推荐使用预分配格式。特别是如果虚拟机需要在每 4 秒中写超过 1 GB 的数据,则在可能的情况下尽量使用预分配格式磁盘。