back

Qualora lo spazio sul disco non sia sufficiente (o più semplicemente non sia importante avere una copia del log sul disco), è possibile tramite l'opzione --corelog mantenere solo in memoria lo stato di avanzamento della sincronizzazione dei mirror e quindi risparmiare qualche kilobyte sul disco. Ovviamente il conseguente svantaggio è che ad ogni nuovo avvio della macchina, perdendo i dati in memoria RAM, il computer dovrà eseguire daccapo la sincronizzazione del mirror confrontandolo integramente con l'originale.
Considerato che la dimensione del log è contenuta, consiglio pertanto su LV di grandi dimensioni e su macchine desktop di uso quotidiano di utilizzare la cache (quindi di non impartire il comando --corelog).
Qualora abbiate già creato il mirror con l'opzione corelog è possibile modificare successivamente lo status. È sufficiente utilizzare lvconvert con l'opzione mirrorlog ed a seguire disk per avere una unica copia del log oppure mirrored per avere una copia del log su entrambi i dischi. Ad esempio:

lvconvert -m 1 --mirrorlog disk VG/LV

Purtroppo la questione del log sul disco non è così semplice. Infatti di default l'LVM richiede tre dispositivi: uno per il primo mirror, uno per il secondo ed un ultimo per i log. Ovviamente questa è una limitazione, considerato in special modo che il log non aumenta la nostra resilienza dei dati. È possibile risolvere il problema indicando di allocare i dischi ovunque, nel seguente modo:

lvconvert -m 1 --alloc anywhere VG/LV

Nelle prove da me effettuate non sono stato in grado di trasformare direttamente un LV con l'opzione corelog ad avere il mirrorlog sul disco. Pertanto per effettuare la trasformazione mi è stato necessario dapprima trasformarlo in lineare, quindi ricreare il mirror. Si trasforma un LV in lineare con il seguente comando e si può indicare anche il disco sul quale si desidera mantenere il LV:

lvconvert -m 0 /dev/sistema/home /dev/hdb2

A questo punto si può ricreare il mirror con l'opzione di default (mirrorlog disk) e alloc anywhere.

Un ulteriore comando che potrebbe risultare utile è pvmove, permette di spostare un LV da un PD all'altro. Ad esempio con pvmove -n /dev/sistema/home /dev/hda2 /dev/hdb2 potrei spostare la home dal disco hda all'hdb.

NOTA

Seppure abbiate lo spazio a sufficienza per eseguire il mirror è possibile, qualora non indichiate l'opzione corelog, che si riceva errore nel caso in cui non vi sia spazio sufficiente per il log. In questo caso o riducete la dimensione del LV (sì, grazie all'LVM è possibile) oppure non potrete creare alcun log sul disco. Se invece volete creare un mirror con la cache sul disco utilizzando due soli PD, allora dovrete utilizzare anche l'opzione alloc any come spiegato nel presente paragrafo.


back