4.4. Amministrazione del volume logico

Questa sezione descrive i comandi necessari per eseguire i compiti di amministrazione del volume logico.

4.4.1. Creazione dei volume logico

Per creare un volume logico utilizzate il comando lvcreate. Sarà possibile creare volumi lineari, volumi striped e volumi speculari, come descritto nelle seguenti sottosezioni.
Se non specificate un nome per il volume logico, verrà utilizzato il nome predefinito lvol#, dove # è il numero interno del volume logico.
Le seguenti sezioni forniscono gli esempi sulla creazione del logical volume, per i tre tipi di volumi logici che si possono creare con LVM.

4.4.1.1. Creazione volumi lineari

Quando create un volume logico, esso viene ricavato da un gruppo di volumi utilizzando le estensioni disponibili sui physical volume che costituiscono il gruppo di volumi. Normalmente i volumi logici utilizzano tutto lo spazio disponibile sui physical volume relativi. Modificando il volume logico verrà liberato e riassegnato lo spazio nei physical volume.
Il seguente comando crea un volume logico di 10 gigabyte nel gruppo di volumi vg1.
lvcreate -L 10G vg1
Il seguente comando crea un volume logico lineare di 1500 megabyte chiamato testlv nel gruppo di volume testvg, creando il dispositivo a blocchi /dev/testvg/testlv.
lvcreate -L1500 -n testlv testvg
Il seguente comando crea un volume logico di 50 gigabyte chiamato gfslv dalle tre estensioni nel gruppo di volumi vg0.
lvcreate -L 50G -n gfslv vg0
Potrete utilizzare -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
È possibile utilizzare anche -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
You can use -l argument of the lvcreate command to create a logical volume that uses the entire volume group. Another way to create a logical volume that uses the entire volume group is to use the vgdisplay command to find the "Total PE" size and to use those results as input to the the lvcreate command.
I seguenti comandi creano un volume logico chiamato 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
The underlying physical volumes used to create a logical volume can be important if the physical volume needs to be removed, so you may need to consider this possibility when you create the logical volume. For information on removing a physical volume from a volume group, see Sezione 4.3.6, «Rimozione dei physical volume da un gruppo di volumi».
Per creare un volume logico da assegnare da un physical volume specifico al gruppo di volumi, specificate i physical volume alla fine della riga del comando lvcreate. Il seguente comando crea un logical volume chiamato testlv nel gruppo di volumi testvg, assegnato dal physical volume /dev/sdg1,
lvcreate -L 1500 -ntestlv testvg /dev/sdg1
È possibile specificare quali estensioni di un Physical Volume possono essere usate per un volume logico. Nel seguente esempio viene creato un volume logico lineare dalle estensioni 0 a 25 del physical volume /dev/sda1, e dalle estensioni 50 fino a 125 del volume fisico/dev/sdb1 nel gruppo di volumi testvg.
lvcreate -l 100 -n testlv testvg /dev/sda1:0-25 /dev/sdb1:50-125
Nel seguente esempio viene creato un volume logico lineare dalle estensioni 0 a 25 del volume fisico /dev/sda1, continuando la creazione del volume logico dall'estensione 100.
lvcreate -l 100 -n testlv testvg /dev/sda1:0-25:100-
The default policy for how the extents of a logical volume are allocated is inherit, which applies the same policy as for the volume group. These policies can be changed using the lvchange command. For information on allocation policies, see Sezione 4.3.1, «Creazione dei gruppi di volumi».

4.4.1.2. Creazione dei volumi striped

For large sequential reads and writes, creating a striped logical volume can improve the efficiency of the data I/O. For general information about striped volumes, see Sezione 2.3.2, «Volumi logici striped».
Durante la creazione di un volume logico striped, specificate il numero di bande con l'argomento -i del comando lvcreate. Ciò determina su quanti volumi fisici il volume logico verrà scritto. Il numero di bande non può essere maggiore del numero di physical volume presenti nel gruppo di volumi (se l'argomento --alloc anywhere non è stato utilizzato).
Se i dispositivi fisici che costituiscono un volume logico striped hanno dimensioni diverse, la dimensione massima del volume striped viene determinata dal dispositivo più piccolo. Per esempio in una banda con due gambe, la dimensione massima deve essere del doppio della dimensione del dispositivo più piccolo. In una banda a tre gambe, la dimensione massima è tre volte la dimensione del dispositivo più piccolo.
Il seguente comando crea un volume logico striped attraverso 2 physical volume, con una banda di 64KB. Il volume logico ha una dimensione di 50 gigabytes, è chiamato gfslv, ed è ottenuto dal gruppo di volumi vg0:
lvcreate -L 50G -i2 -I64 -n gfslv vg0
Come nei volumi lineari, è possibile specificare le estensioni del Physical Volume utilizzato per la banda. Il seguente comando crea un volume striped con una dimensione di 100 estensioni, è presente su due physical volume, viene chiamato stripelv, e si trova nel gruppo di volumi testvg. La banda userà i settori 0-50 di /dev/sda1 ed i settori 50-100 di /dev/sdb1.
# lvcreate -l 100 -i2 -nstripelv testvg /dev/sda1:0-50 /dev/sdb1:50-100
  Using default stripesize 64.00 KB
  Logical volume "stripelv" created

