5. Définitions des couches de plug-in

EVMS définit une architecture en couches où les plug-ins de chaque couche créent des abstractions de la couche ou des couches en dessous. EVMS permet également à la plupart des plug-ins de créer des abstractions d'objets au sein de la même couche. Voici une liste de définitions de ces couches, du bas vers le haut.

Gestionnaires de périphériques

La première (plus basse) couche se compose de gestionnaires de périphériques. Ces plug-ins communiquent avec les pilotes de périphériques matériels pour créer les premiers objets EVMS. Actuellement, tous les périphériques sont gérés par un plug-in unique. Les versions futures d'EVMS pourraient avoir besoin de gestionnaires de périphériques supplémentaires pour la gestion de périphériques réseau (par exemple pour gérer des disques sur un réseau de zone de stockage [storage area network, SAN]).

Gestionnaires de segments

La seconde couche se compose de gestionnaires de segments. Ces plug-ins gèrent la segmentation ou le partitionnement des unités de disque. Les composants du moteur peuvent remplacer les programmes de partitionnement tels fdisk et Disk Druid, et EVMS utilise Device Mapper pour remplacer le code de partitionnement de disque intra noyau. Les gestionnaires de segment peuvent également être "empilés", c'est-à-dire qu'un gestionnaire de segment peut prendre en entrée la sortie d'un autre gestionnaire de segment.

EVMS fournit les gestionnaires de segments suivants : DOS, GPT, System/390® (S/390), Cluster, BSD, Mac, et BBR. D'autres plug-ins de gestionnaires de segments peuvent être ajoutés pour prendre en charge d'autres plans de partitionnement.

Gestionnaires de zone

La troisième couche se compose de gestionnaires de zone. C'est à ce niveau que se mettent les plug-ins qui assurent la compatibilité avec les structures de gestion de volume que l'on trouve sous Linux et d'autres systèmes d'exploitation. Les gestionnaires de zone sont prévus pour façonner les systèmes qui fournissent une abstraction logique au-dessus des disques ou partitions.

Comme les gestionnaires de segment, les gestionnaires de zone peuvent également être empilés. Par conséquent, le(s) objet(s) en entrée d'un gestionnaire de zone peuvent être des disques, des segments ou d'autres zones.

Il y a actuellement dans EVMS trois plug-ins pour la gestion de zones : Linux LVM, LVM2, et Multi-Disk (MD).

Fonctionnalités EVMS

La couche suivante se compose des fonctionnalités EVMS. C'est dans cette couche que sont implémentées les nouvelles fonctionnalités EVMS natives. Les fonctionnalités EVMS peuvent être construites sur n'importe quel objet dans le système, y compris les disques, segments, zones et autres objets de fonction. Toutes les fonctionnalités EVMS partagent un type de métadonnées commun à tous, ce qui rend la découverte d'objets de fonction bien plus efficace, et la récupération d'objets de fonction cassés bien plus sûre. Trois fonctionnalités sont actuellement disponibles dans EVMS : les liens de disque, la réallocation des blocs défectueux [Bad Block Relocation] et la prise d'instantanés.

Modules d'interface de système de fichiers

Les modules d'interface de système de fichiers [File System Interface Modules (FSIM)] fournissent la coordination avec les systèmes de fichiers pendant certaines opérations de gestion de volume. Par exemple, lors de l'agrandissement ou de la réduction d'un volume, le système de fichiers doit également être agrandi ou réduit à la taille appropriée. L'ordre est également important dans cet exemple ; un système de fichiers ne peut être agrandi avant le volume, et un volume ne peut être réduit avant le système de fichiers. Les FSIM permettent à EVMS d'assurer cette coordination et cet ordonnancement.

Les FSIM exécutent également des opérations de système de fichiers depuis l'une des interfaces utilisateur d'EVMS. Par exemple, un utilisateur peut créer de nouveaux systèmes de fichiers et vérifier les systèmes de fichiers existant en interagissant avec les FSIM.

Modules d'interface de gestionnaire de cluster

Les modules d'interface de gestionnaire de cluster [Cluster Manager Interface Modules], également connus sous le nom de EVMS Clustered Engine (ECE), sont interfacés avec le gestionnaire de cluster local installé sur le système. L'ECE fournit une API ECE standardisée pour le moteur, tout en cachant au moteur les détails du gestionnaire de clusters.