EVMS 中有七种类型的分段管理器:DOS、GPT、S/390、Cluster、BSD、MAC 和 BBR。
最常用的分段管理器是 DOS 分段管理器。此插件提供对传统 DOS 磁盘分区的支持。DOS 分段管理器还识别并支持以下 DOS 分区方案的变体
OS/2:OS/2 磁盘具有额外的元数据扇区,其中包含重建磁盘分段所需的信息。
嵌入式分区:对 BSD、SolarisX86 和 UnixWare 的支持有时会嵌入在主 DOS 分区中。DOS 分段管理器识别并支持这些切片作为磁盘分段。
GUID 分区表 (GPT) 分段管理器处理 IA-64 机器上的新 GPT 分区方案。Intel 可扩展固件接口规范 要求固件能够发现分区并生成与磁盘分区对应的逻辑设备。规范中描述的分区方案称为 GPT,因为广泛使用了全局唯一标识符 (GUID) 标记。GUID 是一个 128 位长的标识符,也称为通用唯一标识符 (UUID)。正如 Intel 有线管理基线规范 中所述,GUID 是时间和空间字段的组合,它生成一个在整个 UUID 空间中唯一的标识符。这些标识符广泛用于 GPT 分区磁盘上,用于标记整个磁盘和各个分区。GPT 分区磁盘具有多种功能,例如
保留元数据的主副本和备份副本
通过允许多个分区来替换 msdos 分区嵌套
使用 64 位逻辑块寻址
使用 GUID 描述符标记分区和磁盘
GPT 分段管理器可以更好地扩展到大型磁盘。它通过增加的可靠性提供更多的冗余,并使用唯一的名称。但是,GPT 分段管理器与 DOS、OS/2 或 Windows� 不兼容。
S/390 分段管理器专门用于 System/390 大型机。S/390 分段管理器能够识别 S/390 机器上的各种磁盘布局,并为此架构提供磁盘分段支持。两种最常见的磁盘布局是 Linux 磁盘布局 (LDL) 和通用磁盘布局 (CDL)。
LDL 和 CDL 之间的主要区别在于 LDL 磁盘不能进一步细分。LDL 磁盘将生成单个元数据磁盘分段和单个数据磁盘分段。LDL 磁盘上没有可用空间,您无法删除或调整数据分段的大小。CDL 磁盘可以细分为多个数据磁盘分段,因为它包含 LDL 磁盘中缺少的元数据,特别是卷目录 (vtoc) 信息。
S/390 分段管理器是唯一能够理解独特的 S/390 磁盘布局的分段管理器插件。S/390 分段管理器无法添加到磁盘或从磁盘中删除。
集群分段管理器 (CSM) 支持高可用性集群。当将 CSM 添加到共享存储磁盘时,它会在磁盘上写入元数据,这些元数据
提供唯一的磁盘 ID (guid)
命名磁盘将驻留的 EVMS 容器
指定拥有磁盘的集群节点 (nodeid)
指定集群 (clusterid)
此元数据允许 CSM 构建容器以支持故障转移情况。它通过构造一个 EVMS 容器对象来实现这一点,该对象消耗 CSM 发现的并属于同一容器的所有共享磁盘。这些共享存储磁盘由容器消耗,并且容器为每个消耗的磁盘生成单个数据分段。EVMS 资源的故障转移是通过简单地将 CSM 容器重新分配给备用集群节点并让该节点重新运行其发现过程来完成的。
将磁盘添加到 CSM 容器意味着只有磁盘存储对象才能被 CSM 接受。这是 CSM 的一个重要方面。其他分段管理器可以嵌入在存储对象中,并用于进一步细分它们。但是,CSM 不能向 CSM 容器添加任何其他类型的存储对象,因为该容器旨在成为一个磁盘组,并且在故障转移期间会重新分配整个磁盘组。因此,CSM 在构造容器时只接受磁盘。在向磁盘添加 CSM 时,记住这一点很重要。如果您选择添加,并且当您知道您有一个磁盘时,CSM 没有出现在可选择的插件列表中,您应该查看卷列表,看看该磁盘是否已经被列为兼容性卷。如果您只是删除该卷,则该磁盘将成为可用对象,并且 CSM 将会出现在插件列表中,因为它现在有一个可用于添加到容器的可用磁盘。
BSD 指的是伯克利软件发布 UNIX� 操作系统。EVMS BSD 分段管理器负责识别和生成映射 BSD 分区的 EVMS 分段存储对象。为了与其他操作系统兼容,BSD 磁盘可能在磁盘的第一个扇区中有一个切片表。例如,DOS 切片表可能位于通常的 MBR 扇区中。然后,BSD 磁盘将在使用兼容性切片表定位的磁盘切片中找到。但是,BSD 不需要切片表,可以通过将磁盘标签放在第一个扇区中来完全将磁盘专用于自身。这被称为“完全专用磁盘”,因为 BSD 使用整个磁盘,并且不提供兼容性切片表。BSD 分段管理器识别这种“完全专用磁盘”,并为 BSD 分区提供映射。
坏块替换 (BBR) 分段管理器通过重新映射坏存储块来增强磁盘的可靠性。当将 BBR 添加到磁盘时,它会在磁盘上写入元数据,这些元数据
保留替换块
将坏块映射到保留块
当写入操作检测到 I/O 错误时,会发生坏块。发生这种情况时,I/O 通常会失败,并将失败代码返回给调用程序代码。BBR 检测到失败的写入操作,并将 I/O 重新映射到磁盘上的保留块。之后,BBR 使用保留块重新启动 I/O。
每个存储块都有一个地址,称为逻辑块地址或 LBA。当将 BBR 添加到磁盘时,它提供两个关键功能:重新映射和恢复。当 I/O 操作发送到磁盘时,BBR 会检查 I/O 命令中的 LBA,以查看 LBA 是否由于较早的 I/O 错误而被重新映射到保留块。如果 BBR 找到 LBA 和保留块之间的映射,它会在将 I/O 命令发送到磁盘之前,使用保留块的 LBA 更新 I/O 命令。当 BBR 检测到 I/O 错误并将坏块重新映射到保留块时,就会发生恢复。新的 LBA 映射保存在 BBR 元数据中,以便可以将后续对 LBA 的 I/O 进行重新映射。