BunÄ tuturor. Ăn pregÄtirea ĂŽnceperii unui nou grup de curs publicÄm material util scris de studentul nostru, precum Či mentorul cursurilor, specialist ĂŽn suport tehnic pentru produsele corporative REG.RU â Roman Travin.
Ăn acest articol vor fi discutate 2 cazuri de ĂŽnlocuire a discurilor Či transferul informaČiilor pe discuri noi de o capacitate mai mare, cu extinderea ulterioarÄ a matricei Či a sistemului de fiČiere. Primul caz va fi referitor la ĂŽnlocuirea discurilor cu aceeaČi partajare MBR/MBR sau GPT/GPT, iar al doilea caz se referÄ la ĂŽnlocuirea discurilor cu partajare MBR cu discuri de peste 2 TB, pe care va trebui sÄ instalÄm partajare GPT cu partiČia biosboot. Ăn ambele cazuri, discurile pe care transferÄm datele sunt deja instalate ĂŽn serverul. Sistemul de fiČiere utilizat pentru partiČia rÄdÄcinÄ este ext4.
Cazul 1: Ănlocuirea discurilor de capacitate mai micÄ cu discuri de capacitate mai mare (pânÄ la 2TB)
Sarcina: ĂnlocuiČi discurile actuale cu discuri de capacitate mai mare (pânÄ la 2 TB) cu transferul informaČiei. Ăn acest caz, avem discuri 2 x 240 GB SSD (RAID-1) cu sistemul instalat Či discuri 2 x 1 TB SATA, pe care trebuie sÄ transferÄm sistemul.
SÄ examinÄm partajarea actualÄ a discurilor.
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 223,6G 0 disk
ââsda1 8:1 0 1G 0 part
â ââmd126 9:126 0 1023M 0 raid1 /boot
ââsda2 8:2 0 222,5G 0 part
ââmd127 9:127 0 222,4G 0 raid1
ââvg0-root 253:0 0 206,4G 0 lvm /
ââvg0-swap 253:1 0 16G 0 lvm [SWAP]
sdb 8:16 0 223,6G 0 disk
ââsdb1 8:17 0 1G 0 part
â ââmd126 9:126 0 1023M 0 raid1 /boot
ââsdb2 8:18 0 222,5G 0 part
ââmd127 9:127 0 222,4G 0 raid1
ââvg0-root 253:0 0 206,4G 0 lvm /
ââvg0-swap 253:1 0 16G 0 lvm [SWAP]
sdc 8:32 0 931,5G 0 disk
sdd 8:48 0 931,5G 0 disk SÄ verificÄm spaČiul utilizat al sistemului de fiČiere ĂŽn acest moment.
[root@localhost ~]# df -h
Sistem de fiČiere Dimensiune Utilizat Disponibil Utilizat% Montat ĂŽn
devtmpfs 32G 0 32G 0% /dev
tmpfs 32G 0 32G 0% /dev/shm
tmpfs 32G 9,6M 32G 1% /run
tmpfs 32G 0 32G 0% /sys/fs/cgroup
/dev/mapper/vg0-root 204G 1,3G 192G 1% /
/dev/md126 1007M 120M 837M 13% /boot
tmpfs 6,3G 0 6,3G 0% /run/user/0 Dimensiunea sistemului de fiČiere ĂŽnainte de ĂŽnlocuirea discurilor este de 204 GB, se folosesc 2 matrice software md126, care este montat ĂŽn /boot Či md127, care este utilizat ca volum fizic pentru grupul VG vg0.
1. Eliminarea partiČiilor discului din matrice
VerificÄm starea matricei
[root@localhost ~]# cat /proc/mdstat
Personalities : [raid1]
md126 : active raid1 sda1[0] sdb1[1]
1047552 blocks super 1.2 [2/2] [UU]
bitmap: 0/1 pages [0KB], 65536KB chunk
md127 : active raid1 sda2[0] sdb2[1]
233206784 blocks super 1.2 [2/2] [UU]
bitmap: 0/2 pages [0KB], 65536KB chunk
unused devices: Sunt utilizate 2 matrice ĂŽn sistem: md126 (punct de montare /boot) â constÄ din partiČia /dev/sda1 Či /dev/sdb1, md127 (LVM pentru swap Či rÄdÄcina sistemului de fiČiere) â constÄ din /dev/sda2 Či /dev/sdb2.
MarcÄm sectoarele primului disc, care sunt utilizate ĂŽn fiecare matrice, ca fiind defecte.
mdadm /dev/md126 --fail /dev/sda1
mdadm /dev/md127 --fail /dev/sda2
EliminÄm sectoarele dispozitivului bloc /dev/sda din matrice.
mdadm /dev/md126 --remove /dev/sda1
mdadm /dev/md127 --remove /dev/sda2DupÄ ce am eliminat discul din matrice, informaČiile despre dispozitivele bloc vor arÄta astfel.
[root@localhost ~]# lsblk
NUME MAJ:MIN RM DIMENSIUNE RO TIP PUNCT_DE_MONTARE
sda 8:0 0 223,6G 0 disc
ââsda1 8:1 0 1G 0 parte
ââsda2 8:2 0 222,5G 0 parte
sdb 8:16 0 223,6G 0 disc
ââsdb1 8:17 0 1G 0 parte
â ââmd126 9:126 0 1023M 0 raid1 /boot
ââsdb2 8:18 0 222,5G 0 parte
ââmd127 9:127 0 222,4G 0 raid1
ââvg0-root 253:0 0 206,4G 0 lvm /
ââvg0-swap 253:1 0 16G 0 lvm [SWAP]
sdc 8:32 0 931,5G 0 disc
sdd 8:48 0 931,5G 0 disc Starea matricelor dupÄ eliminarea discurilor.
[root@localhost ~]# cat /proc/mdstat
Personalities : [raid1]
md126 : active raid1 sdb1[1]
1047552 blocks super 1.2 [2/1] [_U]
bitmap: 0/1 pages [0KB], 65536KB chunk
md127 : active raid1 sdb2[1]
233206784 blocks super 1.2 [2/1] [_U]
bitmap: 1/2 pages [4KB], 65536KB chunk
unused devices:2. Copierea tabelului de partiČii pe un nou disc
Este posibilÄ verificarea tabelului de partiČii utilizat pe disc cu urmÄtoarea comandÄ.
fdisk -l /dev/sdb | grep 'Disk label type'
Rezultatul pentru MBR va fi:
Disk label type: dospentru GPT:
Disk label type: gpt Copierea tabelului de partiti pentru MBR:
sfdisk -d /dev/sdb | sfdisk /dev/sdcĂn aceastÄ comandÄ ĂŽn primul rând se specificÄ discul de de la care se copiazÄ partitia, iar al doilea â unde se copiazÄ.
ATENČIE: Pentru GPT ĂŽn primul rând se specificÄ discul pe care se copiazÄ partitia, al doilea discul specificÄ discul de la care se copiazÄ partitia. DacÄ se amestecÄ discurile, atunci structura iniČial corectÄ va fi suprascrisÄ Či distrusÄ.
Copierea tabelului de partiti pentru GPT:
sgdisk -R /dev/sdc /dev/sdbApoi atribuim discului un UUID aleator (pentru GPT).
sgdisk -G /dev/sdc DupÄ executarea comenzii, partitiile ar trebui sÄ aparÄ pe disc. /dev/sdc.
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 223,6G 0 disk
ââsda1 8:1 0 1G 0 part
ââsda2 8:2 0 222,5G 0 part
sdb 8:16 0 223,6G 0 disk
ââsdb1 8:17 0 1G 0 part
â ââmd126 9:126 0 1023M 0 raid1 /boot
ââsdb2 8:18 0 222,5G 0 part
ââmd127 9:127 0 222,4G 0 raid1
ââvg0-root 253:0 0 206,4G 0 lvm /
ââvg0-swap 253:1 0 16G 0 lvm [SWAP]
sdc 8:32 0 931,5G 0 disk
ââsdc1 8:33 0 1G 0 part
ââsdc2 8:34 0 222,5G 0 part
sdd 8:48 0 931,5G 0 disk DacÄ dupÄ executarea acČiunii, partiČiile din sistem pe disc /dev/sdc nu s-au definit, atunci executÄm comanda pentru a reĂŽncÄrca tabela de partiČii.
sfdisk -R /dev/sdcDacÄ pe discurile curente se foloseČte tabela MBR Či informaČiile trebuie transferate pe discuri cu o capacitate mai mare de 2 TB, va fi necesar sÄ creÄm manual o structurÄ GPT pe noile discuri folosind partiČia biosboot. AceastÄ situaČie va fi discutatÄ ĂŽn partea a 2-a a acestui articol.
3. AdÄugarea partiČiilor pe noul disc ĂŽn raid
Vom adÄuga partiČiile discului ĂŽn array-urile corespunzÄtoare.
mdadm /dev/md126 --add /dev/sdc1
mdadm /dev/md127 --add /dev/sdc2VerificÄm cÄ partiČiile au fost adÄugate.
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 223,6G 0 disk
ââsda1 8:1 0 1G 0 part
ââsda2 8:2 0 222,5G 0 part
sdb 8:16 0 223,6G 0 disk
ââsdb1 8:17 0 1G 0 part
â ââmd126 9:126 0 1023M 0 raid1 /boot
ââsdb2 8:18 0 222,5G 0 part
ââmd127 9:127 0 222,4G 0 raid1
ââvg0-root 253:0 0 206,4G 0 lvm /
ââvg0-swap 253:1 0 16G 0 lvm [SWAP]
sdc 8:32 0 931,5G 0 disk
ââsdc1 8:33 0 1G 0 part
â ââmd126 9:126 0 1023M 0 raid1 /boot
ââsdc2 8:34 0 222,5G 0 part
ââmd127 9:127 0 222,4G 0 raid1
ââvg0-root 253:0 0 206,4G 0 lvm /
ââvg0-swap 253:1 0 16G 0 lvm [SWAP]
sdd 8:48 0 931,5G 0 disk DupÄ aceasta aČteptÄm sincronizarea array-urilor.
[root@localhost ~]# cat /proc/mdstat
Personalities : [raid1]
md126 : active raid1 sdc1[2] sdb1[1]
1047552 blocks super 1.2 [2/2] [UU]
bitmap: 0/1 pages [0KB], 65536KB chunk
md127 : active raid1 sdc2[2] sdb2[1]
233206784 blocks super 1.2 [2/1] [_U]
[==>..................] recovery = 10.6% (24859136/233206784) finish=29.3min speed=118119K/sec
bitmap: 2/2 pages [8KB], 65536KB chunk
unused devices: Pentru a observa continuu procesul de sincronizare, se poate folosi utilitarul watch.
watch -n 2 cat /proc/mdstat Parametru -n care indicÄ la ce intervale de secunde trebuie executatÄ comanda pentru a verifica progresul.
RepetÄm paČii 1 â 3 pentru urmÄtorul disc de ĂŽnlocuit.
MarcÄm partiČiile celui de-al doilea disc, folosite ĂŽn fiecare array, ca fiind defecte.
mdadm /dev/md126 --fail /dev/sdb1
mdadm /dev/md127 --fail /dev/sdb2
EliminÄm partiČiile dispozitivului bloc /dev/sdb din arraye.
mdadm /dev/md126 --remove /dev/sdb1
mdadm /dev/md127 --remove /dev/sdb2DupÄ ce am eliminat discul din matrice, informaČiile despre dispozitivele bloc vor arÄta astfel.
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 223,6G 0 disk
ââsda1 8:1 0 1G 0 part
ââsda2 8:2 0 222,5G 0 part
sdb 8:16 0 223,6G 0 disk
ââsdb1 8:17 0 1G 0 part
ââsdb2 8:18 0 222,5G 0 part
sdc 8:32 0 931,5G 0 disk
ââsdc1 8:33 0 1G 0 part
â ââmd126 9:126 0 1023M 0 raid1 /boot
ââsdc2 8:34 0 222,5G 0 part
ââmd127 9:127 0 222,4G 0 raid1
ââvg0-root 253:0 0 206,4G 0 lvm /
ââvg0-swap 253:1 0 16G 0 lvm [SWAP]
sdd 8:48 0 931,5G 0 disk
Starea matricelor dupÄ eliminarea discurilor.
[root@localhost ~]# cat /proc/mdstat
Personalities : [raid1]
md126 : active raid1 sdc1[2]
1047552 blocks super 1.2 [2/1] [U_]
bitmap: 0/1 pages [0KB], 65536KB chunk
md127 : active raid1 sdc2[2]
233206784 blocks super 1.2 [2/1] [U_]
bitmap: 1/2 pages [4KB], 65536KB chunk
unused devices: Copierea tabelului de partitiie MBR de pe disc /dev/sdŃ pe disc /dev/sdd.
sfdisk -d /dev/sdc | sfdisk /dev/sdd DupÄ executarea comenzii, partitiile ar trebui sÄ aparÄ pe disc. /dev/sdd.
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 223,6G 0 disk
ââsda1 8:1 0 1G 0 part
ââsda2 8:2 0 222,5G 0 part
sdb 8:16 0 223,6G 0 disk
ââsdb1 8:17 0 1G 0 part
ââsdb2 8:18 0 222,5G 0 part
sdc 8:32 0 931,5G 0 disk
ââsdc1 8:33 0 1G 0 part
â ââmd126 9:126 0 1023M 0 raid1 /boot
ââsdc2 8:34 0 222,5G 0 part
ââmd127 9:127 0 222,4G 0 raid1
ââvg0-root 253:0 0 206,4G 0 lvm /
ââvg0-swap 253:1 0 16G 0 lvm [SWAP]
sdd 8:48 0 931,5G 0 disk
ââsdd1 8:49 0 1G 0 part
ââsdd2 8:50 0 222,5G 0 part AdÄugarea partiČiilor de disc ĂŽn array-uri.
mdadm /dev/md126 --add /dev/sdd1
mdadm /dev/md127 --add /dev/sdd2VerificÄm cÄ partiČiile au fost adÄugate.
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 223,6G 0 disk
ââsda1 8:1 0 1G 0 part
ââsda2 8:2 0 222,5G 0 part
sdb 8:16 0 223,6G 0 disk
ââsdb1 8:17 0 1G 0 part
ââsdb2 8:18 0 222,5G 0 part
sdc 8:32 0 931,5G 0 disk
ââsdc1 8:33 0 1G 0 part
â ââmd126 9:126 0 1023M 0 raid1 /boot
ââsdc2 8:34 0 222,5G 0 part
ââmd127 9:127 0 222,4G 0 raid1
ââvg0-root 253:0 0 206,4G 0 lvm /
ââvg0-swap 253:1 0 16G 0 lvm [SWAP]
sdd 8:48 0 931,5G 0 disk
ââsdd1 8:49 0 1G 0 part
â ââmd126 9:126 0 1023M 0 raid1 /boot
ââsdd2 8:50 0 222,5G 0 part
ââmd127 9:127 0 222,4G 0 raid1
ââvg0-root 253:0 0 206,4G 0 lvm /
ââvg0-swap 253:1 0 16G 0 lvm [SWAP]DupÄ aceasta aČteptÄm sincronizarea array-urilor.
[root@localhost ~]# cat /proc/mdstat
Personalities : [raid1]
md126 : active raid1 sdd1[3] sdc1[2]
1047552 blocks super 1.2 [2/2] [UU]
bitmap: 0/1 pages [0KB], 65536KB chunk
md127 : active raid1 sdd2[3] sdc2[2]
233206784 blocks super 1.2 [2/1] [U_]
[>....................] recovery = 0.5% (1200000/233206784) finish=35.4min speed=109090K/sec
bitmap: 2/2 pages [8KB], 65536KB chunk
unused devices:
5. Instalarea GRUB pe discurile noi
Pentru CentOS:
grub2-install /dev/sdXPentru Debian/Ubuntu:
grub-install /dev/sdX unde X â litera dispozitivului bloc. Ăn acest caz, GRUB trebuie instalat pe /dev/sdc Či /dev/sdd.
6. Extinderea sistemului de fiČiere (ext4) pe partČia principalÄ
Pe noile discuri /dev/sdc Či /dev/sdd sunt disponibili 931.5 GB. Deoarece tabelul de partiČii a fost copiat de pe discuri de dimensiuni mai mici, pe partiČiile /dev/sdc2 Či /dev/sdd2 sunt disponibili 222.5 GB.
sdc 8:32 0 931,5G 0 disk
ââsdc1 8:33 0 1G 0 part
â ââmd126 9:126 0 1023M 0 raid1 \/boot
ââsdc2 8:34 0 222,5G 0 part
ââmd127 9:127 0 222,4G 0 raid1
ââvg0-root 253:0 0 206,4G 0 lvm \/
ââvg0-swap 253:1 0 16G 0 lvm [SWAP]
sdd 8:48 0 931,5G 0 disk
ââsdd1 8:49 0 1G 0 part
â ââmd126 9:126 0 1023M 0 raid1 \/boot
ââsdd2 8:50 0 222,5G 0 part
ââmd127 9:127 0 222,4G 0 raid1
ââvg0-root 253:0 0 206,4G 0 lvm \/
ââvg0-swap 253:1 0 16G 0 lvm [SWAP]NecesitÄ:
- Extinderea partiČiei 2 pe fiecare dintre discuri,
- Extinderea aranjamentului md127,
- Extinderea PV (volum fizic),
- Extinderea LV (volum logic) vg0-root,
- Extinderea sistemului de fiČiere.
Folosind utilitarul parted vom extinde partiČia /dev/sdc2 pânÄ la valoarea maximÄ. ExecutÄm comanda parted \/dev\/sdc (1) Či vizualizÄm tabelul actual de partiČii cu comanda p (2).

