Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
Logical Volume Manager Administration
Guida per l'amministratore LVM
Edizione 1
Sommario
Introduzione
1. Informazioni su questa guida
2. A chi è rivolto
3. Versioni software
Tabella 1. Versioni software
Software | Descrizione |
---|---|
RHEL 6
|
si riferisce a RHEL 6 e versioni più recenti
|
GFS2
|
si riferisce a GFS2 per RHEL 6 e versioni più recenti
|
4. Documentazione relativa
- Installation Guide — Fornisce le informazioni relative al processo d'installazione di Red Hat Enterprise Linux 6.
- Deployment Guide — Fornisce le informazioni relative all'implementazione, configurazione e amministrazione di Red Hat Enterprise Linux 6.
- Storage Administration Guide — Fornisce le informazioni necessarie per una gestione efficace dei dispositivi di storage e dei file system su Red Hat Enterprise Linux 6.
- Panoramica sull'High Availability Add-On — Fornisce una panoramica molto dettagliata sul Red Hat High Availability Add-On.
- Amministrazione del Cluster — Fornisce le informazioni relative all'installazione, configurazione e gestione per il Red Hat High Availability Add-On.
- Global File System 2: Configurazione e amministrazione — Fornisce le informazioni sull'installazione, configurazione ed amministrazione del Red Hat GFS2 (Red Hat Global File System 2) incluso con il Resilient Storage Add-On.
- DM Multipath — Fornisce le informazioni relative all'utilizzo del Device-Mapper Multipath di Red Hat Enterprise Linux 6.
- Amministrazione Load Balancer — Fornisce le informazioni necessarie per la configurazione di sistemi ad elevate prestazioni con il Load Balancer Add-On, un set di componenti software integrati il quale fornisce i Linux Virtual Servers (LVS) per il bilanciamento del carico IP su di un set di server reali.
- Note di rilascio — Fornisce le informazioni sulla release corrente dei prodotti di Red Hat.
5. Abbiamo bisogno di commenti!
Logical_Volume_Manager_Administration(EN)-6 (2011-05-19-15:20)
.
Capitolo 1. LVM Logical Volume Manager
1.1. Funzioni nuove e modificate
1.1.1. Funzioni nuove e modificate di Red Hat Enterprise Linux 6.0
- È possibile definire il comportamento di un volume logico speculare in presenza di un errore del dispositivo tramite i parametri
mirror_image_fault_policy
emirror_log_fault_policy
nella sezioneactivation
del filelvm.conf
. Dopo aver impostato i parametri suremove
, il sistema cercherà di rimuovere il dispositivo che presenta l'errore e continuerà l'esecuzione senza di esso. Se il parametro è impostato suallocate
, il sistema cercherà di rimuovere il dispositivo fallito ed assegnerà lo spazio su di un nuovo dispositivo come sostituto del dispositivo in questione; questa politica si comporterà come la politicaremove
se nessun dispositivo e spazio idonei possono essere assegnati come sostituti. Per informazioni sulle politiche relative all'errore del mirror di LVM consultare Sezione 4.4.3.1, «Politica sugli errori del volume logico speculare». - Per la versione di Red Hat Enterprise Linux 6 lo stack di Linux è stato migliorato in modo da poter processare le informazioni sui limiti relativi all'I/O forniti dal rivenditore. Ciò permette ai tool di gestione per lo storage, incluso LVM, di ottimizzare l'accesso ed il posizionamento dei dati. Questo supporto può essere disabilitato modificando i valori predefiniti di
data_alignment_detection
edata_alignment_offset_detection
nel filelvm.conf
. A tale scopo non è consigliato disabilitare questo supporto.Per informazioni sull'allineamento dei dati in LVM e per la modifica dei valori predefiniti didata_alignment_detection
edata_alignment_offset_detection
, consultare la documentazione relativa al file/etc/lvm/lvm.conf
, presente anche in Appendice B, File di configurazione LVM. Per informazioni generali sul supporto per lo stack I/O ed i relativi limiti in Red Hat Enterprise Linux 6, consultare la Storage Administration Guide. - Con Red Hat Enterprise Linux 6, il Device Mapper fornisce un supporto diretto per l'integrazione di
udev
. Ciò fornisce una sincronizzazione del Device Mapper con tutta la processazioneudev
relativa ai dispositivi del Device Mapper, incluso i dispositivi LVM. Per informazioni sul supporto del Device Mapper per il device managerudev
, consultare Sezione A.3, «Supporto Device Mapper per il Device Manager udev». - Per la release Red Hat Enterprise Linux 6 usare il comando
lvconvert --repair
per riparare un mirror dopo un errore del disco. Tale comando ripristinerà lo stato corretto del mirror. Per informazioni sul comandolvconvert --repair
consultare Sezione 4.4.3.3, «Correzione di un dispositivo logico speculare». - Con la release di Red Hat Enterprise Linux 6 è possibile usare l'opzione
--merge
del comandolvconvert
per eseguire il merge di una snapshot nel proprio volume d'origine. Per informazioni sul merge delle snapshot consultare Sezione 4.4.5, «Unione dei volumi della snapshot». - Con la release Red Hat Enterprise Linux 6 sarà possibile usare l'opzione
--splitmirrors
del comandolvconvert
per separare una immagine ridondante di un volume logico speculare in modo da formare un nuovo volume logico. Per informazioni su come utilizzare questa opzione consultare Sezione 4.4.3.2, «Separazione di una immagine ridondante del volume logico speculare». - Sarà ora possibile creare un log del mirror per un dispositivo logico speculare, il quale a sua volta sarà speculare, tramite l'opzione
--mirrorlog mirrored
del comandolvcreate
durante la creazione di un dispositivo logico speculare. Per informazioni su come usare questa opzione consultare Sezione 4.4.3, «Creazione volumi speculari».
1.1.2. Funzioni nuove e modificate di Red Hat Enterprise Linux 6.1
- La release Red Hat Enterprise Linux 6.1 supporta la creazione dei volumi logici delle snapshot dei volumi logici speculari. La creazione di una snapshot di un volume speculare è simile alla creazione di una snapshot di un volume logico segmentato o lineare. Per informazioni sulla creazione delle snapshot dei volumi consultare Sezione 4.4.4, «Creazione dei volumi della snapshot».
- Durante l'estensione di un volume LVM sarà possibile usare l'opzione
--alloc cling
del comandolvextend
per specificare la politica di assegnazionecling
. Questa politica selezionerà lo spazio sugli stessi volumi fisici come segmento ultimo del volume logico esistente. Se lo spazio sui volumi fisici non è sufficiente e l'elenco dei tag è definito nel filelvm.conf
, LVM controllerà la presenza di tag collegati ai volumi fisici e cercherà di corrispondere i tag dei volumi fisici tra estensioni esistenti e quelle nuove.Per informazioni su come estendere i volumi speculari LVM con l'opzione--alloc cling
del comandolvextend
consultare Sezione 4.4.12.2, «Estensione di un volume logico con politica di assegnazionecling
». - È ora possibile specificare argomenti multipli
--addtag
e--deltag
all'interno di un singolo comandopvchange
,vgchange
, olvchange
. Per informazioni su come aggiungere o rimuovere i tag consultare Sezione C.1, «Come aggiungere e rimuovere i tag dagli oggetti». - È stato esteso l'elenco di caratteri permessi in LVM dei tag dell'oggetto ed ora sarà possibile utilizzare "/", "=", "!", ":", "#", and "&". Per informazioni sui tag di LVM consultare Appendice C, Tag oggetto LVM.
- È possibile combinare RAID0 (striping) e RAID1 (mirroring) in un unico volume logico. La creazione di un volume logico insieme alla determinazione del numero dei mirror (
--mirrors X
) ed al numero di segmenti (--stripes Y
) genererà un dispositivo mirror con dispositivi segmentati. Per maggiori informazioni su come creare volumi logici speculari consultate Sezione 4.4.3, «Creazione volumi speculari». - Con Red Hat Enterprise Linux 6.1 se desiderate creare un backup di dati consistente su di un volume logico clusterizzato sarà possibile attivare il volume e successivamente creare la snapshot. Per informazioni su come attivare i volumi logici su un nodo consultate Sezione 4.7, «Attivazione dei volumi logici su nodi individuali in un cluster».
1.2. Volumi logici
- Capacità più flessibileQuando si utilizzano i volumi logici i file system possono essere estesi attraverso dischi multipli, poichè è possibile aggregare sia i dischi che le partizioni in un volume logico singolo.
- Pool di storage ridimensionabiliÈ possibile estendere o ridurre la dimensione dei volumi logici con alcuni comandi software semplici, senza riformattare e ripartizionare i dispositivi del disco interessati.
- Riassegnazione dati onlinePer implementare sottosistemi di storage nuovi, più veloci o più resistenti, è possibile spostare i dati mentre il vostro sistema è attivo. I dati possono essere riassegnati sui dischi durante l'utilizzo dei dischi stessi. Per esempio, è possibile svuotare un disco di tipo hot-swappable prima di rimuoverlo.
- Come nominare un dispositivo in modo convenienteI volumi dello storage locale possono essere gestiti in gruppi definiti dall'utente, i quali possono essere chiamati a vostra discrezione.
- Disk stripingÈ possibile creare un volume logico in grado di scrivere i dati su due o più dischi. Ciò potrebbe aumentarne drammaticamente le prestazioni.
- Volumi in mirroringI volumi logici forniscono un modo molto conveniente per configurare un mirror per i vostri dati.
- Snapshot del volumeUtilizzando i volumi logici è possibile eseguire delle snapshot del dispositivo per un backup conforme, oppure per provare gli effetti delle modifiche senza interessare i dati reali.
1.3. Panoramica sull'architettura LVM
- capacità più flessibile
- conservazione dei metadati più efficiente
- un formato migliore per il processo di ripristino
- nuovo formato per i metadati ASCII
- modifiche atomiche per i metadati
- copie ridondanti di metadati
vgconvert
. Per informazioni su come convertire il formato dei metadati, consultate la pagina man di vgconvert
(8).

Figura 1.1. Componenti del volume logico LVM
1.4. LVM Logical Volume Manager (CLVM)
- Se solo uno nodo del vostro sistema ha bisogno di accedere allo storage da voi configurato come volumi logici, allora sarà possibile utilizzare LVM senza le estensioni CLVM, in questo modo i volumi logici creati con il nodo in questione risulteranno locali al nodo.
- Se utilizzate un sistema clusterizzato per il processo di failover dove un singolo nodo accede allo storage, e risulta attivo in ogni dato momento, allora è consigliato utilizzare gli agent High Availability Logical Volume Management (HA-LVM). Per informazioni su HA-LVM, consultare la guida Configurazione e gestione di un Red Hat Cluster.
- Se più nodi del cluster hanno la necessità di accedere al vostro storage, il quale verrà di conseguenza condiviso tra i nodi attivi, allora sarà necessario utilizzare CLVM. CLVM permette ad un utente di configurare i volumi logici su di uno storage condiviso, bloccando l'accesso allo storage fisico durante la configurazione di un volume logico ed utilizza i servizi di bloccaggio clusterizzati per gestire lo storage condiviso.
clmvd
, devono essere in esecuzione. Il demone clmvd
rappresenta l'estensione più importante del clustering per LVM. Il demone clvmd
viene eseguito su ogni computer del cluster e distribuisce gli aggiornamenti dei metadati LVM in un cluster, presentando ad ogni computer la stessa visuale dei volumi logici. Per informazioni su come installare e amministrare High Availability Add-On consultare la Configurazione e gestione di un Red Hat Cluster.
clmvd
sia stato iniziato al momento dell'avvio eseguire un comando chkconfig ... on
sul servizio clvmd
nel modo seguente:
# chkconfig clvmd on
clvmd
non è stato iniziato sarà possibile eseguire un comando service ... start
sul servizio clvmd
nel modo seguente:
# service clvmd start
Avvertimento

Figura 1.2. Panoramica di CLVM
Nota
lvm.conf
per il blocco dell'intero cluster. Le informazioni su come configurare il file lvm.conf
per il supporto del blocco clusterizzato sono disponibili all'interno dello stesso file lvm.conf
. Per informazioni sul file lvm.conf
consultare Appendice B, File di configurazione LVM.
1.5. Panoramica del documento
- Capitolo 2, Componenti di LVM descrive i componenti che costituiscono un volume logico LVM.
- Capitolo 3, Panoramica sull'amministrazione di LVM fornisce una panoramica sulle fasi di base da seguire per la configurazione dei volumi logici LVM, sia se state usando i comandi Command Line Interface (CLI) di LVM che la Graphical User Interface (GUI).
- Capitolo 4, Amministrazione di LVM con i comandi CLI riassume i compiti amministrativi da eseguire con i comandi CLI di LVM, per la creazione ed il mantenimento dei volumi logici.
- Capitolo 5, Esempi di configurazione LVM fornisce una varietà di esempi relativi alla configurazione di LVM.
- Capitolo 6, Troubleshooting di LVM fornisce le informazioni per il troubleshooting per una varietà di problematiche relative a LVM.
- Capitolo 7, Amministrazione di LVM con la GUI di LVM riassume il funzionamento della GUI di LVM.
- Appendice A, Device Mapper descrive il Device Mapper usato da LVM per mappare i volumi fisici e logici.
- Appendice B, File di configurazione LVM descrive i file di configurazione di LVM.
- Appendice C, Tag oggetto LVM descrive i tag dell'oggetto LVM e dell'host.
- Appendice D, Metadati del gruppo di volumi LVM descrive i metadati del gruppo di volumi LVM, ed include una copia dei metadati per un gruppo di volumi LVM.
Capitolo 2. Componenti di LVM
2.1. Volumi fisici
2.1.1. Disposizione del volume fisico LVM
Nota

Figura 2.1. Disposizione del volume fisico
2.1.2. Partizioni multiple su di un disco
- Amministrazione più convenienteÈ più semplice controllare l'hardware in un sistema se ogni disco reale appare solo una volta. Tale tendenza è particolarmente vera se un disco fallisce. In aggiunta, i volumi fisici multipli su di un disco singolo potrebbero causare un avvertimento da parte kernel sulle diverse partizioni sconosciute al momento dell'avvio.
- Prestazioni relative allo stripingLVM non è in grado di indicare la presenza di due volumi fisici sullo stesso disco fisico. Per questo motivo se create un volume logico segmentato quando due volumi fisici si trovano sullo stesso disco fisico, i segmenti più piccoli possono essere presenti su diverse partizioni dello stesso disco. Tale comportamento potrebbe risultare in una diminuzione delle prestazioni e non in un aumento.
2.2. Gruppi di volumi
2.3. Volumi logici LVM
2.3.1. Volumi lineari

Figura 2.2. Mappatura estensione
VG1
con una estensione fisica di dimensione pari a 4MB. Questo gruppo di volumi include 2 volumi fisici chiamati PV1
e PV2
. I volumi fisici sono divisi in unità di 4MB poichè questa è la dimensione dell'estensione. In questo esempio PV1
ha una dimensione di 100 estensioni (400MB), e PV2
una dimensione di 200 estensioni (800MB). È possibile creare un volume lineare con una dimensione che và da 1 a 300 estensioni (da 4MB a 1200MB). In questo esempio il volume lineare chiamato LV1
ha una dimensione di 300 estensioni.

Figura 2.3. Volume lineare con volumi fisici diversi
LV1
, con una dimensione di 250 estensioni (1000MB) e LV2
con una dimensione di 50 estensioni (200MB).

Figura 2.4. Multiple Logical Volumes
2.3.2. Volumi logici segmentati
- il primo segmento di dati viene scritto su PV1
- il secondo segmento viene scritto su PV2
- la terza viene scritta su PV3
- il quarto segmento viene scritto su PV1

Figura 2.5. Processo di stripping dei dati su tre PV
2.3.3. Volumi logici speculari

