<!-- Chapitre 16. Extension et réduction des volumes -->
<chapter id="expandshrink"><title>Extension et réduction des volumes</title>
<para>Ce chapitre explique comment étendre et réduire des volumes EVMS avec l'interface graphique d'EVMS, Ncurses et CLI. Notez également que l'on peut étendre et réduire des volumes de compatibilité et des objets EVMS.</para>

<!-- 16.1. Pourquoi étendre et réduire les volumes ? -->
<sect1 id="whyexpandorshrink"><title>Pourquoi étendre et réduire les volumes ?</title>
  <para>L'extension et la réduction de volumes sont des opérations communes sur les volumes dans la plupart des systèmes. Par exemple, il peut être nécessaire de rétrécir un volume particulier pour créer de l'espace libre pour étendre un autre volume ou en créer un nouveau.</para>

  <para>EVMS simplifie le processus d'extension et de réduction des volumes, et protège l'intégrité de vos données en coordonnant les opérations d'extension et de réduction avec le système de fichiers du volume. Par exemple, lors de la réduction d'un volume, EVMS réduit en premier le système de fichiers sous-jacent correctement pour protéger les données. Lors de l'extension d'un volume, EVMS étend le système de fichiers automatiquement lorsque de l'espace devient disponible.</para>

  <para>Tous les types de modules d'interface de systèmes de fichiers (FSIM [File System Interface Module]) supportés par EVMS ne permettent pas  les opérations de réduction et d'extension, et certains n'effectuent les opérations que lorsque le système de fichiers est monté ("connecté [online]"). Le tableau suivant détaille les options de réduction et d'extension disponibles pour chaque type de FSIM.</para>

<table id="fsimcompatibility" frame="all"><title>La compatibilité des FSIM pour les opérations d'extension et de réduction</title>

  <tgroup cols="3">
    <colspec colnum="1" colwidth="1in"></colspec>
    <colspec colnum="2" colwidth="1in"></colspec>
    <colspec colnum="3" colwidth="1in"></colspec>
    
    <thead>
      <row>
        <entry>FSIM type</entry>
        <entry>Réductions</entry>
        <entry>Extensions</entry>
      </row>
    </thead>

    <tbody>
      <row>
        <entry>JFS</entry>
        <entry>Non</entry>
        <entry>Connecté seulement</entry>
      </row>
      
      <row>
        <entry>XFS</entry>
        <entry>Non</entry>
        <entry>Connecté seulement</entry>
      </row>
      
      <row>
        <entry>ReiserFS</entry>
        <entry>Déconnecté seulement</entry>
        <entry>Déconnecté et connecté</entry>
      </row>

      <row>
        <entry>Ext2/3</entry>
        <entry>Déconnecté seulement</entry>
        <entry>Déconnecté seulement</entry>
      </row>
      
      <row>
        <entry>SWAPFS</entry>
        <entry>Déconnecté seulement</entry>
        <entry>Déconnecté seulement</entry>
      </row>
      
      <row>
        <entry>OpenGFS</entry>
        <entry>Non</entry>
        <entry>Connecté seulement</entry>
      </row>
      
      <row>
        <entry>NTFS</entry>
        <entry>Déconnecté seulement</entry>
        <entry>Déconnecté seulement</entry>
      </row>
      
    </tbody>
  </tgroup>
</table>

<para>On peut réaliser toutes les opérations supportées de réduction et d'extension avec chacune des interfaces utilisateurs d'EVMS.</para>

</sect1>


<!-- 16.2. Exemple : réduire un volume -->
<sect1 id="shrink"><title>Exemple : réduire un volume.</title>
  
<para>Cette partie explique comment réduire de 500 Mo un volume de compatibilité.</para>

<blockquote>
  <example><title>Réduire un volume</title>
    <para>Réduire de 500 Mo un volume <filename>/dev/evms/lvm/Sample Container/Sample Region</filename>, qui est le volume de compatibilité créé dans le chapitre intitulé "Création de Volumes".</para>
  </example>