DupÄ cum se poate observa, sfârČitul partiČiei 2 se terminÄ la 240 GB. Vom extinde partiČia cu comanda resizepart 2, unde 2 este numÄrul partiČiei (3). Indicam valoarea ĂŽntr-un format numeric, de exemplu 1000 GB, sau folosim specificarea unei proporČii din disc â 100%. VerificÄm din nou cÄ partiČia are o nouÄ dimensiune (4).
RepetÄm paČii menČionaČi mai sus pentru disc /dev/sdd. DupÄ extinderea partiČiilor /dev/sdc2 Či /dev/sdd2 au devenit egale cu 930.5 GB.
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 223,6G 0 disk
ââsda1 8:1 0 1G 0 part
ââsda2 8:2 0 222,5G 0 part
sdb 8:16 0 223,6G 0 disk
ââsdb1 8:17 0 1G 0 part
ââsdb2 8:18 0 222,5G 0 part
sdc 8:32 0 931,5G 0 disk
ââsdc1 8:33 0 1G 0 part
â ââmd126 9:126 0 1023M 0 raid1 \/boot
ââsdc2 8:34 0 930,5G 0 part
ââmd127 9:127 0 222,4G 0 raid1
ââvg0-root 253:0 0 206,4G 0 lvm \/
ââvg0-swap 253:1 0 16G 0 lvm [SWAP]
sdd 8:48 0 931,5G 0 disk
ââsdd1 8:49 0 1G 0 part
â ââmd126 9:126 0 1023M 0 raid1 \/boot
ââsdd2 8:50 0 930,5G 0 part
ââmd127 9:127 0 222,4G 0 raid1
ââvg0-root 253:0 0 206,4G 0 lvm \/
ââvg0-swap 253:1 0 16G 0 lvm [SWAP]DupÄ aceea, executÄm extinderea aranjamentului md127 pânÄ la maxim.
mdadm --grow \/dev\/md127 --size=maxVerificÄm cÄ aranjamentul s-a extins. Acum dimensiunea sa a devenit 930.4 GB.
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 223,6G 0 disk
ââsda1 8:1 0 1G 0 part
ââsda2 8:2 0 222,5G 0 part
sdb 8:16 0 223,6G 0 disk
ââsdb1 8:17 0 1G 0 part
ââsdb2 8:18 0 222,5G 0 part
sdc 8:32 0 931,5G 0 disk
ââsdc1 8:33 0 1G 0 part
â ââmd126 9:126 0 1023M 0 raid1 \/boot
ââsdc2 8:34 0 930,5G 0 part
ââmd127 9:127 0 930,4G 0 raid1
ââvg0-root 253:0 0 206,4G 0 lvm \/
ââvg0-swap 253:1 0 16G 0 lvm [SWAP]
sdd 8:48 0 931,5G 0 disk
ââsdd1 8:49 0 1G 0 part
â ââmd126 9:126 0 1023M 0 raid1 \/boot
ââsdd2 8:50 0 930,5G 0 part
ââmd127 9:127 0 930,4G 0 raid1
ââvg0-root 253:0 0 206,4G 0 lvm \/
ââvg0-swap 253:1 0 16G 0 lvm [SWAP]Extindem volum fizic. Ănainte de extindere, sÄ verificÄm starea curentÄ a PV.
[root@localhost ~]# pvscan
PV \/dev\/md127 VG vg0 lvm2 [222,40 GiB \/ 0 liber]
Total: 1 [222,40 GiB] \/ folosite: 1 [222,40 GiB] \/ fÄrÄ VG: 0 [0 ]
DupÄ cum se observÄ, PV /dev/md127 foloseČte 222.4 GB de spaČiu.
Extindem PV cu urmÄtoarea comandÄ.
pvresize \/dev\/md127VerificÄm rezultatul extinderii PV.
[
root@localhost ~]# pvscan
PV \/dev\/md127 VG vg0 lvm2 [930,38 GiB \/ 707,98 GiB liber]
Total: 1 [930,38 GiB] \/ folosite: 1 [930,38 GiB] \/ fÄrÄ VG: 0 [0 ]Extindem volumul logic. Ănainte de extindere, sÄ verificÄm starea curentÄ a LV (1).
[root@localhost ~]# lvscan
ACTIV '\/dev\/vg0\/swap' [<16,00 GiB] inherit
ACTIV '\/dev\/vg0\/root' [<206,41 GiB] inherit LV /dev/vg0/root foloseČte 206.41 GB.
Extindem LV cu urmÄtoarea comandÄ (2).
lvextend -l +100%FREE \/dev\/mapper\/vg0-rootVerificÄm acČiunea efectuatÄ (3).
[root@localhost ~]# lvscan
ACTIV '\/dev\/vg0\/swap' [<16,00 GiB] inherit
ACTIV '\/dev\/vg0\/root' [<914,39 GiB] inherit
DupÄ cum vedem, dupÄ extinderea LV, volumul de spaČiu pe disc a devenit 914.39 GB.

