SlideShare a Scribd company logo
1 of 25
www.lugroma3.org




                      LVM
      Logical Volume Manager



Alessandro Manfredi
LVM - Agenda
•   A che serve ?
•   Come funziona ?
•   Quale versione ?
•   Lo voglio, dove devo firmare ?
•   Forte! Ora ho un nuovo attrezzo ...
                            ... come si usa ?
LVM : Features overview
          “Logical Volume Manager ”
• Permette di gestire gli apparati di storage ad un livello
  di astrazione più alto rispetto alla classica visione di
  dischi e partizioni.
• Consente ampia flessibilità nell'allocazione dello
  spazio disponibile ad applicazioni ed utenti.
• Permette di ridefinire le dimensioni dei volumi creati e
  di spostarne la persistenza attraverso i dispositivi di
  storage gestiti.
• Consente la gestione dei volumi in gruppi definiti
  dall'utente.
Vantaggi concreti
Su piccoli sistemi :
• Possibilità di ridimensionare le partizioni dedicate agli
  applicativi o ai dati a seconda delle necessità.
• Possibilità di aggiungere o rimuovere apparati di storage
  senza necessità di modifiche al sistema.


Su sistemi enterprise :
• Amministrazione e mantenimento semplificati
• Associazione gruppi_utenti – gruppi_volumi
• Continuità dei servizi
• Snapshots
Anatomia
Anatomia - 2




LVM Esegue il mapping tra LE e PE
• Linear Mapping
• Striped Mapping : distribuisce frammenti di LE sequenzialmente
  nei vari PV, al fine di aumentare le performance del LV. *
Snapshots
Uno snapshot è un'istantanea di un LV ottenuta
memorizzando i cambiamenti del LV rispetto allo
snapshot e viceversa.

Gli snapshot possono essere montati ( e in LVM2
modificati ) come normali LV.

La dimensione degli snapshot dipende dai
cambiamenti al LV o allo snapshot stesso nel suo
tempo di vita : per tempi relativamente brevi è molto
inferiore alla dimensione del LV originale.
Snapshots - 2
                            Vantaggi
• Ottenere un backup consistente e di dimensioni ridotte, senza
necessità di interruzione dei servizi.
• Possibilità di testare software che modifica il filesystem per poi
ripristinare il volume originale, senza bisogno di allocare uno
spazio equivalente al volume.


                          Accortezze
• Applicabile solo a LV, non a partizioni classiche.
• Lo snapshot richiede uno spazio allocato proporzionale al suo
tempo di vita ( al più di dimensioni uguali al LV ).
Quale versione ?
                             LVM2
• Retrocompatibile ( a meno degli snapshot LVM1 )
• Usa il device mapper kernel driver incluso nei kernel 2.6.x


                      ( ma esiste una patch per i kernel 2.4.x )
• Snapshot read / write



                             LVM1
• Usa il device mapper dei kernel 2.4.x
• Snapshot read-only


• Considerato un progetto maturo
Setting up – Device Mapper
• Device mapper come modulo o incluso nel kernel
        > per LVM2 e kernel >= 2.6.9 dovrebbe essere presente
                ( check /proc/misc, /proc/devices, /sys/class/misc )
          se compilato come modulo #modprobe dm_mod
                          ( more at http://sources.redhat.com/dm/ )
        > per LVM1 e kernel 2.6.x occorre una patch del kernel
        > per LVM1 e kernel 2.4.x assicurarsi di avere l'ultima
          patch per il kernel per LVM1 e di compilare il supporto
          Multi-device support (RAID and LVM) > LVM
!!! L'uso di Snapshot di LV con fs ReiserFS richiede la patch
linux-2.4.x-VFS-lock presente in LVM/1.0.8/PATCHES
Setting up – LVM1 Boot time script
Debian - /etc/init.d/lvm
     #!/bin/sh
     case "$1" in
      start)
               /sbin/vgscan
               /sbin/vgchange -ay ;;
      stop)
               /sbin/vgchange -an ;;
      restart|force-reload) ;;
     esac
     exit 0
Setting up – LVM1 Boot time script
Red hat
L'rpm installa lo script di avvio.
Tuttavia se LVM viene compilato come modulo si dovrà
aggiungere
modprobe lvm-mod
in /etc/rc.d/rc.sysinit prima dell'attivazione dei LV
Setting up – LVM2 Boot time script
mkinitrd delle distro moderne dovrebbe essere
 configurato per far attivare tutti i LV all'avvio.

   Se così non dovesse essere aggiungere
                manualmente
    dmsetup mknodes
    vgscan --ignorelockingfailure
    vgchange -ay –ignorelockingfailure
Setting up – LVM Tools & Libs
• Utilizzare il packet manager della distro per
  installare LVM Tools e LVM Libraries
... oppure
• Scaricare i sorgenti
     tar -xzvf lvm-tools-and-libraries.tar.gz
     ./configure --help
     ./configure
     make
     make install
     make remove
LVM – Common tasks overview
• # pvcreate /dev/devname
      crea un PV descriptor all'inizio di devname
• # vgcreate [-s ES] vg_name /dev/deva1 /dev/devb1
      crea un VG ed associa i dev come PV
• # vgchange -ay vg_name
      attiva il VG e tutti i suoi LV
• # vgchange -an vg_name
      disattiva il VG e tutti i suoi LV
• # vgremove vg_name
      rimuove il VG
LVM – Common tasks overview - 2
• # vgextend vg_name /dev/devc1
      estende il VG aggiungendo il PV
      ( NB: il PV deve essere inizializzato!)
• # pvdisplay /dev/deva1
      visualizza informazioni sul PV
• # vgdisplay /dev/deva1
      visualizza informazioni sul PV
• # vgreduce vg_name /dev/deva1
      riduce il VG rimuovendo il PV
LVM – Common tasks overview - 3
• # lvcreate -L1500 -n lv_name vg_name
       crea un LV di 1500MB “lv_name” nel VG vg_name
• # lvcreate -i2 -I4 -l100 -n lv_name vg_name
       crea un LV di 100 LE con 2 stripe di grandezza 4kb
• # lvcreate -l $( vgdisplay vg_name | grep "Total PE"
    | awk '{print $2}') vg_name -n lv_name
       crea un LV della dimensione del VG
• # lvcreate -n lv_name vg_name /dev/devb1
       crea un LV mappando le LE nelle PE del devb1
LVM – Common tasks overview - 4
• # lvremove /dev/vg_name/lv_name
       rimuove il LV ( NB: Deve essere smontato! )
• # lvextend -L40G /dev/vg_name/lv_name
       estende il LV alla dimensione specificata
• # lvextend -L+4G /dev/vg_name/lv_name
       estende il LV della dimensione specificata.
       E' necessario estendere il fs dopo l'estensione del LV
      ext2/ext3    # resize2fs /dev/vg_name/lv_name              (*)
      reiserfs     # resize_reiserfs -f /dev/vg_name/lv_name
      xfs          # xfs_growfs /mpoint
      jfs          # mount -o remount,resize=<fs_blocksize> /mpoint
LVM – Common tasks overview - 5
• # lvreduce -L-4G /dev/vg_name/lv_name
       riduce il LV della dimensione specificata.
       E' necessario ridurre il fs prima della riduzione del LV
      ext2/ext3    # resize2fs /dev/vg_name/lv_name <vbsize>       (*)
      reiserfs     # resize_reiserfs -s -4G /dev/vg_name/lv_name
      xfs          no-way to reduce xfs fs
      jfs          no-way to reduce jfs fs
• # lvcreate -L512M -s -n snap_name /dev/vg/lv_name
       crea uno snapshot del LV assegnandogli 512 Mb del VG
       Se la persistenza delle differenze tra lo snapshot ed il LV
       supera lo spazio allocato, lo snapshot viene disabilitato.
Cose a cui prestare attenzione
La partizione di avvio contenete l'immagine del kernel non può
                       essere su un LV !

  Un filesystem root su un LV richiede un initrd che attivi i LV
            altrimenti il fs non può essere montato !
                ( see lvmcreate_initrd for LVM1 )
    Creare un PV su un intero disco non partizionato è
 sconsigliato in quanto altri sistemi rilevano il disco come non
                              utilizzato !
Ma se proprio ci tenete almeno prima distruggete la tabella delle partizioni:
# dd if=/dev/zero of=/dev/diskname bs=1k count=1
# blockdev --rereadpt /dev/diskname
Cose a cui prestare attenzione - 2
  Sistemi running LVM1 con devfs richiedono di specificare il
                  percorso completo dei dev
 # vgcreate vg_name /dev/ide/host0/bus0/target0/lun0/part1 ...

E' sconsigliato creare PVs su più partizioni dello stesso disco: in
      caso di striped mapping le prestazioni diminuiscono
                         notevolmente !
   LVM1 su partizioni DOS richiede che il tipo di partizione sia
               impostato a 0x8e ( fdisk o simili ... )

Prima di rimuovere un PV da un VG occorre spostare tutte le PE
             che il PV ospita sugli alri Pvs del VG !
LVM – Common tasks overview - 6
• # pvmove /dev/devname
      distribuisce tutte le PE allocate sul device, sugli altri PV
      dello stesso VG sec'è abastanza spazio.
      Se non c'è abbastanza spazio ...
      # pvcreate /dev/otherdisk
      # vgextend vg_name /dev/otherdisk
      # pvmove /dev/devname /dev/otherdisk                      (*)
      # vgreduce vg_name /dev/devname


• # vgsplit vg_name another_vg /dev/sdb2
      combina vgreduce e vgcreate
An useful tool : vgexport / vgimport
                       Scenario : sostituzione di una macchina server
