comment reduire la taille de n importe quel volume logique

Creation: 6 mai 2014
Mise à jour:
Version: 1.0
Author: Jean-Louis Bicquelet-Salaün
Location: http://jlbicquelet.free.fr
Copyright: (c) 2014 Jean-Louis BICQUELET-SALAÜN

comment réduire un lv de dump

probleme

Il arrive qu'on ait besoin de place sur le rotovg et que l'on ait déjà réduit drastiquement tous les filesystems à la limite du raisonnable. Il ne reste plus qu'à taper dans l'espace de dump. malheureusement, ce n'est pas un filesystem mai un volume logique et l'utilisation de lreducevg est caché au fond d'une armoire chez les premiers utilisateurs d'IBM. Il ne reste plus qu'à désactiver le dump détruire et reconstruire l'espace de dump ou à réduire le lv avec une commande non documentée lreducelv.

méthode

méthode sure

dans notre cas l'espace de dump s'appele lv_dump.
  1. Lister les espace de dump
    sysdumpdev -l
    primary              /dev/lv_dump
    secondary            /dev/sysdumpnull
    copy directory       /var/adm/ras
    forced copy flag     TRUE
    
  2. désactiver l'espace de dump
    sysdumpdev -p   /dev/sysdumpnull
    primary              /dev/sysdumpnull
    secondary            /dev/sysdumpnull
    copy directory       /var/adm/ras
    forced copy flag     TRUE
    always allow dump    TRUE
    dump compression     ON
    type of dump         traditional
    
    
  3. supprimer le volume groupe associé
    /usr/sbin/rmlv -f lv_dump
    
  4. recréer l'espace de dump
    /usr/sbin/mklv -y lv_dump -t sysdump rootvg 1
    
  5. éventuellement le retailler
    extendlv lv_dump
    
  6. remettre l'espace de dump et vérifier
    sysdumpdev -p /dev/lv_dump
    primary              /dev/lv_dump
    secondary            /dev/sysdumpnull
    copy directory       /var/adm/ras
    forced copy flag     TRUE
    rmlv: Logical volume lv_dump is removed.
    dump compression     ON
    type of dump         traditional
    

méthode plus rapide mais peut être moins sure

  1. récupérer le fichier map logique correspondant au lv
    lquerylv -L `getlvodm -l lv_dump` ` -r > mapfile
    
  2. editer mapfile en supprimant les volumes logiques que l'on veut garder et en laissant ceux qu'on veux supprimer
    00f61fa550642b20 7    1  => supprimer ceux-ci  si on désire le garder
    00f61fa550642b20 8    2  => supprimer
    00f61fa550642b20 9    3  => supprimer
    00f61fa550642b20 10   4  => supprimer
    00f61fa550642b20 11   5  => supprimer
    00f61fa550642b20 12   6  => supprimer
    00f61fa550642b20 13   7  => supprimer
    00f61fa550642b20 14   8  => supprimer
    00f61fa550642b20 15   9  => supprimer
    00f61fa550642b20 16   10
    00f61fa550642b20 17   11
    00f61fa550642b20 18   12
    00f61fa550642b20 19   13
    
    Le fichier devient
    00f61fa550642b20 16   10
    00f61fa550642b20 17   11
    00f61fa550642b20 18   12
    00f61fa550642b20 19   13
    
    On va réduire de 4 lps.
  3. utiliser la commande non documentée lreducelv
    /usr/sbin/lreducelv -l `getlvodm -l lv_dump` -s `wc -l mapfile` mapfile
    
    Le nombre après l'option -s correspond au nombre de lv à supprimer. C'est à dire au nombre de ligne du fichier mapfile. On aurait bien sur put mettre 4.
Cette procédure peut aussi pour réduire des volume logiques de n'importe quel type comme des raw device par exemple, ainsi que des jfs ou jfs2 mais il existe la commande par défaut chfs -a size=128M /fs, qui fonctionne très bien pourvu que la taille donnée soit un multiple de la taille du PP définissant le volume groupe.