Archivi Categorie: LVM

Liberare spazio da una partizione LVM (Shrink default install LVM)

Con questo post cercherò di indicare i passaggi per ridimensionare (precisamente per ridurre) una partizione LVM creata in default da una installazione di Fedora; al termine della procedura, a differenza di una riduzione dello spazio occupato da un volume logico LV, si avrà dello spazio libero non partizionato nel proprio hardisk da utilizzare a proprio piacimento.
Come sempre, consiglio prima di effettuare qualsiasi operazione di fare un backup dei propri dati o creare un’immagine delle partizioni di sistema; meglio ancora sarebbe testare la procedura su un sistema virtualizzato.

  • Avviare una versione live di Fedora
  • Prendiamo come esempio una situazione come riportato in seguito, descritta attraverso i comandi dell’ lvm tool
  • # vgscan
    Reading all physical volumes. This may take a while...
    Found volume group "VolGroup" using metadata type lvm2
    # lvscan
    inactive '/dev/VolGroup/lv_swap' [3.47 GiB] inherit
    inactive '/dev/VolGroup/lv_root' [6.03 GiB] inherit
    # pvscan
    PV /dev/sda2 VG VolGroup lvm2 [9.50 GiB / 0 free]
    Total: 1 [9.50 GiB] / in use: 1 [9.50 GiB] / in no VG: 0 [0 ]

  • Per liberare spazio dall’interno dell’LVM dobbiamo seguire degli step che consistono prima di tutto nella riduzione del filesystem di un volume logico (nel nostro caso lv_root) prima di ridimensionare il suo contenitore
  • Ho scelto di ridimensionare il filesystem da 6.03 GB a 4 GB.

    # lvm vgchange -a y
    # fsck -fC /dev/VolGroup/lv_root
    fsck from util-linux 2.20
    e2fsck 1.41.14 (22-Dec-2010)
    /dev/mapper/VolGroup-lv_root: recovering journal
    Pass 1: Checking inodes, blocks, and sizes
    Pass 2: Checking directory structure
    Pass 3: Checking directory connectivity
    Pass 4: Checking reference counts
    Pass 5: Checking group summary information
    /dev/mapper/VolGroup-lv_root: 18160/395920 files (0.2% non-contiguous), 178886/1581056 blocks
    # resize2fs -p /dev/VolGroup/lv_root 4G
    resize2fs 1.41.14 (22-Dec-2010)
    Resizing the filesystem on /dev/VolGroup/lv_root to 1048576 (4k) blocks.
    Begin pass 2 (max = 24887)
    Relocating blocks XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    Begin pass 3 (max = 49)
    Scanning inode table XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    Begin pass 4 (max = 2951)
    Updating inode references XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    The filesystem on /dev/VolGroup/lv_root is now 1048576 blocks long.
    # lvm lvresize /dev/VolGroup/LogVol00 --size 50G
    WARNING: Reducing active logical volume to 4.00 GiB
    THIS MAY DESTROY YOUR DATA (filesystem etc.)
    Do you really want to reduce lv_root? [y/n]: y
    Reducing logical volume lv_root to 4.00 GiB
    Logical volume lv_root successfully resized

  • Teoricamente ci sarebbe già dello spazio da liberare riducendo il volume fisico LVM ma attualmente il pvresize ha dei problemi nel farlo come riportato nella manpage:

    RESTRICTIONS
    pvresize will refuse to shrink PhysicalVolume if it has allocated
    extents after where its new end would be. In the future, it should
    relocate these elsewhere in the volume group if there is sufficient
    free space, like pvmove does.

    pvresize won’t currently work correctly on LVM1 volumes or PVs with
    extra metadata areas.

    Per superare questo problema siamo costretti a rimuovere il volume logico che ospita la swap (nel nostro caso lv_swap) fisicamente allocata alla fine dell’PV (PhisycalVolume); successivamente ripristinarla subito dopo il nuovo volume logico ridimensionato (nel nostro caso lv_root) più vicino all’inizio del PV.
    Dal punto uno sappiamo che la swap è di 3.47 GB

    # lvm lvremove /dev/VolGroup/lv_swap
    Do you really want to remove active logical volume lv_swap? [y/n]: y
    Logical volume "lv_swap" successfully removed
    # lvm lvcreate --size 3.47G --name lv_swap VolGroup
    Rounding up size to full physical extent 3.50 GiB
    Logical volume "lv_swap" created
    # mkswap /dev/VolGroup/lv_swap
    mkswap: /dev/VolGroup/lv_swap: warning: don't erase bootbits sectors
    on whole disk. Use -f to force.
    Setting up swapspace version 1, size = 3670012 KiB
    no label, UUID=e98393b2-fcab-476f-ad21-dc254cac1c5d

  • Continua alla pagina 2 —>

    About these ads

    Ridurre la partizione LVM di Fedora (LVM shrink)

    Prima vorrei avvertire che l’argomento è piuttosto ostico per i giovani utenti Fedora, perciò consiglio vivamente di fare le prime prove su un LVM di prova o comunque di fare un backup dei propri dati se si dovesse operare sul proprio pc.
    Ovviamente non sono responsabile se qualcuno dovesse avere gravi conseguenze con i comandi elencati “male interpretati”.

    Nonostante si possa operare con il sistema avviato, consiglierei di seguire la procedura usando una versione live di Fedora.

    1- Informazioni sull’LVM. Con i seguenti comandi avremo informazioni sulla partizione; ne riporto un esempio.

    # pvdisplay
    --- Physical volume ---
    PV Name               /dev/sda3
    VG Name               vg_host420
    PV Size               39.04 GiB / not usable 2.00 MiB
    Allocatable           yes (but full)
    PE Size               4.00 MiB
    Total PE              9994
    Free PE               0
    Allocated PE          9994
    PV UUID               L9AyDs-m51z-Ur0Q-mJ5T-lorL-iD5J-xgkp5Z

    # vgdisplay
    --- Volume group ---
    VG Name               vg_host420
    System ID
    Format                lvm2
    Metadata Areas        1
    Metadata Sequence No  3
    VG Access             read/write
    VG Status             resizable
    MAX LV                0
    Cur LV                2
    Open LV               2
    Max PV                0
    Cur PV                1
    Act PV                1
    VG Size               39.04 GiB
    PE Size               4.00 MiB
    Total PE              9994
    Alloc PE / Size       9994 / 39.04 GiB
    Free  PE / Size       0 / 0
    VG UUID               yH2H3q-Cpq7-2Iif-LCMC-z8Xw-jd8L-11hAq1

    # lvdisplay
    --- Logical volume ---
    LV Name                /dev/vg_host420/lv_root
    VG Name                vg_host420
    LV UUID                X9fT0x-OoPo-3Rtf-tRsT-hztI-QxYD-j2t3sI
    LV Write Access        read/write
    LV Status              available
    # open                 1
    LV Size                34.12 GiB
    Current LE             8734
    Segments               1
    Allocation             inherit
    Read ahead sectors     auto
    - currently set to     256
    Block device           253:0

    --- Logical volume ---
    LV Name                /dev/vg_host420/lv_swap
    VG Name                vg_host420
    LV UUID                E4DZZB-W2oC-PryI-vjMH-NSli-lROW-NYi577
    LV Write Access        read/write
    LV Status              available
    # open                 1
    LV Size                4.92 GiB
    Current LE             1260
    Segments               1
    Allocation             inherit
    Read ahead sectors     auto
    - currently set to     256
    Block device           253:1

    Nell’ultimo comando si legge che il volume di swap  /dev/vg_host420/lv_swap, segue il volume root che vogliamo restringere, dobbiamo eliminarlo temporaneamente; quindi annotiamo la dimensione (4,92G) e:
    # lvm lvremove  /dev/vg_host420/lv_swap

    2- Il volume logico root  /dev/vg_host420/lv_root contiene il filesystem che NON DEVE ESSERE TRONCATO, quindi ridimensioneremo prima; ammettiamo che il nuovo volume debba essere di 25 G:

    # e2fsck -f /dev/vg_host420/lv_root
    # resize2fs -p /dev/vg_host420/lv_root 20G

    3- Ridimensionamento volume logico; DEVE essere superiore alla dimensione del filesystem (20 GB), poichè lo conterrà:
    # lvm lvreduce -L 25G /dev/vg_host420/lv_root

    4- Riespansione del filesystem precedentemente ridimensionato:
    # resize2fs /dev/vg_host420/lv_root

    5- Ricreazione del volume di swap
    # lvm lvcreate --size 4,92G --name lv_swap vg_host420
    # mkswap /dev/vg_host420/lv_swap

    6- Riavvio del sistema

    A questo punto avremo nuovo spazio libero all’interno del gruppo di volumi, da destinare ad un nuovo volume logico o ad un nuovo volume fisico.

    Se avete domande scrivete pure nei commenti.

    LVM – Logical Volume Management

    Questo post è una piccola descrizione, più in là scriverò delle guide su come operare con i volumi logici.

    Nelle installazioni in default di Fedora, le partizioni di sistema vengono create e gestite come volumi logici (LV) contenute in un gruppo di volumi (VG); questo modo di organizzare le partizioni rientra nell’ LVM (Logical Volume Management).

    A differenza del classico partizionamento di un disco fisico, l’ LVM permette una migliore governabilità delle partizioni (come volumi logici) permettendo il ridimensionamento, la distribuzione  e lo spostamento di spazio fisico su uno o più hardisk, con molta facilità. Di seguito riporto due differenti visualizzazioni della stessa partizione logica, la prima con il partition manager Gparted (che non supporta LVM), la seconda con il gestore dei volumi di Fedora (Sistema–>Amministrazione–>GestioneVolumiLogici):

    Logical Volume Manager:

    Nell’immagine in basso, il manager mostra la partizione di sistema che abbiamo destinato a Fedora [/dev(sda2)]; la prima immagine delle tre affiancate, mostra la stessa partizione come gruppo di volumi logici (visualizzazione logica) chiamata VolGroup00.
    L’immagine al centro mostra la partizione root di sistema come volume logico contenuto nel gruppo VolGroup00; il volume è chiamato LogVol00 (dev/VolGroup00/LogVol00).
    L’immagine a destra mostra la partizione swap di sistema come volume logico LogVol01 (/dev/VolGroup/LogVol01).
    La partizione /boot NON fa parte dell’LVM, infatti è visibile con Gparted come /dev/sda1.

    Iscriviti

    Ricevi al tuo indirizzo email tutti i nuovi post del sito.

    Unisciti agli altri 35 follower

    %d bloggers like this: