Logical Volume management 2
-
Upload
paolo-pedaletti -
Category
Art & Photos
-
view
401 -
download
3
description
Transcript of Logical Volume management 2
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
Paolo Pedaletti www.OpenLabs.it
Indice generaleIntroduzione..............................................................................................................................................................................................3
Vantaggi...............................................................................................................................................................................................3Implementazione.................................................................................................................................................................................4Strumenti di verifica............................................................................................................................................................................4
Terminologia.............................................................................................................................................................................................5Physical Volumes.................................................................................................................................................................................5Volume Groups....................................................................................................................................................................................5Logical Volumes..................................................................................................................................................................................5Extents.................................................................................................................................................................................................5
RAID con mdadm.....................................................................................................................................................................................6Verifica................................................................................................................................................................................................6Marcare come difettoso un intero HD (2 partizioni) di un RAID.......................................................................................................9Rimuovere un HD (2 partizioni) difettoso da 2 RAID........................................................................................................................9Marcare & rimuovere un HD (2 partizioni) difettoso da 2 RAID.......................................................................................................9Aggiungere un HD in sostituzione di uno difettoso..........................................................................................................................10Verifica dell'avanzamento della sincronizzazione tra i dischi del RAID..........................................................................................10
Con kernel > 2.6.16.....................................................................................................................................................................10Disabilitare un RAID.........................................................................................................................................................................10Recupero della configurazione di un RAID software:......................................................................................................................11
LVM2......................................................................................................................................................................................................12Creazione di Phisical Volume............................................................................................................................................................12Creazione o estensione del Volume Group........................................................................................................................................12Creazione Logical Volume................................................................................................................................................................12Formattazione & mount.....................................................................................................................................................................13Ridimensionare un LV.......................................................................................................................................................................13
Allargare la partizione.................................................................................................................................................................13Restringere la partizione..............................................................................................................................................................13
Salvare la configurazione LVM2.......................................................................................................................................................13Spostare un Volume Group................................................................................................................................................................14Snapshot............................................................................................................................................................................................15Rimozione di un sistema LVM2........................................................................................................................................................16Recupero di un sistema LVM2..........................................................................................................................................................16RAID “LVM2”..................................................................................................................................................................................17
Elenco comandi utili...............................................................................................................................................................................18In mancanza di dispositivi fisici..............................................................................................................................................................21Linkografia..............................................................................................................................................................................................23
15/01/2015 2 di 24
Paolo Pedaletti www.OpenLabs.it
IntroduzioneLVM (ora alla versione 2) permette di gestire in modo moderno (= flessibile e sicuro) ilsistema 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 sipuò rappresentare in questo modo:
mount point
/ /usr /var /var/log /var/lib |/var/cache |/var/spool |/var/tmp | ...
/tmp /opt /home
LogicalVolume
usr var var_log var_lib |var_cache |var_spool | var_tmp | ...
tmp opt free |snapshot
home free |snapshot
VolumeGroup
sistema dati
PhysicalVolume
md0 md1 sdc sdd sde
~~~~~~~~~~~~~~RAID
softwaremd0 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
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 hardwaredei 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
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
Paolo Pedaletti www.OpenLabs.it
RAID con mdadmPersonalmente 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
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
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
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
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 thearray on the next bootup.”
15/01/2015 10 di 24
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 wereelements 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
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 ilseek 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
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
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
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 questointerferire 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
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
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
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
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 ormore 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
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
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
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
Paolo Pedaletti www.OpenLabs.it
Linkografiahttp://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.html
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