<chapter id="intro"><title>Qu'est-ce que EVMS ?</title>

<para>EVMS apporte un nouveau modèle de gestion de volume à Linux&reg;. 

EVMS est un ensemble d'une grande cohésion qui intègre tous les aspects de la gestion de volume, tels que le partitionnement de disque, le gestionnaire de volume logique pour Linux (LVM [logical volume manager]) et la gestion multidisque (MD [multi-disk]), et les opérations sur les systèmes de fichiers, dans un unique paquet cohésif.

Avec EVMS, les diverses technologies de gestion de volume sont accessibles par le biais d'une seule interface, et de nouvelles technologies peuvent être ajoutées sous forme de plug-ins au fur et à mesure de leur développement.</para>

<sect1 id="cando"><title>Pourquoi choisir EVMS ?</title>
  <para>
EVMS permet de contrôler l'espace mémoire d'une manière plus intuitive et avec plus de souplesse que beaucoup d'autres systèmes de gestion de volume pour Linux.
Les tâches courantes, comme la migration de disques ou l'ajout de nouveaux disques à votre système Linux, deviennent plus facilement gérables avec EVMS parce qu'EVMS peut reconnaître et exploiter différents types de volumes et de systèmes de fichiers.
EVMS permet de mieux maîtriser la sécurité en interdisant les commandes qui sont peu sûres. Ces dispositifs aident à assurer l'intégrité des données stockées sur le système.
</para>

<para>
On peut se servir d' EVMS pour créer et gérer le stockage de données.
Avec EVMS, on peut utiliser de multiples technologies de gestion de volume dans une unique structure, avec la garantie que le système interagit tout de même correctement avec les données stockées.
Avec EVMS, on peut utiliser les liens de disque, réduire et augmenter les volumes, créer des instantanés des volumes, et installer des fonctionnalités RAID  pour le système.
On peut également utiliser plusieurs types de systèmes de fichier et manipuler ces unités de stockage de la manière qui répond le mieux aux exigences de votre environnement de travail particulier.
</para>

<para>EVMS donne également la possibilité de gérer des données sur une unité de stockage qui est physiquement partagée entre les noeuds dans un cluster. Ce stockage partagé permet aux données d'être très disponibles pour les différents noeuds du cluster.
</para>

</sect1>

<sect1 id="uis"><title>Les interfaces utilisateur d'EVMS</title>

<para>Il y a actuellement trois interfaces utilisateur disponibles pour EVMS : graphique (GUI), mode texte (Ncurses), et l'interpréteur de ligne de commande (CLI [Command Line Interpreter]).
De plus, on peut utiliser l'interface de programmation d'application (API) d'EVMS pour mettre en application sa propre interface utilisateur personnalisée.
</para>

<para><xref linkend="userinterf"></xref> en dit plus à propos de chacune des interfaces utilisateur d'EVMS.

</para>
<table id="userinterf" frame="all"><title>Les interfaces utilisateur d'EVMS</title>

<tgroup cols="4"><colspec colnum="1" colwidth="1in"></colspec><colspec colnum="2" colwidth="1.5in"></colspec><colspec colnum="3" colwidth="1in"></colspec><colspec colnum="4" colwidth="2.5in"></colspec>
<thead><row><entry>Interface utilisateur</entry>
<entry>Types d'utilisateur</entry>
<entry>Types d'utilisation</entry>
<entry>Fonction</entry></row></thead>

<tbody><row><entry>GUI</entry>
<entry>Tous</entry>
<entry>Toutes les utilisations exceptée l'automatisation</entry>
<entry>Permet de choisir parmi les options disponibles seulement, au lieu d'avoir à passer en revue toutes les options, y compris celles qui ne sont pas disponibles à ce niveau d'avancement du processus.</entry></row>

<row><entry>Ncurses</entry>
<entry>Les utilisateurs qui n'ont pas de bibliothèques GTK ou de systèmes X Window sur leurs machines</entry>
<entry>Toutes les utilisations exceptée l'automatisation</entry>
<entry>Permet de choisir parmi les options disponibles seulement, au lieu d'avoir à passer en revue toutes les options, y compris celles qui ne sont pas disponibles à ce niveau d'avancement du processus.</entry></row>

<row><entry>Ligne de commande</entry>
<entry>Expert</entry>
<entry>Toutes utilisations</entry>
<entry>Permet l'automatisation facile des tâches.</entry></row>
</tbody></tgroup>
</table>
</sect1>

