Dans EVMS, il y a 7 types de gestionnaires de segments : DOS, GPT, S/390, Cluster, BSD, MAC, et BBR.
Le gestionnaire de segments le plus communément utilisé est le gestionnaire de segments DOS. Ce plug-in fournit la prise en charge pour le partitionnement de disque DOS traditionnel. Le gestionnaire de segments DOS reconnaît et prend en charge également les variations suivantes du plan de partitionnement DOS :
OS/2 : un disque OS/2 a des secteurs de méta-données supplémentaires, contenant les informations nécessaires pour reconstruire des segments de disque.
Partitions imbriquées : la prise en charge pour BSD, SolarisX86, et UnixWare se trouve parfois imbriquée dans des partitions DOS primaires. Le gestionnaire de segments DOS reconnaît et prend en charge ces parts comme segments de disque.
Le gestionnaire de segments GPT gère le nouveau plan de partitionnement GPT sur les machines IA-64. La spécification d'interface de microprogramme extensible [Extensible Firmware Interface Specification] d'Intel requiert que les microprogrammes puissent découvrir des partitions et produire des périphériques logiques correspondant aux partitions de disque. Le plan de partitionnement décrit dans la spécification s'appelle GPT à cause de l'utilisation très répandue du balisage d'identifiant unique global [Globally Unique Identifier (GUID)]. Le GUID est un identifiant d'une longueur de 128 bits, appelé également identifiant unique universel [Universally Unique Identifier (UUID)]. Ainsi qu'on le décrit dans le Wired For Management Baseline Specification d'Intel, le GUID est une combinaison de champ temporel et de champ spatial produisant un identifiant unique dans un espace entier d'UUID. L'utilisation de ces identifiants sur les disques partitionnés en GPT pour baliser des disques entiers ou des partitions individuelles est très répandue. Les disques partitionnés en GPT ont de nombreuses fonctions, comme par exemple :
garder une copie primaire et de sauvegarde des méta-données
remplacer l'imbrication de partition MSDOS en permettant plusieurs partitions
utiliser l'adressage en blocs logiques de 64 bits
baliser les partitions et disques avec des descripteurs GUID
Le gestionnaire de segments GPT s'adapte mieux à l'échelle des grands disques. Il fournit plus de redondance avec une fiabilité supplémentaire et utilise des noms uniques. Cependant, le gestionnaire de segments GPT n'est pas compatible avec DOS, OS/2, ou Windows®.
Le gestionnaire de segments S/390 est utilisé exclusivement sur des mainframes System/390. Le gestionnaire de segments S/390 a la capacité de reconnaître diverses configurations de disques que l'on trouve sur une machine S/390, et fournit la prise en charge de segments de disque pour cette architecture. Les deux configurations de disque les plus courantes sont Linux Disk Layout (LDL) et Common Disk Layout (CDL).
La principale différence entre LDL et CDL est qu'un disque LDL ne peut pas être subdivisé davantage. Un disque LDL produira un unique segment de disque de méta-données, et un unique segment de disque de données. Il n'y a pas d'espace libre sur un disque LDL, et on ne peut pas supprimer ou redimensionner un segment de données. Un disque CDL peut être subdivisé en de multiples segments de disque de données car il contient des méta-données que l'on ne trouve pas dans un disque LDL, en particulier les informations de la table des matières du volume [Volume Table of Contents (vtoc)].
Le gestionnaire de segments S/390 est le seul plug-in de gestion de segment capable de comprendre la configuration unique des disques S/390. Le gestionnaire de segments S/390 ne peut pas être ajouté ou retiré d'un disque.
Le gestionnaire de segments pour cluster [cluster segment manager (CSM)] prend en charge les clusters à haute disponibilité. Lorsque le CSM est ajouté à un stockage sur disque partagé, il écrit sur le disque des méta-données qui :
fournissent un identifiant de disque unique (GUID)
donnent un nom au conteneur EVMS au sein duquel le disque reposera
spécifient le noeud de cluster (nodeid) qui possède le disque
spécifient le cluster (clusterid)
Ces métadonnées permettent au CSM de construire des conteneurs pour la prise en charge de situations de basculement. Cela se fait en construisant un objet conteneur EVMS qui consomme tous les disques partagés découverts par le CSM et appartenant au même conteneur. Ces disques de stockage partagés sont consommés par le conteneur et un segment de données unique est produit par le conteneur pour chaque disque consommé. Un basculement des ressources EVMS s'accomplit en réassignant simplement le conteneur CSM au noeud de clusters en veille, et en faisant en sorte que le noeud relance son processus de découverte.
Ajouter des disques aux conteneurs CSM implique que seuls les objets de stockage sur disque soient acceptables par le CSM. Ceci est un aspect important du CSM. D'autres gestionnaires de segments peuvent être imbriqués dans des objets de stockage et utilisés pour les subdiviser davantage. Cependant, le CSM ne peut ajouter aucun autre type d'objet de stockage à un conteneur de CSM car le conteneur est censé être un groupe de disques, et le groupe de disques en entier est réassigné lors d'un basculement. Le CSM n'accepte donc des disques que lors de la construction de conteneurs. Il est important de s'en souvenir lorsqu'on ajoute le CSM à un disque. Si on choisit Add et que le CSM n'apparaît pas dans la liste de sélection des plug-ins alors qu'on sait qu'on a un disque, il faut regarder dans la liste de volumes et voir si le disque s'y trouve en tant que volume de compatibilité. Si on supprime simplement le volume, le disque deviendra un objet disponible et le CSM apparaîtra alors dans la liste des plug-ins car il a maintenant un disque disponible qui peut être ajouté à un conteneur.
BSD fait référence au système d'exploitation UNIX® Berkeley Software Distribution. Le gestionnaire de segments BSD d'EVMS est responsable de la reconnaissance et de la production d'objets de stockage de segment EVMS permettant de mapper des partitions BSD. Un disque BSD peut avoir une table de tranches dans le tout premier secteur du disque par souci de compatibilité avec d'autres systèmes d'exploitation. Par exemple, une table de tranches DOS peut se trouver dans le secteur MBR habituel. Le disque BSD se trouverait alors dans une tranche de disque localisée à l'aide d'une table de tranches de compatibilité. Cependant, BSD n'a pas besoin de la table de tranches et peut dédier entièrement le disque à lui-même en plaçant l'étiquette de disque dans le tout premier secteur. On appelle ça un "disque entièrement dédié" car BSD utilise le disque entier et ne fournit pas une table de tranches de compatibilité. Le gestionnaire de segments BSD reconnaît de tels "disques entièrement dédiés" et fournit des mappages pour les partitions BSD.
Les disques partitionnés par Apple utilisent une étiquette de disque qui est reconnue par le gestionnaire de segments MAC. Le gestionnaire de segments MAC reconnaît l'étiquette de disque au cours de la découverte et crée des segments EVMS pour mapper les partitions de disque MacOS.
Le gestionnaire de segments de remplacement de blocs défectueux [bad block replacement (BBR)] améliore la fiabilité d'un disque en remappant les blocs de stockage défectueux. Lorsque le BBR est ajouté à un disque, il écrit sur celui-ci des méta-données qui :
réservent des blocs de remplacement
mappent des blocs défectueux à des blocs réservés
Les blocs défectueux se rencontrent lorsqu'une erreur d'entrée/sortie [input/output (I/O)] est détectée lors d'une opération d'écriture. Lorsque cela arrive, l'I/O échoue normalement et le code d'échec est renvoyé au code du programme appelant. Le BBR détecte les opérations d'écriture qui ont échoué et remappe l'I/O à un bloc réservé du disque. Après cela, BBR redémarre l'I/O en utilisant le bloc réservé.
Chaque bloc de stockage a une adresse, appelée adresse de bloc logique [logical block address], ou LBA. Lorsque le BBR est ajouté à un disque, il fournit deux fonction critiques : le remappage et la récupération. Lorsqu'une opération d'I/O est envoyée à un disque, le BBR inspecte le LBA dans la commande I/O pour voir si le LBA a été remappé à un bloc réservé en raison d'une erreur d'I/O. Si le BBR trouve un mappage entre le LBA et un bloc réservé, il met à jour la commande I/O avec le LBA du bloc réservé avant de l'envoyer au disque. Une récupération a lieu lorsque le BBR détecte une erreur d'I/O et remappe le bloc défectueux à un bloc réservé. Le nouveau mappage LBA est enregistré dans les métadonnées BBR de façon à ce que la prochaine I/O vers le LBA puisse être remappée.