[admin@old_machine] # unmount /mnt/design/users
[admin@old_machine] # vgchange -an design
                      vgchange -- volume group "design" successfully deactivated
[admin@old_machine] # vgexport design
                      vgexport -- volume group "design" successfully exported
[admin@new_machine] # pvscan
                       pvscan -- reading all physical volumes (this may take a while...)
                       pvscan -- inactive PV "/dev/sdb1" is in EXPORTED VG "design" [996 MB / 996 MB free]
                       pvscan -- inactive PV "/dev/sdb2" is in EXPORTED VG "design" [996 MB / 244 MB free]
                       pvscan -- total: 2 [1.95 GB] / in use: 2 [1.95 GB] / in no VG: 0 [0]
[admin@new_machine] # vgimport design
                       Volume group "vg" successfully imported
[admin@new_machine] # vgchange -ay design
[admin@new_machine] # mkdir -p /mnt/design/users
[admin@new_machine] # mount /dev/design/users /mnt/design/users
Domande ?
?(e risposte)
Online References
LVM Howto @ Linux.org
               http://www.linux.org/docs/ldp/howto/LVM-HOWTO/
Logic Volume Managemente – Wikipedia
       http://en.wikipedia.org/wiki/Logical_volume_management
Logic Volume Manager ( Linux ) - Wikipedia
           http://en.wikipedia.org/wiki/Logical_Volume_Manager
Red Hat LVM1 / LVM2 Resource Page
                                    http://sources.redhat.com/lvm/
                                   http://sources.redhat.com/lvm2/
Red Hat Device Mapper resource Page
                                     http://sources.redhat.com/dm/

More Related Content

What's hot

Il dual boot scolastico perfetto (2012)
Il dual boot scolastico perfetto (2012)Il dual boot scolastico perfetto (2012)
Il dual boot scolastico perfetto (2012)Marcello Missiroli
 
October 2009 - JBoss Cloud
October 2009 - JBoss CloudOctober 2009 - JBoss Cloud
October 2009 - JBoss CloudJBug Italy
 
Jvm performance Tuning
Jvm performance TuningJvm performance Tuning
Jvm performance TuningMarco Sabatini
 
Sistemi Operativi: Struttura avanzata - Lezione 05
Sistemi Operativi: Struttura avanzata - Lezione 05Sistemi Operativi: Struttura avanzata - Lezione 05
Sistemi Operativi: Struttura avanzata - Lezione 05Majong DevJfu
 
VMUGIT UC 2013 - 09b VMUGIT SMB
VMUGIT UC 2013 - 09b VMUGIT SMB VMUGIT UC 2013 - 09b VMUGIT SMB
VMUGIT UC 2013 - 09b VMUGIT SMB VMUG IT
 
VMUGIT Roma 2016 - vROps Design - Pietro Piutti
VMUGIT Roma 2016 - vROps Design - Pietro PiuttiVMUGIT Roma 2016 - vROps Design - Pietro Piutti
VMUGIT Roma 2016 - vROps Design - Pietro PiuttiVMUG IT
 
Sistemi Operativi: Struttura - Lezione 04
Sistemi Operativi: Struttura - Lezione 04Sistemi Operativi: Struttura - Lezione 04
Sistemi Operativi: Struttura - Lezione 04Majong DevJfu
 
Sistemi Operativi: Componenti - Lezione 02
Sistemi Operativi: Componenti - Lezione 02Sistemi Operativi: Componenti - Lezione 02
Sistemi Operativi: Componenti - Lezione 02Majong DevJfu
 
100526 Sa 1.1 Platespin Forge Webinar (2)
100526 Sa 1.1 Platespin Forge Webinar (2)100526 Sa 1.1 Platespin Forge Webinar (2)
100526 Sa 1.1 Platespin Forge Webinar (2)antonio_tonani
 
La Virtualizzazione 2010
La Virtualizzazione 2010La Virtualizzazione 2010
La Virtualizzazione 2010Davide Grossato
 
VMware SRM - Una visione architetturale
VMware SRM - Una visione architetturaleVMware SRM - Una visione architetturale
VMware SRM - Una visione architetturaleVMUG IT
 
BeRTOS: Sistema Real Time Embedded Free
BeRTOS: Sistema Real Time Embedded FreeBeRTOS: Sistema Real Time Embedded Free
BeRTOS: Sistema Real Time Embedded FreeDeveler S.r.l.
 
Giochiamo ai COW-boy : zfs & btrfs
Giochiamo ai COW-boy : zfs & btrfsGiochiamo ai COW-boy : zfs & btrfs
Giochiamo ai COW-boy : zfs & btrfsalberto fiaschi
 
Moduli del kernel - Boot del sistema
 Moduli del kernel - Boot del sistema Moduli del kernel - Boot del sistema
Moduli del kernel - Boot del sistemaFulvio Corno
 

What's hot (20)

La Virtualizzazione
La VirtualizzazioneLa Virtualizzazione
La Virtualizzazione
 