<sect1 id="terminology">
<title>Terminologie EVMS</title>
  <para>Pour éviter toute confusion avec d'autres termes décrivant la gestion de volumes en général, EVMS utilise un ensemble de termes spécifiques. Voici la liste de ces termes, du plus fondamental au plus large :
  </para>

    <variablelist>

    <varlistentry><term>Disque logique</term>
    <listitem><para>Représentation de tout ce à quoi EVMS peut accéder en tant que disque physique. Dans EVMS, les disques physiques sont des disques logiques.</para></listitem>
    </varlistentry>

                <varlistentry><term>Secteur</term>
    <listitem><para>Le plus bas niveau de capacité d'adressage sur un périphérique en mode bloc. Cette définition correspond bien au sens standard tel qu'on le trouve dans d'autres systèmes de gestion.</para></listitem>
    </varlistentry>

    <varlistentry><term>Segment de disque</term>
    <listitem><para>Ensemble ordonné de secteurs physiquement contigus se trouvant sur le même objet de stockage. Pour un segment, l'analogie est faite généralement avec une partition de disque traditionnelle, comme pour DOS ou OS/2 &reg;.</para></listitem>
    </varlistentry>

    <varlistentry><term>Région de stockage</term>
    <listitem><para>Ensemble ordonné de secteurs logiquement contigus, et qui ne sont pas nécessairement physiquement contigus.</para></listitem>
    </varlistentry>

    <varlistentry><term>Objet de stockage</term>
    <listitem><para>Toute structure de mémoire persistante dans EVMS qui peut être utilisée pour construire des objets ou créer un volume. Le terme objet de stockage est un terme générique pour les disques, segments, régions et objets de fonctions. </para></listitem>
    </varlistentry>

    <varlistentry><term>Conteneur de stockage</term>
    <listitem><para>Regroupement d'objets de stockage. Un conteneur de stockage consomme un ensemble d'objets de stockage et produit de nouveaux objets de stockage. Il existe un sous-ensemble courant de conteneurs de stockage  : les groupes de volume, tels AIX&reg; ou LVM.</para>
    <para>Les conteneurs de stockage peuvent être soit de type privé [private], soit de type cluster.</para>
    </listitem>
    </varlistentry>

  <varlistentry><term>Conteneur de stockage en cluster</term>
  <listitem><para>Conteneurs de stockage spécialisés qui ne consomment que des objets de disque qui sont physiquement accessibles par tous les noeuds d'un cluster.</para>

  <variablelist>
  <varlistentry><term>Conteneur de stockage privé</term>
  <listitem><para>Regroupement de disques qui sont physiquement accessibles depuis tous les noeuds d'un cluster, géré comme un pool unique de stockage et qui appartient à un n¶ud unique du cluster qui peut y accéder à n'importe quel moment.</para>
  </listitem>
  </varlistentry>

  

  <varlistentry><term>Conteneur de stockage partagé</term>
  <listitem><para>Regroupement de disques physiquement accessibles depuis tous les noeuds d'un cluster, géré comme un pool unique de stockage et qui appartient à un n¶ud unique du cluster qui peut y accéder simultanément.</para>
  </listitem>
  </varlistentry>

  <varlistentry><term>Conteneur de stockage déporté</term>
  <listitem><para>Conteneur en cluster partagé qui n'appartient à aucun des noeuds du cluster.</para>
  </listitem>
  </varlistentry>
  </variablelist>

  </listitem></varlistentry>

    <varlistentry><term>Objet de fonction</term>
    <listitem><para>Objet de stockage contenant une fonction EVMS native.</para>
    <para>Une <glossterm>fonction EVMS native</glossterm> est une fonction de gestion de volume conçue et implémentée par EVMS. Ces fonctions ne sont pas prévues pour être rétrocompatibles avec d'autres technologies de gestion de volume.</para></listitem> 
    </varlistentry>

    <varlistentry><term>Volume logique</term>
    <listitem><para>Volume qui consomme un objet de stockage et exporte quelque chose de montable. Il y a deux catégories de volumes logiques : <glossterm>les volumes EVMS</glossterm> et <glossterm>les volumes de compatibilité</glossterm>.</para>
    
    <para>Les <glossterm>volumes EVMS</glossterm> contiennent des métadonnées  EVMS natives et prennent en charge toutes les fonctions EVMS. <filename>/dev/evms/mon_volume</filename> serait un exemple de volume EVMS.</para>
    <para>Les <glossterm>volumes de compatibilité</glossterm> ne contiennent aucune métadonnée EVMS native. Les volumes de compatibilité sont rétrocompatibles par rapport à leur propre structure, mais ne prennent pas en charge les fonctions EVMS. <filename>/dev/evms/md/md0</filename> serait un exemple de volume de compatibilité.</para></listitem>
    </varlistentry>
    </variablelist>
  </sect1>
  
  
  
<sect1><title>Qu'est-ce qui donne autant de souplesse à EVMS ?</title>

<para>Il y a de nombreux pilotes dans le noyau Linux, tels que Device Mapper et MD (RAID logiciel), implémentant des plans de gestion de volume. EVMS est construit par dessus ces pilotes pour fournir une unique structure permettant l'accès à ces capacités et leurs combinaisons.</para>

<para>Le moteur EVMS traite la création, la configuration et la gestion des volumes, segments et disques. Le moteur EVMS est une interface de programmation pour le système EVMS. Les interfaces utilisateur et les programmes qui utilisent EVMS doivent passer par le moteur.</para>

<para>EVMS donne des capacités aux modules de plug-in pour le moteur, permettant à EVMS d'accomplir des tâches spécialisées sans modifier le code noyau. Ces modules de plug-in permettent à EVMS d'être plus extensible et personnalisable que d'autres systèmes de gestion de volume.</para>
</sect1>
        
    <sect1 id="LAYERDEF">
    <title>Définitions des couches de plug-in</title>
    <para>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.</para>
      
    <variablelist termlength="15">
    <varlistentry><term>Gestionnaires de périphériques</term>
      <listitem><para>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]).</para></listitem>
    </varlistentry> 
    
    <varlistentry><term>Gestionnaires de segments</term>
      <listitem><para>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 <command>fdisk</command> et <application>Disk Druid</application>, 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.</para>

      <para>EVMS fournit les gestionnaires de segments suivants : DOS, GPT, System/390&reg; (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.</para></listitem>
    </varlistentry> 
    
    
    <varlistentry><term>Gestionnaires de zone</term>
      <listitem><para>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.</para>

      <para>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.</para>

      <para>Il y a actuellement dans EVMS trois plug-ins pour la gestion de zones : Linux LVM, LVM2, et Multi-Disk (MD).
    
      <variablelist><varlistentry><term>Linux LVM</term>
        <listitem><para>
        Le plug-in Linux LVM fournit la compatibilité avec Linux LVM et permet la création de groupes de volume (connus dans EVMS sous le nom de conteneurs [containers]) et de volumes logiques (connus dans EVMS sous le nom de zones [regions]).
        </para></listitem></varlistentry>

        <varlistentry><term>LVM2</term>
        <listitem><para>
        Le plug-in LVM2 fournit la compatibilité avec le nouveau format de volume introduit par les outils de LVM2 depuis Red Hat. Ce plug-in ressemble beaucoup au plug-in LVM en terme de fonctionnalités. La différence principale réside dans le nouveau format amélioré de métadonnées.
        </para></listitem></varlistentry>
      
        <varlistentry><term>MD</term>
        <listitem><para>
        Le plug-in Multi-Disk pour RAID fournit les niveaux RAID logiciels suivants : linéaire, 0, 1, 4 et 5. MD est un plug-in qui présente à l'affichage quatre gestionnaires de zone parmi lesquels vous pouvez choisir.
        </para></listitem></varlistentry>
      </variablelist></para></listitem>
    </varlistentry> 
    
    
    <varlistentry><term>Fonctionnalités EVMS</term>
      <listitem><para>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.</para>

<variablelist>
<varlistentry><term>Les liens de disque</term>
<listitem><para>Les liens de disque permettent de concaténer linéairement en un seul objet un nombre quelconque d'objets. Un volume utilisant le lien de disque peut être étendu en ajoutant un autre objet de stockage à la fin, ou réduit par suppression du dernier objet.</para></listitem></varlistentry>

<varlistentry><term>Réallocation des blocs défectueux</term>
<listitem><para>La réallocation des blocs défectueux (BBR) surveille son chemin d'entrée/sortie et détecte les erreurs d'écriture (celles-ci pouvant être causées par un disque endommagé). Lorsqu'un tel dysfonctionnement se produit, les données de cette requête sont stockées dans un nouvel emplacement.</para></listitem></varlistentry>

<varlistentry><term>La prise d'instantané</term>
<listitem><para>La fonctionnalité de prise d'instantané fournit un mécanisme pour créer une copie "figée" d'un volume à un moment donné bien précis, sans avoir à déconnecter ce volume. Ceci est utile pour réaliser des sauvegardes sur un système en cours de fonctionnement. Les instantanés marchent avec n'importe quel volume (EVMS ou compatible), et peut utiliser n'importe quel autre objet disponible comme emplacement de sauvegarde. Après la création d'un instantané et sa transformation en volume EVMS, les écritures sur le volume "original" font que le contenu original de cet emplacement est copié vers l'objet de stockage de l'instantané. Les lectures du volume instantané ont l'air de provenir de l'original tel qu'il était au moment de la création de l'instantané.
</para></listitem></varlistentry></variablelist>
      

      </listitem>
    </varlistentry>
    <varlistentry><term>Modules d'interface de système de fichiers</term>
      <listitem><para>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.</para>

      <para>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.
      </para></listitem>
    </varlistentry>

    <varlistentry><term>Modules d'interface de gestionnaire de cluster</term>
    <listitem><para>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.</para></listitem></varlistentry>
    </variablelist>
      </sect1>

</chapter>