Nota: questo è un obiettivo d’esame RHCSA 7.
Prerequisiti
Questo tutorial richiede 200MB di spazio disponibile su disco.
Prima di estendere qualsiasi volume logico non crittografato, creiamo uno di 100MB chiamato lv_vol nel gruppo di volumi vg:
# lvcreate --size 100M --name lv_vol vg
Solo i file system Ext4 e XFS non crittografati possono essere estesi, non vfat.
Nota 1: in questo tutorial, i comandi lvextend e lvreduce vengono utilizzati rispettivamente per aumentare e ridurre la dimensione di un volume logico. Per brevità, il comando lvresize non è discusso qui, ma le stesse operazioni possono essere fatte in un modo leggermente diverso con questo comando (vedi commenti).
Nota 2: con RHEL 7.3, il servizio NetworkManager ha ottenuto due nuove direttive nel suo file di unità: ProtectSystem=true e ProtectHome=read-only. Queste direttive vietano alcune modifiche apportate al sistema (/usr, /boot, /root, /run /user) e / home directory, principalmente la creazione di collegamenti simbolici (vedere i dettagli qui). Per la maggior parte delle operazioni, questo non dovrebbe cambiare nulla, ma è meglio saperlo.
Estensione di un Ext4 logical Volume
Per creare un file system ext4 sul volume logico creato in precedenza, digitare:
# mkfs.ext4 /dev/vg/lv_vol mke2fs 1.42.9 (28-Dec-2013) Filesystem label= OS type: Linux Block size=1024 (log=0) Fragment size=1024 (log=0) Stride=0 blocks, Stripe width=0 blocks 25688 inodes, 102400 blocks 5120 blocks (5.00%) reserved for the super user First data block=1 Maximum filesystem blocks=33685504 13 block groups 8192 blocks per group, 8192 fragments per group 1976 inodes per group Superblock backups stored on blocks: 8193, 24577, 40961, 57345, 73729 Allocating group tables: done Writing inode tables: done Creating journal (4096 blocks): done Writing superblocks and filesystem accounting information: done
Facoltativamente, installa il nuovo file system su /mnt:
# mount /dev/vg/lv_vol /mnt
# lvextend -l +100%FREE -r /dev/vg/lv_vol
Per estendere la dimensione di un volume logico in formato Ext4 non criptato (qui /dev/vg/lv_vol) di 50MB, digitare:
# lvextend --size +50M -r /dev/vg/lv_vol Rounding size to boundary between physical extents: 52.00 MiB Extending logical volume lv_vol to 152.00 MiB Logical volume lv_vol successfully resized resize2fs 1.42.9 (28-Dec-2013) Filesystem at /dev/mapper/vg-lv_vol is mounted on /mnt; on-line resizing required old_desc_blocks = 1, new_desc_blocks = 2 The filesystem on /dev/mapper/vg-lv_vol is now 155648 blocks long.
# mkfs.xfs /dev/vg/lv_vol meta-data=/dev/vg/lv_vol isize=256 agcount=4, agsize=6400 blks = sectsz=512 attr=2, projid32bit=1 = crc=0 data = bsize=4096 blocks=25600, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=0 log =internal log bsize=4096 blocks=853, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0
Montare il nuovo file system su /mnt:
# mount /dev/vg/lv_vol /mnt
Per estendere la dimensione di un volume logico in formato XFS non criptato (qui /dev/vg/lv_vol) di 50 MB, digitare:
# lvextend --size +50M -r /dev/vg/lv_vol Rounding size to boundary between physical extents: 52.00 MiB Extending logical volume lv_vol to 152.00 MiB Logical volume lv_vol successfully resized meta-data=/dev/mapper/vg-lv_vol isize=256 agcount=4, agsize=6400 blks = sectsz=512 attr=2, projid32bit=1 = crc=0 data = bsize=4096 blocks=25600, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=0 log =internal bsize=4096 blocks=853, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 25600 to 38912
Nota 1: il file system viene automaticamente esteso (-r) senza bisogno di smontarlo.
Nota 2: non è possibile ridurre un file system XFS anche se lo si smonta. Devi eseguire il backup (con tar o un altro strumento), rilasciarlo e ricrearlo.
Sebbene non vi sia alcun motivo per farlo, puoi comunque farlo in due passaggi:
# lvextend --size +50M /dev/vg/lv_vol Rounding size to boundary between physical extents: 52.00 MiB Extending logical volume lv_vol to 152.00 MiB Logical volume lv_vol successfully resized # xfs_growfs /mnt meta-data=/dev/mapper/vg-lv_vol isize=256 agcount=4, agsize=6400 blks = sectsz=512 attr=2, projid32bit=1 = crc=0 data = bsize=4096 blocks=25600, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=0 log =internal bsize=4096 blocks=853, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 25600 to 38912
Nota: il comando xfs_growfs accetta solo un file system XFS montato come parametro.