Minule jsme si ukázali, jak v LVM vytvořit jednoduchý oddíl, a použili jsme jen jeden pevný disk. Dnes se naučíme přidávat další disky a zvětšíme existující oddíl i se souborovým systémem. A také naopak, pevný disk z LVM odebereme, poté co zmenšíme systém souborů a logický oddíl.
Přidání dalšího pevného disku
Z minulého dílu máme v LVM jeden disk o velikosti 8 GB a oddíl video o velikosti 2 GB. Teď přidáme další disk o velikosti 6 GB a oddíl video zvětšíme na 10 GB (tedy na velikost větší, než je velikost největšího PV. Jak již bylo uvedeno minule, LVM řeší distribuci místa transparentně a není třeba se zabývat velikostí jednotlivých PV ve vztahu k logickým oddílům. (Předchozí informace není zcela správná pro zrcadlený oddíl, ale to si vysvětlíme později.) Směrodatné (pro velikost nového oddílu či zvětšení stávájícího) je volné místo ve skupině oddílů, které zjistíme pomocí vgdisplay "jméno skupiny"
.
Začneme tedy vytvořením fyzického oddílu na novém disku:
[root@centos ~]# pvcreate /dev/sdb Physical volume "/dev/sdb" successfully created
A přidáme tento oddíl do skupiny data. K tomu slouží příkaz vgextend
s parametry jména skupiny a diskovým zařízením.
[root@centos ~]# vgextend data /dev/sdb Volume group "data" successfully extended
Nyní už má skupina oddílů data velikost 8+6 = 14 GB, tedy volné místo 12 GB. Výpis z vgdisplay data
to potvrzuje:
[root@centos ~]# vgdisplay data --- Volume group --- VG Name data System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 7 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 0 Max PV 0 Cur PV 2 Act PV 2 VG Size 13.99 GB PE Size 4.00 MB Total PE 3582 Alloc PE / Size 512 / 2.00 GB Free PE / Size 3070 / 11.99 GB VG UUID 5N1yvF-YMBO-301k-zBIg-ssY1-sLCC-kV8GwA
Zvětšení oddílu
Zvětšení logického oddílu má na starosti příkaz lvextend
, parametrem je buď nová velikost velikost (--size 10G
), nebo přírůstek (--size +8G
) a samozřejmě také cesta k logickému oddílu, který chceme zvětšit. Konkrétně pro oddíl video z našeho příkladu:
[root@centos ~]# lvextend --size 10G /dev/data/video Extending logical volume video to 10.00 GB Logical volume video successfully resized
Zvětšení ext3
Následuje zvětšení systému souborů. Pro změnu velikosti ext3 slouží nástroj resize2fs
a zvětšení lze provést i s připojeným souborových systémem – celé zvětšení oddílu (tedy přidání fyzického oddílu, zvětšení skupiny, zvětšení oddílu i systému souborů) lze provést za běhu systému bez jakéhokoliv dopadu na běžící služby, což je velmi výhodné.
[root@centos ~]# resize2fs /dev/data/video resize2fs 1.39 (29-May-2006) Filesystem at /dev/data/video is mounted on /mnt; on-line resizing required Performing an on-line resize of /dev/data/video to 2621440 (4k) blocks. The filesystem on /dev/data/video is now 2621440 blocks long.
Zvětšení XFS
Souborový systém XFS umožňuje pouze zvětšení, a to pomocí prográmku xfs_growfs
. Souborový systém musí být připojený pro zápis.
[root@centos ~]# xfs_growfs /dev/data/video meta-data=/dev/data/video isize=256 agcount=8, agsize=65536 blks = sectsz=512 attr=0 data = bsize=4096 blocks=524288, imaxpct=25 = sunit=0 swidth=0 blks, unwritten=1 naming =version 2 bsize=4096 log =internal bsize=4096 blocks=2560, version=1 = sectsz=512 sunit=0 blks, lazy-count=0 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 524288 to 2621440
Zvětšení JFS
JFS nemá na zvětšení zvláštní nástroj, zvětšuje se pomocí parametrů připojení, což lze též udělat za běhu systému. Pro přehlednost si ukážeme celý postup zvětšení oddílu s JFS i s uvedením velikosti systému souborů:
[root@centos ~]# df -h /mnt Filesystem Size Used Avail Use% Mounted on /dev/mapper/data-video 2.0G 388K 2.0G 1% /mnt [root@centos ~]# lvextend --size 10G /dev/data/video Extending logical volume video to 10.00 GB Logical volume video successfully resized [root@centos ~]# mount /mnt -o remount,resize [root@centos ~]# df -h /mnt Filesystem Size Used Avail Use% Mounted on /dev/mapper/data-video 10G 1.4M 10G 1% /mnt
Zvětšení ReiserFS
ReiserFS má pro zvětšení program resize_reiserfs
. Spuštěný bez parametrů zvětší velikost FS na velikost oddílu.
[root@centos ~]# resize_reiserfs /dev/data/video resize_reiserfs 3.6.19 (2003 www.namesys.com) resize_reiserfs: On-line resizing finished successfully.
Zmenšení systému souborů
Při zvětšování jsme nejprve zvětšili logický oddíl a poté souborový systém s tím, že nástroj pro zvětšení FS si velikost oddílu zjistil sám. Zmenšení je o něco komplikovanější. Nejprve je nutné zmenšit systém souborů (pokud to umožňuje – např. XFS zmenšení vůbec nepodporuje) a poté zmenšit oddíl. Zde je už nutné novou velikost uvádět.
Při zmenšení je třeba dávat pozor, aby logický oddíl nebyl menší, než je velikost souborového systému! Osobně postupuji tak, že souborový systém zmenším na velikost o něco menší než požaduji, poté zmenším oddíl na požadovanou velikost a následně nechám FS zvětšit na velikost oddílu (kterou už si ten příslušný nástroj zjistí sám). Doporučuji mít data ze souborového systému zálohovaná (toto by mělo být pravidlem při jakékoliv manipulaci se souborovým systémem).
V příkladech si ukážeme, jak zmenšit jednotlivé souborové systémy souborů na velikost 5 GB, poté zmenšíme logický oddíl video a nakonec ze skupiny odstraníme fyzický oddíl a tím vlastně i jeden disk.
Zmenšení ext3
Ke zmenšení velikosti souborového systému ext3 opět slouží resize2fs
s prvním parametrem uvádejícím cestu k oddílu a dále novou velikostí. Souborový systém nesmí být připojený a před samotným zmenšením je nutné souborový systém zkontrolovat (fsck.ext3 -f /dev/data/video
).
[root@centos ~]# resize2fs /dev/data/video 5G resize2fs 1.39 (29-May-2006) Resizing the filesystem on /dev/data/video to 1310720 (4k) blocks. The filesystem on /dev/data/video is now 1310720 blocks long.
Poznámka z praxe: Často je rychlejší vytvořit nový oddíl (pokud je dostatek místa) o požadované velikosti, data přesunout a starý oddíl zrušit. Kontrola 1TB oddílu (ext3) a následné zmenšení na 600 GB by trvalo déle, než by trval přesun 550 GB dat.
Zmenšení ReiserFS
Opět (jako ke zvětšení) k němu slouží nástroj resize_reiserfs
, který je na CentOS 5.2 (v době psaní článku nejnovější) v repozitáři CentOSPlus ve verzi 3.6.19, a při pokusu o zmenšení souborového systému zobrazí varování, že zmenšení je zatím ve fázi testování.
Poznámka nikoliv pod čarou: Red Hat, ze kterého CentOS vychází, oficiálně podporuje pouze souborový systém ext3, neoficiálně lze použít i další právě z repozitáře CentOSPlus s použitím tamního jádra. Právě na tomto systému testuji postupy do této série článků.
ReiserFS tedy zmenšíme pomocí reiserfs_resize
s parametrem -s5G
, který určuje novou velikost. Výpis i s výše zmíněným varováním:
[root@centos ~]# resize_reiserfs -s5G /dev/data/video resize_reiserfs 3.6.19 (2003 www.namesys.com) You are running BETA version of reiserfs shrinker. This version is only for testing or VERY CAREFUL use. Backup of you data is recommended. Do you want to continue? [y/N]:y Processing the tree: 0%....20%....40%....60%....80%....100% nodes processed (moved): int 0 (0), leaves 1 (0), unfm 0 (0), total 1 (0). check for used blocks in truncated region ReiserFS report: blocksize 4096 block count 1310720 (2621440) free blocks 1302469 (2613149) bitmap block count 40 (80) Syncing..done resize_reiserfs: Resizing finished successfully.
XFS a JFS zmenšení nepodporují. Ostatně, zmenšení souborového systému je velice vyjímečná operace a vhodným rozvržením velikostí oddílů se jí lze vyhnout. Jak jsme si ukázali, zvětšení oddílu v LVM je velmi snadné a rychlé. Lze jej tedy provádět průběžně podle potřeby místa
Zmenšení logického oddílu
Po zmenšení systému souborů už je možné zmenšit samotný oddíl. Zde je opravdu nutné dávat pozor na novou velikost oddílu, ta nesmí být menší, než je velikost souborového systému.
Ke zmenšení logického oddílu slouží lvreduce
s parametrem -- size
, který udává novou velikost. A samozřejmně také zmenšovaný oddíl:
[root@centos ~]# lvreduce --size 5G /dev/data/video WARNING: Reducing active logical volume to 5.00 GB THIS MAY DESTROY YOUR DATA (filesystem etc.) Do you really want to reduce video? [y/n]: y Reducing logical volume video to 5.00 GB Logical volume video successfully resized
Odebrání fyzického oddílu (pevného disku)
Při odebrání fyzického oddílu (v tomto příkladu celého pevného disku), je nutné, aby byl daný PV prázdný. Pro přesun dat z fyzického oddílu jinam slouží příkaz pvmove
. Lze určit, na které konkrétní fyz. oddíly se mají data přesunout, nebo to nechat na LVM. Budeme odebírat disk /dev/sda
. Přesun je možno přerušit (např. při výpadku napájení apod.), další spuštění pvmove
bude plynule pokračovat v přesunu:
[root@centos ~]# pvmove /dev/sda Detected pvmove in progress for /dev/sda /dev/sda: Moved: 100.0%
Dalším krokem při odebírání fyz. oddílu je zmenšení skupiny oddílů příkazem vgreduce
s parametry jméno skupiny a cesta k fyzickému uddílu:
[root@centos ~]# vgreduce data /dev/sda Removed "/dev/sda" from volume group "data"
Zbývá už jen odstranit fyz. oddíl:
[root@centos ~]# pvremove /dev/sda Labels on physical volume "/dev/sda" successfully wiped
Tímto je odebrání fyzického oddílu hotové. Opět, jako většina operací v LVM, lze odebrat fyzický oddíl za běhu systému. Pokud konstrukce počítače umožnuje připojovat a odpojovat disky za běhu (hot-swap), lze takto jednoduše zvětšit diskový prostor odstraněním malého disku z LVM, jeho fyzickým vyjmutím, vložením většího disku, přidáním do skupiny oddílů a vytvořením nových (nebo zvětšením původních) logických oddílů.
Napsáno pro abclinuxu.cz