Compilazione Kernel
Compilazione KernelCompilazione Kernel
Compilazione Kernel
 
Quickr In Real Life - casi di successo di QuickR
 Quickr In Real Life - casi di successo di QuickR Quickr In Real Life - casi di successo di QuickR
Quickr In Real Life - casi di successo di QuickR
 
Lotus Foundations Start - Enzo Stanzione
Lotus Foundations Start - Enzo StanzioneLotus Foundations Start - Enzo Stanzione
Lotus Foundations Start - Enzo Stanzione
 
Il dual boot scolastico perfetto (2012)
Il dual boot scolastico perfetto (2012)Il dual boot scolastico perfetto (2012)
Il dual boot scolastico perfetto (2012)
 
October 2009 - JBoss Cloud
October 2009 - JBoss CloudOctober 2009 - JBoss Cloud
October 2009 - JBoss Cloud
 
Jvm performance Tuning
Jvm performance TuningJvm performance Tuning
Jvm performance Tuning
 
Sistemi Operativi: Struttura avanzata - Lezione 05
Sistemi Operativi: Struttura avanzata - Lezione 05Sistemi Operativi: Struttura avanzata - Lezione 05
Sistemi Operativi: Struttura avanzata - Lezione 05
 
VMUGIT UC 2013 - 09b VMUGIT SMB
VMUGIT UC 2013 - 09b VMUGIT SMB VMUGIT UC 2013 - 09b VMUGIT SMB
VMUGIT UC 2013 - 09b VMUGIT SMB
 
VMUGIT Roma 2016 - vROps Design - Pietro Piutti
VMUGIT Roma 2016 - vROps Design - Pietro PiuttiVMUGIT Roma 2016 - vROps Design - Pietro Piutti
VMUGIT Roma 2016 - vROps Design - Pietro Piutti
 
Sistemi Operativi: Struttura - Lezione 04
Sistemi Operativi: Struttura - Lezione 04Sistemi Operativi: Struttura - Lezione 04
Sistemi Operativi: Struttura - Lezione 04
 
Sistemi Operativi: Componenti - Lezione 02
Sistemi Operativi: Componenti - Lezione 02Sistemi Operativi: Componenti - Lezione 02
Sistemi Operativi: Componenti - Lezione 02
 
100526 Sa 1.1 Platespin Forge Webinar (2)
100526 Sa 1.1 Platespin Forge Webinar (2)100526 Sa 1.1 Platespin Forge Webinar (2)
100526 Sa 1.1 Platespin Forge Webinar (2)
 
La Virtualizzazione 2010
La Virtualizzazione 2010La Virtualizzazione 2010
La Virtualizzazione 2010
 
GUIDA VMWARE
GUIDA VMWAREGUIDA VMWARE
GUIDA VMWARE
 
VMware SRM - Una visione architetturale
VMware SRM - Una visione architetturaleVMware SRM - Una visione architetturale
VMware SRM - Una visione architetturale
 
BeRTOS: Sistema Real Time Embedded Free
BeRTOS: Sistema Real Time Embedded FreeBeRTOS: Sistema Real Time Embedded Free
BeRTOS: Sistema Real Time Embedded Free
 
Giochiamo ai COW-boy : zfs & btrfs
Giochiamo ai COW-boy : zfs & btrfsGiochiamo ai COW-boy : zfs & btrfs
Giochiamo ai COW-boy : zfs & btrfs
 
Scheduling In Linux
Scheduling In LinuxScheduling In Linux
Scheduling In Linux
 
Moduli del kernel - Boot del sistema
 Moduli del kernel - Boot del sistema Moduli del kernel - Boot del sistema
Moduli del kernel - Boot del sistema
 

Viewers also liked

WhyMCA HappyHour - EUHackathon Part II
WhyMCA HappyHour - EUHackathon Part IIWhyMCA HappyHour - EUHackathon Part II
WhyMCA HappyHour - EUHackathon Part IIAlessandro Manfredi
 
Cradle-to-Cradle Design: creating healthy emissions — a strategy for eco-effe...
Cradle-to-Cradle Design: creating healthy emissions — a strategy for eco-effe...Cradle-to-Cradle Design: creating healthy emissions — a strategy for eco-effe...
Cradle-to-Cradle Design: creating healthy emissions — a strategy for eco-effe...Valter Wei
 
Hey Cloud, it’s the user calling, he says he wants the security back
Hey Cloud, it’s the user calling, he says he wants the security backHey Cloud, it’s the user calling, he says he wants the security back
Hey Cloud, it’s the user calling, he says he wants the security backAlessandro Manfredi
 
Cradle To Cradle
Cradle To CradleCradle To Cradle
Cradle To Cradlescorpio86
 
Webinar: There And Back Again: The Principles of Cradle to Cradle
Webinar: There And Back Again: The Principles of Cradle to CradleWebinar: There And Back Again: The Principles of Cradle to Cradle
Webinar: There And Back Again: The Principles of Cradle to CradleSustainable Performance Institute
 
