Il post discute su come espandere lo spazio disponibile in un volume LVM estendendo la partizione del disco fisico usando fdisk. Questo esempio mostra come ridimensionare il volume fisico /dev/sdc1 da 200 MB a 400 MB.
Avviso di potenziale perdita di dati :questo passaggio eliminerà la struttura della partizione esistente e creerà una nuova partizione al suo posto. È essenziale che la nuova partizione venga creata esattamente alla stessa origine della partizione eliminata, altrimenti si verificheranno gravi danni e perdite di dati.Verifica la configurazione corrente
1. Controlla la dimensione corrente del volume fisico sul disco.
# pvdisplay /dev/sdc1 "/dev/sdc1" is a new physical volume of "200.00 MiB" --- NEW Physical volume --- PV Name /dev/sdc1 VG Name PV Size 200.00 MiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID EkD95A-wb04-5GHn-OH7N-suVt-vak2-AKSsyv
2. Ottenere le informazioni sulla configurazione LVM corrente. Il volume logico che vogliamo estendere è 'testlv'.
# lvscan ACTIVE '/dev/testvg/testlv' [100.00 MiB] inherit
Disattiva il volume logico esistente
1. Prima di procedere con l'effettiva espansione FV e BT, è necessario disattivare prima il volume logico. Utilizzare il comando seguente per disattivare la LV.
# lvchange -a n /dev/testvg/testlv
2. Verificare se il volume è stato disattivato.
# lvscan inactive '/dev/testvg/testlv' [100.00 MiB] inherit
Ora sappiamo che LVM non viene utilizzato, quindi possiamo avviare il processo di espansione su di esso.
Estendi la partizione “/dev/sda1” con l'utilità fdisk
1. Per estendere le informazioni sulla partizione del dispositivo fisico, eliminiamo prima la vecchia partizione e quindi ne creiamo una nuova. Nota che prima stampiamo le informazioni sulla partizione corrente in modo da sapere esattamente dove inizia la partizione. Dobbiamo sovrapporre la nuova partizione più grande a partire dallo stesso blocco della vecchia partizione.
# fdisk /dev/sdc Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): p Disk /dev/sdc: 21.5 GB, 21474836480 bytes, 41943040 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x085579f4 Device Boot Start End Blocks Id System /dev/sdc1 2048 411647 204800 83 Linux Command (m for help): d Selected partition 1 Partition 1 is deleted Command (m for help): n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p Partition number (1-4, default 1): 1 First sector (2048-41943039, default 2048): ### we will press ENTER here to select default first sector 2048 Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +400M Partition 1 of type Linux and of size 400 MiB is set Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
Questo passaggio può essere interrotto in qualsiasi momento prima di scrivere la tabella delle partizioni modificata con "w comando ". Fino ad allora, viene modificata solo una copia in memoria della tabella delle partizioni.
Informazioni sulla modifica delle tabelle delle partizioni :le informazioni sulla partizione per tutte le LUN su un dispositivo fisico sono conservate in una tabella delle partizioni. Il comando fdisk manipola solo questa tabella delle partizioni. Il resto del disco viene sempre lasciato inalterato. Ciò significa che le informazioni sulla tabella delle partizioni possono essere modificate ma il contenuto delle partizioni non viene mai toccato, rimane sempre intatto.Carica la nuova tabella delle partizioni nel kernel
Il kernel attualmente in esecuzione non è a conoscenza delle nuove informazioni sulla partizione, poiché fdisk altera la tabella delle partizioni scrivendo direttamente sul dispositivo. Normalmente, il kernel legge le informazioni sulla partizione solo all'avvio del sistema o quando si verifica un evento hot-plug (come l'inserimento di un dispositivo USB).
Tuttavia, possiamo evitare un riavvio inutile facendo in modo che il kernel rilegga le sue informazioni sulla partizione e quindi aggiorni le sue informazioni LVM.
# partprobe
Ora che il kernel è a conoscenza della tabella delle partizioni aggiornata, informa il sottosistema LVM di questa modifica al dispositivo fisico. Per impostazione predefinita, il ridimensionamento utilizzerà l'intera dimensione della partizione ottenuta dalla tabella delle partizioni:
# pvresize /dev/sdc1 Physical volume "/dev/sdc1" changed 1 physical volume(s) resized / 0 physical volume(s) not resized
# pvdisplay /dev/sdc1 --- Physical volume --- PV Name /dev/sdc1 VG Name testvg PV Size 399.00 MiB / not usable 3.00 MiB Allocatable yes PE Size 4.00 MiB Total PE 99 Free PE 74 Allocated PE 25 PV UUID EkD95A-wb04-5GHn-OH7N-suVt-vak2-AKSsyv
Attiva il volume logico esistente
Il passaggio finale consiste nel riportare in linea l'LVM modificato. Come sempre, controlliamo prima il nostro lavoro:
# lvscan ACTIVE '/dev/testvg/testlv' [100.00 MiB] inherit
Come si vede dall'output sopra, il volume logico è inattivo. Quindi attiviamolo prima.
# lvchange -a y /dev/testvg/testlv
# /usr/sbin/lvscan ACTIVE '/dev/vgtest/lvtest' [100.00 MB] inherit
Ridimensionamento del volume logico (opzionale)
1. Ora puoi anche estendere il volume logico poiché ora hai più spazio nel volume fisico sottostante. Utilizzare il comando seguente per ridimensionare il LV.
# lvresize -L +200M /dev/testvg/testlv Size of logical volume testvg/testlv changed from 100.00 MiB (25 extents) to 300.00 MiB (75 extents). Logical volume testvg/testlv successfully resized.
2. Verifica la nuova dimensione del volume logico.
# lvscan ACTIVE '/dev/testvg/testlv' [300.00 MiB] inherit