2.8. SPM (Storage Pool Manager)

Red Hat Virtualization 使用元数据来描述存储域的内部结构。结构元数据会被写到每个存储域的一个数据段中,它被用来记录镜像和快照的创建和删除操作,以及卷和域的扩展操作。所有主机会使用“一人写,多人读”的机制来处理存储域元数据。
可以对数据域的结构进行改变的主机为称为 SPM(Storage Pool Manager),它会协调数据中心中的所有存储域元数据的改变(如创建和删除磁盘镜像、创建和迁移快照、在存储域间复制镜像、创建模板和为块设备分配存储)。每个数据中心只能有一个主机作为 SPM,其它的主机只能读存储域的结构元数据。
一个主机可以被手动指定为 SPM,也可以被 Red Hat Virtualization Manager 自动指定。当 Manager 指定一个主机作为 SPM 时,它会试图使主机获得一个名为存储为中心的租約(storage-centric lease),这个租約将允许 SPM 主机写存储元数据。“存储为中心”意味着它会直接写存储域,而不需要 Manager 或主机对它进行控制。存储为中心的租約会被写到主存储域中的名为 leases 的一个特殊逻辑卷上,而关于存储域结构的元数据会被写到名为 metadata 的一个特殊逻辑卷上。修改 metadata 逻辑卷的操作会受到 leases 逻辑卷的保护。
Manager 使用 VDSM 向主机发一个 spmStart 命令,主机上的 VDSM 在接到命令后会试图使主机获得“存储为中心的租約”。如果主机成功获得这个租約,它将成为 SPM。在 Red Hat Virtualization Manager 指定另外一台主机作为 SPM 前,这个主机会一直保持这个租約。
当以下情况发生时,Manager 会指定另外一个主机作为 SPM:
  • SPM 主机不能访问所有存储域,但可以访问主存储域。
  • SPM 主机无法对“存储为中心的租約”进行续约(因为存储连接断开,或 lease 卷没有可用空间连进行写操作)。
  • SPM 主机出现故障。
The storage pool manager reads and writes structural metadata, other hosts read structural metadata.

图 2.1. 只有 SPM 可以写结构元数据。