UCLAx Cradle to Cradle: class 12
UCLAx Cradle to Cradle: class 12UCLAx Cradle to Cradle: class 12
UCLAx Cradle to Cradle: class 12Kevin ODonnell
 

Viewers also liked (9)

WhyMCA HappyHour - EUHackathon Part II
WhyMCA HappyHour - EUHackathon Part IIWhyMCA HappyHour - EUHackathon Part II
WhyMCA HappyHour - EUHackathon Part II
 
LUG - Ricompilazione kernel
LUG - Ricompilazione kernelLUG - Ricompilazione kernel
LUG - Ricompilazione kernel
 
Cradle-to-Cradle Design: creating healthy emissions — a strategy for eco-effe...
Cradle-to-Cradle Design: creating healthy emissions — a strategy for eco-effe...Cradle-to-Cradle Design: creating healthy emissions — a strategy for eco-effe...
Cradle-to-Cradle Design: creating healthy emissions — a strategy for eco-effe...
 
LUG - Install Fest 2008
LUG - Install Fest 2008LUG - Install Fest 2008
LUG - Install Fest 2008
 
Hey Cloud, it’s the user calling, he says he wants the security back
Hey Cloud, it’s the user calling, he says he wants the security backHey Cloud, it’s the user calling, he says he wants the security back
Hey Cloud, it’s the user calling, he says he wants the security back
 
Connect (4|n)
Connect (4|n)Connect (4|n)
Connect (4|n)
 
Cradle To Cradle
Cradle To CradleCradle To Cradle
Cradle To Cradle
 
Webinar: There And Back Again: The Principles of Cradle to Cradle
Webinar: There And Back Again: The Principles of Cradle to CradleWebinar: There And Back Again: The Principles of Cradle to Cradle
Webinar: There And Back Again: The Principles of Cradle to Cradle
 
UCLAx Cradle to Cradle: class 12
UCLAx Cradle to Cradle: class 12UCLAx Cradle to Cradle: class 12
UCLAx Cradle to Cradle: class 12
 

Similar to LUG - Logical volumes management

Linux Capabilities - ita - v2.1.5 - compatta
Linux Capabilities - ita - v2.1.5 - compattaLinux Capabilities - ita - v2.1.5 - compatta
Linux Capabilities - ita - v2.1.5 - compattaAlessandro Selli
 
Richiami su Linux - Webmin - Reti di calcolatori
Richiami su Linux - Webmin - Reti di calcolatoriRichiami su Linux - Webmin - Reti di calcolatori
Richiami su Linux - Webmin - Reti di calcolatoriFulvio Corno
 
Trace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linux
Trace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linuxTrace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linux
Trace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linuxDeveler S.r.l.
 
Back to Basics, webinar 6: Messa in esercizio
Back to Basics, webinar 6: Messa in esercizioBack to Basics, webinar 6: Messa in esercizio
Back to Basics, webinar 6: Messa in esercizioMongoDB
 
VMUG.IT @ ITway Campus 2014
VMUG.IT @ ITway Campus 2014VMUG.IT @ ITway Campus 2014
VMUG.IT @ ITway Campus 2014Andrea Mauro
 
PIT2012: Workshop@UniNA - Compilazione del Kernel Linux
PIT2012: Workshop@UniNA - Compilazione del Kernel LinuxPIT2012: Workshop@UniNA - Compilazione del Kernel Linux
PIT2012: Workshop@UniNA - Compilazione del Kernel LinuxMarco Ferrigno
 
Implementazione di un ambiente in alta affidabilità
Implementazione di un ambiente in alta affidabilitàImplementazione di un ambiente in alta affidabilità
Implementazione di un ambiente in alta affidabilitàAlfredo Parisi
 
VMUGIT - Virtualizzare con i piedi per terra
VMUGIT - Virtualizzare con i piedi per terraVMUGIT - Virtualizzare con i piedi per terra
VMUGIT - Virtualizzare con i piedi per terraVMUG IT
 
Presentazione al VMUGIT UC 2014 - Virtualizzare con i piedi per terra
Presentazione al VMUGIT UC 2014 - Virtualizzare con i piedi per terraPresentazione al VMUGIT UC 2014 - Virtualizzare con i piedi per terra
Presentazione al VMUGIT UC 2014 - Virtualizzare con i piedi per terraAndrea Mauro
 
Site Recovery Manager - Una visione architetturale
Site Recovery Manager - Una visione architetturaleSite Recovery Manager - Una visione architetturale
Site Recovery Manager - Una visione architetturalegguglie
 
Linux Security Hardening - panoramica sui principi generali per la riduzione...
Linux  Security Hardening - panoramica sui principi generali per la riduzione...Linux  Security Hardening - panoramica sui principi generali per la riduzione...
Linux Security Hardening - panoramica sui principi generali per la riduzione...Marco Ferrigno
 