Volumul LV a crescut (4), dar sistemul de fiČiere ocupÄ ĂŽn continuare 204 GB (5).
1. Vom extinde sistemul de fiČiere.
resize2fs \/dev\/mapper\/vg0-rootVerificÄm dimensiunea sistemului de fiČiere dupÄ comanda efectuatÄ.
[root@localhost ~]# df -h
Sistem de fiČiere Dimensiune Folosit Disponibil% Utilizat% Montat pe
devtmpfs 32G 0 32G 0% \/dev
tmpfs 32G 0 32G 0% \/dev\/shm
tmpfs 32G 9,5M 32G 1% \/run
tmpfs 32G 0 32G 0% \/sys\/fs\/cgroup
\/dev\/mapper\/vg0-root 900G 1,3G 860G 1% \/
\/dev\/md126 1007M 120M 837M 13% \/boot
tmpfs 6,3G 0 6,3G 0% \/run\/user\/0Dimensiunea sistemului de fiČiere rÄdÄcinÄ va creČte pânÄ la 900 GB. DupÄ acČiunile efectuate, putem extrage vechile discuri.
Caz 2: Inlocuirea discurilor de volum mai mic cu discuri de volum mai mare (peste 2TB)
Sarcina: Ănlocuirea discurilor actuale cu discuri de capacitate mai mare (2 x 3TB) pÄstrând informaČiile. Ăn acest caz, avem discuri 2 x 240 GB SSD (RAID-1) cu sistemul de operare instalat Či discuri 2 x 3 TB SATA, pe care trebuie sÄ transferÄm sistemul. Pe discurile actuale este utilizatÄ tabela de partiČii MBR. Deoarece noile discuri au o capacitate mai mare de 2 TB, va trebui sÄ folosim tabela GPT, deoarece MBR nu poate funcČiona cu discuri mai mari de 2TB.
SÄ examinÄm structura actualÄ a discurilor.
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 223,6G 0 disk
ââsda1 8:1 0 1G 0 part
â ââmd126 9:126 0 1023M 0 raid1 /boot
ââsda2 8:2 0 222,5G 0 part
ââmd127 9:127 0 222,4G 0 raid1
ââvg0-root 253:0 0 206,4G 0 lvm /
ââvg0-swap 253:1 0 16G 0 lvm [SWAP]
sdb 8:16 0 223,6G 0 disk
ââsdb1 8:17 0 1G 0 part
â ââmd126 9:126 0 1023M 0 raid1 /boot
ââsdb2 8:18 0 222,5G 0 part
ââmd127 9:127 0 222,4G 0 raid1
ââvg0-root 253:0 0 206,4G 0 lvm /
ââvg0-swap 253:1 0 16G 0 lvm [SWAP]
sdc 8:32 0 2,7T 0 disk
sdd 8:48 0 2,7T 0 disk SÄ verificÄm tabela de partiČii utilizatÄ pe disc. /dev/sda.
[root@localhost ~]# fdisk -l /dev/sda | grep 'Disk label type'
Disk label type: dos Pe discul /dev/sdb se foloseČte o tabelÄ de partiČii similarÄ. SÄ verificÄm spaČiul pe disc utilizat ĂŽn sistem.
[root@localhost ~]# df -h
Sistem de fiČiere Dimensiune Utilizat Disponibil% Utilizat% Montat ĂŽn
devtmpfs 16G 0 16G 0% /dev
tmpfs 16G 0 16G 0% /dev/shm
tmpfs 16G 9,5M 16G 1% /run
tmpfs 16G 0 16G 0% /sys/fs/cgroup
/dev/mapper/vg0-root 204G 1,3G 192G 1% /
/dev/md126 1007M 120M 837M 13% /boot
tmpfs 3,2G 0 3,2G 0% /run/user/0DupÄ cum se poate observa, rÄdÄcina sistemului de fiČiere ocupÄ 204 GB. SÄ verificÄm starea curentÄ a RAID-ului software.
1. Instalarea tabelei de partiČii GPT Či configurarea discului.
SÄ verificÄm structura discurilor pe sectoare.
[root@localhost ~]# parted /dev/sda print
Model: ATA KINGSTON SVP200S (scsi)
Disc /dev/sda: 240GB
Dimensiunea sectorului (logic./fizic.): 512B/512B
Tabela de partiČii: msdos
Disk Flags:
NumÄr Ănceput SfârČit Dimensiune Tip Sistem de fiČiere Flagi
1 1049kB 1076MB 1075MB primary bootabil, raid
2 1076MB 240GB 239GB primary raid
Pe noul disc de 3TB va trebui sÄ creÄm 3 partiČii:
- SecČiunea
bios_grubcu dimensiunea de 2MiB pentru compatibilitatea GPT cu BIOS, - PartiČie pentru RAID, care va fi montatÄ ĂŽn
/boot. - PartiČie pentru RAID, pe care va fi LV root Či LV swap.
InstalÄm utilitarul parted comanda yum install -y parted (pentru CentOS), apt install -y parted (pentru Debian/Ubuntu).
Folosind parted Vom ĂŽndeplini urmÄtoarele comenzi pentru partiČionarea discului.
We execute the command parted \/dev\/sdc Či vom accesa modul de editare a partiČiilor discului.
CreÄm un tabel de partiČii GPT.
(parted) mktable gpt CreÄm 1 partiČie bios_grub partiČia Či ĂŽi setÄm un steag.
(parted) mkpart primary 1MiB 3MiB
(parted) set 1 bios_grub on CreÄm 2 partiČie Či ĂŽi setÄm un steag. AceastÄ partiČie va fi utilizatÄ ca bloc pentru un RAID Či va fi montatÄ ĂŽn /boot.
(parted) mkpart primary ext2 3MiB 1028MiB
(parted) set 2 boot onCreÄm 3 partiČie, care va fi folositÄ de asemenea ca bloc ĂŽn care va fi LVM.
(parted) mkpart primary 1028MiB 100% Ăn acest caz, setarea steagului nu este obligatorie, dar dacÄ este necesar, poate fi setat cu urmÄtoarea comandÄ.
(parted) set 3 raid onVerificÄm tabelul de partiČii creat.
(parted) p
Model: ATA TOSHIBA DT01ACA3 (scsi)
Disc /dev/sdc: 3001GB
Dimensiunea sectorului (logic./fizic.): 512B/4096B
Tabelul de partiČii: gpt
Disk Flags:
NumÄr Ănceput SfârČit Dimensiune Sistem de fiČiere Nume Steaguri
1 1049kB 3146kB 2097kB primary bios_grub
2 3146kB 1077MB 1074MB primary boot
3 1077MB 3001GB 3000GB primary
Atribuim discului un nou GUID aleator.
sgdisk -G /dev/sdd
2. Eliminarea partiČiilor primului disc din raid-uri
VerificÄm starea matricei
[root@localhost ~]# cat /proc/mdstat
Personalities : [raid1]
md126 : active raid1 sda1[0] sdb1[1]
1047552 blocks super 1.2 [2/2] [UU]
bitmap: 0/1 pages [0KB], 65536KB chunk
md127 : active raid1 sda2[0] sdb2[1]
233206784 blocks super 1.2 [2/2] [UU]
bitmap: 0/2 pages [0KB], 65536KB chunk
unused devices: Ăn sistem sunt utilizate 2 raid-uri: md126 (punct de montare /boot) â constÄ din /dev/sda1 Či /dev/sdb1, md127 (LVM pentru swap Či rÄdÄcina sistemului de fiČiere) â constÄ din /dev/sda2 Či /dev/sdb2.
MarcÄm sectoarele primului disc, care sunt utilizate ĂŽn fiecare matrice, ca fiind defecte.
mdadm /dev/md126 --fail /dev/sda1
mdadm /dev/md127 --fail /dev/sda2 EliminÄm partiČiile dispozitivului bloc /dev/sda din arraye.
mdadm /dev/md126 --remove /dev/sda1
mdadm /dev/md127 --remove /dev/sda2
VerificÄm starea raid-ului dupÄ eliminarea discului.
[root@localhost ~]# cat /proc/mdstat
Personalities : [raid1]
md126 : active raid1 sdb1[1]
1047552 blocks super 1.2 [2/1] [_U]
bitmap: 0/1 pages [0KB], 65536KB chunk
md127 : active raid1 sdb2[1]
233206784 blocks super 1.2 [2/1] [_U]
bitmap: 2/2 pages [8KB], 65536KB chunk
unused devices:
3. AdÄugarea partiČiilor pe noul disc ĂŽn raid
UrmÄtorul pas este de a adÄuga partiČiile noului disc ĂŽn raid-uri pentru sincronizare. SÄ vedem starea curentÄ a partiČionÄrii discurilor.
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 223,6G 0 disk
ââsda1 8:1 0 1G 0 part
ââsda2 8:2 0 222,5G 0 part
sdb 8:16 0 223,6G 0 disk
ââsdb1 8:17 0 1G 0 part
â ââmd126 9:126 0 1023M 0 raid1 /boot
ââsdb2 8:18 0 222,5G 0 part
ââmd127 9:127 0 222,4G 0 raid1
ââvg0-root 253:0 0 206,4G 0 lvm /
ââvg0-swap 253:1 0 16G 0 lvm [SWAP]
sdc 8:32 0 2,7T 0 disk
ââsdc1 8:33 0 2M 0 part
ââsdc2 8:34 0 1G 0 part
ââsdc3 8:35 0 2,7T 0 part
sdd 8:48 0 2,7T 0 disk SecČiunea /dev/sdc1 este bios_grub partiČia Či nu participÄ la crearea raid-urilor. Numai ĂŽn raid-uri vor fi implicate /dev/sdc2 Či /dev/sdc3. AdÄugÄm aceste partiČii ĂŽn raid-urile corespunzÄtoare.
mdadm /dev/md126 --add /dev/sdc2
mdadm /dev/md127 --add /dev/sdc3DupÄ aceea, aČteptÄm sincronizarea raid-ului.
[root@localhost ~]# cat /proc/mdstat
Personalities : [raid1]
md126 : active raid1 sdc2[2] sdb1[1]
1047552 blocks super 1.2 [2/2] [UU]
bitmap: 0/1 pages [0KB], 65536KB chunk
md127 : active raid1 sdc3[2] sdb2[1]
233206784 blocks super 1.2 [2/1] [_U]
[>....................] recovery = 0.2% (619904/233206784) finish=31.2min speed=123980K/sec
bitmap: 2/2 pages [8KB], 65536KB chunk
unused devices:Structura discurilor dupÄ adÄugarea partiČiilor ĂŽn masiv.
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 223,6G 0 disk
ââsda1 8:1 0 1G 0 part
ââsda2 8:2 0 222,5G 0 part
sdb 8:16 0 223,6G 0 disk
ââsdb1 8:17 0 1G 0 part
â ââmd126 9:126 0 1023M 0 raid1 /boot
ââsdb2 8:18 0 222,5G 0 part
ââmd127 9:127 0 222,4G 0 raid1
ââvg0-root 253:0 0 206,4G 0 lvm /
ââvg0-swap 253:1 0 16G 0 lvm [SWAP]
sdc 8:32 0 2,7T 0 disk
ââsdc1 8:33 0 2M 0 part
ââsdc2 8:34 0 1G 0 part
â ââmd126 9:126 0 1023M 0 raid1 /boot
ââsdc3 8:35 0 2,7T 0 part
ââmd127 9:127 0 222,4G 0 raid1
ââvg0-root 253:0 0 206,4G 0 lvm /
ââvg0-swap 253:1 0 16G 0 lvm [SWAP]
sdd 8:48 0 2,7T 0 disk 4. Eliminarea partiČiilor de pe al doilea disc din masele
MarcÄm partiČiile celui de-al doilea disc, folosite ĂŽn fiecare array, ca fiind defecte.
mdadm /dev/md126 --fail /dev/sdb1
mdadm /dev/md127 --fail /dev/sdb2
EliminÄm partiČiile dispozitivului bloc /dev/sda din arraye.
mdadm /dev/md126 --remove /dev/sdb1
mdadm /dev/md127 --remove /dev/sdb2
5. Copiem tabelul de partiČii GPT Či sincronizÄm masivul
Pentru a copia tabelul de partiČii GPT, vom folosi utilitarul sgdisk, care face parte din pachetul pentru gestionarea partiČiilor discurilor Či tabelului GPT â gdisk.
Instalare gdisk pentru CentOS:
yum install -y gdisk Instalare gdisk pentru Debian/Ubuntu:
apt install -y gdiskATENČIE: Pentru GPT ĂŽn primul rând se specificÄ discul pe care copiem structura, al doilea discul specificÄ discul de la care copiazÄ structura. DacÄ se confundÄ discurile, structura iniČial corectÄ va fi suprascrisÄ Či distrusÄ.
Copiem tabelul de partiČii GPT.
sgdisk -R /dev/sdd /dev/sdc Structura discurilor dupÄ transferul tabelului pe disc /dev/sdd.
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 223,6G 0 disk
ââsda1 8:1 0 1G 0 part
ââsda2 8:2 0 222,5G 0 part
sdb 8:16 0 223,6G 0 disk
ââsdb1 8:17 0 1G 0 part
ââsdb2 8:18 0 222,5G 0 part
sdc 8:32 0 2,7T 0 disk
ââsdc1 8:33 0 2M 0 part
ââsdc2 8:34 0 1G 0 part
â ââmd126 9:126 0 1023M 0 raid1 /boot
ââsdc3 8:35 0 2,7T 0 part
ââmd127 9:127 0 222,4G 0 raid1
ââvg0-root 253:0 0 206,4G 0 lvm /
ââvg0-swap 253:1 0 16G 0 lvm [SWAP]
sdd 8:48 0 2,7T 0 disk
ââsdd1 8:49 0 2M 0 part
ââsdd2 8:50 0 1G 0 part
ââsdd3 8:51 0 2,7T 0 part Apoi, adÄugÄm fiecare dintre partiČii, care participÄ la masele RAID software.
mdadm /dev/md126 --add /dev/sdd2
mdadm /dev/md127 --add /dev/sdd3AČteptÄm sincronizarea masivului.
[root@localhost ~]# cat /proc/mdstat
Personalities : [raid1]
md126 : active raid1 sdd2[3] sdc2[2]
1047552 blocks super 1.2 [2/2] [UU]
bitmap: 1/1 pages [4KB], 65536KB chunk
md127 : active raid1 sdd3[3] sdc3[2]
233206784 blocks super 1.2 [2/1] [U_]
[>....................] recovery = 0.0% (148224/233206784) finish=26.2min speed=148224K/sec
bitmap: 2/2 pages [8KB], 65536KB chunk
unused devices:DupÄ copierea schemei GPT pe al doilea disc nou, schema va arÄta astfel.
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 223,6G 0 disk
ââsda1 8:1 0 1G 0 part
ââsda2 8:2 0 222,5G 0 part
sdb 8:16 0 223,6G 0 disk
ââsdb1 8:17 0 1G 0 part
ââsdb2 8:18 0 222,5G 0 part
sdc 8:32 0 2,7T 0 disk
ââsdc1 8:33 0 2M 0 part
ââsdc2 8:34 0 1G 0 part
â ââmd126 9:126 0 1023M 0 raid1 /boot
ââsdc3 8:35 0 2,7T 0 part
ââmd127 9:127 0 222,4G 0 raid1
ââvg0-root 253:0 0 206,4G 0 lvm /
ââvg0-swap 253:1 0 16G 0 lvm [SWAP]
sdd 8:48 0 2,7T 0 disk
ââsdd1 8:49 0 2M 0 part
ââsdd2 8:50 0 1G 0 part
â ââmd126 9:126 0 1023M 0 raid1 /boot
ââsdd3 8:51 0 2,7T 0 part
ââmd127 9:127 0 222,4G 0 raid1
ââvg0-root 253:0 0 206,4G 0 lvm /
ââvg0-swap 253:1 0 16G 0 lvm [SWAP]Apoi instalÄm GRUB pe noile discuri.
Instalare pentru CentOS:
grub2-install /dev/sdXInstalare pentru Debian/Ubuntu:
grub-install /dev/sdX unde X â litera discului, ĂŽn cazul nostru discurile /dev/sdc Či /dev/sdd.
ActualizÄm informaČiile despre raid.
Pentru CentOS:
mdadm --detail --scan --verbose > /etc/mdadm.confPentru Debian/Ubuntu:
echo "DEVICE partitions" > /etc/mdadm/mdadm.conf
mdadm --detail --scan --verbose | awk '/ARRAY/ {print}' >> /etc/mdadm/mdadm.conf ActualizÄm imaginea initrd:
Pentru CentOS:
dracut -f -v --regenerate-allPentru Debian/Ubuntu:
update-initramfs -u -k allActualizÄm configuraČia GRUB.
Pentru CentOS:
grub2-mkconfig -o /boot/grub2/grub.cfg
Pentru Debian/Ubuntu:
update-grubDupÄ finalizarea acČiunilor, discurile vechi pot fi scoase.
6. Extinderea sistemului de fiČiere (ext4) pe partČia principalÄ
Schema discurilor ĂŽnainte de extinderea sistemului de fiČiere dupÄ transferul sistemului pe discuri de 2 x 3TB (RAID-1).
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 223,6G 0 disk
sdb 8:16 0 223,6G 0 disk
sdc 8:32 0 2,7T 0 disk
ââsdc1 8:33 0 2M 0 part
ââsdc2 8:34 0 1G 0 part
â ââmd127 9:127 0 1023M 0 raid1 /boot
ââsdc3 8:35 0 2,7T 0 part
ââmd126 9:126 0 222,4G 0 raid1
ââvg0-root 253:0 0 206,4G 0 lvm /
ââvg0-swap 253:1 0 16G 0 lvm [SWAP]
sdd 8:48 0 2,7T 0 disk
ââsdd1 8:49 0 2M 0 part
ââsdd2 8:50 0 1G 0 part
â ââmd127 9:127 0 1023M 0 raid1 /boot
ââsdd3 8:51 0 2,7T 0 part
ââmd126 9:126 0 222,4G 0 raid1
ââvg0-root 253:0 0 206,4G 0 lvm /
ââvg0-swap 253:1 0 16G 0 lvm [SWAP] Acum secČiunile /dev/sdc3 Či /dev/sdd3 ocupÄ 2.7 TB. Deoarece am creat un nou format de disc cu tabel GPT, dimensiunea celor 3 partiČii a fost stabilitÄ imediat la maximum posibil, astfel cÄ extinderea partiČiei nu este necesarÄ ĂŽn acest caz.
NecesitÄ:
- Extinderea RAID-ului md126,
- Extinderea PV (volum fizic),
- Extinderea LV (volum logic) vg0-root,
- Extinderea sistemului de fiČiere.
1. Extindem RAID-ul md126 pânÄ la maxim.
mdadm --grow /dev/md126 --size=max
DupÄ extinderea RAID-ului md126 dimensiunea spaČiului ocupat a crescut la 2.7 TB.
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 223,6G 0 disk
sdb 8:16 0 223,6G 0 disk
sdc 8:32 0 2,7T 0 disk
ââsdc1 8:33 0 2M 0 part
ââsdc2 8:34 0 1G 0 part
â ââmd127 9:127 0 1023M 0 raid1 /boot
ââsdc3 8:35 0 2,7T 0 part
ââmd126 9:126 0 2,7T 0 raid1
ââvg0-root 253:0 0 206,4G 0 lvm /
ââvg0-swap 253:1 0 16G 0 lvm [SWAP]
sdd 8:48 0 2,7T 0 disk
ââsdd1 8:49 0 2M 0 part
ââsdd2 8:50 0 1G 0 part
â ââmd127 9:127 0 1023M 0 raid1 /boot
ââsdd3 8:51 0 2,7T 0 part
ââmd126 9:126 0 2,7T 0 raid1
ââvg0-root 253:0 0 206,4G 0 lvm /
ââvg0-swap 253:1 0 16G 0 lvm [SWAP]
Extindem volum fizic.
Ănainte de extindere, verificÄm valoarea curentÄ a spaČiului ocupat PE /dev/md126.
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/md126 vg0 lvm2 a-- 222,40g 0 Extindem PV cu urmÄtoarea comandÄ.
pvresize /dev/md126
VerificÄm dacÄ acČiunea a avut loc.
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/md126 vg0 lvm2 a-- <2,73t 2,51tExtindem volumul logic vg0-root.
DupÄ extinderea PV, verificÄm spaČiul ocupat de VG.
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg0 1 2 0 wz--n- <2,73t 2,51tVerificÄm spaČiul ocupat de LV.
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root vg0 -wi-ao---- <206,41g
swap vg0 -wi-ao---- <16,00g Volumul vg0-root ocupÄ 206.41 GB.
Extindem LV la maximumul spaČiului de disc.
lvextend -l +100%FREE \/dev\/mapper\/vg0-root VerificÄm spaČiul LV dupÄ extindere.
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root vg0 -wi-ao---- 2,71t
swap vg0 -wi-ao---- <16,00gExtindem sistemul de fiČiere (ext4).
VerificÄm dimensiunea curentÄ a sistemului de fiČiere.
[root@localhost ~]# df -h
Sistem de fiČiere Dimensiune Utilizat Disponibil Utilizat% Montat pe
devtmpfs 16G 0 16G 0% /dev
tmpfs 16G 0 16G 0% /dev/shm
tmpfs 16G 9,6M 16G 1% /run
tmpfs 16G 0 16G 0% /sys/fs/cgroup
/dev/mapper/vg0-root 204G 1,4G 192G 1% /
/dev/md127 1007M 141M 816M 15% /boot
tmpfs 3,2G 0 3,2G 0% /run/user/0Volumul /dev/mapper/vg0-root ocupÄ 204 GB dupÄ extinderea LV.
Extindem sistemul de fiČiere.
resize2fs \/dev\/mapper\/vg0-root
VerificÄm dimensiunea sistemului de fiČiere dupÄ extindere.
[root@localhost ~]# df -h
Sistem de fiČiere Dimensiune Utilizat RÄmas Utilizat% Montat ĂŽn
devtmpfs 16G 0 16G 0% /dev
tmpfs 16G 0 16G 0% /dev/shm
tmpfs 16G 9,6M 16G 1% /run
tmpfs 16G 0 16G 0% /sys/fs/cgroup
/dev/mapper/vg0-root 2,7T 1,4G 2,6T 1% /
/dev/md127 1007M 141M 816M 15% /boot
tmpfs 3,2G 0 3,2G 0% /run/user/0 Dimensiunea sistemului de fiČiere a fost crescutÄ la ĂŽntreaga capacitate a volumului.
Sursa: habr.com
