Your SlideShare is downloading. ×
Logical Volume management 2
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Logical Volume management 2

369
views

Published on

Logical Volume management 2 …

Logical Volume management 2
LVM2

Published in: Art & Photos

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
369
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Paolo Pedaletti www.OpenLabs.it LVM21 Logical Volume Manager (ver.2) last update: giovedì 15 gennaio 2015 1 Creative Commons - Attribuzione-Condividi allo stesso modo Tu sei libero: • di riprodurre, distribuire, comunicare al pubblico, esporre in pubblico, rappresentare, eseguire e recitare quest'opera • di modificare quest'opera alle seguenti condizioni: • Attribuzione. Devi attribuire la paternità dell'opera nei modi indicati dall'autore o da chi ti ha dato l'opera in licenza e in modo tale da non suggerire che essi avallino te o il modo in cui tu usi l'opera. • Condividi allo stesso modo. Se alteri o trasformi quest'opera, o se la usi per crearne un'altra, puoi distribuire l'opera risultante solo con una licenza identica o equivalente a questa. 15/01/2015 1 di 24
  • 2. Paolo Pedaletti www.OpenLabs.it Indice generale Introduzione..............................................................................................................................................................................................3 Vantaggi...............................................................................................................................................................................................3 Implementazione.................................................................................................................................................................................4 Strumenti di verifica............................................................................................................................................................................4 Terminologia.............................................................................................................................................................................................5 Physical Volumes.................................................................................................................................................................................5 Volume Groups....................................................................................................................................................................................5 Logical Volumes..................................................................................................................................................................................5 Extents.................................................................................................................................................................................................5 RAID con mdadm.....................................................................................................................................................................................6 Verifica................................................................................................................................................................................................6 Marcare come difettoso un intero HD (2 partizioni) di un RAID.......................................................................................................9 Rimuovere un HD (2 partizioni) difettoso da 2 RAID........................................................................................................................9 Marcare & rimuovere un HD (2 partizioni) difettoso da 2 RAID.......................................................................................................9 Aggiungere un HD in sostituzione di uno difettoso..........................................................................................................................10 Verifica dell'avanzamento della sincronizzazione tra i dischi del RAID..........................................................................................10 Con kernel > 2.6.16.....................................................................................................................................................................10 Disabilitare un RAID.........................................................................................................................................................................10 Recupero della configurazione di un RAID software:......................................................................................................................11 LVM2......................................................................................................................................................................................................12 Creazione di Phisical Volume............................................................................................................................................................12 Creazione o estensione del Volume Group........................................................................................................................................12 Creazione Logical Volume................................................................................................................................................................12 Formattazione & mount.....................................................................................................................................................................13 Ridimensionare un LV.......................................................................................................................................................................13 Allargare la partizione.................................................................................................................................................................13 Restringere la partizione..............................................................................................................................................................13 Salvare la configurazione LVM2.......................................................................................................................................................13 Spostare un Volume Group................................................................................................................................................................14 Snapshot............................................................................................................................................................................................15 Rimozione di un sistema LVM2........................................................................................................................................................16 Recupero di un sistema LVM2..........................................................................................................................................................16 RAID “LVM2”..................................................................................................................................................................................17 Elenco comandi utili...............................................................................................................................................................................18 In mancanza di dispositivi fisici..............................................................................................................................................................21 Linkografia..............................................................................................................................................................................................23 15/01/2015 2 di 24
  • 3. Paolo Pedaletti www.OpenLabs.it Introduzione LVM (ora alla versione 2) permette di gestire in modo moderno (= flessibile e sicuro) il sistema di archiviazione di massa (storage) online di un computer. LVM astrae l'hardware sottostante e presenta al sistema operativo dei device virtuali, estendibili a piacere e riposizionabili su altro device fisico in caso di problemi, con in più la possibilità di eseguire snaturato (immagini immutabili nel tempo ma usabili in modo trasparente alle applicazioni) dei filesystem in tempo reale. Vantaggi • Ridimensionare i Volumi Logici (LV/partizioni) mantenendole sempre online • Ridimensionare i Volumi Fisici (PV/dischi) mantenendoli sempre online • creare snapshots read-only e read/write • disporre i Volumi Logici (LV/partizioni) su piu' Volumi Fisici (PV/dischi) come un RAID0 • disporre i Volumi Logici (LV/partizioni) come un RAID1 • separare o unire o spostare Gruppi Volumi (VG) su diversi HD fisici (in caso di sostituzione/aggiornamento di hardware storage) Schematicamente la configurazione di una installazione GNU/Linux che utilizza LVM si può rappresentare in questo modo: mount point / /usr /var /var/log /var/lib | /var/cache | /var/spool | /var/tmp | ... /tmp /opt /home Logical Volume usr var var_log var_lib | var_cache | var_spool | var_tmp | ... tmp opt free | snapshot home free | snapshot Volume Group sistema dati Physical Volume md0 md1 sdc sdd sde ~~~~~~~~~~~~~~ RAID software md0 md1 md0 md1 partizioni sda1 sda2 sdb1 sdb2 -2 - - device fisici sda sdb sdc sdd sde In pratica si passa da: 2 Per dischi NON di boot le partizioni sono superflue se non addirittura inopportune. 15/01/2015 3 di 24
  • 4. Paolo Pedaletti www.OpenLabs.it Hard Disk → Partizione → Filesystem a PV (Hard Disk intero o Partizione [facoltativa] o device RAID md) → VG (ex “HD” ) → LV (ex “partizioni”) → Filesystem Implementazione Un sistema basato su LVM, se si basa su un RAID sottostante, garantisce flessibilità nella gestione delle partizioni e indipendenza da eventuali malfunzionamenti hardware dei dischi fisici. Se il computer non ha un controller hardware integrato e' necessario configurare prima un sistema RAID software. Lo schema precedente e' intenzionalmente misto RAID e non-RAID per poter dimostrare (nella parte non-RAID) alcune caratteristiche di LVM che con un sistema RAID sottostante si complicherebbero inutilmente. La procedura seguente si basa sullo schema precedente che suppone di avere 5 dischi fisici Strumenti di verifica $ iostat $ systat $ iozone $ bonnie++ numero seriale per identificare gli HD: $ hdparm -I /dev/sda | grep -i serial $ smartctl -i /dev/sda $ udevadm info --query=property –name=sda | grep -i serial $ scsi_id -gus /block/sda $ sdparm --vendor sea /dev/sda $ lshw per il BIOS: $ dmidecode 15/01/2015 4 di 24
  • 5. Paolo Pedaletti www.OpenLabs.it Terminologia Physical Volumes I Physical Volumes (PV) Sono i dischi fisici o partizioni (esempio: /dev/hda o /dev/hda1) oppure device RAID md (esempio /dev/md0). Sono i dispositivi che vengono formattati e montati di solito se non si usa LVM. Quando si intende usarli con LVM bisogna marcarli di tipo 0x8E (Linux LVM). Volume Groups Un Volume Group (VG) e' un'insieme di PV. Si possono considerare dei dischi “virtuali” che verranno utilizzati per creare le partizioni “virtuali” da formattare e montare. Logical Volumes Partendo dai VG si creano i Logical Volumes (LV) in pratica le partizioni che vengono poi formattare e montate nel modo classico. Extents L'equivalente dei settori, unita' base di allocazione dei file. Di default sono 4MiB 15/01/2015 5 di 24
  • 6. Paolo Pedaletti www.OpenLabs.it RAID con mdadm Personalmente preferisco avere la partizione / non gestita da LVM ma solo dal RAID. In genere, se uso LVM, creo 3 partizioni, una per la /, una per lo swap, e una come PV per LVM3 . Avere la / separata dal resto mi velocizza il resync tra i dischi in caso di necessita' (ricostruzione del RAID) Marcare le partizioni come partizioni di tipo Linux raid autodetect (type FD) tramite {c|s}fdisk Per sicurezza azzero il superblocco di un eventuale software RAID precedente: $ mdadm --zero-superblock /dev/sda1 Assemblare le partizioni sda1 e sdb1 nel raid di livello 1 md0 configurando contemporaneamente un disco di scorta “spare” al momento inesistente (supponendo di aggiungerlo in seguito) $ mdadm /dev/md0 --create --verbose --chunk=128 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1 --spare-device=1 missing stessa cosa per sda2 + sdb2 → md1 $ mdadm /dev/md1 --create --verbose --chunk=128 --level=1 --raid-devices=2 /dev/sda2 /dev/sdb2 --spare-device=1 missing oppure $ mdadm /dev/md1 --create --verbose --level=1 --raid-devices=2 /dev/sda2 missing se il secondo disco del RAID non e' disponibile al momento Verifica dettagli hd di un md: $ mdadm --examine /dev/sdf /dev/sdf: Magic : a92b4efc Version : 1.2 Feature Map : 0x0 Array UUID : e0d407ba:ab11cb33:7e6ca813:6eaa1eff Name : pta-pp02:0 (local to host pta-pp02) Creation Time : Tue Oct 25 09:10:47 2011 Raid Level : raid1 Raid Devices : 2 Avail Dev Size : 976771120 (465.76 GiB 500.11 GB) Array Size : 976770848 (465.76 GiB 500.11 GB) Used Dev Size : 976770848 (465.76 GiB 500.11 GB) Data Offset : 2048 sectors 3) [2009/11/09] ho verificato che almeno con Ubuntu 9.10 server e' possibile installare tutto il sistema (/ e swap incluso) su LVM2, anche se non lo consiglio. 15/01/2015 6 di 24
  • 7. Paolo Pedaletti www.OpenLabs.it Super Offset : 8 sectors State : clean Device UUID : 9fcb710a:7f153461:67cd6abc:b5f6e0e8 Update Time : Fri Nov 4 15:14:58 2011 Checksum : 2b52445f - correct Events : 12568 Device Role : Active device 0 Array State : AA ('A' == active, '.' == missing) $ mdadm --examine --scan ARRAY /dev/md/0 metadata=1.2 UUID=e0d407ba:ab11cb33:7e6ca813:6eaa1eff name=pta-pp02:0 $ mdadm --assemble --scan dettagli di un device md: $ cat /proc/mdstat Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] md0 : active raid1 sda1[2] sdb1[0] 488385424 blocks super 1.2 [2/2] [UU] unused devices: <none> $ mdadm --detail /dev/md0 /dev/md0: Version : 1.2 Creation Time : Tue Oct 25 09:10:47 2011 Raid Level : raid1 Array Size : 488385424 (465.76 GiB 500.11 GB) Used Dev Size : 488385424 (465.76 GiB 500.11 GB) Raid Devices : 2 Total Devices : 2 Persistence : Superblock is persistent Update Time : Fri Nov 4 15:13:58 2011 State : clean Active Devices : 2 Working Devices : 2 Failed Devices : 0 Spare Devices : 0 15/01/2015 7 di 24
  • 8. Paolo Pedaletti www.OpenLabs.it Name : pta-pp02:0 (local to host pta-pp02) UUID : e0d407ba:ab11cb33:7e6ca813:6eaa1eff Events : 12568 Number Major Minor RaidDevice State 0 8 80 0 active sync /dev/sdf 2 8 96 1 active sync /dev/sdg monitor 1-shot: $ mdadm --monitor --scan -1 $ mdadm --monitor --scan --mail root@localhost -p /root/script/mdadm-handle-events.sh -1 15/01/2015 8 di 24
  • 9. Paolo Pedaletti www.OpenLabs.it ----------------------8<----------------8<------------------8<------------------ #!/bin/bash # /root/script/mdadm-handle-events.sh # script di gestione degli eventi generati dal sistema raid software LOGFILE=/var/log/mdadm-handle-events.log MESSAGGIO="$@" logger "$MESSAGGIO" echo -e "$MESSAGGIO" | mutt -s "mail from $0" root@localhost echo $(date) >> $LOGFILE echo $MESSAGGIO >> $LOGFILE echo "-------------" >> $LOGFILE ----------------------8<----------------8<------------------8<------------------ Marcare come difettoso un intero HD (2 partizioni) di un RAID $ mdadm /dev/md0 --fail /dev/sdb1 $ mdadm /dev/md1 --fail /dev/sdb2 prima: :[~]$ cat /proc/mdstat Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] md1 : active raid1 sdb3[2](F) sda3[0] 136721088 blocks [2/1] [U_] $ mdadm /dev/md3 --fail /dev/sdb3 $ mdadm /dev/md3 --remove /dev/sdb3 dopo: :[~]$ cat /proc/mdstat Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] md1 : active raid1 sda3[0] 136721088 blocks [2/1] [U_] Rimuovere un HD (2 partizioni) difettoso da 2 RAID $ mdadm /dev/md0 --remove /dev/sdb1 $ mdadm /dev/md1 --remove /dev/sdb2 Marcare & rimuovere un HD (2 partizioni) difettoso da 2 RAID $ mdadm /dev/md0 --fail /dev/sdb1 --remove /dev/sdb1 $ mdadm /dev/md1 --fail /dev/sdb2 --remove /dev/sdb2 15/01/2015 9 di 24
  • 10. Paolo Pedaletti www.OpenLabs.it Aggiungere un HD in sostituzione di uno difettoso Dopo aver sostituito fisicamente l'HD difettoso con uno identico lo aggiungo al RAID, duplicando prima le partizioni (da sda a sdb in questo caso): $ sfdisk /dev/sda | sfdisk /dev/sdb $ mdadm /dev/md0 --add /dev/sdb1 $ mdadm /dev/md1 --add /dev/sdb2 Verifica dell'avanzamento della sincronizzazione tra i dischi del RAID $ cat /prc/mdstat $ mdadm --query --detail /dev/md0 Con kernel > 2.6.16 $ echo "check" > /sys/block/md0/md/sync_action $ echo "repair" > /sys/block/md0/md/sync_action Disabilitare un RAID $ mdadm --manage --stop /dev/md0 $ mdadm --manage --remove /dev/md0 $ mdadm –zero-superblock /dev/sda /dev/sdb “Toggle the partition to 83 if it is fd. This will prevent the kernel from auto starting the array on the next bootup.” 15/01/2015 10 di 24
  • 11. Paolo Pedaletti www.OpenLabs.it Recupero di un RAID software: $ mdadm --examine --scan >> /etc/mdadm/mdadm.conf $ mdadm --monitor --daemonise --scan $ mdadm --run $ cat /proc/mdstat $ mdadm --query --detail /dev/md0 $ mdadm --assemble --scan -v $ mdadm --examine --scan -v > mdadm.conf In caso di problemi: 1. Preserving RAID superblock information4 = backup stato del RAID $ mdadm --examine /dev/sd[abcdefghijklmn][1-9] >> raid.status $ mdadm --examine /dev/sd[a-z] | egrep 'Event|/dev/sd' 1. forzare mdadm ad assemblare il RAID in ogni caso: $ mdadm --stop /dev/mdX $ mdadm --assemble --force /dev/mdX <list of devices> $ mdadm --assemble --run --force --update=resync /dev/md1 /dev/sd[abcd]2 1. estrema risorsa: (mdadm is smart enough to detect the existing data, and shouldn't overwrite it)5 $ mdadm --create --assume-clean --level=L --raid-devices=N --size=SIZE /dev/md0 /dev/sdb1 /dev/sdc1 missing /dev/sdl1 /dev/sd..... $ mdadm --create /dev/md1 -v –level=5 –raid-disks=4 /dev/sd[abcd]2 mount: /dev/sda2: can't read superblock Find out superblock location for /dev/sda2: dumpe2fs /dev/sda2 | grep superblock Now check and repair a Linux file system using alternate superblock # 32768: fsck -b 32768 /dev/sda2 4 https://raid.wiki.kernel.org/index.php/RAID_Recovery 5 The solution was to recreate the RAID array. This sound counter-intuitive: if we recreate a raid array over an existing one, it will be erased ! Right ? Wrong ! As it is said on debian-user-french, mdadm is smart enough to “see” that HDD of the new array were elements of a previous one. Knowing that, mdadm will try to do its best (i.e. if parameters match the previous array configuration) and rebuild the new array upon the previous one in a non-destructive way, by keeping HDD content. 15/01/2015 11 di 24
  • 12. Paolo Pedaletti www.OpenLabs.it 15/01/2015 12 di 24
  • 13. Paolo Pedaletti www.OpenLabs.it LVM2 Creazione di Phisical Volume Marcare il device md1, sd... come partizione di tipo Linux LVM (8e) tramite {c|s}fdisk, quindi $ pvcreate /dev/md1 $ pvcreate /dev/sdc1 $ pvcreate /dev/sdd1 $ pvcreate /dev/sde1 Creazione o estensione del Volume Group $ vgcreate -v sistema /dev/md1 $ vgcreate -v dati /dev/sdc1 $ vgcreate -v film /dev/md1 --physicalextentsize 128M se esiste già e deve essere esteso su un nuovo device: $ vgextend -v dati /dev/sdd1 al posto del default di 4MiB imposto la dimesione degli extent a 128M per migliorare il seek time di una grossa partizione destinata a contenere file di grosse dimensioni. Verifica: $ pvs $ vgs $ lvs $ pvdisplay $ vgdisplay $ lvdisplay Creazione Logical Volume Ora creo la partizioni “virtuali” $ lvcreate sistema -n usr --size 5g $ lvcreate sistema -n var -L 5g $ lvcreate sistema -n var_log --size 1g $ lvcreate sistema -n tmp --size 3g $ lvcreate sistema -n opt -L 2g $ lvcreate dati -n home --size 10g Verifico: $ lvs $ lvdisplay 15/01/2015 13 di 24
  • 14. Paolo Pedaletti www.OpenLabs.it Formattazione & mount Per i filesystem ext* (ext2/3/4) sui filesystem non di sistema e' meglio aggiungere l'opzione -m 0 cioe' non riserva alcuna percentuale del disco per l'utente root (sugli attuali dischi di grosse dimensioni si sprecherebbe troppo spazio per nulla) $ mkfs.xfs /dev/sistema/usr ; mount /dev/mapper/sistema-usr /usr $ mkfs.xfs /dev/sistema/var ; mount /dev/mapper/sistema-var /var $ mkfs.xfs /dev/sistema/var_log ; mount /dev/mapper/sistema-var_log /var/log $ mkfs.xfs /dev/sistema/tmp ; mount /dev/mapper/sistema-tmp /tmp $ mkfs.xfs /dev/sistema/opt ; mount /dev/mapper/sistema-opt /opt $ mkfs.xfs /dev/dati/home ; mount /dev/mapper/sistema-home /home Ridimensionare un LV Allargare la partizione $ lvextend -L +1G /dev/sistema/usr e successivamente il filesystem associato $ xfs_growfs /dev/sistema/usr oppure, per ext{2,3,4} $ resize2fs /dev/sistema/usr Restringere la partizione Non tutti i filesystem permettono di essere ristretti, praticamente tutti permettono di essere allargati (qui $VG e $LV rappresentano rispettivamente VG e LV su cui lavorare) $ umount /dev/$VG/$LV imposto la dimensione del filesystem a 4G: $ resize2fs /dev/$VG/$LV 4G $ xfs_growfs -s 4G /dev/$VG/$LV imposto la dimensione del LV a 4Gb: $ lvreduce -L 4G /dev/$VG/$LV Salvare la configurazione LVM2 Per salvare una copia di sicurezza della configurazione di LVM in /etc/lvm/backup/: $ vgcfgbackup -f LVM2.cfg oppure $ lvmdump -d tmpdir crea un archivio .tgz in /root/ concernente tutti i dettagli del sistema LVM attivo sulla macchina. 15/01/2015 14 di 24
  • 15. Paolo Pedaletti www.OpenLabs.it Recuperare la configurazione di LVM2 $ vgcfgrestore -l LVM2.cfg $ vgcfgrestore -f LVM2.cfg Spostare un Volume Group Lo scopo e' quello di sostituire un device fisico con potenziali problemi di malfunzionamento con uno nuovo senza interrompere il servizio. Aggiungo il nuovo device al VG esistente $ pvcreate /dev/sde1 $ vgextend dati /dev/sde1 verifico $ vgdisplay dati Disabilito il PV da liberare: $ pvchange -xn /dev/sdd1 Sposto i dati fuori dal device mal-funzionante $ pvmove -c -i 10 /dev/sdd1 oppure, esplicitando la destinazione $ pvmove -c -i 10 /dev/sdd1 /dev/sdde1 Aspetto che i dati siano trasferiti fuori dal device e alla fine sconnetto il device mal- funzionante dal VG $ vgreduce dati /dev/sdd1 $ pvremove /dev/sdd1 15/01/2015 15 di 24
  • 16. Paolo Pedaletti www.OpenLabs.it Snapshot Fare uno “snapshot” di un filesystem significa ottenere una immagine del filesystem che rimane inalterata per tutto il tempo dell'esistenza dello snapshot, senza per questo interferire in alcun modo con le applicazioni che contemporaneamente lo usano in lettura ma soprattutto in scrittura, visto che le scritture vengono effettuate altrove, tramite il meccanismo di COW (Copy On Write, in pratica leggi da una parte e scrivi dall'altra) Lo snapshot e' utile per esempio per effettuare backup di database, che non possono essere arrestati ma che possono molto probabilmente cambiare tra l'inizio e la fine della procedura di backup. Se non si usasse uno snapshot per fare il backup, il backup ottenuto conterrebbe un database in uno stato inconsistente e quindi inutilizzabile per un restore. Creare uno snapshot significa in pratica creare un nuovo LV che appare come una copia esatta di un filesystem congelata all'istante dello snapshot. $ lvcreate --size 1G --snapshot --name var_lib_snap /dev/sistema/var_lib $ mkdir /mnt/snapshot $ mount /dev/sistema/var_lib_snap /mnt/snapshot effettuo il backup della direcory (con rsync o altro...) dopo di che: $ umount /mnt/snapshot $ lvremove -f /dev/sistema/var_lib_snap 15/01/2015 16 di 24
  • 17. Paolo Pedaletti www.OpenLabs.it Rimozione di un sistema LVM2 $ lvchange -a n /dev/mapper/1tb-backup1tb $ lvremove /dev/mapper/1tb-backup1tb $ vgremove 1tb $ pvremove /dev/sda1 Recupero di un sistema LVM2 In caso di necessita' e' possibile recuperare i dati di un sistema LVM partendo da un live-cd. I comandi da eseguire per accedere alle partizioni sono: • vedere l'associazione UUID ↔ device in /dev : BLKID $ blkid /dev/sdb2: UUID="d33662cd-6cc4-48e7-92d4-4abc1882aa1f" TYPE="swap" /dev/sdb3: UUID="uVTyQH-03pw-NGHA-9xSd-K2pq-6dXI-V6wGVs" TYPE="LVM2_member" /dev/sdc1: UUID="cf21d5de-9d7d-964e-d86d-f15f9ae1e03e" TYPE="linux_raid_member" /dev/sda1: UUID="cf21d5de-9d7d-964e-d86d-f15f9ae1e03e" TYPE="linux_raid_member" /dev/sdb1: LABEL="root" UUID="828cc26e-d47a-49d5-8305-4b1fb3e3c0eb" TYPE="ext4" /dev/md0: UUID="Yyk7aW-TQK6-TA3L-2WqV-3jAC-tulM-12HehP" TYPE="LVM2_member" /dev/mapper/sistema-usr: LABEL="usr" UUID="a177a4e3-de4a-4013-b548-23c44fef039f" TYPE="xfs" /dev/mapper/sistema-var: LABEL="var" UUID="1be8f902-07f7-45c0-81b9-59fc104111f8" TYPE="xfs" /dev/mapper/sistema-tmp: LABEL="tmp" UUID="3b8060d2-729d-4c7a-8763-6282f7c2164a" TYPE="xfs" /dev/mapper/dati-home: UUID="88d7f87c-4f5c-4466-9d2f-a2236a46d93c" TYPE="xfs" • recupero del sistema LVM2: $ vgcfgbackup -f LVM2.cfg $ vgcfgrestore -f VolGroup01 VolGroup01 $ pvscan $ vgscan $ lvmdiskscan $ lvscan $ vgchange -ay 15/01/2015 17 di 24
  • 18. Paolo Pedaletti www.OpenLabs.it RAID “LVM2”6 $ lvcreate -L 500M -m1 -n mirrorlv vg0 /dev/sda1 /dev/sdb1 /dev/sdc1 $ lvcreate -L 3G -n DumpMirror -m 1 TCPDumpVolGRP $ lvs -a -o +devices “–mirrorlog core”), the log is stored in memory. 6 http://docs.redhat.com/docs/en- US/Red_Hat_Enterprise_Linux/6/html/Logical_Volume_Manager_Administration/mirror_create.html 15/01/2015 18 di 24
  • 19. Paolo Pedaletti www.OpenLabs.it Elenco comandi utili $ pvchange Change attributes of a physical volume $ pvchange -ay $ pvck Check physical volume metadata $ pvck -v /dev/md0 $ pvcreate Initialize a disk or partition for use by LVM $ pvcreate /dev/sda1 $ pvdisplay Display attributes of a physical volume $ pvdisplay $ pvmove Move physical extents outside physical volume $ pvmove -v -i 3 /dev/hda2 $ pvremove Remove a physical volume $ pvremove -v -t /dev/sda2 $ pvresize Resize a disk or partition in use by LVM2, after/before alter it with fdisk espande PV dopo aver esteso la partizione con fdisk: $ pvresize /dev/sda2 restringe PV prima di ridimensionarla con fdisk $ pvresize –setphysicalvolumesize 40G /dev/sda2 $ pvs Report information about physical volumes $ pvs $ pvscan Scan all disks for physical volumes $ pvscan $ vgcfgbackup Backup volume group descriptor area $ vgcfgbackup $ vgcfgrestore Restore volume group descriptor area $ vgcfgrestore $ vgchange Change attributes of a volume group $ vgchange -ay $ vgck Check volume group metadata $ vgck $ vgcreate Create a volume group $ vgcreate -v dati /dev/sdc1 /dev/sdd1 $ vgdisplay Display attributes of volume groups $ vgdisplay $ vgexport Make volume groups unknown to the system $ umount /virtual/backup $ lvchange -an /dev/virtual/backup $ vgexport virtual $ vgextend 15/01/2015 19 di 24
  • 20. Paolo Pedaletti www.OpenLabs.it Add physical volumes to a volume group $ vgextend $ vgimport Make exported volume groups known to the system $ vgimport -a $ vgmerge Merge two volume groups. $ vgmerge -t -v dati dati_new $ vgreduce Reduce a volume group by removing one or more physical volumes $ vgreduce -t -v --removemissing $ vgremove Remove a volume group $ vgremove dati $ vgrename Rename a volume group $ vgrename /dev/dati /dev/archivio $ vgs Report information about volume groups $ vgs $ vgscan Scan all disks for volume groups and rebuild caches $ vgscan $ vgsplit Split a volume group into two, moving any logical volumes from one volume group to another by moving entire physical volumes $ vgsplit -t -v vs1 vs2 /dev/sdb1 $ lvchange Change attributes of a logical volume $ lvchange -ay $ lvconvert Convert a logical volume from linear to mirror or snapshot $ lvconvert -m1 dati/home $ lvcreate Create a logical volume in an existing volume group $ lvcreate dati -n home --size 1G crea il device /dev/dati/home $ lvcreate --size 1G --snapshot --name snap /dev/dati/home crea il device /dev/dati/snap $ lvdisplay Display attributes of a logical volume $ lvdisplay $ lvextend Extend the size of a logical volume $ lvextend --size +5G /dev/sistema/opt $ lvmdiskscan Scan for all devices visible to LVM2 $ lvmdiskscan $ lvmdump Create lvm2 information dumps for diagnostic purposes $ lvmdump $ lvreduce Reduce the size of a logical volume $ lvreduce - - size -1G /dev/sistema/opt $ lvremove 15/01/2015 20 di 24
  • 21. Paolo Pedaletti www.OpenLabs.it Remove a logical volume $ lvremove sistema/opt $ lvrename Rename a logical volume $ lvrename /dev/sistema/opt /dev/sistema/srv $ lvrename sistema opt srv $ lvresize Resize a logical volume $ lvresize --size +5G /dev/sistema/usr $ lvs Report information about logical volumes $ lvs $ lvscan Scan (all disks) for logical volumes $ lvscan 15/01/2015 21 di 24
  • 22. Paolo Pedaletti www.OpenLabs.it In mancanza di dispositivi fisici... #!/bin/sh # script per automatizzare il test # Creo i file/dispositivi umount /mnt/test1 # disabilito l'eventuale volume: lvchange -an /dev/vg1/test1 # rimuovo l'eventuale volume: lvremove /dev/vg1/test1 # vgremove vg1 vgremove vg2 NDEVMAX=4 SEQ=$(seq 1 $NDEVMAX) for DEV in $SEQ ; do pvremove /dev/loop$DEV done if [ $1 ] ; then echo "OK, all cleaned" exit 0 fi for DEV in $SEQ ; do if [ ! -f /home/hd${DEV}.img ] ; then dd if=/dev/zero of=/home/hd${DEV}.img bs=1024 count=1000000 fi pvremove /dev/loop$DEV # Associo i file ai device loopback losetup -d /dev/loop$DEV; losetup /dev/loop$DEV /home/hd${DEV}.img # Creo un volume fisico: pvcreate --dataalignment 64k /dev/loop$DEV pvs -o +pe_start /dev/loop$DEV done 15/01/2015 22 di 24
  • 23. Paolo Pedaletti www.OpenLabs.it # maximum number of physical extents is approximately 65000 # physical extent size ~= physical size / 65000 # es: 500 Gb = 500000 Mb / 65000 = 7.69 ~= 8 # Creo 2 gruppi di volume: vgcreate --physicalextentsize 8M vg1 /dev/loop1 /dev/loop2 vgcreate --physicalextentsize 8M vg2 /dev/loop3 /dev/loop4 # Verifico: vgs # Creo un volume logico: lvcreate -L 512M -n test1 vg1 # Verifico lvs # Formatto & monto mkfs.btrfs /dev/vg1/test1 mkdir /mnt/test1 mount /dev/vg1/test1 /mnt/test1 # Quando ho finito ripulisco il tutto: 15/01/2015 23 di 24
  • 24. Paolo Pedaletti www.OpenLabs.it Linkografia http://www.softpanorama.org/Commercial_linuxes/LVM/recovery_of_lvm_partitions.shtml http://wiki.gl-como.it/index.php?title=Lvm2 http://wiki.tldp.org/LVM-on-RAID http://www.debian-administration.org/articles/410 http://www.unixconsult.org/zfs_vs_lvm.html http://www.mythtv.org/wiki/LVM_on_RAID https://answers.launchpad.net/lvm2/+question/8410 http://docs.redhat.com/docs/en- US/Red_Hat_Enterprise_Linux/6/html/Logical_Volume_Manager_Administration/mirror_create.h tml http://forums.opensuse.org/english/get-technical-help-here/install-boot-login/412797- how-mount-lvm-mirror-set-different-load.html http://old.nabble.com/LVM2-raid1-without-mdadm---Break-the-mirror-and-re-synchronize- it--back-the-other-way-around.-td25621743.html http://lists.debian.org/debian-amd64/2009/09/msg00044.html http://www.markus-gattol.name/ws/lvm.html 15/01/2015 24 di 24