Figura 2.6. Volume logico speculare
2.3.4. Volumi delle snapshot
Nota
Nota
Nota
/usr
, avrà bisogno di meno spazio rispetto ad una snapshot con volume sul quale vengono eseguiti un numero più elevato di processi di scrittura, come ad esempio /home
.
- È consigliato fare una istantanea se è necessario eseguire un backup su di un volume logico senza arrestare l'aggiornamento 'live' dei dati da parte del sistema.
- È possibile eseguire il comando
fsck
sul file system di una snapshot per controllare l'integrità del file system e determinare se il file system originale ha bisogno di correzioni. - Poichè è possibile eseguire la lettura e scrittura della snapshot, è possibile testare le applicazioni con i dati di produzione eseguendo una snapshot e successivamente alcuni test senza interessare i dati reali.
- È possibile altresì creare i volumi LVM per un loro utilizzo con tecnologie di virtualizzazione Red Hat. Le snapshot LVM possono essere usate per creare snapshot di immagini del guest virtuale. Le suddette snapshot sono in grado di fornire un metodo conveniente per la modifica dei guest esistenti o per la creazione di nuovi guest con storage aggiuntivo minimo. Per maggiori informazioni sulla creazione di snapshot LVM per guest virtualizzati consultare la Red Hat Enterprise Linux Virtualization Guide.
--merge
del comando lvconvert
per eseguire il merge di una snapshot nel proprio volume d'origine. Questa funzione può essere usata se si desidera eseguire un rollback del sistema in presenza di perdita di dati o file o se avete la necessità di ripristinare il sistema ad uno stato precedente. Dopo il merge del volume della snapshot, il volume logico risultante avrà il nome del volume d'origine, il numero minore, l'UUID con una conseguente rimozione della snapshot sulla quale è stato eseguito il merge. Per informazioni su come usare questa opzione consultare Sezione 4.4.5, «Unione dei volumi della snapshot».
Capitolo 3. Panoramica sull'amministrazione di LVM
3.1. Creazione dei volumi LVM in un cluster
clmvd
, deve essere avviato al momento dell'avvio come riportato in Sezione 1.4, «LVM Logical Volume Manager (CLVM)».
lvm.conf
per il blocco dell'intero cluster. Le informazioni su come configurare il file lvm.conf
per il supporto del blocco clusterizzato sono disponibili all'interno dello stesso file lvm.conf
. Per informazioni sul file lvm.conf
consultare Appendice B, File di configurazione LVM.
Avvertimento
3.2. Panoramica sulla creazione del volume logico
- Inizializzare le partizioni da utilizzare per il volume LVM come volume fisico (tale operazione aggiungerà loro una etichetta).
- Creazione di un gruppo di volumi
- Creazione di un volume logico.
Nota
- Create un file system GFS2 sul volume logico con il comando
mkfs.gfs2
. - Create un nuovo mount point con il comando
mkdir
. In un sistema clusterizzato, create il mount point su tutti i nodi nel cluster. - Montate il file system. Potreste aggiungere una riga a
fstab
per ogni nodo nel sistema.
3.3. Sviluppo di un file system su di un volume logico
- Create un nuovo volume fisico.
- Estendete il gruppo di volumi che contiene il volume logico con il file system che state sviluppando in modo da includere il nuovo volume fisico.
- Aumentate il volume logico in modo da includere il nuovo volume fisico.
- Sviluppo del file system.
3.4. Backup del volume logico
lvm.conf
. Per default, il backup dei metadati viene conservato in /etc/lvm/backup
mentre gli archivi vengono conservati in /etc/lvm/archive
. La durata dell'archiviazione degli archivi dei metadati in /etc/lvm/archive
ed il numero dei file d'archivio è determinato dai parametri impostati nel file lvm.conf
. Un backup giornaliero del sistema dovrebbe includere i contenuti della directory /etc/lvm
nel backup stesso.
/etc/lvm/backup
con il comando vgcfgbackup
. È possibile ripristinare i metadati con il comando vgcfgrestore
. I comandi vgcfgbackup
e vgcfgrestore
sono descritti in Sezione 4.3.12, «Esecuzione del back up dei metadati del gruppo di volumi».
3.5. Registrazione
- output/errore standard
- syslog
- file di log
- funzione di log esterna
/etc/lvm/lvm.conf
, il quale viene descritto in Appendice B, File di configurazione LVM.
Capitolo 4. Amministrazione di LVM con i comandi CLI
Nota
clvmd
sia in esecuzione. Per maggiori informazioni consultare Sezione 3.1, «Creazione dei volumi LVM in un cluster».
4.1. Come utilizzare i comandi CLI
--units
in un comando, la lettere minuscole indicano che le unità sono multipli di 1024, mentre lettere maiuscole indicano che le stesse unità sono multiple di 1000.
lvol0
in un gruppo di volumi vg0
può essere specificato come vg0/lvol0
. Dove un elenco dei gruppi di volumi è necessario ma lasciato vuoto verrà visualizzato un elenco di tutti i gruppi di volumi. Dove sarà necessario un elenco di volumi logici ma al contrario viene fornito un gruppo di volumi, verrà visualizzato un elenco di tutti i volumi logici per quel gruppo di volumi. Per esempio il comando lvdisplay vg0
visualizzerà tutti i volumi logici nel gruppo di volumi vg0
.
-v
il quale può essere inserito numerose volte per aumentare la verbosità di un output. Per esempio, di seguito vengono mostrati gli esempi relativi all'output predefinito del comando lvcreate
.
# lvcreate -L 50MB new_vg
Rounding up size to full physical extent 52.00 MB
Logical volume "lvol0" created
lvcreate
con l'argomento -v
.
# lvcreate -v -L 50MB new_vg
Finding volume group "new_vg"
Rounding up size to full physical extent 52.00 MB
Archiving volume group "new_vg" metadata (seqno 4).
Creating logical volume lvol0
Creating volume group backup "/etc/lvm/backup/new_vg" (seqno 5).
Found volume group "new_vg"
Creating new_vg-lvol0
Loading new_vg-lvol0 table
Resuming new_vg-lvol0 (253:2)
Clearing start of logical volume "lvol0"
Creating volume group backup "/etc/lvm/backup/new_vg" (seqno 5).
Logical volume "lvol0" created
-vv
, -vvv
o the -vvvv
per visualizzare informazioni più dettagliate sull'esecuzione del comando. L'argomento -vvvv
fornisce la quantità massima di informazioni in questo momento. Il seguente esempio mostra solo le prime righe dell'output per il comando lvcreate
con l'argomento -vvvv
.
# lvcreate -vvvv -L 50MB new_vg
#lvmcmdline.c:913 Processing: lvcreate -vvvv -L 50MB new_vg
#lvmcmdline.c:916 O_DIRECT will be used
#config/config.c:864 Setting global/locking_type to 1
#locking/locking.c:138 File-based locking selected.
#config/config.c:841 Setting global/locking_dir to /var/lock/lvm
#activate/activate.c:358 Getting target version for linear
#ioctl/libdm-iface.c:1569 dm version OF [16384]
#ioctl/libdm-iface.c:1569 dm versions OF [16384]
#activate/activate.c:358 Getting target version for striped
#ioctl/libdm-iface.c:1569 dm versions OF [16384]
#config/config.c:864 Setting activation/mirror_region_size to 512
...
--help
del comando.
commandname --help
man
:
man commandname
man lvm
fornisce informazioni generali online su LVM.
/dev/sdf
, facente parte di un gruppo di volumi e, quando nuovamente collegato, chiamato /dev/sdk
. LVM sarà in grado di trovare il volume fisico poichè è in grado di identificare l'UUID corrispondente e non il nome del dispositivo. Per informazioni su come speficicare l'UUID di un volume fisico durante la creazione di un volume fisico, consultate la Sezione 6.4, «Recupero dei metadati del volume fisico».
4.2. Amministrazione del volume fisico
4.2.1. Creazione dei volumi fisici
4.2.1.1. Impostazione del tipo di partizione
fdisk
o cfdisk
o equivalente. Per tutti i dispositivi a disco solo la tabella delle partizioni deve essere rimossa. Tale processo distruggerà tutti i dati sul disco in questione. È possibile rimuovere una tabella delle partizioni esistente azzerando il primo settore con il seguente comando:
dd if=/dev/zero of=PhysicalVolume bs=512 count=1
4.2.1.2. Inizializzazione dei volumi fisici
pvcreate
per inizializzare un dispositivo a blocchi da usare come volume fisico. L'inizializzazione è analoga alla formattazione di un file system.
/dev/sdd1
, /dev/sde1
, e /dev/sdf1
per l'uso come volumi fisici LVM.
pvcreate /dev/sdd1 /dev/sde1 /dev/sdf1
pvcreate
sulla partizione. Nel seguente esempio /dev/hdb1
viene inizializzato come volume fisico LVM, ed usato in un secondo momento come parte di un volume logico LVM.
pvcreate /dev/hdb1
4.2.1.3. Scansione per dispositivi a blocchi
lvmdiskscan
, come riportato nel seguente esempio.
# lvmdiskscan
/dev/ram0 [ 16.00 MB]
/dev/sda [ 17.15 GB]
/dev/root [ 13.69 GB]
/dev/ram [ 16.00 MB]
/dev/sda1 [ 17.14 GB] LVM physical volume
/dev/VolGroup00/LogVol01 [ 512.00 MB]
/dev/ram2 [ 16.00 MB]
/dev/new_vg/lvol0 [ 52.00 MB]
/dev/ram3 [ 16.00 MB]
/dev/pkl_new_vg/sparkie_lv [ 7.14 GB]
/dev/ram4 [ 16.00 MB]
/dev/ram5 [ 16.00 MB]
/dev/ram6 [ 16.00 MB]
/dev/ram7 [ 16.00 MB]
/dev/ram8 [ 16.00 MB]
/dev/ram9 [ 16.00 MB]
/dev/ram10 [ 16.00 MB]
/dev/ram11 [ 16.00 MB]
/dev/ram12 [ 16.00 MB]
/dev/ram13 [ 16.00 MB]
/dev/ram14 [ 16.00 MB]
/dev/ram15 [ 16.00 MB]
/dev/sdb [ 17.15 GB]
/dev/sdb1 [ 17.14 GB] LVM physical volume
/dev/sdc [ 17.15 GB]
/dev/sdc1 [ 17.14 GB] LVM physical volume
/dev/sdd [ 17.15 GB]
/dev/sdd1 [ 17.14 GB] LVM physical volume
7 disks
17 partitions
0 LVM physical volume whole disks
4 LVM physical volumes
4.2.2. Visualizzazione dei volumi fisici
pvs
, pvdisplay
, e pvscan
.
pvs
fornisce le informazioni sul volume fisico attraverso un formato configurabile, mostrando una riga per volume fisico. Il comando pvs
è idoneo per un controllo del formato ed è utile per lo scripting. Per informazioni su come utilizzare il comando pvs
per personalizzare l'output desiderato consultate Sezione 4.8, «Personalizzazione dei riporti per LVM».
pvdisplay
fornisce un output verboso con diverse righe per ogni volume fisico. Esso visualizza le proprietà fisiche (dimensione, estensioni, gruppo di volumi ecc) in un formato fisso.
pvdisplay
per un volume fisico singolo.
# pvdisplay
--- Physical volume ---
PV Name /dev/sdc1
VG Name new_vg
PV Size 17.14 GB / not usable 3.40 MB
Allocatable yes
PE Size (KByte) 4096
Total PE 4388
Free PE 4375
Allocated PE 13
PV UUID Joqlch-yWSj-kuEn-IdwM-01S9-XO8M-mcpsVe
pvscan
esegue la scansione di tutti i dispositivi a blocchi LVM nel sistema per la presenza di volumi fisici.
# pvscan
PV /dev/sdb2 VG vg0 lvm2 [964.00 MB / 0 free]
PV /dev/sdc1 VG vg0 lvm2 [964.00 MB / 428.00 MB free]
PV /dev/sdc2 lvm2 [964.84 MB]
Total: 3 [2.83 GB] / in use: 2 [1.88 GB] / in no VG: 1 [964.84 MB]
lvm.conf
, così facendo questo comando non esegue la scansione dei volumi fisici specifici. Per informazioni su come utilizzare i filtri per controllare su quali dispositivi eseguire la scansione consultate la Sezione 4.5, «Controllo delle scansioni del dispositivo LVM con i filtri».
4.2.3. Come impedire l'assegnazione su di un volume fisico
pvchange
. Tale operazione potrebbe essere necessaria se sono presenti sul disco alcuni errori, oppure se desiderate rimuovere il volume fisico.
/dev/sdk1
.
pvchange -x n /dev/sdk1
-xy
del comando pvchange
, per abilitare l'assegnazione dove precedentemente non permessa.
4.2.4. Come variare la dimensione di un volume fisico
pvresize
per aggiornare LVM con la nuova dimensione. Potrete eseguire questo comando mentre LVM utilizza il volume fisico.
4.2.5. Rimozione dei volumi fisici
pvremove
. L'esecuzione del comando pvremove
azzererà i metadati di LVM su di un volume fisico vuoto.
vgreduce
, come descritto in Sezione 4.3.6, «Rimozione dei volumi fisici da un gruppo di volumi».
# pvremove /dev/ram15
Labels on physical volume "/dev/ram15" successfully wiped
4.3. Amministrazione del gruppo di volumi
4.3.1. Creazione dei gruppi di volumi
vgcreate
. Il comando vgcreate
crea un nuovo gruppo di volumi con un nome ed aggiunge ad esso almeno un volume fisico.
vg1
il quale contiene i volumi fisici /dev/sdd1
e /dev/sde1
.
vgcreate vg1 /dev/sdd1 /dev/sde1
vgcreate
se il valore predefinito non risulta essere idoneo utilizzando l'argomento -s
. È possibile inserire dei limiti sul numero di volumi logici o fisici ospitati dal gruppo di volumi, utilizzando gli argomenti -p
e -l
del comando vgcreate
.
normal
. È possibile utilizzare l'argomento --alloc
del comando vgcreate
, per specificare una policy di assegnazione di tipo contiguous
, anywhere
, o cling
.
contiguous
le nuove estensioni sono adiacenti alle estensioni esistenti. Se è disponibile un numero sufficiente di estensioni per poter soddisfare una richiesta di assegnazione, e se la politica di assegnazione normal
non le usa, la politica anywhere
sarà in grado di farlo anche a rischio di ridurre la prestazione, a causa del posizionamento di due segmenti sullo stesso volume fisico. La politica cling
posiziona le nuove estensioni sullo stesso volume fisico delle estensioni esistenti, nello stesso segmento del volume logico. Queste politiche possono essere modificate usando il comando vgchange
.
cling
insieme ai tag LVM per specificare i volumi aggiuntivi da usare durante l'estensione di un volume LVM consultare Sezione 4.4.12.2, «Estensione di un volume logico con politica di assegnazione cling
».
normal
sono necessarie solo in casi particolari, quando è richiesto specificare un'assegnazione di estensioni non standard o non comune.
/dev
con la seguente disposizione:
/dev/vg/lv/
myvg1
e myvg2
, ognuno dei quali con tre logical volumes chiamati lvo1
, lvo2
, e lvo3
, ciò creerà sei file speciali del dispositivo:
/dev/myvg1/lv01 /dev/myvg1/lv02 /dev/myvg1/lv03 /dev/myvg2/lv01 /dev/myvg2/lv02 /dev/myvg2/lv03
4.3.2. Creazione dei gruppi di volumi in un cluster
vgcreate
, in modo simile ad una loro creazione su di un nodo singolo.
-c n
del comando vgcreate
.
vg1
il quale contiene i volumi fisici /dev/sdd1
e /dev/sde1
.
vgcreate -c n vg1 /dev/sdd1 /dev/sde1
-c
del comando vgchange
, come riportato in Sezione 4.3.7, «Modifica dei parametri di un gruppo di volumi».
vgs
, il quale mostra l'attributo c
se il volume è clusterizzato. Il seguente comando mostra gli attributi dei gruppi di volumi VolGroup00
e testvg1
. In questo esempio VolGroup00
non è clusterizzato mentre testvg1
risulta esserlo, come riportato dall'attributo c
con l'intestazione Attr
.
[root@doc-07]# vgs
VG #PV #LV #SN Attr VSize VFree
VolGroup00 1 2 0 wz--n- 19.88G 0
testvg1 1 1 0 wz--nc 46.00G 8.00M
vgs
consultare Sezione 4.3.4, «Come visualizzare i gruppi di volumi» Sezione 4.8, «Personalizzazione dei riporti per LVM», e la pagina man di vgs
.
4.3.3. Aggiunta di un volume fisico ad un gruppo di volumi
vgextend
. Il comando vgextend
aumenta la capacità di un gruppo di volumi aggiungendo uno o più volumi fisici disponibili.
/dev/sdf1
al gruppo di volumi vg1
.
vgextend vg1 /dev/sdf1
4.3.4. Come visualizzare i gruppi di volumi
vgs
e vgdisplay
.
vgscan
può essere utilizzato per visualizzare i gruppi di volumi, anche se il suo scopo primario è quello di eseguire la scansione di tutti i dischi per i gruppi di volumi e ricreare il file cache di LVM. Per informazioni sul comando vgscan
, consultate la Sezione 4.3.5, «Scansione dischi per i gruppi di volumi per la creazione del file di cache».
vgs
fornisce le informazioni sul gruppo di volumi attraverso una forma configurabile, mostrando una riga per gruppo. Il comando vgs
è idoneo per un controllo del formato ed è utile per lo scripting. Per informazioni su come utilizzare il comando vgs
per personalizzare il vostro output consultate la Sezione 4.8, «Personalizzazione dei riporti per LVM».
vgdisplay
mostra le proprietà del gruppo di volumi (come ad esempio dimensione, estensioni, numero di volumi fisici, ecc) attraverso una forma fissa. Il seguente esempio mostra l'output di un comando vgdisplay
per il gruppo di volumi new_vg
. Se non specificate un gruppo di volumi, tutti i gruppi di volumi esistenti verranno visualizzati.
# vgdisplay new_vg
--- Volume group ---
VG Name new_vg
System ID
Format lvm2
Metadata Areas 3
Metadata Sequence No 11
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 0
Max PV 0
Cur PV 3
Act PV 3
VG Size 51.42 GB
PE Size 4.00 MB
Total PE 13164
Alloc PE / Size 13 / 52.00 MB
Free PE / Size 13151 / 51.37 GB
VG UUID jxQJ0a-ZKk0-OpMO-0118-nlwO-wwqd-fD5D32
4.3.5. Scansione dischi per i gruppi di volumi per la creazione del file di cache
vgscan
esegue la scansione di tutti i dispositivi a disco supportati nel sistema, andando alla ricerca dei volumi fisici LVM e dei gruppi dei volumi. Ciò crea il file di cache di LVM in /etc/lvm/.cache
, il quale mantiene un elenco di dispositivi LVM correnti.
vgscan
automaticamente al momento dell'avvio del sistema ed in altri momenti durante il funzionamento di LVM, ad esempio durante l'esecuzione del comando vgcreate
, oppure quando LVM rileva una qualsiasi inconsistenza.
Nota
vgscan
se modificate la configurazione del vostro hardware aggiungendo o rimuovendo il dispositivo da un nodo, rendendo così visibili al sistema i nuovi dispositivi i quali non erano presenti al momento dell'avvio. Tale procedura potrebbe essere necessaria, per esempio, se aggiungete nuovi dischi al sistema su di un SAN, oppure se eseguite l'hotplug di un nuovo disco etichettato come volume fisico.
lvm.conf
è possibile definire un filtro per limitare la scansione, e quindi evitare dispositivi specifici. Per maggiori informazioni su come utilizzare i filtri per controllare i dispositivi sui quali eseguire la scansione, consultate la Sezione 4.5, «Controllo delle scansioni del dispositivo LVM con i filtri».
vgscan
.
# vgscan
Reading all physical volumes. This may take a while...
Found volume group "new_vg" using metadata type lvm2
Found volume group "officevg" using metadata type lvm2
4.3.6. Rimozione dei volumi fisici da un gruppo di volumi
vgreduce
. Il comando vgreduce
riduce la capacità di un gruppo di volumi attraverso la rimozione di uno o più volumi fisici. Tale operazione libera i volumi fisici in modo da usarli in altri gruppi, oppure da rimuovere completamente dal sistema.
pvdisplay
.
# pvdisplay /dev/hda1
-- Physical volume ---
PV Name /dev/hda1
VG Name myvg
PV Size 1.95 GB / NOT usable 4 MB [LVM: 122 KB]
PV# 1
PV Status available
Allocatable yes (but full)
Cur LV 1
PE Size (KByte) 4096
Total PE 499
Free PE 0
Allocated PE 499
PV UUID Sd44tK-9IRw-SrMC-MOkn-76iP-iftz-OVSen7
pvmove
. Successivamente, utilizzate il comando vgreduce
per rimuovere il volume fisico:
/dev/hda1
dal gruppo di volumi my_volume_group
.
# vgreduce my_volume_group /dev/hda1
4.3.7. Modifica dei parametri di un gruppo di volumi
vgchange
viene usato per disattivare ed attivare i gruppi di volumi come descritto in Sezione 4.3.8, «Attivazione e disattivazione dei gruppi di volumi». Usare questo comando per modificare alcuni dei parametri del gruppo per un gruppo esistente.
vg00
a 128.
vgchange -l 128 /dev/vg00
vgchange
, consultate la pagina man di vgchange
(8).
4.3.8. Attivazione e disattivazione dei gruppi di volumi
-a
(--available
) del comando vgchange
.
my_volume_group
.
vgchange -a n my_volume_group
lvchange
, come descritto in Sezione 4.4.8, «Modifica dei parametri di un gruppo di volumi logici». Per informazioni su come attivare i volumi logici su nodi individuali in un cluster, consultate Sezione 4.7, «Attivazione dei volumi logici su nodi individuali in un cluster».
4.3.9. Rimozione dei gruppi di volumi
vgremove
.
# vgremove officevg
Volume group "officevg" successfully removed
4.3.10. Separazione di un gruppo di volumi
vgsplit
.
pvmove
per forzare la separazione.
smallvg
viene separato da quello vecchio bigvg
.
# vgsplit bigvg smallvg /dev/ram15
Volume group "smallvg" successfully split from "bigvg"
4.3.11. Come unire i gruppi di volumi
vgmerge
. Potrete unire un volume "sorgente" inattivo con un volume di "destinazione" attivo o inattivo, se le dimensioni dell'estensione fisica del volume risultano uguali e i sommari del volume logico e fisico di entrambi i gruppi di volumi sono adeguati ai limiti dei gruppi di volumi di destinazione.
my_vg
, nel gruppo di volumi attivo o inattivo databases
fornendo informazioni verbose sul runtime.
vgmerge -v databases my_vg
4.3.12. Esecuzione del back up dei metadati del gruppo di volumi
lvm.conf
. Per default, il backup dei metadati viene conservato in /etc/lvm/backup
mentre gli archivi sono conservati su /etc/lvm/archives
. È possibile eseguire il backup manuale dei metadati sul file /etc/lvm/backup
attraverso il comando vgcfgbackup
.
vgcfrestore
ripristina i metadati di un gruppo di volumi dall'archivio su tutti i volumi fisici nei gruppi di volumi.
vgcfgrestore
per recuperare i metadati del volume fisico, consultate la Sezione 6.4, «Recupero dei metadati del volume fisico».
4.3.13. Come rinominare un gruppo di volumi
vgrename
per rinominare un guppo di volumi esistente.
vg02
in my_volume_group
vgrename /dev/vg02 /dev/my_volume_group
vgrename vg02 my_volume_group
4.3.14. Come spostare un gruppo di volumi su di un altro sistema
vgexport
e vgimport
.
vgexport
rende un gruppo di volumi inattivo inaccessibile al sistema, ciò vi permetterà di distaccare i rispettivi volumi fisici. Il comando vgimport
rende un gruppo di volumi accessibile ad una macchina dopo che il comando vgexport
lo ha reso inattivo.
- Assicuratevi che nessun utente stia cercando di accedere ai file sui volumi attivi nel gruppo di volumi, successivamente smontate i volumi logici.
- Usate
-a n
del comandovgchange
per segnare il gruppo di volumi come inattivo, questo impedisce qualsiasi attività sul gruppo in questione. - Usate il comando
vgexport
per esportare il gruppo di volumi. Ciò impedisce il suo accesso da parte del sistema dal quale lo state rimuovendo.Dopo aver esportato il gruppo di volumi, il volume fisico verrà visualizzato in un gruppo di volumi esportato quando eseguirete il comandopvscan
, come riportato nel seguente esempio.[root@tng3-1]#
pvscan
PV /dev/sda1 is in exported VG myvg [17.15 GB / 7.15 GB free] PV /dev/sdc1 is in exported VG myvg [17.15 GB / 15.15 GB free] PV /dev/sdd1 is in exported VG myvg [17.15 GB / 15.15 GB free] ...Prima di arrestare il sistema sarà possibile scollegare i dischi che costituiscono il gruppo di volumi, ricollegandoli al nuovo sistema. - Una volta aver collegato i dischi al nuovo sistema, utilizzate il comando
vgimport
per importare il gruppo di volumi, rendendolo accessibile al nuovo sistema. - Attivate il gruppo di volumi con l'argomento
-a y
del comandovgchange
. - Montate il file system in modo da renderlo accessibile ed utilizzabile.
4.3.15. Come ricreare una directory del gruppo di volumi
vgmknodes
. Questo comando controlla i file speciali di LVM2 nella directory /dev
necessari per attivare i volumi logici. Esso crea qualsiasi file speciale mancante e rimuove quelli non utilizzati.
vgmknodes
nel comando vgscan
specificando l'argomento mknodes
sul comando vgscan
.
4.4. Amministrazione del volume logico
4.4.1. Creazione di volumi logici lineari
lvcreate
. Se non specificate un nome per il volume logico, verrà utilizzato il nome predefinito lvol#
, dove # è il numero interno del volume logico.
vg1
.
lvcreate -L 10G vg1
testlv
nel gruppo di volume testvg
, creando il dispositivo a blocchi /dev/testvg/testlv
.
lvcreate -L1500 -n testlv testvg
gfslv
dalle tre estensioni nel gruppo di volumi vg0
.
lvcreate -L 50G -n gfslv vg0
-l
del comando lvcreate
per specificare la dimensione in estensioni del volume logico. È possibile utilizzare questo argomento per specificare la percentuale del gruppo di volumi da utilizzare per il volume logico. Il seguente comando crea un volume logico chiamato mylv
che utilizza il 60% dello spazio totale nel gruppo di volumi testvol
.
lvcreate -l 60%VG -n mylv testvg
-l
del comando lvcreate
, per specificare la percentuale dello spazio libero restante in un gruppo di volumi come dimensione del volume logico. Il seguente comando crea un volume logico chiamato yourlv
, il quale utilizza tutto lo spazio non assegnato nel gruppo di volumi testvol
.
lvcreate -l 100%FREE -n yourlv testvg
-l
del comando lvcreate
per creare un volume logico che utilizzi l'intero gruppo di volumi. Un altro modo per creare un volume logico che utilizzi l'intero gruppo di volumi è tramite il comando vgdisplay
per trovare la dimensione "PE totale", e utilizzare i risultati ottenuti come input per il comando lvcreate
.
mylv
in grado di riempire il gruppo di volumi chiamato testvg
.
#vgdisplay testvg | grep "Total PE"
Total PE 10230 #lvcreate -l 10230 testvg -n mylv
lvcreate
. Il seguente comando crea un logical volume chiamato testlv
nel gruppo di volumi testvg
, assegnato dal volume fisico /dev/sdg1
,
lvcreate -L 1500 -ntestlv testvg /dev/sdg1
/dev/sda1
, e dalle estensioni 50 fino a 124 del volume fisico /dev/sdb1
nel gruppo di volumi testvg
.
lvcreate -l 100 -n testlv testvg /dev/sda1:0-24 /dev/sdb1:50-124
/dev/sda1
, continuando la creazione del volume logico dall'estensione 100.
lvcreate -l 100 -n testlv testvg /dev/sda1:0-25:100-
ereditata
, per questo motivo viene applicata la stessa politica del gruppo di volumi. Queste politiche possono essere modificate utilizzando il comando lvchange
. Per informazioni sulle policy di assegnazione consultate la Sezione 4.3.1, «Creazione dei gruppi di volumi».
4.4.2. Creazione dei volumi segmentati
-i
del comando lvcreate
. Ciò determina su quanti volumi fisici il volume logico verrà scritto. Il numero di segmenti non può essere maggiore del numero di volumi fisici presenti nel gruppo di volumi (se l'argomento --alloc anywhere
non è stato utilizzato).
gfslv
, ed è ottenuto dal gruppo di volumi vg0
.
lvcreate -L 50G -i2 -I64 -n gfslv vg0
stripelv
, e si trova nel gruppo di volumi testvg
. Il segmento userà i settori 0-49 di /dev/sda1
ed i settori 50-99 di /dev/sdb1
.
# lvcreate -l 100 -i2 -nstripelv testvg /dev/sda1:0-49 /dev/sdb1:50-99
Using default stripesize 64.00 KB
Logical volume "stripelv" created
4.4.3. Creazione volumi speculari
Nota
lvm.conf
deve essere impostato correttamente in modo da abilitare il blocco del cluster. Per un esempio su come creare un volume speculare in un cluster consultare Sezione 5.5, «Creazione di un volume logico LVM speculare in un cluster».
-m
del comando lvcreate
. Se usate -m1
verrà creato un mirror, il quale da' luogo a due copie del file system: un volume logico lineare più una copia. Allo stesso modo, se specificate -m2
verranno creati due mirror, dando luogo a tre copie del file system.
mirrorlv
, e creato dal gruppo di volumi vg0
:
lvcreate -L 50G -m1 -n mirrorlv vg0
-R
del comando lvcreate
per specificare la dimensione della regione in MB. È possibile modificare la dimensione predefinita della regione modificando l'impostazione di mirror_region_size
nel file lvm.conf
.
Nota
-R
del comando lvcreate
. Per esempio, se la dimensione del mirror è 1.5TB specificare -R 2
. Se la dimensione è di 3TB specificare -R 4
. Per una dimensione pari a 5TB, specificare -R 8
.
lvcreate -m1 -L 2T -R 2 -n mirror vol_group
--mirrorlog core
, ciò elimina la necessità di un dispositivo di log aggiuntivo, ma al tempo stesso avrà bisogno di una sincronizzazione dell'intero mirror ad ogni riavvio.
bigvg
. Il suddetto volume viene chiamato ondiskmirvol
e possiede un mirror singolo. Il volume è di 12MB e mantiene il log del mirror all'interno della memoria.
# lvcreate -L 12MB -m1 --mirrorlog core -n ondiskmirvol bigvg
Logical volume "ondiskmirvol" created
--alloc anywhere
del comando vgcreate
. Tale procedura potrebbe deteriorare le prestazioni, ma permette di creare un mirror anche se siete solo in possesso di due dispositivi.
vg0
consiste di soli due dispositivi. Questo comando crea un volume di 500 megabyte chiamato mirrorlv
, e creato dal gruppo di volumi vg0
.
lvcreate -L 500M -m1 -n mirrorlv -alloc anywhere vg0
Nota
--mirrorlog mirrored
. Il seguente comando crea un volume logico speculare dal gruppo di volumi bigvg
. Il suddetto volume viene chiamato twologvol
e possiede un mirror singolo. Il volume è di 12MB ed il log del mirror è speculare, con ogni log archiviato su di un dispositivo separato.
# lvcreate -L 12MB -m1 --mirrorlog mirrored -n twologvol bigvg
Logical volume "twologvol" created
--alloc anywhere
del comando vgcreate
. Tale procedura potrebbe deteriorare le prestazioni, ma permette di creare un log del mirror ridondante anche se non siete in possesso di un numero sufficiente di dispositivi per ogni log da archiviare su dispositivi separati rispetto ai segmenti del mirror.
nosync
in modo da indicare che la sincronizzazione iniziale dal primo dispositivo non risulta necessaria.
mirrorlv
, ed è stato ottenuto dal gruppo di volumi vg0
. La prima sezione del mirror si trova sul dispositivo /dev/sda1
, la seconda sul dispositivo /dev/sdb1
, ed il log è su /dev/sdc1
.
lvcreate -L 500M -m1 -n mirrorlv vg0 /dev/sda1 /dev/sdb1 /dev/sdc1
mirrorlv
, ed è ottenuto dal gruppo di volumi vg0
. La prima sezione del mirror è posizionata sulle estensioni da 0 a 499 del dispositivo /dev/sda1
, la seconda sezione è posizionata sulle estensioni da 0 a 499 del dispositivo /dev/sdb1
, ed il log del mirror inizia sull'estensione 0 di /dev/sdc1
. Esse sono estensioni di 1MB. Se qualsiasi delle estensioni specificate è stata assegnata, essa verrà ignorata.
lvcreate -L 500M -m1 -n mirrorlv vg0 /dev/sda1:0-499 /dev/sdb1:0-499 /dev/sdc1:0
Nota
--mirrors X
) ed al numero di segmenti (--stripes Y
) genererà un dispositivo mirror con dispositivi segmentati.
4.4.3.1. Politica sugli errori del volume logico speculare
mirror_image_fault_policy
e mirror_log_fault_policy
nella sezione activation
del file lvm.conf
. Dopo aver impostato i parametri su remove
, il sistema cercherà di rimuovere il dispositivo che presenta l'errore e continuerà l'esecuzione senza di esso. Se il parametro è impostato su allocate
, il sistema cercherà di rimuovere il dispositivo fallito ed assegnerà lo spazio su di un nuovo dispositivo come sostituto del dispositivo in questione; questa politica si comporterà come la politica remove
se nessun dispositivo e spazio idonei possono essere assegnati come sostituti.
mirror_log_fault_policy
è impostato su allocate
. L'uso di questo tipo di politica per i log è veloce ed ha la possibilità di mantenere lo stato della sincronizzazione dopo ogni processo di riavvio o di crash. Se impostate questa politica su remove
, quando un dispositivo fallisce il mirror utilizza un log presente in memoria ed il mirror non ricorderà il suo stato di sincronizzazione attraverso i processi di riavvio e di crash, eseguendo la risincronizzazione dell'intero mirror.
mirror_image_fault_policy
è impostato su remove
. Con questa politica se una immagine del mirror fallisce il mirror verrà convertito in un dispositivo non-speculare se è presente una copia idonea. La politica allocate
per un dispositivo mirror risulta essere lenta poichè essa necessita di una risincronizzazione dei dispositivi da parte del mirror, al tempo stesso essa conserva la caratteristica del mirror del dispositivo.
Nota
mirror_log_fault_policy
è impostato su allocate
, si cercherà di sostituire qualsiasi dispositivo fallito. Da notare tuttavia che non è possibile garantire durante la seconda fase l'implementazione di dispositivi precedentemente utilizzati dal mirror non compresi nel fallimento se altri dispositivi sono disponibili.
4.4.3.2. Separazione di una immagine ridondante del volume logico speculare
--splitmirrors
del comando lvconvert
, specificando il numero di immagini ridondanti da separare. Usare l'opzione --name
del comando per specificare un nome per il volume logico appena separato.
copy
dal volume logico speculare vg/lv
. Il nuovo volume logico conterrà le 'gambe' o sezioni del mirror. In questo esempio LVM seleziona il dispositivo da separare.
lvconvert --splitmirrors 2 --name copy vg/lv
copy
dal volume logico speculare vg/lv
. Il nuovo volume logico presenta due sezioni 'leg' del mirror le quali consistono nei dispositivi /dev/sdc1
e /dev/sde1
.
lvconvert --splitmirrors 2 --name copy vg/lv /dev/sd[ce]1
4.4.3.3. Correzione di un dispositivo logico speculare
lvconvert --repair
per riparare un mirror dopo un errore del disco. Tale comando ritornerà il mirror in uno stato conforme. lvconvert --repair
è un comando interattivo il quale richiederà all'utente di indicare se desidera sostituire i dispositivi falliti.
- Per saltare questa fase e sostituire tutti i dispositivi falliti specificare l'opzione
-y
sulla linea di comando. - Per saltare questa fase e non sostituire alcun dispositivo fallito specificare l'opzione
-f
sulla linea di comando. - Per saltare i prompt ed indicare politiche diverse per la sostituzione dell'immagine del mirror e del suo log specificare l'opzione
--use-policies
per usare le politiche di sostituzione del dispositivo specificate dai parametrimirror_log_fault_policy
emirror_device_fault_policy
nel filelvm.conf
.
4.4.3.4. Come modificare la configurazione del volume speculare
lvconvert
. È possibile usare questo comando per riconfigurare altri parametri del mirror di un volume logico esistente, come ad esempio corelog
.
lvconvert
per ripristinare il mirror. Questa procedura è presente in Sezione 6.3, «Processo di recupero da un LVM Mirror Failure».
vg00/lvol1
in un volume logico speculare.
lvconvert -m1 vg00/lvol1
vg00/lvol1
in un volume logico lineare rimuovendo la sezione del mirror.
lvconvert -m0 vg00/lvol1
4.4.4. Creazione dei volumi della snapshot
-s
del comando lvcreate
per creare un volume della snapshot. Il suddetto volume è modificabile.
Nota
Nota
/dev/vg00/snap
. Ciò creerà una snapshot del volume logico d'origine chiamata /dev/vg00/lvol1
. Se il volume logico originale contiene un file system, allora sarà possibile montare il volume logico della snapshot su di una directory arbitraria, in modo da accedere ai contenuti del file system ed eseguire il backup durante l'aggiornamento del file system.
lvcreate --size 100M --snapshot --name snap /dev/vg00/lvol1
lvdisplay
dà luogo ad un output il quale include un elenco di tutti i logical volume della snapshot e del rispettivo stato (attivo o inattivo).
/dev/new_vg/lvol0
, per il quale è stato creato un volume della snapshot /dev/new_vg/newvgsnap
.
# lvdisplay /dev/new_vg/lvol0
--- Logical volume ---
LV Name /dev/new_vg/lvol0
VG Name new_vg
LV UUID LBy1Tz-sr23-OjsI-LT03-nHLC-y8XW-EhCl78
LV Write Access read/write
LV snapshot status source of
/dev/new_vg/newvgsnap1 [active]
LV Status available
# open 0
LV Size 52.00 MB
Current LE 13
Segments 1
Allocation inherit
Read ahead sectors 0
Block device 253:2
lvs
visualizza il volume d'origine e la percentuale corrente usata del volume della snapshot. Il seguente esempio mostra l'output predefinito per il comando lvs
per un sistema che include il volume logico /dev/new_vg/lvol0
, per il quale è stato creato un volume della snapshot /dev/new_vg/newvgsnap
.
# lvs
LV VG Attr LSize Origin Snap% Move Log Copy%
lvol0 new_vg owi-a- 52.00M
newvgsnap1 new_vg swi-a- 8.00M lvol0 0.20
Nota
lvs
in modo da assicurarsi che non venga del tutto utilizzata. Una snapshot utilizzata al 100% viene completamente persa poichè il processo di scrittura su sezioni non modificate dell'origine non andrà a buon fine senza corrompere la snapshot.
4.4.5. Unione dei volumi della snapshot
--merge
del comando lvconvert
per eseguire il merge di una snapshot nel proprio volume d'origine. Se sia l'origine che il volume della snapshot non sono aperti il merge inizierà immediatamente. In caso contrario il merge inizierà quando la snapshot o l'origine saranno attivati per la prima volta e successivamente chiusi. Il merge di una snapshot in una origine che non può essere chiusa, per esempio un file system root, è rinviato fino alla successiva attivazione del volume d'origine. Nelle fasi iniziali del merge il volume logico risultante avrà il nome dell'origine, un numero minore ed un UUID. Durante il processo di merge i processi di lettura e scrittura sull'origine appariranno come se fossero diretti sulla snapshot unita. Al termine del processo la snapshot sulla quale è stato eseguito il merge verrà rimossa.
vg00/lvol1_snap
con la propria origine.
lvconvert --merge vg00/lvol1_snap"
vg00/lvol1
, vg00/lvol2
, e vg00/lvol3
presenteranno tutti il seguente tag @some_tag
". Il comando di seguito riportato eseguirà il merge dei volumi logici della snapshot per i tre volumi in modo sequenziale: vg00/lvol1
, vg00/lvol2
, e successivamente vg00/lvol3
. Se è stata usata l'opzione --background
, tutti i processi di merge del volume logico della snapshot inizieranno in parallelo.
lvconvert --merge @some_tag"
lvconvert --merge
consultare la pagina man di lvconvert
(8).
4.4.6. Numeri del dispositivo persistenti
lvcreate
e lvchange
utilizzando i seguenti argomenti:
--persistent y --major major --minor minor
fsid
nel file di esportazione, potreste non aver bisogno d'impostare un numero del dispositivo persistente all'interno di LVM.
4.4.7. Modifica della dimensione dei volumi logici
lvreduce
. Se il volume logico contiene un file system, assicuratevi di ridurre prima il file system (o utilizzate la GUI di LVM), in modo che il volume logico abbia una dimensione uguale a quella prevista dal file system.
lvol1
nel gruppo di volumi vg00
, di 3 estensioni logiche.
lvreduce -l -3 vg00/lvol1
4.4.8. Modifica dei parametri di un gruppo di volumi logici
lvchange
. Per un elenco di parametri modificabili consultate la man page di lvchange
(8).
lvchange
. Per attivare e disattivare tutti i volumi logici contemporaneamente in un gruppo di volumi, utilizzate vgchange
come descritto in Sezione 4.3.7, «Modifica dei parametri di un gruppo di volumi».
lvol1
nel gruppo di volumi vg00
in sola lettura.
lvchange -pr vg00/lvol1
4.4.9. Modifica del nome dei volumi logici
lvrename
.
lvold
nel gruppo di volumi vg02
in lvnew
.
lvrename /dev/vg02/lvold /dev/vg02/lvnew
lvrename vg02 lvold lvnew
4.4.10. Rimozione dei volumi logici
lvremove
. Prima di poter eseguire la rimozione è necessario disattivare il volume logico. In aggiunta, in un ambiente clusterizzato è necessario disattivare un volume logico prima di poterlo rimuovere.
/dev/testvg/testlv
dal gruppo di volumi testvg
. Da notare che in questo caso il volume logico non è stato disattivato.
[root@tng3-1 lvm]#lvremove /dev/testvg/testlv
Do you really want to remove active logical volume "testlv"? [y/n]:y
Logical volume "testlv" successfully removed
lvchange -an
, in questo caso non sarete in grado di visualizzare il prompt attraverso il quale potete verificare se rimuovere un volume logico attivo.
4.4.11. Visualizzazione dei volumi logici
lvs
, lvdisplay
, e lvscan
.
lvs
fornisce le informazioni sul volume logico attraverso una forma configurabile mostrando una riga per volume logico. Il comando lvs
è idoneo per un controllo del formato ed è utile per lo scripting. Per informazioni su come utilizzare il comando lvs
per personalizzare l'output consultate la Sezione 4.8, «Personalizzazione dei riporti per LVM».
lvdisplay
mostra le proprietà del volume logico (come ad esempio dimensione, schema e mappatura) in un formato fisso.
lvol2
in vg00
. Se avete creato i volumi logici della snapshot per il volume logico originario, il comando mostrerà un elenco di tutti i volumi logici della snapshot e del loro stato (attivo o inattivo).
lvdisplay -v /dev/vg00/lvol2
lvscan
esegue la scansione di tutti i logical volume nel sistema elencondoli, in modo simile al seguente esempio.
# lvscan
ACTIVE '/dev/vg0/gfslv' [1.46 GB] inherit
4.4.12. Come aumentare la dimensione dei volumi logici
lvextend
.
/dev/myvg/homevol
a 12 gigabyte.
# lvextend -L12G /dev/myvg/homevol
lvextend -- extending logical volume "/dev/myvg/homevol" to 12 GB
lvextend -- doing automatic backup of volume group "myvg"
lvextend -- logical volume "/dev/myvg/homevol" successfully extended
/dev/myvg/homevol
.
# lvextend -L+1G /dev/myvg/homevol
lvextend -- extending logical volume "/dev/myvg/homevol" to 13 GB
lvextend -- doing automatic backup of volume group "myvg"
lvextend -- logical volume "/dev/myvg/homevol" successfully extended
lvcreate
, è possibile usare l'opzione -l
del comando lvextend
per specificare il numero di estensioni attraverso le quali aumentare la dimensione del volume logico. È possibile utilizzare questa opzione per specificare anche una percentuale del gruppo di volumi, o una percentuale di spazio libero disponibile nel gruppo di volumi. Il seguente comando estende il volume logico chiamato testlv
, in modo da usare tutto lo spazio non assegnato nel gruppo di volumi myvg
.
[root@tng3-1 ~]# lvextend -l +100%FREE /dev/myvg/testlv
Extending logical volume testlv to 68.59 GB
Logical volume testlv successfully resized
4.4.12.1. Come estendere un volume segmentato
vg
il quale consiste in due volumi fisici, come mostrato dal seguente comando vgs
.
# vgs
VG #PV #LV #SN Attr VSize VFree
vg 2 0 0 wz--n- 271.31G 271.31G
#lvcreate -n stripe1 -L 271.31G -i 2 vg
Using default stripesize 64.00 KB Rounding up size to full physical extent 271.31 GB Logical volume "stripe1" created #lvs -a -o +devices
LV VG Attr LSize Origin Snap% Move Log Copy% Devices stripe1 vg -wi-a- 271.31G /dev/sda1(0),/dev/sdb1(0)
# vgs
VG #PV #LV #SN Attr VSize VFree
vg 2 1 0 wz--n- 271.31G 0
# vgextend vg /dev/sdc1 Volume group "vg" successfully extended # vgs VG #PV #LV #SN Attr VSize VFree vg 3 1 0 wz--n- 406.97G 135.66G
# lvextend vg/stripe1 -L 406G
Using stripesize of last segment 64.00 KB
Extending logical volume stripe1 to 406.00 GB
Insufficient suitable allocatable extents for logical volume stripe1: 34480
more required
#vgextend vg /dev/sdd1
Volume group "vg" successfully extended #vgs
VG #PV #LV #SN Attr VSize VFree vg 4 1 0 wz--n- 542.62G 271.31G #lvextend vg/stripe1 -L 542G
Using stripesize of last segment 64.00 KB Extending logical volume stripe1 to 542.00 GB Logical volume stripe1 successfully resized
lvextend
iniziale.
#lvextend vg/stripe1 -L 406G
Using stripesize of last segment 64.00 KB Extending logical volume stripe1 to 406.00 GB Insufficient suitable allocatable extents for logical volume stripe1: 34480 more required #lvextend -i1 -l+100%FREE vg/stripe1
4.4.12.2. Estensione di un volume logico con politica di assegnazione cling
--alloc cling
del comando lvextend
per specificare la politica di assegnazione cling
. Questa politica selezionerà lo spazio sugli stessi volumi fisici come segmento ultimo del volume logico esistente. Se lo spazio sui volumi fisici non è sufficiente e l'elenco dei tag è definito nel file lvm.conf
, LVM controllerà la presenza di tag collegati ai volumi fisici e cercherà di corrispondere i tag dei volumi fisici tra estensioni esistenti e quelle nuove.
lvm.conf
:
cling_tag_list = [ "@site1", "@site2" ]
lvm.conf
è stato modificato in modo da contenere la seguente riga:
cling_tag_list = [ "@A", "@B" ]
taft
il quale è composto da volumi fisici /dev/sdb1
, /dev/sdc1
, /dev/sdd1
, /dev/sde1
, /dev/sdf1
, /dev/sdg1
, e /dev/sdh1
. I suddetti volumi avranno i seguenti tag, A
, B
, e C
. In questo esempio il tag C
non viene utilizzato, ma in questo caso verrà mostrato che LVM utilizza i tag per selezionare i volumi fisici da usare per i segmenti 'o gambe' del mirror.
[root@taft-03 ~]# pvs -a -o +pv_tags /dev/sd[bcdefgh]1
PV VG Fmt Attr PSize PFree PV Tags
/dev/sdb1 taft lvm2 a- 135.66g 135.66g A
/dev/sdc1 taft lvm2 a- 135.66g 135.66g B
/dev/sdd1 taft lvm2 a- 135.66g 135.66g B
/dev/sde1 taft lvm2 a- 135.66g 135.66g C
/dev/sdf1 taft lvm2 a- 135.66g 135.66g C
/dev/sdg1 taft lvm2 a- 135.66g 135.66g A
/dev/sdh1 taft lvm2 a- 135.66g 135.66g A
taft
.
[root@taft-03 ~]# lvcreate -m 1 -n mirror --nosync -L 100G taft
[root@taft-03 ~]# lvs -a -o +devices
LV VG Attr LSize Log Copy% Devices
mirror taft Mwi-a- 100.00g mirror_mlog 100.00
mirror_mimage_0(0),mirror_mimage_1(0)
[mirror_mimage_0] taft iwi-ao 100.00g /dev/sdb1(0)
[mirror_mimage_1] taft iwi-ao 100.00g /dev/sdc1(0)
[mirror_mlog] taft lwi-ao 4.00m /dev/sdh1(0)
cling
per indicare che i segmenti del mirror devono essere estesi utilizzando i volumi fisici con lo stesso tag.
[root@taft-03 ~]# lvextend --alloc cling -L +100G taft/mirror
Extending 2 mirror images.
Extending logical volume mirror to 200.00 GiB
Logical volume mirror successfully resized
C
, sono stati ignorati.
[root@taft-03 ~]# lvs -a -o +devices
LV VG Attr LSize Log Copy% Devices
mirror taft Mwi-a- 200.00g mirror_mlog 50.16
mirror_mimage_0(0),mirror_mimage_1(0)
[mirror_mimage_0] taft Iwi-ao 200.00g /dev/sdb1(0)
[mirror_mimage_0] taft Iwi-ao 200.00g /dev/sdg1(0)
[mirror_mimage_1] taft Iwi-ao 200.00g /dev/sdc1(0)
[mirror_mimage_1] taft Iwi-ao 200.00g /dev/sdd1(0)
[mirror_mlog] taft lwi-ao 4.00m /dev/sdh1(0)
4.4.13. Come ridurre la dimensione dei volumi logici
lvreduce
per ridurre il volume. Dopo aver ridotto il volume, rimontate il file system.
Avvertimento
lvol1
nel gruppo di volumi vg00
viene ridotta di 3 estensioni logiche.
lvreduce -l -3 vg00/lvol1
4.5. Controllo delle scansioni del dispositivo LVM con i filtri
vgscan
esegue la scansione dei dispositivi a blocchi sul sistema andando alla ricerca di etichette LVM per determinare i volumi fisici, leggere i metadati, e creare un elenco di gruppi di volumi. I nomi dei volumi fisici sono archiviati nel file di cache di ogni nodo presente nel sistema, /etc/lvm/.cache
. I comandi che ne seguono possono leggere il file in modo da evitarne successive scansioni.
lvm.conf
. I filtri in lvm.conf
consistono in una serie di espressioni regolari semplici, applicate ai nomi del dispositivo nella directory /dev
, per decidere se accettare o rifiutare ogni dispositivo a blocchi trovato.
a/loop/
è equivalente a a/.*loop.*/
e corrisponderebbe a /dev/solooperation/lvol1
.
filter = [ "a/.*/" ]
filter = [ "r|/dev/cdrom|" ]
filter = [ "a/loop.*/", "r/.*/" ]
filter =[ "a|loop.*|", "a|/dev/hd.*|", "r|.*|" ]
filter = [ "a|^/dev/hda8$|", "r/.*/" ]
lvm.conf
, consultate la pagina man di lvm.conf
(5) e Appendice B, File di configurazione LVM.
4.6. Riposizionamento dati online
pvmove
.
pvmove
divide i dati da spostare in sezioni, e crea un mirror provvisorio per poter muovere ogni sezione. Per maggiori informazioni sul funzionamento di pvmove
, consultate la pagina man di pvmove
(8).
/dev/sdc1
ad altri volumi fisici presenti nel gruppo di volumi:
pvmove /dev/sdc1
MyLV
.
pvmove -n MyLV /dev/sdc1
pvmove
potrebbe richiedere molto tempo, è consigliato eseguirlo nel background in modo da evitare la visualizzazione del progresso degli aggiornamenti. Il seguente comando sposta tutte le estensioni assegnate al volume fisico /dev/sdc1
su /dev/sdf1
nel background.
pvmove -b /dev/sdc1 /dev/sdf1
pvmove -i5 /dev/sdd1
4.7. Attivazione dei volumi logici su nodi individuali in un cluster
lvchange -aey
. Alternativamente, potrete utilizzare lvchange -aly
per attivare i volumi logici solo, ma non esclusivamente, sul nodo locale. Successivamente potrete attivarli simultaneamente su nodi aggiuntivi.
4.8. Personalizzazione dei riporti per LVM
pvs
, lvs
, e vgs
. I riporti generati da questi comandi includono un output di una sola riga per ogni oggetto. Ogni riga contiene un elenco ordinato di campi relativi alle proprietà dell'oggetto. È possibile selezionare gli oggetti da riportare in cinque modi diversi: attraverso il volume fisico, il gruppo di volumi, volume logico, il segmento del volume fisico ed il segmento del volume logico.
- Un sommario degli argomenti del comando utilizzabili per controllare il formato del riporto generato.
- Un elenco dei campi selezionabili per ogni oggetto LVM.
- Un sommario degli argomenti del comando utilizzabili per ordinare il riporto generato.
- Le informazioni su come specificare le unità dell'output del riporto.
4.8.1. Controllo del formato
pvs
, lvs
, o vgs
determinerete il set predefinito dei campi visualizzati ed il tipo di ordine da seguire. Potrete controllare l'output dei suddetti comandi con i seguenti argomenti:
- È possibile modificare i campi visualizzati in modo da avere una selezione diversa dall'impostazione predefinita utilizzando l'opzione
-o
. Per esempio, il seguente output è il display predefinito per il comandopvs
(il quale mostra le informazioni sui volumi fisici).#
pvs
PV VG Fmt Attr PSize PFree /dev/sdb1 new_vg lvm2 a- 17.14G 17.14G /dev/sdc1 new_vg lvm2 a- 17.14G 17.09G /dev/sdd1 new_vg lvm2 a- 17.14G 17.14GÈ possibile visualizzare solo la dimensione ed il nome del volume fisico con il seguente comando.#
pvs -o pv_name,pv_size
PV PSize /dev/sdb1 17.14G /dev/sdc1 17.14G /dev/sdd1 17.14G - È possibile aggiungere un campo all'output utilizzando il segno più (+); il suddetto segno viene usato in combinazione con l'opzione -o.Il seguente esempio mostra l'UUID del physical volume insieme ai campi predefiniti.
#
pvs -o +pv_uuid
PV VG Fmt Attr PSize PFree PV UUID /dev/sdb1 new_vg lvm2 a- 17.14G 17.14G onFF2w-1fLC-ughJ-D9eB-M7iv-6XqA-dqGeXY /dev/sdc1 new_vg lvm2 a- 17.14G 17.09G Joqlch-yWSj-kuEn-IdwM-01S9-X08M-mcpsVe /dev/sdd1 new_vg lvm2 a- 17.14G 17.14G yvfvZK-Cf31-j75k-dECm-0RZ3-0dGW-UqkCS - Aggiungendo l'opzione
-v
ad un comando, includerete alcuni campi aggiuntivi. Per esempio, il comandopvs -v
mostrerà i campiDevSize
ePV UUID
insieme ai campi predefiniti.#
pvs -v
Scanning for physical volume names PV VG Fmt Attr PSize PFree DevSize PV UUID /dev/sdb1 new_vg lvm2 a- 17.14G 17.14G 17.14G onFF2w-1fLC-ughJ-D9eB-M7iv-6XqA-dqGeXY /dev/sdc1 new_vg lvm2 a- 17.14G 17.09G 17.14G Joqlch-yWSj-kuEn-IdwM-01S9-XO8M-mcpsVe /dev/sdd1 new_vg lvm2 a- 17.14G 17.14G 17.14G yvfvZK-Cf31-j75k-dECm-0RZ3-0dGW-tUqkCS - L'opzione
--noheadings
rimuove la riga delle intestazioni. Ciò può essere utile per la scrittura di script.Il seguente esempio utilizza l'opzione--noheadings
insieme apv_name
, generando un elenco di tutti i physical volume.#
pvs --noheadings -o pv_name
/dev/sdb1 /dev/sdc1 /dev/sdd1 - L'opzione
--separator separator
utilizza separator per separare ogni campo.Il seguente esempio separa i campi predefiniti per l'output dipvs
con il segno uguale (=).#
pvs --separator =
PV=VG=Fmt=Attr=PSize=PFree /dev/sdb1=new_vg=lvm2=a-=17.14G=17.14G /dev/sdc1=new_vg=lvm2=a-=17.14G=17.09G /dev/sdd1=new_vg=lvm2=a-=17.14G=17.14GPer mantenere i campi allineati durante l'utilizzo delseparator
, utilizzate l'opzioneseparator
insieme con--aligned
.#
pvs --separator = --aligned
PV =VG =Fmt =Attr=PSize =PFree /dev/sdb1 =new_vg=lvm2=a- =17.14G=17.14G /dev/sdc1 =new_vg=lvm2=a- =17.14G=17.09G /dev/sdd1 =new_vg=lvm2=a- =17.14G=17.14G
-P
del comando lvs
o vgs
, per mostrare le informazioni relative ad un volume fallito che potrebbero non comparire nell'output. Per informazioni sull'output generato da questa opzione consultate Sezione 6.2, «Come visualizzare le informazioni su dispositivi falliti».
pvs
(8), vgs
(8) e lvs
(8).
# vgs -o +pv_name
VG #PV #LV #SN Attr VSize VFree PV
new_vg 3 1 0 wz--n- 51.42G 51.37G /dev/sdc1
new_vg 3 1 0 wz--n- 51.42G 51.37G /dev/sdd1
new_vg 3 1 0 wz--n- 51.42G 51.37G /dev/sdb1
4.8.2. Selezione dell'oggetto
pvs
, vgs
, e lvs
.
pvs
, name
significa pv_name
, mentre con il comando vgs
, name
viene interpretato come vg_name
.
pvs -o pv_free
.
# pvs -o +free
PFree
17.14G
17.09G
17.14G
Il comando pvs
pvs
, insieme al nome del campo visualizzato nel display d'intestazione, ed una descrizione del campo.
Tabella 4.1. campi relativi a pvs
Opzione | Intestazione | Descrizione |
---|---|---|
dev_size | DevSize | Misura del dispositivo sul quale è stato creato il volume fisico |
pe_start | 1st PE | L'offset all'inizio della prima estensione fisica del dispositivo interessato |
pv_attr | Attr | Stato del volume fisico: (a)ssegnabile o e(s)portato |
pv_fmt | Fmt | Il formato dei metadati del volume fisico (lvm2 o lvm1 ) |
pv_free | PFree | Lo spazio libero restante sul volume fisico |
pv_name | PV | Il nome del volume fisico |
pv_pe_alloc_count | Alloc | Numero di estensioni fisiche usate |
pv_pe_count | PE | Numero di estensioni fisiche |
pvseg_size | SSize | La dimensione del segmento del volume fisico |
pvseg_start | Start | L'estensione fisica iniziale del segmento del volume fisico |
pv_size | PSize | La dimensione del volume fisico |
pv_tags | PV Tags | Le etichette di LVM relative al volume fisico |
pv_used | Used | La quantità di spazio attualmente usato sul volume fisico |
pv_uuid | PV UUID | L'UUID del volume fisico |
pvs
mostra per default i seguenti campi: pv_name
, vg_name
, pv_fmt
, pv_attr
, pv_size
, pv_free
. L'ordine seguito viene indicato dall'opzione pv_name
.
# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb1 new_vg lvm2 a- 17.14G 17.14G
/dev/sdc1 new_vg lvm2 a- 17.14G 17.09G
/dev/sdd1 new_vg lvm2 a- 17.14G 17.13G
-v
con il comando pvs
, aggiungerete i seguenti campi al display predefinito: dev_size
, pv_uuid
.
# pvs -v
Scanning for physical volume names
PV VG Fmt Attr PSize PFree DevSize PV UUID
/dev/sdb1 new_vg lvm2 a- 17.14G 17.14G 17.14G onFF2w-1fLC-ughJ-D9eB-M7iv-6XqA-dqGeXY
/dev/sdc1 new_vg lvm2 a- 17.14G 17.09G 17.14G Joqlch-yWSj-kuEn-IdwM-01S9-XO8M-mcpsVe
/dev/sdd1 new_vg lvm2 a- 17.14G 17.13G 17.14G yvfvZK-Cf31-j75k-dECm-0RZ3-0dGW-tUqkCS
--segments
del comando pvs
, per visualizzare le informazioni su ogni segmento del volume fisico. Un segmento è rappresentato da un gruppo di estensioni. Una vista del segmento può essere utile per controllare se il vostro volume logico è frammentato.
pvs --segments
mostra per default i seguenti campi: pv_name
, vg_name
, pv_fmt
, pv_attr
, pv_size
, pv_free
, pvseg_start
, pvseg_size
. L'elenco è ordinato in base al pv_name
e pvseg_size
all'interno del physical volume.
# pvs --segments
PV VG Fmt Attr PSize PFree Start SSize
/dev/hda2 VolGroup00 lvm2 a- 37.16G 32.00M 0 1172
/dev/hda2 VolGroup00 lvm2 a- 37.16G 32.00M 1172 16
/dev/hda2 VolGroup00 lvm2 a- 37.16G 32.00M 1188 1
/dev/sda1 vg lvm2 a- 17.14G 16.75G 0 26
/dev/sda1 vg lvm2 a- 17.14G 16.75G 26 24
/dev/sda1 vg lvm2 a- 17.14G 16.75G 50 26
/dev/sda1 vg lvm2 a- 17.14G 16.75G 76 24
/dev/sda1 vg lvm2 a- 17.14G 16.75G 100 26
/dev/sda1 vg lvm2 a- 17.14G 16.75G 126 24
/dev/sda1 vg lvm2 a- 17.14G 16.75G 150 22
/dev/sda1 vg lvm2 a- 17.14G 16.75G 172 4217
/dev/sdb1 vg lvm2 a- 17.14G 17.14G 0 4389
/dev/sdc1 vg lvm2 a- 17.14G 17.14G 0 4389
/dev/sdd1 vg lvm2 a- 17.14G 17.14G 0 4389
/dev/sde1 vg lvm2 a- 17.14G 17.14G 0 4389
/dev/sdf1 vg lvm2 a- 17.14G 17.14G 0 4389
/dev/sdg1 vg lvm2 a- 17.14G 17.14G 0 4389
pvs -a
.
# pvs -a
PV VG Fmt Attr PSize PFree
/dev/VolGroup00/LogVol01 -- 0 0
/dev/new_vg/lvol0 -- 0 0
/dev/ram -- 0 0
/dev/ram0 -- 0 0
/dev/ram2 -- 0 0
/dev/ram3 -- 0 0
/dev/ram4 -- 0 0
/dev/ram5 -- 0 0
/dev/ram6 -- 0 0
/dev/root -- 0 0
/dev/sda -- 0 0
/dev/sdb -- 0 0
/dev/sdb1 new_vg lvm2 a- 17.14G 17.14G
/dev/sdc -- 0 0
/dev/sdc1 new_vg lvm2 a- 17.14G 17.09G
/dev/sdd -- 0 0
/dev/sdd1 new_vg lvm2 a- 17.14G 17.14G
Il comando vgs
vgs
, insieme al nome del campo visualizzato nel display d'intestazione, ed una descrizione del campo.
Tabella 4.2. Campi relativi a vgs
Opzione | Intestazione | Descrizione |
---|---|---|
lv_count | #LV | Il numero di volumi logici contenuti nel gruppo di volumi |
max_lv | MaxLV | Il numero massimo di volumi logici permessi nel gruppo di volumi (0 se illimitato) |
max_pv | MaxPV | Il numero massimo di physical volume permessi nel gruppo di volumi (0 se illimitato) |
pv_count | #PV | Il numero di physical volume che definisce il gruppo di volumi |
snap_count | #SN | Il numero di snapshot contenute nel gruppo di volumi |
vg_attr | Attr | Stato del gruppo di volumi: (w)riteable, (r)eadonly, resi(z)eable, e(x)ported, (p)artial e (c)lustered. |
vg_extent_count | #Ext | Il numero di estensioni fisiche nel gruppo di volumi |
vg_extent_size | Ext | La dimensione delle estensioni fisiche nel gruppo di volumi |
vg_fmt | Fmt | Il formato dei metadati del gruppo di volumi (lvm2 or lvm1 ) |
vg_free | VFree | La dimensione dello spazio libero restante nel gruppo di volumi |
vg_free_count | Free | Il numero di estensioni fisiche libere presenti nel gruppo di volumi |
vg_name | VG | Il nome del gruppo di volumi |
vg_seqno | Seq | Il numero che rappresenta la revisione del gruppo di volumi |
vg_size | VSize | La dimensione del gruppo di volumi |
vg_sysid | SYS ID | ID del sistema LVM1 |
vg_tags | VG Tags | Le etichette di LVM relative al gruppo di volumi |
vg_uuid | VG UUID | L'UUID del gruppo di volumi |
vgs
visualizza per default i seguenti campi: vg_name
, pv_count
, lv_count
, snap_count
, vg_attr
, vg_size
, vg_free
. L'elenco viene ordinato in base al vg_name
.
# vgs
VG #PV #LV #SN Attr VSize VFree
new_vg 3 1 1 wz--n- 51.42G 51.36G
-v
del comando vgs
, verranno aggiunti all'impostazione predefinita i seguenti campi: vg_extent_size
, vg_uuid
.
# vgs -v
Finding all volume groups
Finding volume group "new_vg"
VG Attr Ext #PV #LV #SN VSize VFree VG UUID
new_vg wz--n- 4.00M 3 1 1 51.42G 51.36G jxQJ0a-ZKk0-OpMO-0118-nlwO-wwqd-fD5D32
Il comando lvs
lvs
, insieme al nome del campo visualizzato nel display d'intestazione, ed una descrizione del campo.
Tabella 4.3. Campi relativi a lvs
Opzione | Intestazione | Descrizione | ||||||
---|---|---|---|---|---|---|---|---|
| Chunk | Dimensione unità in un volume della snapshot | ||||||
copy_percent | Copy% | La percentuale di sincronizzazione di un volume logico speculare; usato anche quando le estensioni fisiche vengono spostate con il comando pv_move | ||||||
devices | Dispositivi | I dispositivi che costituiscono il volume logico: i volumi fisici, volumi logici, e le estensioni fisiche e logiche iniziali | ||||||
lv_attr | Attr | Stato del volume logico. Di seguito vengono riportati i bit per l'attributo del volume logico:
| ||||||
lv_kernel_major | KMaj | Numero maggiore del dispositivo del volume logico (-1 se inattivo) | ||||||
lv_kernel_minor | KMIN | Numero minore del dispositivo del volume logico (-1 se inattivo) | ||||||
lv_major | Maj | Il numero maggiore persistente del dispositivo del volume logico (-1 se non specificato) | ||||||
lv_minor | Min | Il numero minore persistente del dispositivo del volume logico (-1 se non specificato) | ||||||
lv_name | LV | Il nome del volume logico | ||||||
lv_size | LSize | La dimensione del volume logico | ||||||
lv_tags | LV Tags | Le etichette di LVM relative al volume logico | ||||||
lv_uuid | LV UUID | L'UUID del volume logico. | ||||||
mirror_log | Log | Dispositivo nel quale risiede il log del mirror | ||||||
modules | Moduli | Il target device-mapper del kernel corrispondente necessario per utilizzare questo volume logico | ||||||
move_pv | Move | Volume fisico sorgente di un volume logico provvisorio creato con il comando pvmove | ||||||
origin | Origine | Il dispositivo d'origine di un volume della snapshot | ||||||
| Regione | La dimensione dell'unità di un volume logico speculare | ||||||
seg_count | #Seg | Il numero di segmenti nel volume logico | ||||||
seg_size | SSize | La dimensione dei segmenti nel volume logico | ||||||
seg_start | Start | L'offset del segmento nel volume logico | ||||||
seg_tags | Seg Tags | Le etichette di LVM relative ai segmenti del volume logico | ||||||
segtype | Tipo | IL tipo di segmento di un volume logico (per esempio: mirror, segmentato, lineare) | ||||||
snap_percent | Snap% | Percentuale corrente del volume della snapshot in uso | ||||||
stripes | #Str | Numero di segmenti o mirror in un volume logico | ||||||
| Segmento | Dimensione dell'unità del segmento in un volume logico segmentato |
lvs
mostra per default i seguenti campi: lv_name
, vg_name
, lv_attr
, lv_size
, origin
, snap_percent
, move_pv
, mirror_log
, copy_percent
. L'elenco viene visualizzato in base al vg_name
e lv_name
all'interno del gruppo di volumi.
# lvs
LV VG Attr LSize Origin Snap% Move Log Copy%
lvol0 new_vg owi-a- 52.00M
newvgsnap1 new_vg swi-a- 8.00M lvol0 0.20
-v
con il comando lvs
aggiungerete i seguenti campi all'impostazione predefinita: seg_count
, lv_major
, lv_minor
, lv_kernel_major
, lv_kernel_minor
, lv_uuid
.
# lvs -v
Finding all logical volumes
LV VG #Seg Attr LSize Maj Min KMaj KMin Origin Snap% Move Copy% Log LV UUID
lvol0 new_vg 1 owi-a- 52.00M -1 -1 253 3 LBy1Tz-sr23-OjsI-LT03-nHLC-y8XW-EhCl78
newvgsnap1 new_vg 1 swi-a- 8.00M -1 -1 253 5 lvol0 0.20 1ye1OU-1cIu-o79k-20h2-ZGF0-qCJm-CfbsIx
--segments
del comando lvs
. Quando utilizzate l'opzione segments
il prefisso seg
diventa facoltativo. Il comando lvs --segments
mostra per default i seguenti campi: lv_name
, vg_name
, lv_attr
, stripes
, segtype
, seg_size
. Il display predefinito viene visualizzato in base al vg_name
, lv_name
all'interno del gruppo di volumi, e seg_start
all'interno del volume logico. Se i volumi logici sono frammentati, l'output del suddetto comando sarà in grado di mostrarlo.
# lvs --segments
LV VG Attr #Str Type SSize
LogVol00 VolGroup00 -wi-ao 1 linear 36.62G
LogVol01 VolGroup00 -wi-ao 1 linear 512.00M
lv vg -wi-a- 1 linear 104.00M
lv vg -wi-a- 1 linear 104.00M
lv vg -wi-a- 1 linear 104.00M
lv vg -wi-a- 1 linear 88.00M
-v
con il comando lvs --segments
aggiungerete i seguenti campi al display predefinito: seg_start
, stripesize
, chunksize
.
# lvs -v --segments
Finding all logical volumes
LV VG Attr Start SSize #Str Type Stripe Chunk
lvol0 new_vg owi-a- 0 52.00M 1 linear 0 0
newvgsnap1 new_vg swi-a- 0 8.00M 1 linear 0 8.00K
lvs
su di un sistema con un volume logico configurato, seguito dall'output predefinito di lvs
con segments
specificato.
#lvs
LV VG Attr LSize Origin Snap% Move Log Copy% lvol0 new_vg -wi-a- 52.00M #lvs --segments
LV VG Attr #Str Type SSize lvol0 new_vg -wi-a- 1 linear 52.00M
4.8.3. Come ordinare i riporti di LVM
lvs
, vgs
, o pvs
deve essere generato e conservato internamente prima di poterlo ordinare ed eseguire un allineamento corretto delle colonne. Specificate l'opzione --unbuffered
per visualizzare gli output non ordinati appena generati.
-O
di uno qualsiasi dei comandi usati per il riporto. Non è necessario includere questi campi all'interno dell'output.
pvs
il quale mostra il nome, la dimensione e lo spazio disponibile del volume fisico.
# pvs -o pv_name,pv_size,pv_free
PV PSize PFree
/dev/sdb1 17.14G 17.14G
/dev/sdc1 17.14G 17.09G
/dev/sdd1 17.14G 17.14G
# pvs -o pv_name,pv_size,pv_free -O pv_free
PV PSize PFree
/dev/sdc1 17.14G 17.09G
/dev/sdd1 17.14G 17.14G
/dev/sdb1 17.14G 17.14G
# pvs -o pv_name,pv_size -O pv_free
PV PSize
/dev/sdc1 17.14G
/dev/sdd1 17.14G
/dev/sdb1 17.14G
-
subito dopo il campo che contiene l'opzione -O
.
# pvs -o pv_name,pv_size,pv_free -O -pv_free
PV PSize PFree
/dev/sdd1 17.14G 17.14G
/dev/sdb1 17.14G 17.14G
/dev/sdc1 17.14G 17.09G
4.8.4. Come specificare le unità
--units
. È possibile specificare (b)ytes, (k)ilobytes, (m)egabytes, (g)igabytes, (t)erabytes, (e)xabytes, (p)etabytes, e (h)uman-readable. L'impostazione predefinita è human-readable. Potrete sovrascrivere l'impostazione predefinita impostando il parametro units
nella sezione global
del file lvm.conf
.
pvs
in megabyte e non in gigabyte.
# pvs --units m
PV VG Fmt Attr PSize PFree
/dev/sda1 lvm2 -- 17555.40M 17555.40M
/dev/sdb1 new_vg lvm2 a- 17552.00M 17552.00M
/dev/sdc1 new_vg lvm2 a- 17552.00M 17500.00M
/dev/sdd1 new_vg lvm2 a- 17552.00M 17552.00M
# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb1 new_vg lvm2 a- 17.14G 17.14G
/dev/sdc1 new_vg lvm2 a- 17.14G 17.09G
/dev/sdd1 new_vg lvm2 a- 17.14G 17.14G
# pvs --units G
PV VG Fmt Attr PSize PFree
/dev/sdb1 new_vg lvm2 a- 18.40G 18.40G
/dev/sdc1 new_vg lvm2 a- 18.40G 18.35G
/dev/sdd1 new_vg lvm2 a- 18.40G 18.40G
pvs
come un numero di settori.
# pvs --units s
PV VG Fmt Attr PSize PFree
/dev/sdb1 new_vg lvm2 a- 35946496S 35946496S
/dev/sdc1 new_vg lvm2 a- 35946496S 35840000S
/dev/sdd1 new_vg lvm2 a- 35946496S 35946496S
pvs
in unità di 4 megabyte.
# pvs --units 4m
PV VG Fmt Attr PSize PFree
/dev/sdb1 new_vg lvm2 a- 4388.00U 4388.00U
/dev/sdc1 new_vg lvm2 a- 4388.00U 4375.00U
/dev/sdd1 new_vg lvm2 a- 4388.00U 4388.00U
Capitolo 5. Esempi di configurazione LVM
5.1. Creazione di un volume logico LVM su tre dischi
new_logical_volume
il quale consiste nei dischi /dev/sda1
, /dev/sdb1
, e /dev/sdc1
5.1.1. Creazione dei volumi fisici
Avvertimento
/dev/sda1
, /dev/sdb1
, e /dev/sdc1
.
[root@tng3-1 ~]# pvcreate /dev/sda1 /dev/sdb1 /dev/sdc1
Physical volume "/dev/sda1" successfully created
Physical volume "/dev/sdb1" successfully created
Physical volume "/dev/sdc1" successfully created
5.1.2. Creazione del gruppo di volumi
new_vol_group
.
[root@tng3-1 ~]# vgcreate new_vol_group /dev/sda1 /dev/sdb1 /dev/sdc1
Volume group "new_vol_group" successfully created
vgs
per visualizzare gli attributi del nuovo gruppo di volumi.
[root@tng3-1 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
new_vol_group 3 0 0 wz--n- 51.45G 51.45G
5.1.3. Creazione del volume logico
new_logical_volume
dal gruppo di volumi new_vol_group
. In questo esempio viene creato un volume logico che utilizza 2 GB del gruppo di volumi.
[root@tng3-1 ~]# lvcreate -L2G -n new_logical_volume new_vol_group
Logical volume "new_logical_volume" created
5.1.4. Creazione del file system
[root@tng3-1 ~]#mkfs.gfs2 -plock_nolock -j 1 /dev/new_vol_group/new_logical_volume
This will destroy any data on /dev/new_vol_group/new_logical_volume. Are you sure you want to proceed? [y/n]y
Device: /dev/new_vol_group/new_logical_volume Blocksize: 4096 Filesystem Size: 491460 Journals: 1 Resource Groups: 8 Locking Protocol: lock_nolock Lock Table: Syncing... All Done
[root@tng3-1 ~]#mount /dev/new_vol_group/new_logical_volume /mnt
[root@tng3-1 ~]#df
Filesystem 1K-blocks Used Available Use% Mounted on /dev/new_vol_group/new_logical_volume 1965840 20 1965820 1% /mnt
5.2. Creazione di un volume logico segmentato
striped_logical_volume
il quale scrive i dati sui dischi /dev/sda1
, /dev/sdb1
, e /dev/sdc1
.
5.2.1. Creazione dei volumi fisici
Avvertimento
/dev/sda1
, /dev/sdb1
, e /dev/sdc1
.
[root@tng3-1 ~]# pvcreate /dev/sda1 /dev/sdb1 /dev/sdc1
Physical volume "/dev/sda1" successfully created
Physical volume "/dev/sdb1" successfully created
Physical volume "/dev/sdc1" successfully created
5.2.2. Creazione del gruppo di volumi
volgroup01
.
[root@tng3-1 ~]# vgcreate volgroup01 /dev/sda1 /dev/sdb1 /dev/sdc1
Volume group "volgroup01" successfully created
vgs
per visualizzare gli attributi del nuovo gruppo di volumi.
[root@tng3-1 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
volgroup01 3 0 0 wz--n- 51.45G 51.45G
5.2.3. Creazione del volume logico
striped_logical_volume
dal gruppo di volumi volgroup01
. In questo esempio viene creato un volume logico con una misura di 2 gigabyte, con tre segmenti con una dimensione di 4 kilobyte l'una.
[root@tng3-1 ~]# lvcreate -i3 -I4 -L2G -nstriped_logical_volume volgroup01
Rounding size (512 extents) up to stripe boundary size (513 extents)
Logical volume "striped_logical_volume" created
5.2.4. Creazione del file system
[root@tng3-1 ~]#mkfs.gfs2 -plock_nolock -j 1 /dev/volgroup01/striped_logical_volume
This will destroy any data on /dev/volgroup01/striped_logical_volume. Are you sure you want to proceed? [y/n]y
Device: /dev/volgroup01/striped_logical_volume Blocksize: 4096 Filesystem Size: 492484 Journals: 1 Resource Groups: 8 Locking Protocol: lock_nolock Lock Table: Syncing... All Done
[root@tng3-1 ~]#mount /dev/volgroup01/striped_logical_volume /mnt
[root@tng3-1 ~]#df
Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/VolGroup00-LogVol00 13902624 1656776 11528232 13% / /dev/hda1 101086 10787 85080 12% /boot tmpfs 127880 0 127880 0% /dev/shm /dev/volgroup01/striped_logical_volume 1969936 20 1969916 1% /mnt
5.3. Separazione di un gruppo di volumi
mylv
viene ottenuto dal gruppo di volumi myvol
, il quale a sua volta consiste di tre volumi fisici, /dev/sda1
, /dev/sdb1
, e /dev/sdc1
.
myvg
sarà composto da /dev/sda1
e /dev/sdb1
. Un secondo gruppo di volumi, yourvg
sarà composta da /dev/sdc1
.
5.3.1. Come determinare lo spazio disponibile
pvscan
.
[root@tng3-1 ~]# pvscan
PV /dev/sda1 VG myvg lvm2 [17.15 GB / 0 free]
PV /dev/sdb1 VG myvg lvm2 [17.15 GB / 12.15 GB free]
PV /dev/sdc1 VG myvg lvm2 [17.15 GB / 15.80 GB free]
Total: 3 [51.45 GB] / in use: 3 [51.45 GB] / in no VG: 0 [0 ]
5.3.2. Come spostare i dati
/dev/sdc1
su /dev/sdb1
tramite pvmove
. pvmove
può richiedere un periodo molto lungo per la sua esecuzione.
[root@tng3-1 ~]# pvmove /dev/sdc1 /dev/sdb1
/dev/sdc1: Moved: 14.7%
/dev/sdc1: Moved: 30.3%
/dev/sdc1: Moved: 45.7%
/dev/sdc1: Moved: 61.0%
/dev/sdc1: Moved: 76.6%
/dev/sdc1: Moved: 92.2%
/dev/sdc1: Moved: 100.0%
/dev/sdc1
è ora disponibile.
[root@tng3-1 ~]# pvscan
PV /dev/sda1 VG myvg lvm2 [17.15 GB / 0 free]
PV /dev/sdb1 VG myvg lvm2 [17.15 GB / 10.80 GB free]
PV /dev/sdc1 VG myvg lvm2 [17.15 GB / 17.15 GB free]
Total: 3 [51.45 GB] / in use: 3 [51.45 GB] / in no VG: 0 [0 ]
5.3.3. Come dividere il gruppo di volumi
yourvg
, utilizzate il comando vgsplit
per dividere il gruppo di volumi myvg
.
lvchange
o vgchange
. Il seguente comando rende inattivo il volume logico mylv
, e successivamente divide il gruppo di volumi yourvg
dal gruppo di volumi myvg
, spostando il volume fisico /dev/sdc1
nel nuovo gruppo di volumi yourvg
.
[root@tng3-1 ~]#lvchange -a n /dev/myvg/mylv
[root@tng3-1 ~]#vgsplit myvg yourvg /dev/sdc1
Volume group "yourvg" successfully split from "myvg"
vgs
per visualizzare gli attributi dei due gruppi di volumi.
[root@tng3-1 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
myvg 2 1 0 wz--n- 34.30G 10.80G
yourvg 1 0 0 wz--n- 17.15G 17.15G
5.3.4. Creazione di un nuovo volume logico
yourlv
.
[root@tng3-1 ~]# lvcreate -L5G -n yourlv yourvg
Logical volume "yourlv" created
5.3.5. Creazione di un file system e montaggio di un nuovo volume logico
[root@tng3-1 ~]#mkfs.gfs2 -plock_nolock -j 1 /dev/yourvg/yourlv
This will destroy any data on /dev/yourvg/yourlv. Are you sure you want to proceed? [y/n]y
Device: /dev/yourvg/yourlv Blocksize: 4096 Filesystem Size: 1277816 Journals: 1 Resource Groups: 20 Locking Protocol: lock_nolock Lock Table: Syncing... All Done [root@tng3-1 ~]#mount /dev/yourvg/yourlv /mnt
5.3.6. Attivazione e montaggio del volume logico originale
mylv
, sarà necessario riattivarlo prima di poterlo montare.
root@tng3-1 ~]#lvchange -a y mylv
[root@tng3-1 ~]#mount /dev/myvg/mylv /mnt
[root@tng3-1 ~]#df
Filesystem 1K-blocks Used Available Use% Mounted on /dev/yourvg/yourlv 24507776 32 24507744 1% /mnt /dev/myvg/mylv 24507776 32 24507744 1% /mnt
5.4. Rimozione di un disco da un volume logico
5.4.1. Come spostare le estensioni su volumi fisici esistenti
myvg
.
[root@tng3-1]# pvs -o+pv_used
PV VG Fmt Attr PSize PFree Used
/dev/sda1 myvg lvm2 a- 17.15G 12.15G 5.00G
/dev/sdb1 myvg lvm2 a- 17.15G 12.15G 5.00G
/dev/sdc1 myvg lvm2 a- 17.15G 12.15G 5.00G
/dev/sdd1 myvg lvm2 a- 17.15G 2.15G 15.00G
/dev/sdb1
in modo da poter rimuoverlo dal gruppo di volumi.
pvmove
senza alcuna opzione sul dispositivo che desiderate rimuovere, così facendo le estensioni verranno distribuite su altri disposiviti.
[root@tng3-1 ~]# pvmove /dev/sdb1
/dev/sdb1: Moved: 2.0%
...
/dev/sdb1: Moved: 79.2%
...
/dev/sdb1: Moved: 100.0%
pvmove
, la distribuzione delle estensioni risulta essere:
[root@tng3-1]# pvs -o+pv_used
PV VG Fmt Attr PSize PFree Used
/dev/sda1 myvg lvm2 a- 17.15G 7.15G 10.00G
/dev/sdb1 myvg lvm2 a- 17.15G 17.15G 0
/dev/sdc1 myvg lvm2 a- 17.15G 12.15G 5.00G
/dev/sdd1 myvg lvm2 a- 17.15G 2.15G 15.00G
vgreduce
per rimuovere il physical volume /dev/sdb1
dal gruppo di volumi.
[root@tng3-1 ~]# vgreduce myvg /dev/sdb1
Removed "/dev/sdb1" from volume group "myvg"
[root@tng3-1 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda1 myvg lvm2 a- 17.15G 7.15G
/dev/sdb1 lvm2 -- 17.15G 17.15G
/dev/sdc1 myvg lvm2 a- 17.15G 12.15G
/dev/sdd1 myvg lvm2 a- 17.15G 2.15G
5.4.2. Come spostare le estensioni su di un nuovo disco
myvg
nel modo seguente:
[root@tng3-1]# pvs -o+pv_used
PV VG Fmt Attr PSize PFree Used
/dev/sda1 myvg lvm2 a- 17.15G 7.15G 10.00G
/dev/sdb1 myvg lvm2 a- 17.15G 15.15G 2.00G
/dev/sdc1 myvg lvm2 a- 17.15G 15.15G 2.00G
/dev/sdb1>
su di un nuovo dispositivo, /dev/sdd1
.
5.4.2.1. Creazione di un nuovo Physical Volume
/dev/sdd1
.
[root@tng3-1 ~]# pvcreate /dev/sdd1
Physical volume "/dev/sdd1" successfully created
5.4.2.2. Aggiungete il nuovo Physical Volume al gruppo di volumi
/dev/sdd1
sul gruppo di volumi esistente myvg
.
[root@tng3-1 ~]#vgextend myvg /dev/sdd1
Volume group "myvg" successfully extended [root@tng3-1]#pvs -o+pv_used
PV VG Fmt Attr PSize PFree Used /dev/sda1 myvg lvm2 a- 17.15G 7.15G 10.00G /dev/sdb1 myvg lvm2 a- 17.15G 15.15G 2.00G /dev/sdc1 myvg lvm2 a- 17.15G 15.15G 2.00G /dev/sdd1 myvg lvm2 a- 17.15G 17.15G 0
5.4.2.3. Come spostare i dati
pvmove
per spostare i dati da /dev/sdb1
a /dev/sdd1
.
[root@tng3-1 ~]#pvmove /dev/sdb1 /dev/sdd1
/dev/sdb1: Moved: 10.0% ... /dev/sdb1: Moved: 79.7% ... /dev/sdb1: Moved: 100.0% [root@tng3-1]#pvs -o+pv_used
PV VG Fmt Attr PSize PFree Used /dev/sda1 myvg lvm2 a- 17.15G 7.15G 10.00G /dev/sdb1 myvg lvm2 a- 17.15G 17.15G 0 /dev/sdc1 myvg lvm2 a- 17.15G 15.15G 2.00G /dev/sdd1 myvg lvm2 a- 17.15G 15.15G 2.00G
5.4.2.4. Rimozione di un volume fisico vecchio dal gruppo di volumi
/dev/sdb1
, potrete eseguire la sua rimozione dal gruppo di volumi.
[root@tng3-1 ~]# vgreduce myvg /dev/sdb1
Removed "/dev/sdb1" from volume group "myvg"
5.5. Creazione di un volume logico LVM speculare in un cluster
lvm.conf
deve essere impostato correttamente in modo da abilitare il blocco del cluster sia direttamente che per mezzo del comando lvmconf
come descritto in Sezione 3.1, «Creazione dei volumi LVM in un cluster».
- Per creare un volume logico speculare condiviso da tutti i nodi presenti in un cluster il tipo di blocco deve essere impostato correttamente nel file
lvm.conf
su ogni nodo presente nel cluster. Per impostazione predefinita il tipo di blocco è impostato su locale. Per modificarlo eseguire il seguente comando in ogni nodo del cluster per abilitare il blocco clusterizzato:#
/sbin/lvmconf --enable-cluster
- Per creare un volume logico clusterizzato l'infrastruttura del cluster deve essere in esecuzione su ogni nodo presente nel cluster. Il seguente esempio verifica che il demone
clvmd
è in esecuzione sul nodo dal quale è stato emesso:[root@doc-07 ~]#
ps auxw | grep clvmd
root 17642 0.0 0.1 32164 1072 ? Ssl Apr06 0:00 clvmd -T20 -t 90Il seguente comando mostra la visuale locale dello stato del cluster:[root@example-01 ~]#
cman_tool services
fence domain member count 3 victim count 0 victim now 0 master nodeid 2 wait state none members 1 2 3 dlm lockspaces name clvmd id 0x4104eefa flags 0x00000000 change member 3 joined 1 remove 0 failed 0 seq 1,1 members 1 2 3 - Assicurarsi che il pacchetto
cmirror
sia stato installato. - Avviare il servzio
cmirrord
.[root@hexample-01 ~]#
service cmirrord start
Starting cmirrord: [ OK ] - Creare il mirror. Creare prima i volumi fisici. I seguenti comandi creeranno tre volumi fisici. Due dei volumi fisici verranno usati per le 'gambe' o sezioni del mirror ed il terzo conterrà il log del mirror.
[root@doc-07 ~]#
pvcreate /dev/xvdb1
Physical volume "/dev/xvdb1" successfully created [root@doc-07 ~]#pvcreate /dev/xvdb2
Physical volume "/dev/xvdb2" successfully created [root@doc-07 ~]#pvcreate /dev/xvdc1
Physical volume "/dev/xvdc1" successfully created - Creare il gruppo di volumi. In questo esempio viene creato un gruppo di volumi
vg001
il quale consiste in tre volumi fisici creati nella fase precedente.[root@doc-07 ~]#
vgcreate vg001 /dev/xvdb1 /dev/xvdb2 /dev/xvdc1
Clustered volume group "vg001" successfully createdDa notare che l'output del comandovgcreate
indica che il gruppo di volumi è clusterizzato. Per verificare se un gruppo di volumi è clusterizzato usare il comandovgs
, il quale mostrerà gli attributi del gruppo di volumi. Se un gruppo di volumi è clusterizzato verrà mostrato un attributo c.[root@doc-07 ~]#
vgs vg001
VG #PV #LV #SN Attr VSize VFree vg001 3 0 0 wz--nc 68.97G 68.97G - Creare il volume logico segmentato. In questo esempio è stato creato il volume logico
mirrorlv
dal gruppo di volumivg001
. Questo volume presenta una sezione del mirror. In questo esempio viene specificato quale estensione del volume fisico verrà usata per il volume logico.[root@doc-07 ~]#
lvcreate -l 1000 -m1 vg001 -n mirrorlv /dev/xvdb1:1-1000 /dev/xvdb2:1-1000 /dev/xvdc1:0
Logical volume "mirrorlv" createdUsare il comandolvs
per mostrare i progressi della creazione del mirror. Il seguente esempio mostra che il mirror è al 47%, successivamente al 91% e subito dopo al 100% quando il mirror è completo.[root@doc-07 log]#
lvs vg001/mirrorlv
LV VG Attr LSize Origin Snap% Move Log Copy% Convert mirrorlv vg001 mwi-a- 3.91G vg001_mlog 47.00 [root@doc-07 log]#lvs vg001/mirrorlv
LV VG Attr LSize Origin Snap% Move Log Copy% Convert mirrorlv vg001 mwi-a- 3.91G vg001_mlog 91.00 [root@doc-07 ~]#lvs vg001/mirrorlv
LV VG Attr LSize Origin Snap% Move Log Copy% Convert mirrorlv vg001 mwi-a- 3.91G vg001_mlog 100.00Il completamento del processo viene riportato nel log del sistema:May 10 14:52:52 doc-07 [19402]: Monitoring mirror device vg001-mirrorlv for events May 10 14:55:00 doc-07 lvm[19402]: vg001-mirrorlv is now in-sync
- Usare
lvs
con l'opzione-o +devices
per visualizzare la configurazione ed il dispositivo che rappresenta la 'gamba' del mirror. In questo esempio è possibile vedere come il volume logico è composto da due immagini lineari ed un log.[root@doc-07 ~]#
lvs -a -o +devices
LV VG Attr LSize Origin Snap% Move Log Copy% Convert Devices mirrorlv vg001 mwi-a- 3.91G mirrorlv_mlog 100.00 mirrorlv_mimage_0(0),mirrorlv_mimage_1(0) [mirrorlv_mimage_0] vg001 iwi-ao 3.91G /dev/xvdb1(1) [mirrorlv_mimage_1] vg001 iwi-ao 3.91G /dev/xvdb2(1) [mirrorlv_mlog] vg001 lwi-ao 4.00M /dev/xvdc1(0)Usare l'opzioneseg_pe_ranges
del comandolvs
per visualizzare il layout dei dati. È possibile usare questa opzione per verificare la ridondanza corretta del layout. L'output di questo comando mostra le gamme di PE con lo stesso formato accettato come input dalvcreate
elvresize
.[root@doc-07 ~]#
lvs -a -o +seg_pe_ranges --segments
PE Ranges mirrorlv_mimage_0:0-999 mirrorlv_mimage_1:0-999 /dev/xvdb1:1-1000 /dev/xvdb2:1-1000 /dev/xvdc1:0-0
Nota
Capitolo 6. Troubleshooting di LVM
6.1. Informazioni diagnostiche per il troubleshooting
- Utilizzate le opzioni
-v
,-vv
,-vvv
, o-vvvv
di qualsiasi comando, per livelli sempre più verbosi dell'output. - Se il problema è dovuto all'attivazione del volume logico, impostate 'activation = 1' nella sezione 'log' del file di configurazione ed eseguite il comando con l'opzione
-vvvv
. Dopo aver completato il controllo dell'output assicuratevi di resettare questo parametro su 0, in modo da evitare possibili problemi con il lock della macchina durante situazioni in cui avrete una memoria molto bassa. - Eseguite il comando
lvmdump
il quale fornisce le informazioni relative al dump per scopi diagnostici. Per informazioni consultate la pagina man (8) dilvmdump
. - Eseguite il comando
lvs -v
,pvs -a
odmsetup info -c
per informazioni aggiuntive del sistema. - Esaminate l'ultimo backup dei metadati in
/etc/lvm/backup
e le versioni archiviate in/etc/lvm/archive
. - Controllate le informazioni correnti sulla configurazione, eseguendo il comando
lvm dumpconfig
. - Controllate il file
.cache
in/etc/lvm
per informazioni relative sul dispositivo che presenta i volumi fisici.
6.2. Come visualizzare le informazioni su dispositivi falliti
-P
del comando lvs
o vgs
, per visualizzare le informazioni sul volume fallito che potrebbero non apparire all'interno dell'output. Questa opzione permette alcune operazioni anche se i metadati non sono completamente uguali all'interno. Per esempio, se uno dei dispositivi che compone il gruppo di volumi vg
fallisce, il comando vgs
potrebbe mostrare il seguente output.
[root@link-07 tmp]# vgs -o +devices
Volume group "vg" not found
-P
di vgs
, il gruppo di volumi risulta essere ancora non utilizzabile, ma sarete in grado di visualizzare maggiori informazioni sul dispositivo fallito.
[root@link-07 tmp]# vgs -P -o +devices
Partial mode. Incomplete volume groups will be activated read-only.
VG #PV #LV #SN Attr VSize VFree Devices
vg 9 2 0 rz-pn- 2.11T 2.07T unknown device(0)
vg 9 2 0 rz-pn- 2.11T 2.07T unknown device(5120),/dev/sda1(0)
lvs
senza l'opzione -P
mostra il seguente output.
[root@link-07 tmp]# lvs -a -o +devices
Volume group "vg" not found
-P
visualizzerete i volumi logici falliti.
[root@link-07 tmp]# lvs -P -a -o +devices
Partial mode. Incomplete volume groups will be activated read-only.
LV VG Attr LSize Origin Snap% Move Log Copy% Devices
linear vg -wi-a- 20.00G unknown device(0)
stripe vg -wi-a- 20.00G unknown device(5120),/dev/sda1(0)
pvs
e lvs
con l'opzione -P
specificata quando una sezione del volume logico speculare è fallita.
root@link-08 ~]# vgs -a -o +devices -P
Partial mode. Incomplete volume groups will be activated read-only.
VG #PV #LV #SN Attr VSize VFree Devices
corey 4 4 0 rz-pnc 1.58T 1.34T my_mirror_mimage_0(0),my_mirror_mimage_1(0)
corey 4 4 0 rz-pnc 1.58T 1.34T /dev/sdd1(0)
corey 4 4 0 rz-pnc 1.58T 1.34T unknown device(0)
corey 4 4 0 rz-pnc 1.58T 1.34T /dev/sdb1(0)
[root@link-08 ~]# lvs -a -o +devices -P
Partial mode. Incomplete volume groups will be activated read-only.
LV VG Attr LSize Origin Snap% Move Log Copy% Devices
my_mirror corey mwi-a- 120.00G my_mirror_mlog 1.95 my_mirror_mimage_0(0),my_mirror_mimage_1(0)
[my_mirror_mimage_0] corey iwi-ao 120.00G unknown device(0)
[my_mirror_mimage_1] corey iwi-ao 120.00G /dev/sdb1(0)
[my_mirror_mlog] corey lwi-ao 4.00M /dev/sdd1(0)
6.3. Processo di recupero da un LVM Mirror Failure
mirror_log_fault_policy
impostato su remove
rendendo necessaria una compilazione manuale del mirror. Per maggiori informazioni su come impostare il parametro mirror_log_fault_policy
consultare Sezione 6.3, «Processo di recupero da un LVM Mirror Failure».
[root@link-08 ~]# pvcreate /dev/sd[abcdefgh][12]
Physical volume "/dev/sda1" successfully created
Physical volume "/dev/sda2" successfully created
Physical volume "/dev/sdb1" successfully created
Physical volume "/dev/sdb2" successfully created
Physical volume "/dev/sdc1" successfully created
Physical volume "/dev/sdc2" successfully created
Physical volume "/dev/sdd1" successfully created
Physical volume "/dev/sdd2" successfully created
Physical volume "/dev/sde1" successfully created
Physical volume "/dev/sde2" successfully created
Physical volume "/dev/sdf1" successfully created
Physical volume "/dev/sdf2" successfully created
Physical volume "/dev/sdg1" successfully created
Physical volume "/dev/sdg2" successfully created
Physical volume "/dev/sdh1" successfully created
Physical volume "/dev/sdh2" successfully created
vg
ed i volumi speculari groupfs
.
[root@link-08 ~]#vgcreate vg /dev/sd[abcdefgh][12]
Volume group "vg" successfully created [root@link-08 ~]#lvcreate -L 750M -n groupfs -m 1 vg /dev/sda1 /dev/sdb1 /dev/sdc1
Rounding up size to full physical extent 752.00 MB Logical volume "groupfs" created
lvs
per verificare la disposizione del volume speculare e dei dispositivi relativi alla sezione del mirror e del log. Da notare che nel primo esempio il mirror non è ancora completamente sincronizzato; dovreste attendere fino a quando il campo Copy%
mostra il valore 100.00 prima di continuare.
[root@link-08 ~]#lvs -a -o +devices
LV VG Attr LSize Origin Snap% Move Log Copy% Devices groupfs vg mwi-a- 752.00M groupfs_mlog 21.28 groupfs_mimage_0(0),groupfs_mimage_1(0) [groupfs_mimage_0] vg iwi-ao 752.00M /dev/sda1(0) [groupfs_mimage_1] vg iwi-ao 752.00M /dev/sdb1(0) [groupfs_mlog] vg lwi-ao 4.00M /dev/sdc1(0) [root@link-08 ~]#lvs -a -o +devices
LV VG Attr LSize Origin Snap% Move Log Copy% Devices groupfs vg mwi-a- 752.00M groupfs_mlog 100.00 groupfs_mimage_0(0),groupfs_mimage_1(0) [groupfs_mimage_0] vg iwi-ao 752.00M /dev/sda1(0) [groupfs_mimage_1] vg iwi-ao 752.00M /dev/sdb1(0) [groupfs_mlog] vg lwi-ao 4.00M i /dev/sdc1(0)
/dev/sda1
fallisce. Ogni attività di scrittura sul volume speculare causa il rilevamento da parte di LVM del mirror fallito. Quando ciò accade, LVM converte il mirror in un volume lineare singolo. In questo caso per attivare la conversione, verrà eseguito un comando dd
[root@link-08 ~]# dd if=/dev/zero of=/dev/vg/groupfs count=10
10+0 records in
10+0 records out
lvs
per verificare se il dispositivo è un dispositivo lineare. A causa del fallimento del disco si verificheranno errori I/O.
[root@link-08 ~]# lvs -a -o +devices
/dev/sda1: read failed after 0 of 2048 at 0: Input/output error
/dev/sda2: read failed after 0 of 2048 at 0: Input/output error
LV VG Attr LSize Origin Snap% Move Log Copy% Devices
groupfs vg -wi-a- 752.00M /dev/sdb1(0)
pvcreate
. Per non visualizzare questo messaggio eseguire vgreduce --removemissing
.
[root@link-08 ~]#pvcreate /dev/sdi[12]
Physical volume "/dev/sdi1" successfully created Physical volume "/dev/sdi2" successfully created [root@link-08 ~]#pvscan
PV /dev/sdb1 VG vg lvm2 [67.83 GB / 67.10 GB free] PV /dev/sdb2 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdc1 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdc2 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdd1 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdd2 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sde1 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sde2 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdf1 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdf2 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdg1 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdg2 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdh1 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdh2 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdi1 lvm2 [603.94 GB] PV /dev/sdi2 lvm2 [603.94 GB] Total: 16 [2.11 TB] / in use: 14 [949.65 GB] / in no VG: 2 [1.18 TB]
[root@link-08 ~]#vgextend vg /dev/sdi[12]
Volume group "vg" successfully extended [root@link-08 ~]#pvscan
PV /dev/sdb1 VG vg lvm2 [67.83 GB / 67.10 GB free] PV /dev/sdb2 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdc1 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdc2 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdd1 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdd2 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sde1 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sde2 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdf1 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdf2 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdg1 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdg2 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdh1 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdh2 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdi1 VG vg lvm2 [603.93 GB / 603.93 GB free] PV /dev/sdi2 VG vg lvm2 [603.93 GB / 603.93 GB free] Total: 16 [2.11 TB] / in use: 16 [2.11 TB] / in no VG: 0 [0 ]
[root@link-08 ~]# lvconvert -m 1 /dev/vg/groupfs /dev/sdi1 /dev/sdb1 /dev/sdc1
Logical volume mirror converted.
lvs
per verificare che il mirror sia stato ripristinato.
[root@link-08 ~]# lvs -a -o +devices
LV VG Attr LSize Origin Snap% Move Log Copy% Devices
groupfs vg mwi-a- 752.00M groupfs_mlog 68.62 groupfs_mimage_0(0),groupfs_mimage_1(0)
[groupfs_mimage_0] vg iwi-ao 752.00M /dev/sdb1(0)
[groupfs_mimage_1] vg iwi-ao 752.00M /dev/sdi1(0)
[groupfs_mlog] vg lwi-ao 4.00M /dev/sdc1(0)
6.4. Recupero dei metadati del volume fisico
Avvertimento
[root@link-07 backup]# lvs -a -o +devices
Couldn't find device with uuid 'FmGRh3-zhok-iVI8-7qTD-S5BI-MAEN-NYM5Sk'.
Couldn't find all physical volumes for volume group VG.
Couldn't find device with uuid 'FmGRh3-zhok-iVI8-7qTD-S5BI-MAEN-NYM5Sk'.
Couldn't find all physical volumes for volume group VG.
...
/etc/lvm/archive
. Verificate il file VolumeGroupName_xxxx.vg
per gli ultimi metadati di LVM validi archiviati, per quel gruppo di volumi.
partial
(-P
), potrebbe permettervi di trovare l'UUID del volume fisico corrotto mancante.
[root@link-07 backup]# vgchange -an --partial
Partial mode. Incomplete volume groups will be activated read-only.
Couldn't find device with uuid 'FmGRh3-zhok-iVI8-7qTD-S5BI-MAEN-NYM5Sk'.
Couldn't find device with uuid 'FmGRh3-zhok-iVI8-7qTD-S5BI-MAEN-NYM5Sk'.
...
--uuid
e --restorefile
di pvcreate
per ripristinare il volume fisico. Il seguente esempio etichetta il dispositivo /dev/sdh1
come volume fisico con il seguente UUID, FmGRh3-zhok-iVI8-7qTD-S5BI-MAEN-NYM5Sk
. Questo comando ripristina le informazioni relative ai metadati presenti in VG_00050.vg
, e cioè i metadati corretti più recenti archiviati per il gruppo di volumi. L'opzione restorefile
indica al comando pvcreate
di rendere il nuovo volume fisico compatibile con quello vecchio presente sul gruppo di volumi, assicurando che la nuova versione dei metadati non venga posizionata dove il volume fisico precedente conteneva i dati (tale comportamento si potrebbe verificare se per esempio, il comando pvcreate
originale avesse usato gli argomenti della linea di comando per controllare il posizionamento dei metadati, o se il volume fisico fosse stato creato originariamente utilizando una versione diversa di software con impostazioni predefinite differenti). Il comando pvcreate
sovrascrive solo le aree dei metadati di LVM e non interessa le aree dei dati esistenti.
[root@link-07 backup]# pvcreate --uuid "FmGRh3-zhok-iVI8-7qTD-S5BI-MAEN-NYM5Sk" --restorefile /etc/lvm/archive/VG_00050.vg /dev/sdh1
Physical volume "/dev/sdh1" successfully created
vgcfgrestore
per ripristinare i metadati del gruppo di volumi.
[root@link-07 backup]# vgcfgrestore VG
Restored volume group VG
[root@link-07 backup]# lvs -a -o +devices
LV VG Attr LSize Origin Snap% Move Log Copy% Devices
stripe VG -wi--- 300.00G /dev/sdh1 (0),/dev/sda1(0)
stripe VG -wi--- 300.00G /dev/sdh1 (34728),/dev/sdb1(0)
[root@link-07 backup]#lvchange -ay /dev/VG/stripe
[root@link-07 backup]#lvs -a -o +devices
LV VG Attr LSize Origin Snap% Move Log Copy% Devices stripe VG -wi-a- 300.00G /dev/sdh1 (0),/dev/sda1(0) stripe VG -wi-a- 300.00G /dev/sdh1 (34728),/dev/sdb1(0)
fsck
.
6.5. Sostituzione di un volume fisico mancante
--partial
e --verbose
del comando vgdisplay
, per visualizzare gli UUID e le dimensioni di ogni volume fisico non più esistente. Se desiderate sostituire un altro volume fisico con la stessa dimensione, usate il comando pvcreate
con le opzioni --restorefile
e --uuid
per inizializzare un nuovo dispositivo con lo stesso UUID del volume fisico mancante. Successivamente sarà possibile utilizzare vgcfgrestore
per recuperare i metadati del gruppo di volumi.
6.6. Rimozione dei volumi fisici persi da un gruppo di volumi
--partial
del comando vgchange
. È possibile rimuovere tutti i volumi logici che utilizzano il volume fisico dal gruppo di volumi tramite l'opzione --removemissing
del comando vgreduce
.
vgreduce
con l'opzione --test
, per verificare ciò che state eliminando.
vgreduce
è reversibile ciò significa che è possibile utilizzare immediatamente il comando vgcfgrestore
, per ripristinare i metadati del gruppo di volumi al loro stato precedente. Per esempio, se avete usato l'opzione --removemissing
del comando vgreduce
senza l'opzione --test
, e se avete rimosso i volumi logici che desideravate mantenere, sarà ancora possibile sostituire il volume fisico ed utilizzare un altro comando vgcfgrestore
per ritornare lo stato del gruppo di volumi al suo stato precedente.
6.7. Estensioni disponibili insufficienti per un volume logico
vgdisplay
o vgs
. Ciò è causato dai suddetti comandi poichè essi eseguono una approssimazione a due cifre decimali per fornire un output facilmente leggibile da parte dell'utente. Per specificare la dimensione esatta, utilizzate il conteggio dell'estensione fisica disponibile invece dei multipli di byte per determinare la dimensione del volume logico.
vgdisplay
per default include questa riga la quale indica le estensioni fisiche disponibili.
# vgdisplay
--- Volume group ---
...
Free PE / Size 8780 / 34.30 GB
vg_free_count
e vg_extent_count
di vgs
, per visualizzare le estensioni disponibili ed il numero totale di estensioni.
[root@tng3-1 ~]# vgs -o +vg_free_count,vg_extent_count
VG #PV #LV #SN Attr VSize VFree Free #Ext
testvg 2 0 0 wz--n- 34.30G 34.30G 8780 8780
# lvcreate -l8780 -n testlv testvg
# vgs -o +vg_free_count,vg_extent_count
VG #PV #LV #SN Attr VSize VFree Free #Ext
testvg 2 1 0 wz--n- 34.30G 0 0 8780
-l
del comando lvcreate
. Per informazioni consultate Sezione 4.4.1, «Creazione di volumi logici lineari».
Capitolo 7. Amministrazione di LVM con la GUI di LVM
system-config-lvm
. Il capitolo di LVM della Storage Administration Guide fornisce le informazioni utili passo-dopo-passo su come configurare un volume logico LVM utilizzando questa utilità.
Appendice A. Device Mapper
dmraid
utilizzano il Device Mapper. L'interfaccia dell'applicazione per il Device Mapper è la chiamata del sistema ioctl
. L'interfaccia utente è il comando dmsetup
.
dmsetup
. Per informazioni sul formato dei dispositivi in una tabella di mappatura, consultare Sezione A.1, «Tabella di mappatura del dispositivo». Per informazioni su come utilizzare il comando dmsetup
per interrogare un dispositivo consultare Sezione A.2, «Il comando dmsetup».
A.1. Tabella di mappatura del dispositivo
start length mapping
[mapping_parameters...
]
start
deve essere uguale a 0. I parametri start
+ length
su di una riga devono essere uguali a start
sulla riga successiva. I parametri di mappatura da specificare sulla riga della tabella dipendono dal tipo di mapping
specificato sulla riga.
/dev/hda
), o dai numeri minore e maggiore nel formato major
:minor
. Il formato major:minor viene preferito poichè evita i lookup del percorso.
0 35258368 linear 8:48 65920 35258368 35258368 linear 8:32 65920 70516736 17694720 linear 8:16 17694976 88211456 17694720 linear 8:16 256
lineare
. Il resto della riga consiste in parametri per un target lineare
.
- lineare
- segmentato
- mirror
- snapshot e snapshot-origin
- error
- zero
- multipath
- crypt
A.1.1. Target di mappatura lineare
start length
lineardevice offset
start
- blocco iniziale in un dispositivo virtuale
length
- lunghezza di questo segmento
device
- dispositivo a blocchi, indicato dal nome del dispositivo nel filesystem o dai numeri maggiore e minore nel formato
major
:minor
offset
- offset iniziale della mappatura sul dispositivo
0 16384000 linear 8:2 41156992
/dev/hda
specificato come parametro del dispositivo.
0 20971520 linear /dev/hda 384
A.1.2. Target per la mappatura segmentata
start length
striped#stripes chunk_size device1 offset1 ... deviceN offsetN
device
e offset
per ogni striscia.
start
- blocco iniziale in un dispositivo virtuale
length
- lunghezza di questo segmento
#stripes
- numero di segmenti per il dispositivo virtuale
chunk_size
- numero dei settori scritti su ogni segmento prima di smistarsi su quello successivo; deve essere una potenza di 2 e grande almeno quanto la dimensione della pagina del kernel
device
- dispositivo a blocchi, indicato dal nome del dispositivo nel filesystem o dai numeri maggiore e minore nel formato
major
:minor
. offset
- offset iniziale della mappatura sul dispositivo
0 73728 striped 3 128 8:9 384 8:8 384 8:7 9789824
- 0
- blocco iniziale in un dispositivo virtuale
- 73728
- lunghezza di questo segmento
- striped 3 128
- striscia attraverso tre dispositivi con un segmento di 128 blocchi
- 8:9
- major:minor numeri del primo dispositivo
- 384
- offset d'avvio della mappatura sul primo dispositivo
- 8:8
- numeri major:minor del secondo dispositivo
- 384
- offset d'inizio della mappatura sul secondo dispositivo
- 8:7
- numeri major:minor del terzo dispositivo
- 9789824
- offset d'inizio della mappatura sul terzo dispositivo
0 65536 striped 2 512 /dev/hda 0 /dev/hdb 0
A.1.3. Il target di mappatura mirror
start length
mirrorlog_type #logargs logarg1 ... logargN #devs device1 offset1 ... deviceN offsetN
start
- blocco iniziale in un dispositivo virtuale
length
- lunghezza di questo segmento
log_type
- I tipi possibili di log ed i rispettivi argomenti sono di seguito riportati:
core
- Il mirror è locale ed il mirror log viene conservato nella memoria principale. Questo tipo di log richiede 1 - 3 argomenti:regionsize [[
no
]sync
] [block_on_error
] disk
- Il mirror è locale ed il mirror log viene conservato sul disco. Questo tipo di log richiede 2 - 4 argomenti:logdevice regionsize [[
no
]sync
] [block_on_error
] clustered_core
- Il mirror è clusterizzato ed il mirror log viene conservato nella memoria principale. Questo tipo di log richiede 2 - 4 argomenti:regionsize UUID [[
no
]sync
] [block_on_error
] clustered_disk
- Il mirror è clusterizzato ed il mirror log viene conservato sul disco. Questo tipo di log richiede 3 - 5 argomenti:logdevice regionsize UUID [[
no
]sync
] [block_on_error
]
LVM conserva un piccolo log il quale viene utilizzato per controllare le regioni in sincronizzazione con i mirror. L'argomento regionsize specifica la dimensione di queste regioni.In un ambiente clusterizzato l'argomento UUID è un identificatore unico associato con il dispositivo mirror log, in modo da poter mantenere lo stato del log sull'intero cluster.L'argomento[no]sync
facoltativo può essere utilizzato per specificare il mirror come "in-sync" o "out-of-sync". L'argomentoblock_on_error
viene utilizzato per indicare al mirror di rispondere agli errori invece di ignorarli. #log_args
- numero di argomenti per il log specificati nella mappatura.
logargs
- gli argomenti di log per il mirror; il numero di argomenti di log forniti viene specificato dal parametro
#log-args
, e gli argomenti di log validi sono determinati dal parametrolog_type
. #devs
- il numero di gambe (o sezioni) nel mirror; viene specificato un dispositivo ed un offset per ogni sezione.
device
- dispositivo a blocchi per ogni sezione del mirror, indicato dal nome del dispositivo nel filesystem o dai numeri major e minor nel formato
major
:minor
. Un dispositivo a blocchi e l'offset sono specificati per ogni gamba del mirror, come riportato dal parametro#devs
. offset
- offset d'inizio per la mappatura sul dispositivo. Un dispositivo a blocchi ed un offset sono specificati per ogni sezione del mirror, come indicato dal parametro
#devs
.
0 52428800 mirror clustered_disk 4 253:2 1024 UUID block_on_error 3 253:3 0 253:4 0 253:5 0
- 0
- blocco iniziale in un dispositivo virtuale
- 52428800
- lunghezza di questo segmento
- mirror clustered_disk
- target del mirror con un tipo di log il quale specifica un mirror clusterizzato con un mirror log conservato sul disco
- 4
- seguiranno 4 argomenti del mirror log
- 253:2
- major:minor numeri del dispositivo di log
- 1024
- dimensione della regione usata dal mirror log per controllare tutto ciò che è sincronizzato
UUID
- UUID del dispositivo del mirror log per conservare le informazioni di un intero cluster
block_on_error
- il mirror dovrebbe rispondere agli errori
- 3
- numero di gambe nel mirror
- 253:3 0 253:4 0 253:5 0
- numeri major:minor e offset per dispositivi che costituiscono ogni sezione del mirror
A.1.4. Target di mappatura snapshot e snapshot-origin
- Un dispositivo con una mappatura
lineare
contenente la tabella di mappatura originale del volume sorgente. - Un dispositivo con una mappatura
lineare
utilizzato come dispositivo copy-on-write (COW) per il volume sorgente; per ogni scrittura, i dati originali vengono salvati nel dispositivo COW di ogni snapshot per mantenere il proprio contenuto visibile invariato (fino al riempimento del dispositivo COW). - Un dispositivo con una mappatura
snapshot
che combina #1 e #2, il quale risulta essere il volume snapshot visibile. - Il volume "originale" (il quale utilizza il numero del dispositivo usato dal volume sorgente originale), la cui tabella viene sostituita da una mappatura "snapshot-origin" dal dispositivo #1.
base
, ed un volume snapshot chiamato snap
basato sul quel volume.
#lvcreate -L 1G -n base volumeGroup
#lvcreate -L 100M --snapshot -n snap volumeGroup/base
#dmsetup table|grep volumeGroup
volumeGroup-base-real: 0 2097152 linear 8:19 384 volumeGroup-snap-cow: 0 204800 linear 8:19 2097536 volumeGroup-snap: 0 2097152 snapshot 254:11 254:12 P 16 volumeGroup-base: 0 2097152 snapshot-origin 254:11 #ls -lL /dev/mapper/volumeGroup-*
brw------- 1 root root 254, 11 29 ago 18:15 /dev/mapper/volumeGroup-base-real brw------- 1 root root 254, 12 29 ago 18:15 /dev/mapper/volumeGroup-snap-cow brw------- 1 root root 254, 13 29 ago 18:15 /dev/mapper/volumeGroup-snap brw------- 1 root root 254, 10 29 ago 18:14 /dev/mapper/volumeGroup-base
snapshot-origin
è il seguente:
start length
snapshot-originorigin
start
- blocco iniziale in un dispositivo virtuale
length
- lunghezza di questo segmento
origin
- volume di base della snapshot
snapshot-origin
avrà normalmente uno o più snapshot basati su di esso. I processi di lettura verranno mappati direttamente sul dispositivo di supporto. Per ogni processo di scrittura i dati originali saranno salvati nel dispositivo COW di ogni snapshot in modo da mantenere il proprio contenuto visibile invariato fino all'utilizzo completo del dispositivo COW.
snapshot
è il seguente:
start length
snapshotorigin COW-device
P|Nchunksize
start
- blocco iniziale in un dispositivo virtuale
length
- lunghezza di questo segmento
origin
- volume di base della snapshot
COW-device
- Dispositivo sul quale vengono conservati sezioni di dati modificati
- P|N
- P (Persistent) o N (Not persistent); indicano se snapshot sopravviverà dopo il riavvio. Per snapshot transitorie (N), una quantità minore di metadata deve essere salvata sul disco; essi possono essere conservati in memoria dal kernel.
chunksize
- Dimensione in settori di segmenti di dati modificati che verranno archiviati sul dispositivo COW.
snapshot-origin
con un dispositivo d'origine di 254:11.
0 2097152 snapshot-origin 254:11
snapshot
con un dispositivo d'origine di 254:11, ed un dispositivo COW di 254:12. Il dispositivo snapshot è persistente dopo ogni riavvio e la dimensione del segmento per i dati conservati sul dispositivo COW è di 16 settori.
0 2097152 snapshot 254:11 254:12 P 16
A.1.5. Target di mappatura 'error'
error
non accetta parametri aggiuntivi oltre ai parametri start e length.
error
.
0 65536 error
A.1.6. Target di mappatura zero
zero
è un dispositivo a blocchi equivalente a /dev/zero
. Un processo di lettura per questo tipo di mappatura ritorna blocchi di zero. I dati scritti su questa mappatura vengono scartati, ma il processo di scrittura avrà successo. Il target di mappatura zero
non accetta parametri aggiuntivi oltre ai parametri start e length.
zero
per un dispositivo a 16Tb.
0 65536 zero
A.1.7. Il target di mappatura multipath
multipath
è il seguente:
start length
multipath
#features [feature1 ... featureN] #handlerargs [handlerarg1 ... handlerargN] #pathgroups pathgroup pathgroupargs1 ... pathgroupargsN
pathgroupargs
per ogni gruppo di percorsi.
start
- blocco iniziale in un dispositivo virtuale
length
- lunghezza di questo segmento
#features
- Il numero di funzioni multipath seguito dalle funzioni in questione. Se questo parametro è zero allora non sarà disponibile alcun parametro
feature
, ed il parametro di mappatura del dispositivo successivo è#handlerargs
. Attualmente è supportata solo una funzione multipath,queue_if_no_path
. Ciò indica che il dispositivo 'multipathed' in questone è attualmente impostato per mettere in coda le operazioni I/O se non è disponibile alcun percorso.Per esempio, se l'opzioneno_path_retry
, nel filemultipath.conf
, è stata impostata in modo da mettere in coda le operazioni I/O solo fino a quando tutti i percorsi sono stati contrassegnati come falliti dopo un certo numero di tentativi fatti per utilizzare il percorso in questione, la mappatura apparirà nel modo seguente fino a quando tutti i controllori del percorso non avranno fallito il numero di controlli specificato.0 71014400 multipath 1 queue_if_no_path 0 2 1 round-robin 0 2 1 66:128 \ 1000 65:64 1000 round-robin 0 2 1 8:0 1000 67:192 1000
Dopo che tutti i controllori del percorso hanno fallito il numero di controlli specificato la mappatura apparirà nel modo seguente.0 71014400 multipath 0 0 2 1 round-robin 0 2 1 66:128 1000 65:64 1000 \ round-robin 0 2 1 8:0 1000 67:192 1000
#handlerargs
- Il numero di argomenti del gestore hardware seguito dagli argomenti. Un gestore hardware specifica il modulo che verrà utilizzato per eseguire le azioni hardware specifiche durante lo smistamento tra gruppi di percorsi o durante la gestione degli errori I/O. Se impostato su 0 il parametro successivo è
#pathgroups
. #pathgroups
- Il numero dei gruppi di percorsi. Un gruppo di percorsi rappresenta un insieme di percorsi attraverso i quali un dispositivo 'multipathed' bilancerà il carico. È disponibile un set di parametri
pathgroupargs
per ogni gruppo di percorsi. pathgroup
- Il gruppo di percorsi successivo da provare.
pathgroupsargs
- Ogni gruppo di percorsi presenta i seguenti argomenti:
pathselector #selectorargs #paths #pathargs device1 ioreqs1 ... deviceN ioreqsN
È disponibile un set di argomenti per ogni percorso presente nel gruppo di percorsi.pathselector
- Specifica l'algoritmo utilizzato per determinare il percorso, presente all'interno del gruppo, da utilizzare per l'operazione I/O successiva.
#selectorargs
- Il numero di argomenti del selettore del percorso che segue questo argomento nella mappatura multipath. Attualmente il valore di questo argomento è sempre 0.
#paths
- Il numero di percorsi in questo gruppo di percorsi.
#pathargs
- Il numero di argomenti del percorso specificati per ogni percorso in questo gruppo. Attualmente questo numero è sempre 1, l'argomento
ioreqs
. device
- Il numero del dispositivo a blocchi del percorso, indicato dai numeri major e minor nel formato
major
:minor
ioreqs
- Il numero delle richieste I/O per l'instradamento per questo percorso prima di smistarsi sul percorso successivo nel gruppo corrente.

Figura A.1. Target di mappatura Multipath
0 71014400 multipath 0 0 4 1 round-robin 0 1 1 66:112 1000 \ round-robin 0 1 1 67:176 1000 round-robin 0 1 1 68:240 1000 \ round-robin 0 1 1 65:48 1000
0 71014400 multipath 0 0 1 1 round-robin 0 4 1 66:112 1000 \ 67:176 1000 68:240 1000 65:48 1000
A.1.8. Target di mappatura crypt
crypt
cifra i dati che passano attraverso il dispositivo specificato. Esso utilizza il kernel Crypto API.
crypt
è il seguente:
start length
cryptcipher key IV-offset device offset
start
- blocco iniziale in un dispositivo virtuale
length
- lunghezza di questo segmento
cipher
- Il Cipher consiste in
cipher[-chainmode]-ivmode[:iv options]
.cipher
- I Cipher disponibili sono riportati in
/proc/crypto
(per esempio,aes
). chainmode
- Utilizza sempre
cbc
. Non utilizzareebc
; esso non utilizza un initial vector (IV). ivmode[:iv options]
- IV è un initial vector utilizzato per variare la cifratura. La modalità IV può essere
plain
oessiv:hash
. Univmode
di-plain
utilizza il numero del settore (più l'offset IV) di IV. Univmode
di-essiv
è il modo migliore per non avere problemi con il watermark.
key
- Chiave di cifratura fornita in esadecimale
IV-offset
- Offset Initial Vector (IV)
device
- dispositivo a blocchi, indicato dal nome del dispositivo nel filesystem o dai numeri maggiore e minore nel formato
major
:minor
offset
- offset iniziale della mappatura sul dispositivo
crypt
.
0 2097152 crypt aes-plain 0123456789abcdef0123456789abcdef 0 /dev/hda 0
A.2. Il comando dmsetup
dmsetup
è un wrapper della linea di comando per le comunicazioni con il Device Mapper. Per informazioni generali del sistema sui dispositivi LVM, le opzioni info
, ls
, status
, e deps
del comando dmsetup
potranno risultare utili, come descritto nelle seguenti sottosezioni.
dmsetup
consultate la pagina man (8) di dmsetup
.
A.2.1. Il comando dmsetup info
dmsetup info device
fornisce le informazioni sui dispositivi del Device Mapper. Se non specificate alcun nome l'output conterrà le informazioni di tutti i dispositivi del Device Mapper attualmente configurati. Se al contrario viene specificato un dispositivo, le informazioni fornite riguarderanno solo il dispositivo interessato.
dmsetup info
fornisce le informazioni nelle seguenti categorie:
Nome
- Il nome del dispositivo. Un dispositivo LVM viene indicato come nome del gruppo di volumi e nome del volume logico separato da un trattino. Un trattino nel nome originale viene tradotto in due trattini.
Stato
- Gli stati possibili del dispositivo sono
SUSPENDED
,ACTIVE
, eREAD-ONLY
. Il comandodmsetup suspend
imposta lo stato suSUSPENDED
. Quando un dispositivo risulta sospeso, tutte le operazioni I/O per quel dispositivo verranno arrestate. Il comandodmsetup resume
ripristina lo stato del dispositivo suACTIVE
. Read Ahead
- Il numero di blocchi dati letti a priori dal sistema per qualsiasi file aperto sul quale sono in corso le operazioni di lettura. Nell'impostazione predefinita il kernel seleziona automaticamente un valore idoneo. È possibile modificare questo valore con l'opzione
--readahead
del comandodmsetup
. Tabelle presenti
- Gli stati possibili per questa categoria sono
LIVE
eINACTIVE
. Uno statoINACTIVE
indica che una tabella è stata caricata e verrà intercambiata quando il comandodmsetup resume
ripristina lo stato di un dispositivo suACTIVE
, a questo punto lo stato della tabella diventeràLIVE
. Per maggiori informazioni consultare la pagina man didmsetup
. Conteggio apertura
- L'open reference count indica il numero di volte che un dispositivo viene aperto. Un comando
mount
apre il dispositivo. Numero eventi
- Il numero corrente degli eventi. L'emissione del comando
dmsetup wait n
permette all'utente di aspettare che l'evento cambi, bloccando la chiamata fino a quando viene ricevuta. Maggiore, minore
- I numeri maggiore e minore del dispositivo
Numero di target
- Il numero di frammenti che costituisce un dispositivo. Per esempio, un dispositivo lineare che si estende su 3 dischi avrà 3 target. Un dispositivo lineare composto dall'inizio e fine di un disco, ma non dal centro, avrà 2 target.
UUID
- UUID del dispositivo.
dmsetup info
.
[root@ask-07 ~]# dmsetup info
Name: testgfsvg-testgfslv1
State: ACTIVE
Read Ahead: 256
Tables present: LIVE
Open count: 0
Event number: 0
Major, minor: 253, 2
Number of targets: 2
UUID: LVM-K528WUGQgPadNXYcFrrf9LnPlUMswgkCkpgPIgYzSvigM7SfeWCypddNSWtNzc2N
...
Name: VolGroup00-LogVol00
State: ACTIVE
Read Ahead: 256
Tables present: LIVE
Open count: 1
Event number: 0
Major, minor: 253, 0
Number of targets: 1
UUID: LVM-tOcS1kqFV9drb0X1Vr8sxeYP0tqcrpdegyqj5lZxe45JMGlmvtqLmbLpBcenh2L3
A.2.2. Il comando dmsetup ls
dmsetup ls
altresì sarà possibile elencare i dispositivi con almeno un target di tipo specifico con il comando dmsetup ls --target target_type
. Per altre opzioni di dmsetup ls
, consultare la pagina man dmsetup
.
[root@ask-07 ~]# dmsetup ls
testgfsvg-testgfslv3 (253, 4)
testgfsvg-testgfslv2 (253, 3)
testgfsvg-testgfslv1 (253, 2)
VolGroup00-LogVol01 (253, 1)
VolGroup00-LogVol00 (253, 0)
[root@grant-01 ~]# dmsetup ls --target mirror
lock_stress-grant--02.1722 (253, 34)
lock_stress-grant--01.1720 (253, 18)
lock_stress-grant--03.1718 (253, 52)
lock_stress-grant--02.1716 (253, 40)
lock_stress-grant--03.1713 (253, 47)
lock_stress-grant--02.1709 (253, 23)
lock_stress-grant--01.1707 (253, 8)
lock_stress-grant--01.1724 (253, 14)
lock_stress-grant--03.1711 (253, 27)
dmsetup ls
fornisce una opzione --tree
la quale mostra le dipendenze presenti tra i dispositivi sotto forma di albero, come riportato nel seguente esempio:
# dmsetup ls --tree
vgtest-lvmir (253:13)
├─vgtest-lvmir_mimage_1 (253:12)
│ └─mpathep1 (253:8)
│ └─mpathe (253:5)
│ ├─ (8:112)
│ └─ (8:64)
├─vgtest-lvmir_mimage_0 (253:11)
│ └─mpathcp1 (253:3)
│ └─mpathc (253:2)
│ ├─ (8:32)
│ └─ (8:16)
└─vgtest-lvmir_mlog (253:4)
└─mpathfp1 (253:10)
└─mpathf (253:6)
├─ (8:128)
└─ (8:80)
A.2.3. Il comando dmsetup status
dmsetup status device
fornisce le informazioni sullo stato per ogni target in un dispositivo specifico. Se non specificate alcun nome, l'output conterrà le informazioni di tutti i dispositivi Device Mapper attualmente configurati. È possibile elencare lo stato dei dispositivi con almeno un target di tipo specifico specificato con il comando dmsetup status --target target_type
.
[root@ask-07 ~]# dmsetup status
testgfsvg-testgfslv3: 0 312352768 linear
testgfsvg-testgfslv2: 0 312352768 linear
testgfsvg-testgfslv1: 0 312352768 linear
testgfsvg-testgfslv1: 312352768 50331648 linear
VolGroup00-LogVol01: 0 4063232 linear
VolGroup00-LogVol00: 0 151912448 linear
A.2.4. Il comando dmsetup deps
dmsetup deps device
fornisce un elenco di coppie (maggiore, minore) per dispositivi indicati dalla tabella di mappatura per il dispositivo specificato. Se non specificate il nome del dispositivo, le informazioni contenute dall'output riguarderanno tutti i dispositivi Device Mapper attualmente configurati.
[root@ask-07 ~]# dmsetup deps
testgfsvg-testgfslv3: 1 dependencies : (8, 16)
testgfsvg-testgfslv2: 1 dependencies : (8, 16)
testgfsvg-testgfslv1: 1 dependencies : (8, 16)
VolGroup00-LogVol01: 1 dependencies : (8, 2)
VolGroup00-LogVol00: 1 dependencies : (8, 2)
lock_stress-grant--02.1722
:
[root@grant-01 ~]# dmsetup deps lock_stress-grant--02.1722
3 dependencies : (253, 33) (253, 32) (253, 31)
A.3. Supporto Device Mapper per il Device Manager udev
udev
è quello di fornire un metodo dinamico per l'impostazione dei nodi nella directory /dev
. La creazione di questi nodi viene eseguita tramite l'implementazione delle regole udev
nello spazio utente. Le suddette regole sono processate sugli eventi udev
inviati dal kernel come risultato di una aggiunta, rimozione o modifica di dispositivi particolari. Ciò fornisce un meccanismo centrale conveniente per un supporto di tipo hotplug.
udev
è in grado di creare qualsiasi link simbolico con i rispettivi nomi, fornendo agli utenti la possibilità di scegliere i nomi e la struttura della directory personalizzati nella directory /dev
.
udev
contiene le informazioni di base sul dispositivo processato, ad esempio il nome, il sottosistema a cui appartiene ed il tipo di dispositivo, i numeri maggiore e minore usati ed il tipo di evento. Con questi dati e con la possibilità di accedere a tutte le informazioni disponibili nella directory /sys
accessibile anche all'interno delle regole udev
, gli utenti saranno in grado di utilizzare filtri semplici ed eseguire le regole in base alle suddette informazioni.
udev
fornisce anche un metodo centralizzato per l'impostazione dei permessi dei nodi. Un utente sarà in grado di aggiungere un set di regole personalizzate per definire i permessi per qualsiasi dispositivo specificato da qualsiasi informazione disponibile durante la processazione dell'evento.
udev
. Il device manager udev
è in grado di chiamare i suddetti programmi in modo da fornire una ulteriore processazione per la gestione degli eventi. Inoltre il programma è in grado di esportare le variabili dell'ambiente come risultato di questo processo. Ogni risultato dato può essere usato nelle regole come risorsa supplementare.
udev
è in grado di ricevere e processare gli eventi udev
con tutte le informazioni disponibili, in questo modo la processazione non dipende solo dal demone udev
.
A.3.1. Integrazione udev con il Device Mapper
udev
. Tale operazione sincronizza il Device Mapper con tutta la processazione di udev
relativa ai dispositivi del Device Mapper, incluso i dispositivi LVM. La sincronizzazione è necessaria poichè l'applicazione delle regole nel demone di udev
è una forma di processazione parallela al programma d'origine delle modifiche del dispositivo (come ad esempio dmsetup
e LVM). Senza questo supporto il tentativo di rimozione di un dispositivo ancora aperto e processato dalle regole udev
a causa di alcune modifiche di eventi precedenti risultava essere un problema comune; questa tendenza era molto comune se il tempo intercorso tra le modifiche era breve.
udev
ufficialmente supportate per i dispositivi del Device Mapper in generale e LVM. Tabella A.1, «Regole udev per dispositivi Device-Mapper» riassume le suddette regole presenti in /lib/udev/rules.d
.
Tabella A.1. Regole udev per dispositivi Device-Mapper
Nome file | Descrizione | ||
---|---|---|---|
10-dm.rules |
| ||
11-dm-lvm.rules |
| ||
13-dm-disk.rules | Contiene le regole da applicare per tutti i dispositivi del Device Mapper in generale e crea i link simbolici nelle directory /dev/disk/by-id , /dev/disk/by-uuid e /dev/disk/by-uuid | ||
95-dm-notify.rules | Contiene le regole per la notifica dei processi in attesa che utilizzano libdevmapper (proprio come LVM e dmsetup ). La notifica viene eseguita dopo aver applicato le precedenti regole in modo da assicurare il completamento di qualsiasi processazione da parte di udev . Il processo notificato verrà successivamente riattivato. |
12-dm-permissions.rules
. Questo file non è installato nella directory /lib/udev/rules
ma nella directory /usr/share/doc/device-mapper-version
. Il file 12-dm-permissions.rules
è un modello il quale contiene suggerimenti su come impostare i permessi, in base ad alcune regole d'esempio; il file contiene gli esempi per alcune situazioni tipo. Sarà possibile modificare questo file e posizionarlo manualmente nella directory /etc/udev/rules.d
dove potrà preservare le impostazioni.
DM_NAME
:Nome dispositivo del Device MapperDM_UUID
: UUID del dispositivo del Device MapperDM_SUSPENDED
: lo stato sospeso del dispositivo del Device MapperDM_UDEV_RULES_VSN
: versione regoleudev
(principalmente per tutte le altre regole per controllare che le variabili precedentemente indicate siano state impostate direttamente da regole ufficiali del Device Mapper)
11-dm-lvm.rules
:
DM_LV_NAME
: nome volume logicoDM_VG_NAME
: nome gruppo di volumiDM_LV_LAYER
: nome livello LVM
12-dm-permissions.rules
per definire un permesso di dispositivi Device Mapper specifici come documentato nel file 12-dm-permissions.rules
.
A.3.2. Comandi ed interfacce che supportano udev
dmsetup
che supportano l'integrazione udev
.
Tabella A.2. Comandi dmsetup per il supporto di udev
Comando | Descrizione |
---|---|
dmsetup udevcomplete | Usato per notificare che udev ha terminato la processazione delle regole con il relativo sblocco del processo in attesa (chiamato dalle regole udev in 95-dm-notify.rules ) |
dmsetup udevcomplete_all | Usato per il debugging per sbloccare manualmente tutti i processi in attesa |
dmsetup udevcookies | Usato per il debugging per mostrare tutti i cookie esistenti (semafori dell'intero sistema) |
dmsetup udevcreatecookie | Usato per la creazione manuale di un ccokie (semaforo). Utile per eseguire più processi con una risorsa di sincronizzazione. |
dmsetup udevreleasecookie | Usato per attendere la processazione udev relativa a tutti i processi presenti in un coockie di sincronizzazione. |
dmsetup
che supportano l'intergazione udev
sono di seguito riportate.
--udevcookie
- Da definire per tutti i processi dmsetup che si desiderano aggiungere in una transazione udev. Usato insieme a
udevcreatecookie
eudevreleasecookie
:COOKIE=$(dmsetup udevcreatecookie) dmsetup command --udevcookie $COOKIE .... dmsetup command --udevcookie $COOKIE .... .... dmsetup command --udevcookie $COOKIE .... dmsetup udevreleasecookie --udevcookie $COOKIE
Invece di usare l'opzione--udevcookie
sarà possibile esportare la variabile in un ambiente del processo.export DM_UDEV_COOKIE=$(dmsetup udevcreatecookie) dmsetup command ... dmsetup command ... ... dmsetup command ...
--noudevrules
- Disabilita le regole udev. I nodi/link simbolici verranno creati da
libdevmapper
(seguendo la vecchia procedura). Questa opzione viene usata per il debugging seudev
non funziona correttamente. --noudevsync
- Disabilita la sincronizzazione
udev
. Anche a scopo di debugging.
dmsetup
e relative opzioni consultate la pagina man (8) di dmsetup
.
udev
:
--noudevrules
: per il comandodmsetup
, disabilita le regoleudev
.--noudevsync
: per il comandodmsetup
, disabilita la sincronizzazioneudev
.
lvm.conf
include le seguenti opzioni in grado di supportare l'integrazione udev
:
udev_rules
: abilita/disabilita globalmenteudev_rules
per tutti i comandi LVM2udev_sync
: abilita/disabilita la sincronizzazioneudev
globalmente per tutti i comandi LVM
lvm.conf
consultare i commenti presenti nel file lvm.conf
.
Appendice B. File di configurazione LVM
lvm.conf
viene caricato dalla directory specificata per mezzo della variabile dell'ambiente LVM_SYSTEM_DIR
, la quale è impostata per default su /etc/lvm
.
lvm.conf
è in grado di specificare i file aggiuntivi di configurazione da caricare. Le impostazioni dei file più recenti sovrascrivono le impostazioni dei file meno recenti. Per visualizzare le impostazioni in uso dopo aver caricato tutti i file di configurazione, eseguite il comando lvm dumpconfig
.
B.1. File di configurazione LVM
- /etc/lvm/lvm.conf
- file di configurazione centrale letto dai tool.
- etc/lvm/lvm_hosttag.conf
- Per ogni tag dell'host, verrà letto un file di configurazione aggiuntivo se esistente:
lvm_hosttag.conf
. Se il file in questione definisce nuovi tag, allora verranno aggiunti alla lista alcuni file di configurazione supplementari da leggere. Per informazioni sui tag degli host consultate Sezione C.2, «Tag dell'host».
- /etc/lvm/.cache
- file di cache del filtro del nome del dispositivo (configurabile).
- /etc/lvm/backup/
- directory per backup automatici dei metadati del gruppo di volumi (configurabili).
- /etc/lvm/archive/
- directory per archivi automatici di metadati per il gruppo di volumi (configurabile in relazione al percorso della directory ed alla cronologia).
- /var/lock/lvm
- In una configurazione host singolo eseguite il lock dei file per prevenire la corruzione dei metadati da parte del parallel tool; in un cluster viene usato il cluster-wide DLM.
B.2. Esempio di file lvm.conf
lvm.conf
. Il vostro file di configurazione potrebbe essere leggermente diverso.
# This is an example configuration file for the LVM2 system. # It contains the default settings that would be used if there was no # /etc/lvm/lvm.conf file. # # Refer to 'man lvm.conf' for further information including the file layout. # # To put this file in a different directory and override /etc/lvm set # the environment variable LVM_SYSTEM_DIR before running the tools. # This section allows you to configure which block devices should # be used by the LVM system. devices { # Where do you want your volume groups to appear ? dir = "/dev" # An array of directories that contain the device nodes you wish # to use with LVM2. scan = [ "/dev" ] # If several entries in the scanned directories correspond to the # same block device and the tools need to display a name for device, # all the pathnames are matched against each item in the following # list of regular expressions in turn and the first match is used. # preferred_names = [ ] # Try to avoid using undescriptive /dev/dm-N names, if present. preferred_names = [ "^/dev/mpath/", "^/dev/mapper/mpath", "^/dev/[hs]d" ] # A filter that tells LVM2 to only use a restricted set of devices. # The filter consists of an array of regular expressions. These # expressions can be delimited by a character of your choice, and # prefixed with either an 'a' (for accept) or 'r' (for reject). # The first expression found to match a device name determines if # the device will be accepted or rejected (ignored). Devices that # don't match any patterns are accepted. # Be careful if there there are symbolic links or multiple filesystem # entries for the same device as each name is checked separately against # the list of patterns. The effect is that if any name matches any 'a' # pattern, the device is accepted; otherwise if any name matches any 'r' # pattern it is rejected; otherwise it is accepted. # Don't have more than one filter line active at once: only one gets used. # Run vgscan after you change this parameter to ensure that # the cache file gets regenerated (see below). # If it doesn't do what you expect, check the output of 'vgscan -vvvv'. # By default we accept every block device: filter = [ "a/.*/" ] # Exclude the cdrom drive # filter = [ "r|/dev/cdrom|" ] # When testing I like to work with just loopback devices: # filter = [ "a/loop/", "r/.*/" ] # Or maybe all loops and ide drives except hdc: # filter =[ "a|loop|", "r|/dev/hdc|", "a|/dev/ide|", "r|.*|" ] # Use anchors if you want to be really specific # filter = [ "a|^/dev/hda8$|", "r/.*/" ] # The results of the filtering are cached on disk to avoid # rescanning dud devices (which can take a very long time). # By default this cache is stored in the /etc/lvm/cache directory # in a file called '.cache'. # It is safe to delete the contents: the tools regenerate it. # (The old setting 'cache' is still respected if neither of # these new ones is present.) cache_dir = "/etc/lvm/cache" cache_file_prefix = "" # You can turn off writing this cache file by setting this to 0. write_cache_state = 1 # Advanced settings. # List of pairs of additional acceptable block device types found # in /proc/devices with maximum (non-zero) number of partitions. # types = [ "fd", 16 ] # If sysfs is mounted (2.6 kernels) restrict device scanning to # the block devices it believes are valid. # 1 enables; 0 disables. sysfs_scan = 1 # By default, LVM2 will ignore devices used as components of # software RAID (md) devices by looking for md superblocks. # 1 enables; 0 disables. md_component_detection = 1 # By default, if a PV is placed directly upon an md device, LVM2 # will align its data blocks with the md device's stripe-width. # 1 enables; 0 disables. md_chunk_alignment = 1 # Default alignment of the start of a data area in MB. If set to 0, # a value of 64KB will be used. Set to 1 for 1MiB, 2 for 2MiB, etc. # default_data_alignment = 1 # By default, the start of a PV's data area will be a multiple of # the 'minimum_io_size' or 'optimal_io_size' exposed in sysfs. # - minimum_io_size - the smallest request the device can perform # w/o incurring a read-modify-write penalty (e.g. MD's chunk size) # - optimal_io_size - the device's preferred unit of receiving I/O # (e.g. MD's stripe width) # minimum_io_size is used if optimal_io_size is undefined (0). # If md_chunk_alignment is enabled, that detects the optimal_io_size. # This setting takes precedence over md_chunk_alignment. # 1 enables; 0 disables. data_alignment_detection = 1 # Alignment (in KB) of start of data area when creating a new PV. # md_chunk_alignment and data_alignment_detection are disabled if set. # Set to 0 for the default alignment (see: data_alignment_default) # or page size, if larger. data_alignment = 0 # By default, the start of the PV's aligned data area will be shifted by # the 'alignment_offset' exposed in sysfs. This offset is often 0 but # may be non-zero; e.g.: certain 4KB sector drives that compensate for # windows partitioning will have an alignment_offset of 3584 bytes # (sector 7 is the lowest aligned logical block, the 4KB sectors start # at LBA -1, and consequently sector 63 is aligned on a 4KB boundary). # But note that pvcreate --dataalignmentoffset will skip this detection. # 1 enables; 0 disables. data_alignment_offset_detection = 1 # If, while scanning the system for PVs, LVM2 encounters a device-mapper # device that has its I/O suspended, it waits for it to become accessible. # Set this to 1 to skip such devices. This should only be needed # in recovery situations. ignore_suspended_devices = 0 # During each LVM operation errors received from each device are counted. # If the counter of a particular device exceeds the limit set here, no # further I/O is sent to that device for the remainder of the respective # operation. Setting the parameter to 0 disables the counters altogether. disable_after_error_count = 0 # Allow use of pvcreate --uuid without requiring --restorefile. require_restorefile_with_uuid = 1 } # This section allows you to configure the way in which LVM selects # free space for its Logical Volumes. #allocation { # When searching for free space to extend an LV, the "cling" # allocation policy will choose space on the same PVs as the last # segment of the existing LV. If there is insufficient space and a # list of tags is defined here, it will check whether any of them are # attached to the PVs concerned and then seek to match those PV tags # between existing extents and new extents. # Use the special tag "@*" as a wildcard to match any PV tag. # # Example: LVs are mirrored between two sites within a single VG. # PVs are tagged with either @site1 or @site2 to indicate where # they are situated. # # cling_tag_list = [ "@site1", "@site2" ] # cling_tag_list = [ "@*" ] #} # This section that allows you to configure the nature of the # information that LVM2 reports. log { # Controls the messages sent to stdout or stderr. # There are three levels of verbosity, 3 being the most verbose. verbose = 0 # Should we send log messages through syslog? # 1 is yes; 0 is no. syslog = 1 # Should we log error and debug messages to a file? # By default there is no log file. #file = "/var/log/lvm2.log" # Should we overwrite the log file each time the program is run? # By default we append. overwrite = 0 # What level of log messages should we send to the log file and/or syslog? # There are 6 syslog-like log levels currently in use - 2 to 7 inclusive. # 7 is the most verbose (LOG_DEBUG). level = 0 # Format of output messages # Whether or not (1 or 0) to indent messages according to their severity indent = 1 # Whether or not (1 or 0) to display the command name on each line output command_names = 0 # A prefix to use before the message text (but after the command name, # if selected). Default is two spaces, so you can see/grep the severity # of each message. prefix = " " # To make the messages look similar to the original LVM tools use: # indent = 0 # command_names = 1 # prefix = " -- " # Set this if you want log messages during activation. # Don't use this in low memory situations (can deadlock). # activation = 0 } # Configuration of metadata backups and archiving. In LVM2 when we # talk about a 'backup' we mean making a copy of the metadata for the # *current* system. The 'archive' contains old metadata configurations. # Backups are stored in a human readeable text format. backup { # Should we maintain a backup of the current metadata configuration ? # Use 1 for Yes; 0 for No. # Think very hard before turning this off! backup = 1 # Where shall we keep it ? # Remember to back up this directory regularly! backup_dir = "/etc/lvm/backup" # Should we maintain an archive of old metadata configurations. # Use 1 for Yes; 0 for No. # On by default. Think very hard before turning this off. archive = 1 # Where should archived files go ? # Remember to back up this directory regularly! archive_dir = "/etc/lvm/archive" # What is the minimum number of archive files you wish to keep ? retain_min = 10 # What is the minimum time you wish to keep an archive file for ? retain_days = 30 } # Settings for the running LVM2 in shell (readline) mode. shell { # Number of lines of history to store in ~/.lvm_history history_size = 100 } # Miscellaneous global LVM2 settings global { # The file creation mask for any files and directories created. # Interpreted as octal if the first digit is zero. umask = 077 # Allow other users to read the files #umask = 022 # Enabling test mode means that no changes to the on disk metadata # will be made. Equivalent to having the -t option on every # command. Defaults to off. test = 0 # Default value for --units argument units = "h" # Since version 2.02.54, the tools distinguish between powers of # 1024 bytes (e.g. KiB, MiB, GiB) and powers of 1000 bytes (e.g. # KB, MB, GB). # If you have scripts that depend on the old behaviour, set this to 0 # temporarily until you update them. si_unit_consistency = 1 # Whether or not to communicate with the kernel device-mapper. # Set to 0 if you want to use the tools to manipulate LVM metadata # without activating any logical volumes. # If the device-mapper kernel driver is not present in your kernel # setting this to 0 should suppress the error messages. activation = 1 # If we can't communicate with device-mapper, should we try running # the LVM1 tools? # This option only applies to 2.4 kernels and is provided to help you # switch between device-mapper kernels and LVM1 kernels. # The LVM1 tools need to be installed with .lvm1 suffices # e.g. vgscan.lvm1 and they will stop working after you start using # the new lvm2 on-disk metadata format. # The default value is set when the tools are built. # fallback_to_lvm1 = 0 # The default metadata format that commands should use - "lvm1" or "lvm2". # The command line override is -M1 or -M2. # Defaults to "lvm2". # format = "lvm2" # Location of proc filesystem proc = "/proc" # Type of locking to use. Defaults to local file-based locking (1). # Turn locking off by setting to 0 (dangerous: risks metadata corruption # if LVM2 commands get run concurrently). # Type 2 uses the external shared library locking_library. # Type 3 uses built-in clustered locking. # Type 4 uses read-only locking which forbids any operations that might # change metadata. locking_type = 1 # Set to 0 to fail when a lock request cannot be satisfied immediately. wait_for_locks = 1 # If using external locking (type 2) and initialisation fails, # with this set to 1 an attempt will be made to use the built-in # clustered locking. # If you are using a customised locking_library you should set this to 0. fallback_to_clustered_locking = 1 # If an attempt to initialise type 2 or type 3 locking failed, perhaps # because cluster components such as clvmd are not running, with this set # to 1 an attempt will be made to use local file-based locking (type 1). # If this succeeds, only commands against local volume groups will proceed. # Volume Groups marked as clustered will be ignored. fallback_to_local_locking = 1 # Local non-LV directory that holds file-based locks while commands are # in progress. A directory like /tmp that may get wiped on reboot is OK. locking_dir = "/var/lock/lvm" # Whenever there are competing read-only and read-write access requests for # a volume group's metadata, instead of always granting the read-only # requests immediately, delay them to allow the read-write requests to be # serviced. Without this setting, write access may be stalled by a high # volume of read-only requests. # NB. This option only affects locking_type = 1 viz. local file-based # locking. prioritise_write_locks = 1 # Other entries can go here to allow you to load shared libraries # e.g. if support for LVM1 metadata was compiled as a shared library use # format_libraries = "liblvm2format1.so" # Full pathnames can be given. # Search this directory first for shared libraries. # library_dir = "/lib" # The external locking library to load if locking_type is set to 2. # locking_library = "liblvm2clusterlock.so" # Treat any internal errors as fatal errors, aborting the process that # encountered the internal error. Please only enable for debugging. abort_on_internal_errors = 0 # If set to 1, no operations that change on-disk metadata will be permitted. # Additionally, read-only commands that encounter metadata in need of repair # will still be allowed to proceed exactly as if the repair had been # performed (except for the unchanged vg_seqno). # Inappropriate use could mess up your system, so seek advice first! metadata_read_only = 0 } activation { # Set to 0 to disable udev synchronisation (if compiled into the binaries). # Processes will not wait for notification from udev. # They will continue irrespective of any possible udev processing # in the background. You should only use this if udev is not running # or has rules that ignore the devices LVM2 creates. # The command line argument --nodevsync takes precedence over this setting. # If set to 1 when udev is not running, and there are LVM2 processes # waiting for udev, run 'dmsetup udevcomplete_all' manually to wake them up. udev_sync = 1 # Set to 0 to disable the udev rules installed by LVM2 (if built with # --enable-udev_rules). LVM2 will then manage the /dev nodes and symlinks # for active logical volumes directly itself. # N.B. Manual intervention may be required if this setting is changed # while any logical volumes are active. udev_rules = 1 # How to fill in missing stripes if activating an incomplete volume. # Using "error" will make inaccessible parts of the device return # I/O errors on access. You can instead use a device path, in which # case, that device will be used to in place of missing stripes. # But note that using anything other than "error" with mirrored # or snapshotted volumes is likely to result in data corruption. missing_stripe_filler = "error" # How much stack (in KB) to reserve for use while devices suspended reserved_stack = 256 # How much memory (in KB) to reserve for use while devices suspended reserved_memory = 8192 # Nice value used while devices suspended process_priority = -18 # If volume_list is defined, each LV is only activated if there is a # match against the list. # "vgname" and "vgname/lvname" are matched exactly. # "@tag" matches any tag set in the LV or VG. # "@*" matches if any tag defined on the host is also set in the LV or VG # # volume_list = [ "vg1", "vg2/lvol1", "@tag1", "@*" ] # Size (in KB) of each copy operation when mirroring mirror_region_size = 512 # Setting to use when there is no readahead value stored in the metadata. # # "none" - Disable readahead. # "auto" - Use default value chosen by kernel. readahead = "auto" # 'mirror_image_fault_policy' and 'mirror_log_fault_policy' define # how a device failure affecting a mirror is handled. # A mirror is composed of mirror images (copies) and a log. # A disk log ensures that a mirror does not need to be re-synced # (all copies made the same) every time a machine reboots or crashes. # # In the event of a failure, the specified policy will be used to determine # what happens. This applies to automatic repairs (when the mirror is being # monitored by dmeventd) and to manual lvconvert --repair when # --use-policies is given. # # "remove" - Simply remove the faulty device and run without it. If # the log device fails, the mirror would convert to using # an in-memory log. This means the mirror will not # remember its sync status across crashes/reboots and # the entire mirror will be re-synced. If a # mirror image fails, the mirror will convert to a # non-mirrored device if there is only one remaining good # copy. # # "allocate" - Remove the faulty device and try to allocate space on # a new device to be a replacement for the failed device. # Using this policy for the log is fast and maintains the # ability to remember sync state through crashes/reboots. # Using this policy for a mirror device is slow, as it # requires the mirror to resynchronize the devices, but it # will preserve the mirror characteristic of the device. # This policy acts like "remove" if no suitable device and # space can be allocated for the replacement. # # "allocate_anywhere" - Not yet implemented. Useful to place the log device # temporarily on same physical volume as one of the mirror # images. This policy is not recommended for mirror devices # since it would break the redundant nature of the mirror. This # policy acts like "remove" if no suitable device and space can # be allocated for the replacement. mirror_log_fault_policy = "allocate" mirror_image_fault_policy = "remove" # 'snapshot_autoextend_threshold' and 'snapshot_autoextend_percent' define # how to handle automatic snapshot extension. The former defines when the # snapshot should be extended: when its space usage exceeds this many # percent. The latter defines how much extra space should be allocated for # the snapshot, in percent of its current size. # # For example, if you set snapshot_autoextend_threshold to 70 and # snapshot_autoextend_percent to 20, whenever a snapshot exceeds 70% usage, # it will be extended by another 20%. For a 1G snapshot, using up 700M will # trigger a resize to 1.2G. When the usage exceeds 840M, the snapshot will # be extended to 1.44G, and so on. # # Setting snapshot_autoextend_threshold to 100 disables automatic # extensions. The minimum value is 50 (A setting below 50 will be treated # as 50). snapshot_autoextend_threshold = 100 snapshot_autoextend_percent = 20 # While activating devices, I/O to devices being (re)configured is # suspended, and as a precaution against deadlocks, LVM2 needs to pin # any memory it is using so it is not paged out. Groups of pages that # are known not to be accessed during activation need not be pinned # into memory. Each string listed in this setting is compared against # each line in /proc/self/maps, and the pages corresponding to any # lines that match are not pinned. On some systems locale-archive was # found to make up over 80% of the memory used by the process. # mlock_filter = [ "locale/locale-archive", "gconv/gconv-modules.cache" ] # Set to 1 to revert to the default behaviour prior to version 2.02.62 # which used mlockall() to pin the whole process's memory while activating # devices. use_mlockall = 0 # Monitoring is enabled by default when activating logical volumes. # Set to 0 to disable monitoring or use the --ignoremonitoring option. monitoring = 1 # When pvmove or lvconvert must wait for the kernel to finish # synchronising or merging data, they check and report progress # at intervals of this number of seconds. The default is 15 seconds. # If this is set to 0 and there is only one thing to wait for, there # are no progress reports, but the process is awoken immediately the # operation is complete. polling_interval = 15 } #################### # Advanced section # #################### # Metadata settings # # metadata { # Default number of copies of metadata to hold on each PV. 0, 1 or 2. # You might want to override it from the command line with 0 # when running pvcreate on new PVs which are to be added to large VGs. # pvmetadatacopies = 1 # Default number of copies of metadata to maintain for each VG. # If set to a non-zero value, LVM automatically chooses which of # the available metadata areas to use to achieve the requested # number of copies of the VG metadata. If you set a value larger # than the the total number of metadata areas available then # metadata is stored in them all. # The default value of 0 ("unmanaged") disables this automatic # management and allows you to control which metadata areas # are used at the individual PV level using 'pvchange # --metadataignore y/n'. # vgmetadatacopies = 0 # Approximate default size of on-disk metadata areas in sectors. # You should increase this if you have large volume groups or # you want to retain a large on-disk history of your metadata changes. # pvmetadatasize = 255 # List of directories holding live copies of text format metadata. # These directories must not be on logical volumes! # It's possible to use LVM2 with a couple of directories here, # preferably on different (non-LV) filesystems, and with no other # on-disk metadata (pvmetadatacopies = 0). Or this can be in # addition to on-disk metadata areas. # The feature was originally added to simplify testing and is not # supported under low memory situations - the machine could lock up. # # Never edit any files in these directories by hand unless you # you are absolutely sure you know what you are doing! Use # the supplied toolset to make changes (e.g. vgcfgrestore). # dirs = [ "/etc/lvm/metadata", "/mnt/disk2/lvm/metadata2" ] #} # Event daemon # dmeventd { # mirror_library is the library used when monitoring a mirror device. # # "libdevmapper-event-lvm2mirror.so" attempts to recover from # failures. It removes failed devices from a volume group and # reconfigures a mirror as necessary. If no mirror library is # provided, mirrors are not monitored through dmeventd. mirror_library = "libdevmapper-event-lvm2mirror.so" # snapshot_library is the library used when monitoring a snapshot device. # # "libdevmapper-event-lvm2snapshot.so" monitors the filling of # snapshots and emits a warning through syslog when the use of # the snapshot exceeds 80%. The warning is repeated when 85%, 90% and # 95% of the snapshot is filled. snapshot_library = "libdevmapper-event-lvm2snapshot.so" # Full path of the dmeventd binary. # # executable = "/sbin/dmeventd" }
Appendice C. Tag oggetto LVM
database
.
lvs @database
C.1. Come aggiungere e rimuovere i tag dagli oggetti
--addtag
o --deltag
del comando pvchange
.
--addtag
o --deltag
dei comandi vgchange
o vgcreate
.
--addtag
o --deltag
dei comandi lvchange
o lvcreate
.
--addtag
e --deltag
multipli all'interno di un comando pvchange
, vgchange
, o lvchange
. Per esempio il seguente comando cancella i tag T9
e T10
aggiungendo T13
e T14
al gruppo di volumi grant
.
vgchange --deltag T9 --deltag T10 --addtag T13 --addtag T14 grant
C.2. Tag dell'host
hosttags = 1
nella sezione tags
, verrà definito automaticamente un tag dell'host utilizzando l'hostname della macchina. Tale processo vi permetterà di usare un file di configurazione il quale può essere replicato su tutte le vostre macchine in modo da mantenere copie identiche del file, pur avendo un comportamento diverso in base all'hostname.
tag1
, e definisce tag2
se l'hostname è host1
.
tags { tag1 { } tag2 { host_list = ["host1"] } }
C.3. Controllo attivazione con i tag
vgchange -ay
), attivando solo vg1/lvol0
e qualsiasi altro volume logico o gruppo di volumi con tag database
nei metadati sull'host interessato.
activation { volume_list = ["vg1/lvol0", "@database" ] }
tags { hosttags = 1 }
vg1/lvol2
solo sull'host db2
, fate quanto segue:
- Eseguite
lvchange --addtag @db2 vg1/lvol2
da qualsiasi host nel cluster. - Eseguite
lvchange -ay vg1/lvol2
.
Appendice D. Metadati del gruppo di volumi LVM
--metadatacopies 0
del comando pvcreate
. Una volta selezionato il numero di copie dei metadati che il volume fisico deve contenere, tale valore non potrà essere più modificato in futuro. Selezionando 0 si avranno aggiornamenti più veloci delle modifiche relative alla configurazione. Da notare tuttavia che in ogni momento il gruppo di volumi deve contenere almeno un volume fisico con un'area di metadati (se non state utilizzando impostazioni avanzate di configurazione che vi permetteranno di conservare i metadati del gruppo di volumi in un file system). Se in futuro desiderate dividere il gruppo di volumi ogni gruppo avrà bisogno di almeno una copia di metadati.
--metadatasize
del comando pvcreate
. La dimensione predefinita è troppo piccola per i gruppi di volumi con un numero elevato di volumi logici o volumi fisici.
D.1. Etichetta del volume fisico
pvcreate
posiziona l'etichetta del volume fisico nel secondo settore di 512-byte. La suddetta etichetta può essere posizionata in qualsiasi dei primi quattro settori, poichè i tool di LVM alla ricerca di una etichetta del volume fisico controllano i primi quattro settori. L'etichetta del volume fisico inizia con la stringa LABELONE
.
- UUID del volume fisico
- La dimensione del dispositivo a blocchi in byte
- Un elenco terminato da NULL delle posizioni dell'area dei dati
- Elenchi terminati da NULL di posizioni dell'area dei metadati
D.2. Contenuti dei metadati
- Informazioni su quando e come sono stati creati
- Informazioni sul gruppo di volumi:
- Nome ed id unico
- Un numero della versione il quale viene incrementato ogni qualvolta vengono aggiornati i metadati
- Proprietà: Lettura/Scrittura? Ridimensionabile?
- Qualsiasi limite amministrativo sul numero di volume logico/fisico che si possono contenere
- L'entità della dimensione (in unità di secondi definiti come 512 byte)
- Un elenco non ordinato di volumi fisici che costituiscono il gruppo di volumi, ognuno con:
- Il proprio UUID, viene usato per determinare il dispositivo a blocchi che lo contiene
- Qualsiasi proprietà, come ad esempio se il volume fisico è assegnabile
- L'offset per l'inizio della prima estensione all'interno del volume fisico (in settori)
- Il numero delle estensioni
- Un elenco non ordinato di volumi logici. Ognuno costituito da
- Un elenco ordinato di segmenti di volume logico. Per ogni segmento i metadati includono una mappatura applicata ad un elenco ordinato di segmenti del volume fisico o segmenti di volume logico
D.3. Esempio di metadati
myvg
.
# Generated by LVM2: Tue Jan 30 16:28:15 2007 contents = "Text Format Volume Group" version = 1 description = "Created *before* executing 'lvextend -L+5G /dev/myvg/mylv /dev/sdc'" creation_host = "tng3-1" # Linux tng3-1 2.6.18-8.el5 #1 SMP Fri Jan 26 14:15:21 EST 2007 i686 creation_time = 1170196095 # Tue Jan 30 16:28:15 2007 myvg { id = "0zd3UT-wbYT-lDHq-lMPs-EjoE-0o18-wL28X4" seqno = 3 status = ["RESIZEABLE", "READ", "WRITE"] extent_size = 8192 # 4 Megabytes max_lv = 0 max_pv = 0 physical_volumes { pv0 { id = "ZBW5qW-dXF2-0bGw-ZCad-2RlV-phwu-1c1RFt" device = "/dev/sda" # Hint only status = ["ALLOCATABLE"] dev_size = 35964301 # 17.1491 Gigabytes pe_start = 384 pe_count = 4390 # 17.1484 Gigabytes } pv1 { id = "ZHEZJW-MR64-D3QM-Rv7V-Hxsa-zU24-wztY19" device = "/dev/sdb" # Hint only status = ["ALLOCATABLE"] dev_size = 35964301 # 17.1491 Gigabytes pe_start = 384 pe_count = 4390 # 17.1484 Gigabytes } pv2 { id = "wCoG4p-55Ui-9tbp-VTEA-jO6s-RAVx-UREW0G" device = "/dev/sdc" # Hint only status = ["ALLOCATABLE"] dev_size = 35964301 # 17.1491 Gigabytes pe_start = 384 pe_count = 4390 # 17.1484 Gigabytes } pv3 { id = "hGlUwi-zsBg-39FF-do88-pHxY-8XA2-9WKIiA" device = "/dev/sdd" # Hint only status = ["ALLOCATABLE"] dev_size = 35964301 # 17.1491 Gigabytes pe_start = 384 pe_count = 4390 # 17.1484 Gigabytes } } logical_volumes { mylv { id = "GhUYSF-qVM3-rzQo-a6D2-o0aV-LQet-Ur9OF9" status = ["READ", "WRITE", "VISIBLE"] segment_count = 2 segment1 { start_extent = 0 extent_count = 1280 # 5 Gigabytes type = "striped" stripe_count = 1 # linear stripes = [ "pv0", 0 ] } segment2 { start_extent = 1280 extent_count = 1280 # 5 Gigabytes type = "striped" stripe_count = 1 # linear stripes = [ "pv1", 0 ] } } } }
Appendice E. Cronologia di revisione
Diario delle Revisioni | |||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Revisione 1-5.400 | 2013-10-31 | Rüdiger Landmann | |||||||||||||||||||||||||
| |||||||||||||||||||||||||||
Revisione 1-5 | 2012-07-18 | Anthony Towns | |||||||||||||||||||||||||
| |||||||||||||||||||||||||||
Revisione 2.0-1 | Thu May 19 2011 | Steven Levine | |||||||||||||||||||||||||
| |||||||||||||||||||||||||||
Revisione 1.0-1 | Wed Nov 10 2010 | Steven Levine | |||||||||||||||||||||||||
|
Indice analitico
Simboli
- comando lvchange , Modifica dei parametri di un gruppo di volumi logici
- comando lvdisplay , Visualizzazione dei volumi logici
- comando vgscan , Scansione dischi per i gruppi di volumi per la creazione del file di cache
A
- ambiente cluster, LVM Logical Volume Manager (CLVM), Creazione dei volumi LVM in un cluster
- assegnazione
- politica, Creazione dei gruppi di volumi
- prevenzione, Come impedire l'assegnazione su di un volume fisico
- attivazione gruppi di volumi, Attivazione e disattivazione dei gruppi di volumi
- nodi individuali, Attivazione e disattivazione dei gruppi di volumi
- solo nodo locale, Attivazione e disattivazione dei gruppi di volumi
- attivazione volumi logici
- nodi individuali, Attivazione dei volumi logici su nodi individuali in un cluster
B
C
- CLVM
- definizione, LVM Logical Volume Manager (CLVM)
- comando lvconvert , Come modificare la configurazione del volume speculare
- comando lvcreate , Creazione di volumi logici lineari
- comando lvextend , Come aumentare la dimensione dei volumi logici
- comando lvmdiskscan , Scansione per dispositivi a blocchi
- comando lvreduce , Modifica della dimensione dei volumi logici, Come ridurre la dimensione dei volumi logici
- comando lvremove , Rimozione dei volumi logici
- comando lvrename , Modifica del nome dei volumi logici
- comando lvs , Personalizzazione dei riporti per LVM, Il comando lvs
- opzioni di visualizzazione, Il comando lvs
- comando lvscan , Visualizzazione dei volumi logici
- comando pvdisplay , Visualizzazione dei volumi fisici
- comando pvmove , Riposizionamento dati online
- comando pvremove , Rimozione dei volumi fisici
- comando pvresize , Come variare la dimensione di un volume fisico
- comando pvs , Personalizzazione dei riporti per LVM
- opzioni di visualizzazione, Il comando pvs
- comando pvscan , Visualizzazione dei volumi fisici
- comando vgcfbackup , Esecuzione del back up dei metadati del gruppo di volumi
- comando vgcfrestore , Esecuzione del back up dei metadati del gruppo di volumi
- comando vgchange , Modifica dei parametri di un gruppo di volumi
- comando vgcreate , Creazione dei gruppi di volumi, Creazione dei gruppi di volumi in un cluster
- comando vgdisplay , Come visualizzare i gruppi di volumi
- comando vgexport , Come spostare un gruppo di volumi su di un altro sistema
- comando vgextend , Aggiunta di un volume fisico ad un gruppo di volumi
- comando vgimport , Come spostare un gruppo di volumi su di un altro sistema
- comando vgmerge , Come unire i gruppi di volumi
- comando vgmknodes , Come ricreare una directory del gruppo di volumi
- comando vgreduce , Rimozione dei volumi fisici da un gruppo di volumi
- comando vgrename , Come rinominare un gruppo di volumi
- comando vgs , Personalizzazione dei riporti per LVM
- opzioni di visualizzazione, Il comando vgs
- comando vgsplit , Separazione di un gruppo di volumi
- commento
- informazioni di contatto per questo manuale, Abbiamo bisogno di commenti!
- creazione
- gruppi di volumi, Creazione dei gruppi di volumi
- gruppo di volumi, clusterizzato, Creazione dei gruppi di volumi in un cluster
- volume logico, Creazione di volumi logici lineari
- volume logico segmentato, esempio, Creazione di un volume logico segmentato
- volume logico, esempio, Creazione di un volume logico LVM su tre dischi
- volumi fisici, Creazione dei volumi fisici
- volumi LVM in un cluster, Creazione dei volumi LVM in un cluster
- creazione volumi LVM
- panoramica, Panoramica sulla creazione del volume logico
D
- demone clvmd , LVM Logical Volume Manager (CLVM)
- device manager udev, Supporto Device Mapper per il Device Manager udev
- dimensione dispositivo, massima, Creazione dei gruppi di volumi
- directory /lib/udev/rules.d, Integrazione udev con il Device Mapper
- directory del file speciale del dispositivo, Creazione dei gruppi di volumi
- directory rules.d, Integrazione udev con il Device Mapper
- disattivazione gruppi di volumi, Attivazione e disattivazione dei gruppi di volumi
- escluso su di un nodo, Attivazione e disattivazione dei gruppi di volumi
- solo nodo locale, Attivazione e disattivazione dei gruppi di volumi
- display d'aiuto, Come utilizzare i comandi CLI
- display pagina man, Come utilizzare i comandi CLI
- dispositivi falliti
- visualizzazione, Come visualizzare le informazioni su dispositivi falliti
- dispositivo a blocchi
- scansione, Scansione per dispositivi a blocchi
E
- esempi di configurazione, Esempi di configurazione LVM
- estensione
- assegnazione, Creazione dei gruppi di volumi
- definizione, Gruppi di volumi, Creazione dei gruppi di volumi
- estensione fisica
- prevenzione dell'assegnazione, Come impedire l'assegnazione su di un volume fisico
F
- file cache
- file d'archivio, Backup del volume logico, Esecuzione del back up dei metadati del gruppo di volumi
- file di backup , Esecuzione del back up dei metadati del gruppo di volumi
- file system
- sviluppo su di un volume logico, Sviluppo di un file system su di un volume logico
- filtri, Controllo delle scansioni del dispositivo LVM con i filtri
- filtri scansione del dispositivo, Controllo delle scansioni del dispositivo LVM con i filtri
- formato riporto, dispositivi LVM, Personalizzazione dei riporti per LVM
- funzioni, nuove e modificate, Funzioni nuove e modificate
G
- gruppo di volumi
- amministrazione, generale, Amministrazione del gruppo di volumi
- attivazione, Attivazione e disattivazione dei gruppi di volumi
- aumento, Aggiunta di un volume fisico ad un gruppo di volumi
- come spostarsi tra sistemi, Come spostare un gruppo di volumi su di un altro sistema
- creazione, Creazione dei gruppi di volumi
- creazione in un cluster, Creazione dei gruppi di volumi in un cluster
- definizione, Gruppi di volumi
- disattivazione, Attivazione e disattivazione dei gruppi di volumi
- divisione, Separazione di un gruppo di volumi
- estensione, Aggiunta di un volume fisico ad un gruppo di volumi
- modifica dei parametri, Modifica dei parametri di un gruppo di volumi
- opzioni di visualizzazione vgs , Il comando vgs
- riduzione, Rimozione dei volumi fisici da un gruppo di volumi
- rimozione, Rimozione dei gruppi di volumi
- rinominare, Come rinominare un gruppo di volumi
- separazione
- procedura di esempio, Separazione di un gruppo di volumi
- unione, Come unire i gruppi di volumi
- visualizzazione, Come visualizzare i gruppi di volumi, Personalizzazione dei riporti per LVM, Il comando vgs
I
- inizializzazione
- partizioni, Inizializzazione dei volumi fisici
- volumi fisici, Inizializzazione dei volumi fisici
L
- LVM
- aiuto, Come utilizzare i comandi CLI
- amministrazione volume fisico, Amministrazione del volume fisico
- amministrazione volume logico, Amministrazione del volume logico
- clusterizzato, LVM Logical Volume Manager (CLVM)
- componenti, Panoramica sull'architettura LVM, Componenti di LVM
- cronologia degli eventi, Panoramica sull'architettura LVM
- etichetta, Volumi fisici
- formato riporto personalizzato, Personalizzazione dei riporti per LVM
- gruppo di volumi, definizione, Gruppi di volumi
- panoramica sull'architettura, Panoramica sull'architettura LVM
- registrazione, Registrazione
- struttura della directory, Creazione dei gruppi di volumi
- volume fisico, definizione, Volumi fisici
- LVM1, Panoramica sull'architettura LVM
- LVM2, Panoramica sull'architettura LVM
M
- Messaggio di estensioni libere insufficienti, Estensioni disponibili insufficienti per un volume logico
- metadati
- modifica nome
- volume logico, Modifica del nome dei volumi logici
N
- nomi percorso, Come utilizzare i comandi CLI
- nomi percorso del dispositivo, Come utilizzare i comandi CLI
- numeri del dispositivo
- maggiore, Numeri del dispositivo persistenti
- minore, Numeri del dispositivo persistenti
- persistenti, Numeri del dispositivo persistenti
- numeri del dispositivo persistenti, Numeri del dispositivo persistenti
O
- output verboso, Come utilizzare i comandi CLI
P
- panoramica
- funzioni, nuove e modificate, Funzioni nuove e modificate
- parametro di configurazione mirror_image_fault_policy, Politica sugli errori del volume logico speculare
- parametro di configurazione mirror_log_fault_policy, Politica sugli errori del volume logico speculare
- partizioni
- multiple, Partizioni multiple su di un disco
- procedure amministrative, Panoramica sull'amministrazione di LVM
R
- registrazione, Registrazione
- regole udev, Integrazione udev con il Device Mapper
- ridimensionamento
- volume fisico, Come variare la dimensione di un volume fisico
- volume logico, Modifica della dimensione dei volumi logici
- rimozione
- disco da un volume logico, Rimozione di un disco da un volume logico
- volume logico, Rimozione dei volumi logici
- volumi fisici, Rimozione dei volumi fisici
- rinominare
- gruppo di volumi, Come rinominare un gruppo di volumi
- riposizionamento dati online, Riposizionamento dati online
- riposizionamento dati, online, Riposizionamento dati online
S
- scansione
- dispositivi a blocchi, Scansione per dispositivi a blocchi
- scansione dispositivi, filtri, Controllo delle scansioni del dispositivo LVM con i filtri
- snapshot del volume
- definizione, Volumi delle snapshot
- sviluppo di un file system
- volume logico, Sviluppo di un file system su di un volume logico
T
- tipo di partizione, impostazione, Impostazione del tipo di partizione
- troubleshooting, Troubleshooting di LVM
U
- unità linea di comando, Come utilizzare i comandi CLI
- unità, linea di comando, Come utilizzare i comandi CLI
V
- visualizza
- come ordinare l'output, Come ordinare i riporti di LVM
- visualizzazione
- gruppi di volumi, Come visualizzare i gruppi di volumi, Il comando vgs
- volumi fisici, Visualizzazione dei volumi fisici, Il comando pvs
- volumi logici, Visualizzazione dei volumi logici, Il comando lvs
- volume fisico
- aggiunta ad un gruppo di volumi, Aggiunta di un volume fisico ad un gruppo di volumi
- amministrazione, generale, Amministrazione del volume fisico
- creazione, Creazione dei volumi fisici
- definizione, Volumi fisici
- display, Il comando pvs
- disposizione, Disposizione del volume fisico LVM
- illustrazione, Disposizione del volume fisico LVM
- inizializzazione, Inizializzazione dei volumi fisici
- opzioni di visualizzazione pvs , Il comando pvs
- ridimensionamento, Come variare la dimensione di un volume fisico
- rimozione, Rimozione dei volumi fisici
- rimozione da un gruppo di volumi, Rimozione dei volumi fisici da un gruppo di volumi
- rimozione volume perso, Rimozione dei volumi fisici persi da un gruppo di volumi
- ripristino, Sostituzione di un volume fisico mancante
- visualizzazione, Visualizzazione dei volumi fisici, Personalizzazione dei riporti per LVM
- volume logico
- accesso esclusivo, Attivazione dei volumi logici su nodi individuali in un cluster
- accesso locale, Attivazione dei volumi logici su nodi individuali in un cluster
- amministrazione, generale, Amministrazione del volume logico
- aumento, Come aumentare la dimensione dei volumi logici
- creazione, Creazione di volumi logici lineari, Creazione dei volumi segmentati, Creazione volumi speculari
- definizione, Volumi logici, Volumi logici LVM
- esempio creazione, Creazione di un volume logico LVM su tre dischi
- estensione, Come aumentare la dimensione dei volumi logici
- lineare, Creazione di volumi logici lineari
- modifica dei parametri, Modifica dei parametri di un gruppo di volumi logici
- modifica nome, Modifica del nome dei volumi logici
- opzioni di visualizzazione lvs , Il comando lvs
- ridimensionamento, Modifica della dimensione dei volumi logici
- riduzione, Come ridurre la dimensione dei volumi logici
- rimozione, Rimozione dei volumi logici
- segmentato, Creazione dei volumi segmentati
- snapshot, Creazione dei volumi della snapshot
- speculare, Creazione volumi speculari
- visualizzazione, Visualizzazione dei volumi logici, Personalizzazione dei riporti per LVM, Il comando lvs
- volume logico della snapshot
- creazione, Creazione dei volumi della snapshot
- volume logico lineare
- conversione a speculare, Come modificare la configurazione del volume speculare
- creazione, Creazione di volumi logici lineari
- definizione, Volumi lineari
- volume logico segmentato
- aumento, Come estendere un volume segmentato
- definizione, Volumi logici segmentati
- esempio di creazione, Creazione di un volume logico segmentato
- estensione, Come estendere un volume segmentato
- volume logico speculare
- clusterizzato, Creazione di un volume logico LVM speculare in un cluster
- conversione a lineare, Come modificare la configurazione del volume speculare
- definizione, Volumi logici speculari
- politica sugli errori, Politica sugli errori del volume logico speculare
- riconfigurazione, Come modificare la configurazione del volume speculare
- ripristino da un errore, Processo di recupero da un LVM Mirror Failure