Hardening
HardeningHardening
HardeningNaLUG
 
Gestione dischi - File system - LVM
 Gestione dischi - File system - LVM Gestione dischi - File system - LVM
Gestione dischi - File system - LVMFulvio Corno
 
JBoss Clouds - JBug Roma october 2009
JBoss Clouds -  JBug Roma october 2009JBoss Clouds -  JBug Roma october 2009
JBoss Clouds - JBug Roma october 2009Sanne Grinovero
 

Similar to LUG - Logical volumes management (20)

Proxmox VE
Proxmox VEProxmox VE
Proxmox VE
 
Linux Capabilities - ita - v2.1.5 - compatta
Linux Capabilities - ita - v2.1.5 - compattaLinux Capabilities - ita - v2.1.5 - compatta
Linux Capabilities - ita - v2.1.5 - compatta
 
Richiami su Linux - Webmin - Reti di calcolatori
Richiami su Linux - Webmin - Reti di calcolatoriRichiami su Linux - Webmin - Reti di calcolatori
Richiami su Linux - Webmin - Reti di calcolatori
 
Infrastructure as Data
Infrastructure as DataInfrastructure as Data
Infrastructure as Data
 
Lvm cesvip
Lvm cesvipLvm cesvip
Lvm cesvip
 
SVN/TRAC
SVN/TRACSVN/TRAC
SVN/TRAC
 
LTSP
LTSPLTSP
LTSP
 
Trace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linux
Trace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linuxTrace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linux
Trace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linux
 
Back to Basics, webinar 6: Messa in esercizio
Back to Basics, webinar 6: Messa in esercizioBack to Basics, webinar 6: Messa in esercizio
Back to Basics, webinar 6: Messa in esercizio
 
VMUG.IT @ ITway Campus 2014
VMUG.IT @ ITway Campus 2014VMUG.IT @ ITway Campus 2014
VMUG.IT @ ITway Campus 2014
 
PIT2012: Workshop@UniNA - Compilazione del Kernel Linux
PIT2012: Workshop@UniNA - Compilazione del Kernel LinuxPIT2012: Workshop@UniNA - Compilazione del Kernel Linux
PIT2012: Workshop@UniNA - Compilazione del Kernel Linux
 
Implementazione di un ambiente in alta affidabilità
Implementazione di un ambiente in alta affidabilitàImplementazione di un ambiente in alta affidabilità
Implementazione di un ambiente in alta affidabilità
 
VMUGIT - Virtualizzare con i piedi per terra
VMUGIT - Virtualizzare con i piedi per terraVMUGIT - Virtualizzare con i piedi per terra
VMUGIT - Virtualizzare con i piedi per terra
 
Presentazione al VMUGIT UC 2014 - Virtualizzare con i piedi per terra
Presentazione al VMUGIT UC 2014 - Virtualizzare con i piedi per terraPresentazione al VMUGIT UC 2014 - Virtualizzare con i piedi per terra
Presentazione al VMUGIT UC 2014 - Virtualizzare con i piedi per terra
 
Site Recovery Manager - Una visione architetturale
Site Recovery Manager - Una visione architetturaleSite Recovery Manager - Una visione architetturale
Site Recovery Manager - Una visione architetturale
 
Linux Security Hardening - panoramica sui principi generali per la riduzione...
Linux  Security Hardening - panoramica sui principi generali per la riduzione...Linux  Security Hardening - panoramica sui principi generali per la riduzione...
Linux Security Hardening - panoramica sui principi generali per la riduzione...
 
Hardening
HardeningHardening
Hardening
 
Gestione dischi - File system - LVM
 Gestione dischi - File system - LVM Gestione dischi - File system - LVM
Gestione dischi - File system - LVM
 
Ha solutions su power i
Ha solutions su power iHa solutions su power i
Ha solutions su power i
 
JBoss Clouds - JBug Roma october 2009
JBoss Clouds -  JBug Roma october 2009JBoss Clouds -  JBug Roma october 2009
JBoss Clouds - JBug Roma october 2009
 