</blockquote>

<!-- 16.2.1. Utilisation de l'interface graphique d'EVMS -->
<sect2 id="shrinkgui"><title>Utilisation de l'interface graphique d'EVMS</title>
  <para>Pour réduire le volume avec l'interface graphique d'EVMS:</para>
  
  <orderedlist>
    <listitem>
      <para>Sélectionnez <menuchoice><guimenu>Actions</guimenu>
          <guimenuitem>Shrink</guimenuitem>
          <guimenuitem>Volume</guimenuitem></menuchoice>.</para>
    </listitem>
  
    <listitem>
      <para>Sélectionnez <filename>/dev/evms/lvm/Sample Container/Sample Region</filename> à partir de la liste des volumes.</para>
    </listitem>
    
    <listitem>
      <para>Cliquez sur <guibutton>Next</guibutton>.</para>
    </listitem>
    
    <listitem>
      <para>Sélectionnez <filename>/lvm/Sample Container/Sample Region</filename> à partir de la liste des volumes.</para>
    </listitem>
        
    <listitem>
      <para>Cliquez sur <guibutton>Next</guibutton>.</para>
    </listitem>
        
    <listitem>
      <para>Tapez "500MB" dans le champ "Shrink by Size".</para>
    </listitem>
    
    <listitem>
      <para>Cliquez sur <guibutton>Shrink</guibutton>.</para>
    </listitem>
  </orderedlist>
  
  <para>On peut également réaliser certaines des étapes pour réduire le volume avec le menu contextuel de l'interface graphique:</para>
  
  <orderedlist>
    <listitem>
      <para>A partir de l'onglet Volumes, faites un clic droit sur /<filename>/dev/evms/lvm/Sample Container/Sample Region</filename></para>
    </listitem>
    
    <listitem>
      <para>Cliquez sur <guibutton>Shrink...</guibutton>.</para>
    </listitem>
    
    <listitem>
      <para>Continuez l'opération en commençant à l'étape 3 des instructions pour l'interface graphique.</para>
    </listitem>
  </orderedlist>
</sect2>

<!-- 16.2.2. Utilisation de Ncurses -->
<sect2 id="shrinkncurses"><title>Utilisation de Ncurses</title>
  <para>Pour réduire un volume avec Ncurses:</para>
  
  <orderedlist>
    <listitem>
      <para>Sélectionnez <menuchoice><guimenu>Actions</guimenu>
          <guimenuitem>Shrink</guimenuitem>
          <guimenuitem>Volume</guimenuitem></menuchoice>.</para>
    </listitem>
    
    <listitem>
      <para>Sélectionnez <filename>/dev/evms/lvm/Sample Container/Sample Region</filename> à partir de la liste des volumes.</para>
    </listitem>
    
    <listitem>
      <para>Cliquez sur <guibutton>Next</guibutton>.</para>
    </listitem>
    
    <listitem>
      <para>Sélectionnez <filename>lvm/Sample Container/Sample Region</filename> à partir de la liste de sélection  des points de réduction.</para>
    </listitem>
    
    <listitem>
      <para>Cliquez sur <guibutton>Next</guibutton>.</para>
    </listitem>
    
    <listitem>
      <para>Faites défiler vers le bas en utilisant la flèche descendante jusqu'à ce que "Shrink by Size" soit surligné.</para>
    </listitem>
    
    <listitem>
      <para>Appuyez sur la <keycap>barre d'espace</keycap>.</para>
    </listitem>
    
    <listitem>
      <para>Appuyez sur la <keycap>Entrée</keycap>.</para>
    </listitem>
    
    <listitem>
      <para>A l'invite « :: » tapez 500MB.</para>
    </listitem>
    
    <listitem>
      <para>Appuyez sur la <keycap>Entrée</keycap>.</para>
    </listitem>
    
    <listitem>
      <para>Appuyez sur la <guibutton>Shrink</guibutton>.</para>
    </listitem>
  </orderedlist>
  
  <para>On peut également réaliser certaines des étapes pour réduire le volume avec le menu contextuel:</para>
  
  <orderedlist>
    <listitem>
      <para>A partir de l'onglet Volumes, faites <keycap>Entrée</keycap> sur <filename>/dev/evms/lvm/Sample Container/Sample Region</filename>.</para>
    </listitem>
    
    <listitem>
      <para>Appuyez sur le menu <guimenu>Shrink</guimenu>.</para>
    </listitem>
    
    <listitem>
      <para>Continuez l'opération en commençant à l'étape 3 des instructions de Ncurse..</para>
    </listitem>
  </orderedlist>
