Mettiamo caso di avere un server linux con un volume LVM, tipico di Centos / Redhat, ma LVM è disponibile su ogni distribuzione linux moderna, io ne ho in corso di installazione proprio uno in questi giorni con jboss, oracle e un remote desktop, il cui spazio (nel nostro caso 15 giga) è insufficente per il lavoro che deve svolgere
LVM ha la simpatica caratteristica di poter aggiungere, in alcuni casi a caldo, spazio ai suoi volumi, vediamo come fare:
Per prima cosa aggiungiamo un altro disco, nel mio caso da 6 giga e, riavviato il server, vediamo che le partizioni sono:
fdisk -l
Disco /dev/sda: 15.0 GB, 15032385536 byte
255 heads, 63 sectors/track, 1827 cylinders
Unità = cilindri di 16065 * 512 = 8225280 byte
Dispositivo Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 1827 14570955 8e Linux LVM
Disco /dev/sdb: 6442 MB, 6442450944 byte
255 heads, 63 sectors/track, 783 cylinders
Unità = cilindri di 16065 * 512 = 8225280 byte
Il disco /dev/sdb non contiene una tabella delle partizioni valida
———————
Creiamo una partizione e formattiamola ext3
fdisk /dev/sdb
n – p – 1 – un paio di invii e w per scrivere le modifiche.
mkfs.ext3 /dev/sdb1 per creare il file system in EXT3
Rifacciamo fdisk -l per sincerarci che la partizione sia formattata come si deve:
Disco /dev/sda: 15.0 GB, 15032385536 byte
255 heads, 63 sectors/track, 1827 cylinders
Unità = cilindri di 16065 * 512 = 8225280 byte
Dispositivo Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 1827 14570955 8e Linux LVM
Disco /dev/sdb: 6442 MB, 6442450944 byte
255 heads, 63 sectors/track, 783 cylinders
Unità = cilindri di 16065 * 512 = 8225280 byte
Dispositivo Boot Start End Blocks Id System
/dev/sdb1 1 783 6289447 83 Linux
Adesso colleghiamo la partizione formattata al volume dinamico e passeremo da cosi:
vgdisplay
--- Volume group ---
VG Name VolGroup00
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size 13,88 GB <------
PE Size 32,00 MB
Total PE 444
Alloc PE / Size 444 / 13,88 GB
Free PE / Size 0 / 0
VG UUID AGNhTW-HXd3-lYjM-a6DC-8Don-zaqP-dwSpVG
diamo il comando di estensione del volume:
vgextend /dev/VolGroup00 /dev/sdb1
/dev/hda: open failed: Read-only file system
No physical volume label read from /dev/sdb1
Physical volume "/dev/sdb1" successfully created
Volume group "VolGroup00" successfully extended
a cosi:
vgdisplay
--- Volume group ---
VG Name VolGroup00
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 2
Act PV 2
VG Size 19,84 GB <------
PE Size 32,00 MB
Total PE 635
Alloc PE / Size 444 / 13,88 GB
Free PE / Size 191 / 5,97 GB
VG UUID AGNhTW-HXd3-lYjM-a6DC-8Don-zaqP-dwSpVG
adesso aggiungiamo lo spazio:
lvextend -L +SIZE VolGroup00/LogVol00
dove SIZE è la dimenisone, in mega, di quanto si vuole incrementare il volume.
Per divertimento ho usato dei pezzetti da mezzo giga e dando il comando a ripetizione fino all’esaurimento dello spazio libero disponibile, l’ho fatto crescere.
A questo punto, per fare il resize del file system, che ricordo essere EXT3 nel mi caso, servirebbe il comando resize2fs che però funziona solo se il filesystem è smontato, quindi, visto io devo far crescere la root dovrò usare una live.
Ho usato quello che avevo sotto mano: una ubuntu desktop LTS 10.4 32bit. Una volta avviata la Ubuntu si deve andare a prompt di shell e dare questi comandi:
sudo su (per diventare root, a me usare sudo continuamente mi da fastidio)
apt-get update
apt-get install lvm2
modprobe dm_mod
2 logical volume(s) in volume group "VolGroup00" now active
vgchange -a y
e2fsck -f /dev/VolGroup00/LogVol00
e2fsck 1.41.11 (14-Mar-2010)
Adding dirhash hint to filesystem.
Passo 1: Controllo di inode, blocco(i) e dimensioni
Passo 2: Analisi della struttura delle directory
Passo 3: Controllo della connettività di directory
Pass 4: Controllo del numero dei riferimenti
Pass 5: Checking gruppo summary information
/dev/VolGroup00/LogVol00: ***** IL FILESYSTEM E' STATO MODIFICATO *****
/dev/VolGroup00/LogVol00: 116413/3112960 files (0.4% non-contiguous), 1420333/3112960 blocks
resize2fs /dev/VolGroup00/LogVol00
resize2fs 1.41.11 (14-Mar-2010)
Resizing the filesystem on /dev/VolGroup00/LogVol00 to 4669440 (4k) blocks.
The filesystem on /dev/VolGroup00/LogVol00 is now 4669440 blocks long.
init 6 (per riavviare il server)
Una volta riavviato facciamo un ultimo controllo
df -h
Filesystem Dimens. Usati Disp. Uso% Montato su
/dev/mapper/VolGroup00-LogVol00 18G 5,1G 12G 31% /
/dev/sda1 99M 13M 82M 13% /boot
tmpfs 506M 0 506M 0% /dev/shm
e vedremo che il file system è cresciuto, facile come farsi mettere un bel paio di tette finte come da foto dell’articolo.