4.4.3. Creazione volumi speculari


Nota

La creazione di un volume logico LVM speculare in un cluster ha bisogno di comandi e procedure simili usati nella creazione di un volume logico LVM speculare su di un nodo. Tuttavia per creare un volume LVM speculare in un cluster, il cluster e l'infrastruttura del cluster mirror devono essere in esecuzione, il cluster deve essere quorato ed il tipo di blocco nel file 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».
Il tentativo di eseguire comandi multipli di conversione e creazione del mirror LVM in rapida successione da nodi multipli in un cluster potrebbe causare una congestione di questi comandi. Tale comportamento potrebbe causare la scadenza di alcune delle operazioni richieste e quindi il loro fallimento. Per evitare questo problema è consigliata l'esecuzione dei comandi di creazione del mirror del cluster da un solo nodo.
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, chiamato mirrorlv, e creato dal gruppo di volumi vg0:
lvcreate -L 50G -m1 -n mirrorlv vg0
Copy to Clipboard Toggle word wrap
Un mirror LVM divide il dispositivo copiato in regioni le quali per impostazione predefinita hanno una dimensione di 512KB. Usare -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

A causa di limitazioni presenti nella infrastruttura del cluster, i cluster mirror maggiori di 1.5 TB non potranno essere creati con una dimensione predefinita della regione pari a 512KB. Gli utenti che hanno necessità di avere mirror più grandi, dovranno aumentare la dimensione della regione predefinita ad una dimensione più grande. Il fallimento di tale operazione causerà una sospensione della creazione di LVM e dei rispettivi comandi.
Come linee guida generali per specificare una dimensione maggiore a 1.5TB prendete la dimensione in terabyte e arrotondate la cifra alla prossima potenza di due, usando quel numero come opzione -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.
Il seguente comando crea un volume logico speculare con una regione con dimensione pari a 2MB:
lvcreate -m1 -L 2T -R 2 -n mirror vol_group
Copy to Clipboard Toggle word wrap
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 assicurando che il mirror non abbia bisogno di una nuova sincronizzazione ad ogni riavvio o crash della macchina. Se desiderate mantenere il suddetto log all'interno della memoria, allora potrete utilizzare l'opzione --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.
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 --mirrorlog core -n ondiskmirvol bigvg
  Logical volume "ondiskmirvol" created
Copy to Clipboard Toggle word wrap
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 per il quale il log è sullo stesso dispositivo di uno dei segmenti del mirror. In questo esempio il gruppo di volumi 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
Copy to Clipboard Toggle word wrap

Nota

Con mirror clusterizzati la gestione del log del mirror è di responsabilità del nodo del cluster con l'ID più basso. Per questo motivo quando il dispositivo con il log del mirror non è disponibile su di un sottoinsieme del cluster, il mirror clusterizzato può continuare ad operare senza alcun impatto fino a quando il nodo del cluster con l'ID più basso è in grado di accedere al log del mirror. Poichè il mirror non è distribuito nessuna azione automatica di correzione verrà emessa. Quando il nodo con l'ID più basso perde l'accesso al log del mirror allora l'azione automatica di correzione entrerà in azione (senza considerare l'accessibilità del log da altri nodi).
Per creare un log a sua volta speculare, specificare l'argomento --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
Copy to Clipboard Toggle word wrap
Proprio come con un log del mirror standard, è possibile creare log ridondanti sullo stesso dispositivo dei segmenti usando l'argomento --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.
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 e per i segmenti del mirror insieme alle 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 volume fisico, 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 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
Copy to Clipboard Toggle word wrap
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 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
Copy to Clipboard Toggle word wrap

Nota

Con Red Hat Enterprise Linux 6.1 è 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.

4.4.3.1. Politica sugli errori del volume logico speculare

È possibile definire il comportamento di un volume logico speculare in presenza di un errore del dispositivo tramite i parametri 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.
Per impostazione predefinita il parametro 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.
Per impostazione predefinita il parametro 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

Al verificarsi di un fallimeto del dispositivo con un mirror LVM verrà intrapreso un processo a due fasi di ripristino. Nella prima fase saranno rimossi i dispositivi falliti. Tale operazione potrebbe causare il passaggio del mirror ad un dispositivo lineare. Nella seconda fase se il parametro 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.
Per informazioni sul ripristino manuale da un errore LVM mirror consultare Sezione 6.3, «Processo di recupero da un LVM Mirror Failure».
Torna in cima
Red Hat logoGithubredditYoutubeTwitter

Formazione

Prova, acquista e vendi

Community

Informazioni sulla documentazione di Red Hat

Aiutiamo gli utenti Red Hat a innovarsi e raggiungere i propri obiettivi con i nostri prodotti e servizi grazie a contenuti di cui possono fidarsi. Esplora i nostri ultimi aggiornamenti.

Rendiamo l’open source più inclusivo

Red Hat si impegna a sostituire il linguaggio problematico nel codice, nella documentazione e nelle proprietà web. Per maggiori dettagli, visita il Blog di Red Hat.

Informazioni su Red Hat

Forniamo soluzioni consolidate che rendono più semplice per le aziende lavorare su piattaforme e ambienti diversi, dal datacenter centrale all'edge della rete.

Theme

© 2025 Red Hat