</sect2>


<!-- 16.2.3. Utilisation de CLI -->
<sect2 id="shrinkcli"><title>Utilisation de CLI</title>
  <para>La commande <command>shrink</command> prend un point de réduction suivi par un couple optionnel nom valeur ou un objet à réduire optionnel. Pour trouver un  point de réduction, utilisez la commande <command>query</command> avec le filtre des points de réduction sur l'objet ou le volume que vous désirez réduire. Par exemple:</para>
  
  <para><programlisting>query : shrink points, ":dev/evms/lvm /Sample Container/Sample Region"</programlisting></para>
  
  <para>Utilisez un filtre "list options" sur l'objet du point de réduction pour déterminer le couple nom-valeur à utiliser, comme suit:</para>
  
  <para><programlisting>query : objects, object="lvm /Sample Container/Sample Region", list options</programlisting></para>
  
  <para>Avec l'information de l'option qui est retournée, vous pouvez construire la commande, comme suit:</para>
  
  <para><programlisting>shrink : "lvm/Sample Container/Sample Region/", remove_size=500MB</programlisting></para>
</sect2>
</sect1>

<!--16.3 Exemple : Agrandir un volume.-->
<sect1 id="exampleexpand"><title>Exemple : Agrandir un volume</title>
<para>Cette section explique comment ajouter 500 Mo à un volume de compatibilité.</para>

<blockquote>
  <example><title>Agrandir un volume</title>
    <para>Agrandir de 500 Mo un volume <filename>/dev/evms/lvm/Sample Container/Sample Region</filename>, qui est le volume de compatibilité créé dans le chapitre intitulé "Création de Volumes".</para>
  </example>
</blockquote>

<!--16.3.1  Utilisation de l'interface graphique d'EVMS-->
<sect2 id="expandgui"><title>Utilisation de l'interface graphique d'EVMS</title>
<para>Pour agrandir le volume avec l'interface graphique d'EVMS :</para>
  
  <orderedlist>
    <listitem>
      <para>Sélectionnez <menuchoice><guimenu>Actions</guimenu>
          <guimenuitem>Expand</guimenuitem>
          <guimenuitem>Volume</guimenuitem></menuchoice>.</para>
    </listitem>
  
    <listitem>
      <para>Sélectionnez <filename>/dev/evms/lvm/Sample Container/Sample Region</filename> à partir de la liste des volumes.</para>
    </listitem>
    
    <listitem>
      <para>Cliquez sur <guibutton>Next</guibutton>.</para>
    </listitem>
    
    <listitem>
      <para>Sélectionnez <filename>/lvm/Sample Container/Sample Region</filename> à partir de la liste des volumes.</para>
    </listitem>
        
    <listitem>
      <para>Cliquez sur <guibutton>Next</guibutton>.</para>
    </listitem>
        
    <listitem>
      <para>Tapez "500MB" dans le champ "Additionnal Size".</para>
    </listitem>
    
    <listitem>
      <para>Cliquez sur <guibutton>Expand</guibutton>.</para>
    </listitem>
  </orderedlist>
  
  <para>On peut également réaliser certaines de ces étapes avec le menu contextuel de l'interface graphique :</para>
  
  <orderedlist>
    <listitem>
      <para>A partir de l'onglet Volumes, faites un clic droit sur /<filename>/dev/evms/lvm/Sample Container/Sample Region</filename></para>
    </listitem>
    
    <listitem>
      <para>Cliquez sur <guibutton>Expand</guibutton>.</para>
    </listitem>
    
    <listitem>
      <para>Continuez l'opération en commençant à l'étape 3 des instructions pour l'interface graphique.</para>
    </listitem>
  </orderedlist>
