理解虚拟机的存储

OVIRT 管理系统主要支持三种类型的存储:NFS、ISCSI 和 FCP。

在每种存储类型中,都有一个作为存储池管理者(Storage Pool
Manager,SPM)的主机管理主机和存储之间的访问。只有 SPM
主机拥有对存储池的完全访问权限;其能够修改存储域和存储池的元数据。其它所有主机只能够访问虚拟机磁盘数据。

在采用了 NFS、local 和 POSIX 兼容文件系统存储类型的数据中心中,SPM
默认使用精简置备的磁盘格式创建虚拟磁盘,这些磁盘作为文件系统中的文件存在。

在 iSCSI 和其它基于块设备存储类型的数据中心中,SPM 使用存储提供的 LUN
创建一个 LVM
的卷组,然后在该卷组里创建逻辑卷作为虚拟机磁盘。默认情况下基于块设备存储的虚拟磁盘是预分配模式的。

如果虚拟机磁盘是预分配的, 以 GB
为单位的指定大小的逻辑卷将被创建作为该虚拟机磁盘。您可以使用
kpartxvgscanvgchangemount
等工具来将该虚拟机磁盘挂载到一台 Linux
主机上以查看该虚拟机的状态或者调试问题。

如果虚拟机磁盘是精简置备格式,那么开始的时候系统只会创建 1 GB
大小的逻辑卷。在此之后运行该虚拟机的主机会不断监视该逻辑卷的变化。一旦该逻辑卷的使用达到一个阈值,该主机将通知
SPM,而 SPM 将会扩展该逻辑卷使其大小增加 1
GB。然后该主机负责在逻辑卷扩展之后恢复该虚拟机。如果虚拟机在此过程中变为暂停状态,说明
SPM 无法及时扩展该磁盘。这有可能是因为 SPM
当前的运行状态过于繁忙,或者没有足够的存储空间来进行扩展。

预分配(RAW)格式的虚拟机磁盘的写入速度会明显比精简置备(Qcow2)的快,但是创建虚拟磁盘的速度却要明显的比
Qcow2 的格式慢。精简置备的磁盘通常适用于非 IO 密集型的虚拟机中。

此外, OVIRT 管理系统支持虚拟磁盘在线调整大小。