LUG - Logical volumes management

  • 1. www.lugroma3.org LVM Logical Volume Manager Alessandro Manfredi
  • 2. LVM - Agenda • A che serve ? • Come funziona ? • Quale versione ? • Lo voglio, dove devo firmare ? • Forte! Ora ho un nuovo attrezzo ... ... come si usa ?
  • 3. LVM : Features overview “Logical Volume Manager ” • Permette di gestire gli apparati di storage ad un livello di astrazione più alto rispetto alla classica visione di dischi e partizioni. • Consente ampia flessibilità nell'allocazione dello spazio disponibile ad applicazioni ed utenti. • Permette di ridefinire le dimensioni dei volumi creati e di spostarne la persistenza attraverso i dispositivi di storage gestiti. • Consente la gestione dei volumi in gruppi definiti dall'utente.
  • 4. Vantaggi concreti Su piccoli sistemi : • Possibilità di ridimensionare le partizioni dedicate agli applicativi o ai dati a seconda delle necessità. • Possibilità di aggiungere o rimuovere apparati di storage senza necessità di modifiche al sistema. Su sistemi enterprise : • Amministrazione e mantenimento semplificati • Associazione gruppi_utenti – gruppi_volumi • Continuità dei servizi • Snapshots
  • 6. Anatomia - 2 LVM Esegue il mapping tra LE e PE • Linear Mapping • Striped Mapping : distribuisce frammenti di LE sequenzialmente nei vari PV, al fine di aumentare le performance del LV. *
  • 7. Snapshots Uno snapshot è un'istantanea di un LV ottenuta memorizzando i cambiamenti del LV rispetto allo snapshot e viceversa. Gli snapshot possono essere montati ( e in LVM2 modificati ) come normali LV. La dimensione degli snapshot dipende dai cambiamenti al LV o allo snapshot stesso nel suo tempo di vita : per tempi relativamente brevi è molto inferiore alla dimensione del LV originale.
  • 8. Snapshots - 2 Vantaggi • Ottenere un backup consistente e di dimensioni ridotte, senza necessità di interruzione dei servizi. • Possibilità di testare software che modifica il filesystem per poi ripristinare il volume originale, senza bisogno di allocare uno spazio equivalente al volume. Accortezze • Applicabile solo a LV, non a partizioni classiche. • Lo snapshot richiede uno spazio allocato proporzionale al suo tempo di vita ( al più di dimensioni uguali al LV ).
  • 9. Quale versione ? LVM2 • Retrocompatibile ( a meno degli snapshot LVM1 ) • Usa il device mapper kernel driver incluso nei kernel 2.6.x ( ma esiste una patch per i kernel 2.4.x ) • Snapshot read / write LVM1 • Usa il device mapper dei kernel 2.4.x • Snapshot read-only • Considerato un progetto maturo
  • 10. Setting up – Device Mapper • Device mapper come modulo o incluso nel kernel > per LVM2 e kernel >= 2.6.9 dovrebbe essere presente ( check /proc/misc, /proc/devices, /sys/class/misc ) se compilato come modulo #modprobe dm_mod ( more at http://sources.redhat.com/dm/ ) > per LVM1 e kernel 2.6.x occorre una patch del kernel > per LVM1 e kernel 2.4.x assicurarsi di avere l'ultima patch per il kernel per LVM1 e di compilare il supporto Multi-device support (RAID and LVM) > LVM !!! L'uso di Snapshot di LV con fs ReiserFS richiede la patch linux-2.4.x-VFS-lock presente in LVM/1.0.8/PATCHES
  • 11. Setting up – LVM1 Boot time script Debian - /etc/init.d/lvm #!/bin/sh case "$1" in start) /sbin/vgscan /sbin/vgchange -ay ;; stop) /sbin/vgchange -an ;; restart|force-reload) ;; esac exit 0
  • 12. Setting up – LVM1 Boot time script Red hat L'rpm installa lo script di avvio. Tuttavia se LVM viene compilato come modulo si dovrà aggiungere modprobe lvm-mod in /etc/rc.d/rc.sysinit prima dell'attivazione dei LV
  • 13. Setting up – LVM2 Boot time script mkinitrd delle distro moderne dovrebbe essere configurato per far attivare tutti i LV all'avvio. Se così non dovesse essere aggiungere manualmente dmsetup mknodes vgscan --ignorelockingfailure vgchange -ay –ignorelockingfailure
  • 14. Setting up – LVM Tools & Libs • Utilizzare il packet manager della distro per installare LVM Tools e LVM Libraries ... oppure • Scaricare i sorgenti tar -xzvf lvm-tools-and-libraries.tar.gz ./configure --help ./configure make make install make remove
  • 15. LVM – Common tasks overview • # pvcreate /dev/devname crea un PV descriptor all'inizio di devname • # vgcreate [-s ES] vg_name /dev/deva1 /dev/devb1 crea un VG ed associa i dev come PV • # vgchange -ay vg_name attiva il VG e tutti i suoi LV • # vgchange -an vg_name disattiva il VG e tutti i suoi LV • # vgremove vg_name rimuove il VG
  • 16. LVM – Common tasks overview - 2 • # vgextend vg_name /dev/devc1 estende il VG aggiungendo il PV ( NB: il PV deve essere inizializzato!) • # pvdisplay /dev/deva1 visualizza informazioni sul PV • # vgdisplay /dev/deva1 visualizza informazioni sul PV • # vgreduce vg_name /dev/deva1 riduce il VG rimuovendo il PV
  • 17. LVM – Common tasks overview - 3 • # lvcreate -L1500 -n lv_name vg_name crea un LV di 1500MB “lv_name” nel VG vg_name • # lvcreate -i2 -I4 -l100 -n lv_name vg_name crea un LV di 100 LE con 2 stripe di grandezza 4kb • # lvcreate -l $( vgdisplay vg_name | grep "Total PE" | awk '{print $2}') vg_name -n lv_name crea un LV della dimensione del VG • # lvcreate -n lv_name vg_name /dev/devb1 crea un LV mappando le LE nelle PE del devb1
  • 18. LVM – Common tasks overview - 4 • # lvremove /dev/vg_name/lv_name rimuove il LV ( NB: Deve essere smontato! ) • # lvextend -L40G /dev/vg_name/lv_name estende il LV alla dimensione specificata • # lvextend -L+4G /dev/vg_name/lv_name estende il LV della dimensione specificata. E' necessario estendere il fs dopo l'estensione del LV ext2/ext3 # resize2fs /dev/vg_name/lv_name (*) reiserfs # resize_reiserfs -f /dev/vg_name/lv_name xfs # xfs_growfs /mpoint jfs # mount -o remount,resize=<fs_blocksize> /mpoint
  • 19. LVM – Common tasks overview - 5 • # lvreduce -L-4G /dev/vg_name/lv_name riduce il LV della dimensione specificata. E' necessario ridurre il fs prima della riduzione del LV ext2/ext3 # resize2fs /dev/vg_name/lv_name <vbsize> (*) reiserfs # resize_reiserfs -s -4G /dev/vg_name/lv_name xfs no-way to reduce xfs fs jfs no-way to reduce jfs fs • # lvcreate -L512M -s -n snap_name /dev/vg/lv_name crea uno snapshot del LV assegnandogli 512 Mb del VG Se la persistenza delle differenze tra lo snapshot ed il LV supera lo spazio allocato, lo snapshot viene disabilitato.
  • 20. Cose a cui prestare attenzione La partizione di avvio contenete l'immagine del kernel non può essere su un LV ! Un filesystem root su un LV richiede un initrd che attivi i LV altrimenti il fs non può essere montato ! ( see lvmcreate_initrd for LVM1 ) Creare un PV su un intero disco non partizionato è sconsigliato in quanto altri sistemi rilevano il disco come non utilizzato ! Ma se proprio ci tenete almeno prima distruggete la tabella delle partizioni: # dd if=/dev/zero of=/dev/diskname bs=1k count=1 # blockdev --rereadpt /dev/diskname
  • 21. Cose a cui prestare attenzione - 2 Sistemi running LVM1 con devfs richiedono di specificare il percorso completo dei dev # vgcreate vg_name /dev/ide/host0/bus0/target0/lun0/part1 ... E' sconsigliato creare PVs su più partizioni dello stesso disco: in caso di striped mapping le prestazioni diminuiscono notevolmente ! LVM1 su partizioni DOS richiede che il tipo di partizione sia impostato a 0x8e ( fdisk o simili ... ) Prima di rimuovere un PV da un VG occorre spostare tutte le PE che il PV ospita sugli alri Pvs del VG !
  • 22. LVM – Common tasks overview - 6 • # pvmove /dev/devname distribuisce tutte le PE allocate sul device, sugli altri PV dello stesso VG sec'è abastanza spazio. Se non c'è abbastanza spazio ... # pvcreate /dev/otherdisk # vgextend vg_name /dev/otherdisk # pvmove /dev/devname /dev/otherdisk (*) # vgreduce vg_name /dev/devname • # vgsplit vg_name another_vg /dev/sdb2 combina vgreduce e vgcreate
  • 23. An useful tool : vgexport / vgimport Scenario : sostituzione di una macchina server [admin@old_machine] # unmount /mnt/design/users [admin@old_machine] # vgchange -an design vgchange -- volume group "design" successfully deactivated [admin@old_machine] # vgexport design vgexport -- volume group "design" successfully exported [admin@new_machine] # pvscan pvscan -- reading all physical volumes (this may take a while...) pvscan -- inactive PV "/dev/sdb1" is in EXPORTED VG "design" [996 MB / 996 MB free] pvscan -- inactive PV "/dev/sdb2" is in EXPORTED VG "design" [996 MB / 244 MB free] pvscan -- total: 2 [1.95 GB] / in use: 2 [1.95 GB] / in no VG: 0 [0] [admin@new_machine] # vgimport design Volume group "vg" successfully imported [admin@new_machine] # vgchange -ay design [admin@new_machine] # mkdir -p /mnt/design/users [admin@new_machine] # mount /dev/design/users /mnt/design/users
  • 25. Online References LVM Howto @ Linux.org http://www.linux.org/docs/ldp/howto/LVM-HOWTO/ Logic Volume Managemente – Wikipedia http://en.wikipedia.org/wiki/Logical_volume_management Logic Volume Manager ( Linux ) - Wikipedia http://en.wikipedia.org/wiki/Logical_Volume_Manager Red Hat LVM1 / LVM2 Resource Page http://sources.redhat.com/lvm/ http://sources.redhat.com/lvm2/ Red Hat Device Mapper resource Page http://sources.redhat.com/dm/