Ridimensionamento del volume logico e del file system lvm2: dimensioni esatte?


10

Sul mio server Intranet, ho una partizione / dev / sda5 da 100,00 GiB, che uso come volume fisico per lvm2.

  • È l'unico volume fisico nel mio gruppo di volumi vg01.
  • vg01 attualmente contiene un volume logico lv01, usando l'intero 100,00 GiB - beh, in realtà 99,99 GiB a causa di alcuni arrotondamenti (è qui che inizia il problema).
  • lv01 contiene un file system ext3, usando l'intero spazio.

Voglio ridurre lv01 a circa 97 GiB, quindi posso creare lv02 con ca. 3 GiB (ne ho bisogno per scattare istantanee lvm).

Quello che ho fatto finora:

e2fsck -f /dev/mapper/vg01-lv01
resize2fs /dev/mapper/vg01-lv01 97G

Questo ha funzionato bene. Ma ora dovrò correre

lvreduce --size ? /dev/mapper/vg01-lv01

E non sono sicuro di quale valore esatto dovrò specificare. La lvreducepagina man avverte esplicitamente che la dimensione risultante non deve essere inferiore al file system. Inoltre, non voglio renderlo più grande di quanto deve essere. Ma ora ho numeri diversi:

  • Ho specificato 97Gin resize2fs.
  • df -h dice 96 G.
  • df dice, sono 100115936 blocchi da 1K.
  • lvdisplay (ovviamente) riporta ancora 99,99 GiB per il volume logico.

Cosa dovrò specificare lvreduce?

Modificare:

La risposta attualmente accettata fornisce una bella soluzione. Tuttavia, al fine di integrare tali cose in script solidi, ecc., Preferirei generalmente utilizzare misure precise. O forse c'è già uno script o uno strumento affidabile (!) Che esegue l'intera procedura di ridimensionamento in un solo passaggio?


3
Si potrebbe usare resize2fsper ridurre il filesystem fino a 90GiB o giù di lì, e poi andare in giro con argomenti a lvreduce(seguiti da resize2fs) per vedere cosa funziona meglio.
Larks

@larsks: Ottima idea (perché resize2fs può adattarsi automaticamente alla dimensione delle partizioni, mentre lvreduce non può adattarsi automaticamente alla dimensione fs). Se nessuno conosce la risposta definitiva alla mia domanda, penso che questa sarà la soluzione.
Chris Lercher,

Perché non passare semplicemente le stesse dimensioni in lvreduce? A meno che tu non faccia un refuso, LVM dovrebbe riconoscere che ha le stesse dimensioni e non ridimensionarlo di nuovo. E se fai un refuso, almeno hai evitato di distruggere il tuo filesystem. lvreduce -r -L 97G / dev / mapper / vg01-lv01
Bill

Risposte:


5

Nella mia esperienza, LVM e resize2fs hanno le stesse idee su cosa significhi "97G", quindi specificare la stessa dimensione in entrambi i posti dovrebbe andare bene. Tuttavia, sono paranoico e, ove possibile, usa sempre la strategia suggerita da Larsks nei commenti alle domande e ridimensionata per essere un GB più piccola di quanto volessi, fatto ridimensionare la dimensione che volevo, quindi rieseguire resize2fs (senza un dimensioni) per espanderlo indietro per riempire l'intero LV.


Penso che sia importante essere "paranoici" qui - perché non c'è solo la possibilità che i file attuali siano danneggiati: se il file system è più grande di LV, presumo che possa creare scompiglio con i seguenti volumi in qualsiasi momento nel futuro.
Chris Lercher,

No, LVM proibirà qualsiasi tentativo di scrivere oltre la fine del LV, quindi nessun altro LV può essere danneggiato. Se il filesystem viene troncato, tuttavia, si ottengono risultati abbastanza catastrofici.
womble

È interessante - non sapevo che controlla ogni scrittura! Buono a sapersi.
Chris Lercher,

14

Penso che questo sia fatto meglio usando l'opzione --resizefs per lvreduce / lvresize:

   -r, --resizefs
          Resize underlying filesystem together with the logical volume using fsadm(8).

Certo, questo non ti aiuta ora , ma potrebbe in futuro.


Questo è quello che stavo cercando! Sembra però una nuova opzione: è nella versione 2.02.74 (2) -RHEL ma manca nella mia versione 2.02.66 degli strumenti LVM.
Chris Lercher,

1
Quando avevo già ridimensionato le fs usando altri strumenti, questa opzione ha soppresso il solito avvertimento e stampato il messaggio "Il filesystem è già lungo 3932160 blocchi. Niente da fare!" Proprio come desiderato.
D Coetzee,

Anche nel 2020, nessuno dei numerosi tutorial sull'estensione / riduzione dei volumi di lvm proposti da Google nella sua prima pagina dei risultati di ricerca menziona questa opzione. Molte grazie!
Ivan Shatsky,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.