</sect2>

<!--16.3.2  Utilisation de l'interface graphique de Ncurses-->
<sect2 id="expandncurses"><title>Utilisation de l'interface graphique de Ncurses</title>
<para>Pour agrandir le volume avec l'interface graphique de Ncurses :</para>
  
  <orderedlist>
    <listitem>
      <para>Sélectionnez <menuchoice><guimenu>Actions</guimenu>
          <guimenuitem>Expand</guimenuitem>
          <guimenuitem>Volume</guimenuitem></menuchoice>.</para>
    </listitem>
  
    <listitem>
      <para>Sélectionnez <filename>/dev/evms/lvm/Sample Container/Sample Region</filename> à partir de la liste des volumes.</para>
    </listitem>
    
    <listitem>
      <para>Cliquez sur <guibutton>Next</guibutton>.</para>
    </listitem>
    
    <listitem>
      <para>Sélectionnez <filename>/lvm/Sample Container/Sample Region</filename> à partir de la liste des volumes.</para>
    </listitem>
        
    <listitem>
      <para>Cliquez sur <guibutton>Next</guibutton>.</para>
    </listitem>
        
    <listitem>
      <para>Appuyez sur la <keycap>Barre d'espace</keycap> dans le champ "Additional Size".</para>
    </listitem>
    
    <listitem>
      <para>Entrez 500Mo à l'invite "::"</para>
    </listitem>
    
    <listitem>
      <para>Faites <keycap>Entrée</keycap></para>
    </listitem>
    
    <listitem>
      <para>Activez <guibutton>Expand</guibutton>.</para>
    </listitem>
      
  </orderedlist>
  
  <para>On peut également réaliser certaines de ces étapes avec le menu contextuel :</para>
    
    <orderedlist>
    <listitem>
      <para>A partir de l'onglet Volumes, faites <keycap>Entrée</keycap> sur <filename>/dev/evms/lvm/Sample Container/Sample Region</filename>.</para>
    </listitem>
    
    <listitem>
      <para>Appuyez sur le menu <guimenu>Expand</guimenu>.</para>
    </listitem>
    
    <listitem>
      <para>Continuez l'opération en commençant à l'étape 3 des instructions de Ncurses.</para>
    </listitem>
  </orderedlist>
</sect2>

<!-- 16.3.3 : Utilisation de la ligne de commandes [CLI]-->
<sect2 id="expandcli"><title>Utilisation de la ligne de commande [CLI]</title>
  <para>La commande <command>expand</command> prend un point d'expansion suivi en option d'une paire nom/valeur et d'un objet pouvant être agrandi. Pour trouver le point d'extension, utilisez la commande <command>query</command> avec le filtre Expand Points sur l'objet ou le volume à étendre. Par exemple:</para>
  
  <para><programlisting>query : expand points, "dev/evms/lvm /Sample Container/Sample Region"</programlisting></para>
  
  <para>Pour trouver la paire nom/valeur, utilisez un filtre list options, comme suit :</para>
  
  <para><programlisting>query : objects, object="lvm /Sample Container/Sample Region", list options</programlisting></para>
  
  <para>L'espace disponible dans le conteneur est le nom du conteneur suivi de /Freespace. Avec les informations que l'on reçoit, il est possible de construire la commande suivante :</para>
  
  <para><programlisting>expand : "lvm/Sample Container/Sample Region/", add_size=500MB,"lvm/Sample Container/Freespace"</programlisting></para>
</sect2>
</sect1>
</chapter>