4.4.1.3. Creazione volumi speculari

Durante la creazione di un volume speculare, specificate il numero di copie dei dati con l'opzione -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.
Il seguente comando crea un volume logico speculare con un mirror singolo. Il volume ha una dimensione di 50 gigabyte, viene chiamato mirrorlv, e creato dal gruppo di volumi vg0:
lvcreate -L 50G -m1 -n gfslv vg0
Un mirror di LVM divide il dispositivo copiato in regioni che per default hanno una dimensione di 512KB. Per specificare la dimensione delle regioni usate l'opzione -R. LVM mantiene un log molto piccolo usato per controllare quale regione è sincronizzata con i mirror. Per default il suddetto log viene conservato sul disco, mantenendolo uguale durante i vari processi di riavvio. Se desiderate mantenere il suddetto log all'interno della memoria, allora potrete utilizzare l'opzione --corelog, 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.
Il seguente comando crea un volume logico speculare dal gruppo di volumi 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 --corelog -n ondiskmirvol bigvg
  Logical volume "ondiskmirvol" created
Il mirror log viene creato su un dispositivo separato dai dispositivi sui quali viene creata qualsiasi sezione 'leg' del mirror. È possibile tuttavia, creare il mirror log sullo stesso dispositivo sul quale è stata creata la sezione del mirror, tramite l'argomento --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.
Il seguente comando crea un volume logico speculare con un mirror singolo. Il volume ha una dimensione di 50 gigabyte, viene chiamato mirrorlv, e creato dal gruppo di volumi vg0:
lvcreate -L 500M -m1 -n mirrorlv -alloc anywhere vg0
Quando create un mirror le sue regioni vengono sincronizzate. Per componenti grandi del mirror il processo di sincronizzazione potrebbe richiedere un periodo lungo. Durante la creazione di un nuovo mirror che non necessita di essere attivato, potrete specificare l'opzione nosync in modo da indicare che la sincronizzazione iniziale dal primo dispositivo non risulta necessaria.
È possibile specificare il dispositivo da utilizzare per i log del mirror, e le estensioni dei dispositivi. Per forzare il log su un particolare disco, specificate in modo preciso l'estensione sul disco sul quale verrà ospitato. LVM non rispetterà necessariamente l'ordine attraverso il quale i dispositivi risultano elencati nella riga di comando. Se viene elencato un physical volume, esso risulterà il solo luogo nel quale verrà eseguita l'assegnazione. Ogni estensione fisica inclusa nell'elenco precedentemente assegnata verrà ignorata.
Il seguente comando crea un volume logico speculare con un mirror singolo. La dimensione del volume è di 500 megabyte, il suo nome è mirrorlv, ed è stato ottenuto dal gruppo di volumi vg0. La prima gamba 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
Il seguente comando crea un volume logico speculare con un singolo mirror. La dimensione del volume è di 500 megabyte, il suo nome è mirrorlv, ed è ottenuto dal gruppo di volumi vg0. La prima gamba del mirror è posizionata sulle estensioni da 0 a 499 del dispositivo /dev/sda1, la seconda gamba è 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

Con la versione RHEL 5.3 i volumi logici speculari risultano supportati in un cluster.

4.4.1.4. Come modificare la configurazione del volume speculare

È possibile convertire un volume logico da un volume speculare ad uno lineare, o da un volume lineare ad uno speculare con il comando lvconvert. È possibile usare questo comando per riconfigurare altri parametri del mirror di un volume logico esistente, come ad esempio corelog.
Quando convertite un volume logico in un volume speculare, non fate altro che creare delle gambe del mirror per un volume esistente. Ciò significa che il vostro gruppo di volumi contiene i dispositivi e lo spazio per le gambe del mirror e per il suo log.
If you lose a leg of a mirror, LVM converts the volume to a linear volume so that you still have access to the volume, without the mirror redundancy. After you replace the leg, you can use the lvconvert command to restore the mirror. This procedure is provided in Sezione 6.3, «Processo di recupero da un LVM Mirror Failure».
Il seguente comando converte il volume logico lineare vg00/lvol1 in un volume logico speculare.
lvconvert -m1 vg00/lvol1
Il seguente comando converte il volume logico speculare vg00/lvol1 in un volume logico lineare, rimuovendo la gamba del mirror.
lvconvert -m0 vg00/lvol1