Pozdrav svima. Uoči početka nove grupe kursa objavljujemo korisne materijale koje je napisao naš student, kao i mentor na kursu, stručnjak za tehničku podršku korporativnih proizvoda REG.RU — Roman Travin.
U ovom članku razmotrićemo 2 slučaja zamjene diskova i prenosa informacija na nove diskove većeg kapaciteta uz daljnje proširenje niza i datotečnog sistema. Prvi slučaj će se odnositi na zamjenu diskova s istom razmjenom MBR/MBR ili GPT/GPT, drugi slučaj se odnosi na zamjenu diskova s razmjenom MBR na diskove kapaciteta većeg od 2 TB, za koje će biti potrebno postaviti razmjenu GPT s biosboot particijom. U oba slučaja, diskovi na koje prenosimo podatke su već instalirani u server. Datotečni sistem koji se koristi za korijensku particiju — ext4.
Slučaj 1: Zamjena manjih diskova diskovima većeg kapaciteta (do 2TB)
Zadatak: Zamijeniti trenutne diskove diskovima većeg kapaciteta (do 2 TB) s prijenosom informacija. U ovom slučaju imamo diskove 2 x 240 GB SSD (RAID-1) s instaliranim sistemom i diskove 2 x 1 TB SATA, na koje je potrebno prenijeti sistem.
Razmotrite trenutnu razmjenu diskova.
[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 Provjerimo trenutno korištenje prostora datotečnog sistema.
[root@localhost ~]# df -h
Datotečni sistem Veličina Korišteno Slobodno Korišteno% Montirano u
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 Veličina datotečnog sistema prije zamjene diskova iznosi 204 GB, koriste se 2 softverska niza md126, koji je montiran u /boot i md127, koji se koristi kao fizički volumen za VG grupu vg0.
1. Uklanjanje particija diska iz nizova
Provjeravamo stanje niza
[root@localhost ~]# cat /proc/mdstat
Osobine : [raid1]
md126 : aktivan raid1 sda1[0] sdb1[1]
1047552 blokova super 1.2 [2/2] [UU]
bitmap: 0/1 stranice [0KB], 65536KB komad
md127 : aktivan raid1 sda2[0] sdb2[1]
233206784 blokova super 1.2 [2/2] [UU]
bitmap: 0/2 stranice [0KB], 65536KB komad
neiskorišteni uređaji: U sustavu se koriste 2 niza: md126 (točka montaže /boot) — sastoji se od particije /dev/sda1 i /dev/sdb1, md127 (LVM za swap i korijena datotečnog sustava) — sastoji se od /dev/sda2 i /dev/sdb2.
Označavamo particije prvog diska koje se koriste u svakom nizu kao neispravne.
mdadm /dev/md126 --fail /dev/sda1
mdadm /dev/md127 --fail /dev/sda2
Uklanjamo particije blok uređaja /dev/sda iz nizova.
mdadm /dev/md126 --remove /dev/sda1
mdadm /dev/md127 --remove /dev/sda2Nakon što smo uklonili disk iz niza, informacija o blok uređajima će izgledati ovako.
[root@localhost ~]# lsblk
IME MAJ:MIN RM VELIČINA RO TIPA TOČKA_MONTAŽE
sda 8:0 0 223,6G 0 disk
├─sda1 8:1 0 1G 0 dio
└─sda2 8:2 0 222,5G 0 dio
sdb 8:16 0 223,6G 0 disk
├─sdb1 8:17 0 1G 0 dio
│ └─md126 9:126 0 1023M 0 raid1 /boot
└─sdb2 8:18 0 222,5G 0 dio
└─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 Stanje nizova nakon uklanjanja diskova.
[root@localhost ~]# cat /proc/mdstat
Osobine : [raid1]
md126 : aktivan raid1 sdb1[1]
1047552 blokova super 1.2 [2/1] [_U]
bitmap: 0/1 stranice [0KB], 65536KB komad
md127 : aktivan raid1 sdb2[1]
233206784 blokova super 1.2 [2/1] [_U]
bitmap: 1/2 stranice [4KB], 65536KB komad
neiskorišteni uređaji:2. Kopiranje tablice particija na novi disk
Provjeriti korištenu tablicu particija na disku može se sljedećom naredbom.
fdisk -l /dev/sdb | grep 'Disk label type'
Izlaz za MBR bit će:
Disk label type: dosza GPT:
Disk label type: gpt Kopiranje tablice particija za MBR:
sfdisk -d /dev/sdb | sfdisk /dev/sdcU ovoj naredbi prvoga navodimo disk s čija se kopira particija, drugoga — kamo kopirati.
PAŽNJA: Za GPT prvoga navodimo disk na koji se kopira particija, drugim diskom navodimo disk s kojeg se kopira particija. Ako se zamijene diskovi, izvorna ispravna particija će biti prepisana i uništena.
Kopiranje tablice particija za GPT:
sgdisk -R /dev/sdc /dev/sdbZatim dodjeljujemo disku nasumični UUID (za GPT).
sgdisk -G /dev/sdc Nakon izvršene naredbe, particije bi se trebale pojaviti na disku. /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 Ako nakon izvršene radnje particije na sustavu na disku /dev/sdc nisu se odredile, izvršavamo naredbu da bismo ponovo učitali tablicu particija.
sfdisk -R /dev/sdcAko se na trenutnim diskovima koristi MBR tablica i informacije je potrebno prenijeti na diskove veće od 2 TB, bit će potrebno ručno stvoriti GPT particiju na novim diskovima koristeći biosboot particiju. Ovaj slučaj bit će obrađen u drugom dijelu ovog članka.
3. Dodavanje particija novog diska u niz
Dodajemo particije diska u odgovarajuće nizove.
mdadm /dev/md126 --add /dev/sdc1
mdadm /dev/md127 --add /dev/sdc2Provjeravamo jesu li particije dodane.
[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 Nakon toga čekamo da se nizovi sinkroniziraju.
[root@localhost ~]# cat /proc/mdstat
Personalities : [raid1]
md126 : aktivan raid1 sdc1[2] sdb1[1]
1047552 blokova super 1.2 [2/2] [UU]
bitmap: 0/1 stranice [0KB], 65536KB komadić
md127 : aktivan raid1 sdc2[2] sdb2[1]
233206784 blokova super 1.2 [2/1] [_U]
[==>..................] oporavak = 10.6% (24859136/233206784) završetak=29.3min brzina=118119K/sec
bitmap: 2/2 stranice [8KB], 65536KB komadić
neiskorišteni uređaji: Neprekidno pratiti proces sinkronizacije moguće je pomoću alata watch.
watch -n 2 cat /proc/mdstat Parametar -n navodi s kojim intervalom u sekundama treba izvršiti naredbu za provjeru napretka.
Ponovite točke 1 — 3 za sljedeći zamjenski disk.
Označavamo particije drugog diska koje se koriste u svakom nizu kao neispravne.
mdadm /dev/md126 --fail /dev/sdb1
mdadm /dev/md127 --fail /dev/sdb2
Uklanjamo particije blok uređaja /dev/sdb iz nizova.
mdadm /dev/md126 --remove /dev/sdb1
mdadm /dev/md127 --remove /dev/sdb2Nakon što smo uklonili disk iz niza, informacija o blok uređajima će izgledati ovako.
[root@localhost ~]# lsblk
IME MAJ:MIN RM VELIČINA RO TIP MOUTPOINT
sda 8:0 0 223,6G 0 disk
├─sda1 8:1 0 1G 0 dio
└─sda2 8:2 0 222,5G 0 dio
sdb 8:16 0 223,6G 0 disk
├─sdb1 8:17 0 1G 0 dio
└─sdb2 8:18 0 222,5G 0 dio
sdc 8:32 0 931,5G 0 disk
├─sdc1 8:33 0 1G 0 dio
│ └─md126 9:126 0 1023M 0 raid1 /boot
└─sdc2 8:34 0 222,5G 0 dio
└─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
Stanje nizova nakon uklanjanja diskova.
[root@localhost ~]# cat /proc/mdstat
Osobnosti : [raid1]
md126 : aktivni raid1 sdc1[2]
1047552 blokova super 1.2 [2/1] [U_]
bitmap: 0/1 stranice [0KB], 65536KB komad
md127 : aktivni raid1 sdc2[2]
233206784 blokova super 1.2 [2/1] [U_]
bitmap: 1/2 stranice [4KB], 65536KB komad
neiskorišteni uređaji: Kopiramo MBR tablicu s diska /dev/sdс na disk /dev/sdd.
sfdisk -d /dev/sdc | sfdisk /dev/sdd Nakon izvršene naredbe, particije bi se trebale pojaviti na disku. /dev/sdd.
[root@localhost ~]# lsblk
IME MAJ:MIN RM VELIČINA RO TIP MOUTPOINT
sda 8:0 0 223,6G 0 disk
├─sda1 8:1 0 1G 0 dio
└─sda2 8:2 0 222,5G 0 dio
sdb 8:16 0 223,6G 0 disk
├─sdb1 8:17 0 1G 0 dio
└─sdb2 8:18 0 222,5G 0 dio
sdc 8:32 0 931,5G 0 disk
├─sdc1 8:33 0 1G 0 dio
│ └─md126 9:126 0 1023M 0 raid1 /boot
└─sdc2 8:34 0 222,5G 0 dio
└─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 dio
└─sdd2 8:50 0 222,5G 0 dio Dodajemo particije diska u nizove.
mdadm /dev/md126 --add /dev/sdd1
mdadm /dev/md127 --add /dev/sdd2Provjeravamo jesu li particije dodane.
[root@localhost ~]# lsblk
IME MAJ:MIN RM VELIČINA RO TIP MOUTPOINT
sda 8:0 0 223,6G 0 disk
├─sda1 8:1 0 1G 0 dio
└─sda2 8:2 0 222,5G 0 dio
sdb 8:16 0 223,6G 0 disk
├─sdb1 8:17 0 1G 0 dio
└─sdb2 8:18 0 222,5G 0 dio
sdc 8:32 0 931,5G 0 disk
├─sdc1 8:33 0 1G 0 dio
│ └─md126 9:126 0 1023M 0 raid1 /boot
└─sdc2 8:34 0 222,5G 0 dio
└─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 dio
│ └─md126 9:126 0 1023M 0 raid1 /boot
└─sdd2 8:50 0 222,5G 0 dio
└─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]Nakon toga čekamo da se nizovi sinkroniziraju.
[root@localhost ~]# cat /proc/mdstat
Osobnosti : [raid1]
md126 : aktivni raid1 sdd1[3] sdc1[2]
1047552 blokova super 1.2 [2/2] [UU]
bitmap: 0/1 stranice [0KB], 65536KB komad
md127 : aktivni raid1 sdd2[3] sdc2[2]
233206784 blokova super 1.2 [2/1] [U_]
[>....................] obnova = 0.5% (1200000/233206784) završava za 35.4min brzina=109090K/sec
bitmap: 2/2 stranice [8KB], 65536KB komad
neiskorišteni uređaji:
5. Instalacija GRUB-a na nove diskove
Za CentOS:
grub2-install /dev/sdXZa Debian/Ubuntu:
grub-install /dev/sdX gdje X — slovo blok uređaja. U ovom slučaju potrebno je instalirati GRUB na /dev/sdc i /dev/sdd.
6. Proširenje datotečnog sustava (ext4) korijenskog dijela
Na novim diskovima /dev/sdc i /dev/sdd dostupno je 931,5 GB. Budući da je tablica particija kopirana s diskova manjeg kapaciteta, na particijama /dev/sdc2 i /dev/sdd2 dostupno je 222,5 GB.
sdc 8:32 0 931,5G 0 disk
├─sdc1 8:33 0 1G 0 dio
│ └─md126 9:126 0 1023M 0 raid1 /boot
└─sdc2 8:34 0 222,5G 0 dio
└─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 dio
│ └─md126 9:126 0 1023M 0 raid1 /boot
└─sdd2 8:50 0 222,5G 0 dio
└─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]Potrebno je:
- Proširiti particiju 2 na svakom od diskova,
- Proširiti niz md127,
- Proširiti PV (fizički volumen),
- Proširiti LV (logički volumen) vg0-root,
- Proširiti datotečni sustav.
Koristeći alat parted proširit ćemo particiju /dev/sdc2 do maksimalne vrijednosti. Izvršavamo naredbu parted /dev/sdc (1) i pregledavamo trenutnu tablicu particija naredbom p (2).

Kao što se može vidjeti, kraj particije 2 završava na 240 GB. Izvršavamo proširenje particije naredbom resizepart 2, gdje je 2 — broj particije (3). Navodimo vrijednost u numeričkom formatu, primjerice 1000 GB, ili koristimo postotak diska — 100%. Ponovno provjeravamo da li particija ima novu veličinu (4).
Ponovimo navedene radnje za disk /dev/sdd. Nakon proširenja particija /dev/sdc2 i /dev/sdd2 postali su jednaki 930,5 GB.
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO VRSTA TOČKA MOUNT
sda 8:0 0 223,6G 0 disk
├─sda1 8:1 0 1G 0 dio
└─sda2 8:2 0 222,5G 0 dio
sdb 8:16 0 223,6G 0 disk
├─sdb1 8:17 0 1G 0 dio
└─sdb2 8:18 0 222,5G 0 dio
sdc 8:32 0 931,5G 0 disk
├─sdc1 8:33 0 1G 0 dio
│ └─md126 9:126 0 1023M 0 raid1 /boot
└─sdc2 8:34 0 930,5G 0 dio
└─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 dio
│ └─md126 9:126 0 1023M 0 raid1 /boot
└─sdd2 8:50 0 930,5G 0 dio
└─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]Nakon toga izvršavamo proširenje niza md127 do maksimuma.
mdadm --grow /dev/md127 --size=maxProvjeravamo da li je niz proširen. Sada je njegova veličina 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]Provodimo širenje fizički volumen. Prije širenja provjerimo trenutno stanje PV.
[root@localhost ~]# pvscan
PV \/dev\/md127 VG vg0 lvm2 [222,40 GiB \/ 0 free]
Total: 1 [222,40 GiB] \/ in use: 1 [222,40 GiB] \/ in no VG: 0 [0 ]
Kao što se može vidjeti, PV /dev/md127 koristi 222.4 GB prostora.
Širimo PV sljedećom naredbom.
pvresize \/dev\/md127Provjeravamo rezultat širenja PV.
[
root@localhost ~]# pvscan
PV \/dev\/md127 VG vg0 lvm2 [930,38 GiB \/ 707,98 GiB free]
Total: 1 [930,38 GiB] \/ in use: 1 [930,38 GiB] \/ in no VG: 0 [0 ]Širimo logički volumen. Prije širenja provjerimo trenutno stanje LV (1).
[root@localhost ~]# lvscan
ACTIVE '\/dev\/vg0\/swap' [<16,00 GiB] inherit
ACTIVE '\/dev\/vg0\/root' [<206,41 GiB] inherit LV /dev/vg0/root koristi 206.41 GB.
Širimo LV sljedećom naredbom (2).
lvextend -l +100%FREE \/dev\/mapper\/vg0-rootProvjeravamo izvršenu radnju (3).
[root@localhost ~]# lvscan
ACTIVE '\/dev\/vg0\/swap' [<16,00 GiB] inherit
ACTIVE '\/dev\/vg0\/root' [<914,39 GiB] inherit
Kao što vidimo, nakon širenja LV volumen zauzetog prostora na disku postao je 914.39 GB.

Zapremina LV se povećala (4), ali datotečni sustav i dalje zauzima 204 GB (5).
1. Provodimo širenje datotečnog sustava.
resize2fs \/dev\/mapper\/vg0-rootProvjeravamo nakon izvršene naredbe veličinu datotečnog sustava.
[root@localhost ~]# df -h
Datotečni sustav Veličina Korišteno Dostupno Korišteno% Montirano u
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\/0Veličina korijenskog datotečnog sustava povećat će se na 900 GB. Nakon izvršenih radnji mogu se izvući stari diskovi.
Slučaj 2: Zamjena diskova manjeg volumena sa diskovima većeg volumena (više od 2TB)
Zadatak: Zamijeniti trenutačne diskove s diskovima većeg kapaciteta (2 x 3TB) uz očuvanje informacija. U ovom slučaju imamo diskove 2 x 240 GB SSD (RAID-1) s instaliranim sustavom i diskove 2 x 3 TB SATA, na koje je potrebno prenijeti sustav. Na trenutnim diskovima koristi se MBR particijska tablica. Budući da novi diskovi imaju kapacitet veći od 2 TB, na njima će biti potrebno koristiti GPT tablicu, budući da MBR ne može raditi s diskovima većim od 2 TB.
Pogledajmo trenutačnu raspodjelu diskova.
[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 Provjerimo koju particijsku tablicu koristi disk /dev/sda.
[root@localhost ~]# fdisk -l /dev/sda | grep 'Disk label type'
Disk label type: dos Na disku /dev/sdb koristi se slična particijska tablica. Provjerimo iskorišten prostor diska u sustavu.
[root@localhost ~]# df -h
Sustav datoteka Veličina Iskorišteno Slobodno % Korišteno Cmontirano u
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/0Kao što se vidi, korijen datotečnog sustava zauzima 204 GB. Provjerimo trenutačno stanje softverskog RAID niza.
1. Postavljanje GPT particijske tablice i raspodjela diska
Provjerimo raspodjelu diskova po sektorima.
[root@localhost ~]# parted /dev/sda print
Model: ATA KINGSTON SVP200S (scsi)
Disk /dev/sda: 240GB
Veličina sektora (logički/fizički): 512B/512B
Particijska tablica: msdos
Disk oznake:
Broj Početak Kraj Veličina Tip Datotečni sustav Oznake
1 1049kB 1076MB 1075MB primary bootable, raid
2 1076MB 240GB 239GB primary raid
Na novom 3TB disku trebat ćemo stvoriti 3 particije:
- Odjeljak
bios_grubveličine 2MiB za kompatibilnost GPT s BIOS-om, - Particija za RAID niz koji će biti montiran u
/boot. - Particija za RAID niz na kojem će biti LV root i LV swap.
Instaliramo alat parted komandom yum install -y parted (za CentOS), apt install -y parted (za Debian/Ubuntu).
Koristeći parted izvršavamo sljedeće naredbe za particioniranje diska.
Izvršavamo komandu parted /dev/sdc i prelazimo u režim uređivanja particioniranja diska.
Kreiramo GPT tablicu particija.
(parted) mktable gpt Kreiramo 1. particiju bios_grub particiju i postavljamo oznaku za nju.
(parted) mkpart primary 1MiB 3MiB
(parted) set 1 bios_grub on Kreiramo 2. particiju i postavljamo oznaku za nju. Ova particija će se koristiti kao blok za RAID niz i montirat će se u /boot.
(parted) mkpart primary ext2 3MiB 1028MiB
(parted) set 2 boot onKreiramo 3. particiju, koja će se također koristiti kao blok niza, gdje će biti LVM.
(parted) mkpart primary 1028MiB 100% U ovom slučaju nije obavezno postavljati oznaku, ali ako je potrebno, može se postaviti sljedećom naredbom.
(parted) set 3 raid onProvjeravamo kreiranu tablicu.
(parted) p
Model: ATA TOSHIBA DT01ACA3 (scsi)
Disk /dev/sdc: 3001GB
Veličina sektora (log./fiz.): 512B/4096B
Tablica particija: gpt
Disk oznake:
Broj Početak Kraj Veličina Datotečni sustav Ime Oznake
1 1049kB 3146kB 2097kB primary bios_grub
2 3146kB 1077MB 1074MB primary pokretačka
3 1077MB 3001GB 3000GB primary
Dodjeljujemo disku novi slučajni GUID.
sgdisk -G /dev/sdd
2. Brisanje particija prvog diska iz nizova
Provjeravamo stanje niza
[root@localhost ~]# cat /proc/mdstat
Osobine : [raid1]
md126 : aktivan raid1 sda1[0] sdb1[1]
1047552 blokova super 1.2 [2/2] [UU]
bitmap: 0/1 stranice [0KB], 65536KB komad
md127 : aktivan raid1 sda2[0] sdb2[1]
233206784 blokova super 1.2 [2/2] [UU]
bitmap: 0/2 stranice [0KB], 65536KB komad
neiskorišteni uređaji: U sustavu se koriste 2 niza: md126 (točka montiranja /boot) — sastoji se od /dev/sda1 i /dev/sdb1, md127 (LVM za swap i korijena datotečnog sustava) — sastoji se od /dev/sda2 i /dev/sdb2.
Označavamo particije prvog diska koje se koriste u svakom nizu kao neispravne.
mdadm /dev/md126 --fail /dev/sda1
mdadm /dev/md127 --fail /dev/sda2 Uklanjamo particije blok uređaja /dev/sda iz nizova.
mdadm /dev/md126 --remove /dev/sda1
mdadm /dev/md127 --remove /dev/sda2
Provjeravamo stanje niza nakon brisanja diska.
[root@localhost ~]# cat /proc/mdstat
Personalnosti : [raid1]
md126 : aktivan raid1 sdb1[1]
1047552 blokova super 1.2 [2/1] [_U]
bitmap: 0/1 stranica [0KB], 65536KBChunk
md127 : aktivan raid1 sdb2[1]
233206784 blokova super 1.2 [2/1] [_U]
bitmap: 2/2 stranica [8KB], 65536KBChunk
neiskorišteni uređaji: <none>
3. Dodavanje particija novog diska u niz
Sljedeći korak je dodavanje particija novog diska u nizove radi sinkronizacije. Pogledajte trenutno stanje particioniranja diskova.
[root@localhost ~]# lsblk
IME MAJ:MIN RM VELIČINA RO TIP TOČKA MONTIRANJA
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 Odjeljak /dev/sdc1 je postao bios_grub particijom i ne sudjeluje u stvaranju nizova. U nizovima će biti uključeni samo /dev/sdc2 i /dev/sdc3. Dodajemo te particije u odgovarajuće nizove.
mdadm /dev/md126 --add /dev/sdc2
mdadm /dev/md127 --add /dev/sdc3Nakon toga čekamo sinkronizaciju niza.
[root@localhost ~]# cat /proc/mdstat
Osobine : [raid1]
md126 : aktivan raid1 sdc2[2] sdb1[1]
1047552 blokova super 1.2 [2/2] [UU]
bitmap: 0/1 stranice [0KB], 65536KB komad
md127 : aktivan raid1 sdc3[2] sdb2[1]
233206784 blokova super 1.2 [2/1] [_U]
[>....................] oporavak = 0.2% (619904/233206784) završetak=31.2min brzina=123980K/sec
bitmap: 2/2 stranice [8KB], 65536KB komad
neiskorišteni uređaji:Raspodjela diska nakon dodavanja particija u niz.
[root@localhost ~]# lsblk
IME MAJ:MIN RM VELIČINA RO VRSTA 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. Uklanjanje particija drugog diska iz nizova
Označavamo particije drugog diska koje se koriste u svakom nizu kao neispravne.
mdadm /dev/md126 --fail /dev/sdb1
mdadm /dev/md127 --fail /dev/sdb2
Uklanjamo particije blok uređaja /dev/sda iz nizova.
mdadm /dev/md126 --remove /dev/sdb1
mdadm /dev/md127 --remove /dev/sdb2
5. Kopiramo GPT raspodjelu i sinkroniziramo niz
Za kopiranje GPT raspodjele koristimo alatku sgdisk, koja dolazi u paketu za rad s particijama diskova i GPT raspodjelom — gdisk.
Instalacija gdisk za CentOS:
yum install -y gdisk Instalacija gdisk za Debian/Ubuntu:
apt install -y gdiskPAŽNJA: Za GPT prvoga navodimo disk na koji kopiramo raspodjelu, drugim diskom navodimo disk s kojeg kopiraju raspodjelu. Ako se zamijene diskovi, prvobitno ispravna raspodjela bit će prepisana i uništena.
Kopiramo GPT raspodjelu.
sgdisk -R /dev/sdd /dev/sdc Raspodjela diska nakon prijenosa raspodjele na disk /dev/sdd.
[root@localhost ~]# lsblk
IME MAJ:MIN RM VELIČINA RO VRSTA 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 Nakon toga dodajemo svaku od particija koje sudjeluju u softverskim RAID nizovima.
mdadm /dev/md126 --add /dev/sdd2
mdadm /dev/md127 --add /dev/sdd3Čekamo sinkronizaciju niza.
[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:Nakon kopiranja GPT particije na drugi novi disk, particija će izgledati ovako.
[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]Sljedeće postavljamo GRUB na nove diskove.
Instalacija za CentOS:
grub2-install /dev/sdXInstalacija za Debian/Ubuntu:
grub-install /dev/sdX gdje X — slovo diska, u našem slučaju diskovi /dev/sdc i /dev/sdd.
Ažuriramo informacije o nizu.
Za CentOS:
mdadm --detail --scan --verbose > /etc/mdadm.confZa Debian/Ubuntu:
echo "DEVICE partitions" > /etc/mdadm/mdadm.conf
mdadm --detail --scan --verbose | awk '/ARRAY/ {print}' >> /etc/mdadm/mdadm.conf Ažuriramo sliku initrd:
Za CentOS:
dracut -f -v --regenerate-allZa Debian/Ubuntu:
update-initramfs -u -k allAžuriramo konfiguraciju GRUB-a.
Za CentOS:
grub2-mkconfig -o /boot/grub2/grub.cfg
Za Debian/Ubuntu:
update-grubNakon izvršenih radnji, stare diskove je moguće izvaditi.
6. Proširenje datotečnog sustava (ext4) korijenskog dijela
Razmjera diskova prije proširenja datotečnog sustava nakon premještanja sustava na diskove 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] Sada su particije /dev/sdc3 i /dev/sdd3 zauzimaju 2,7 TB. Budući da smo kreirali novu particionu shemu s GPT tablicom, veličina 3 particije odmah je postavljena na maksimalni mogući kapacitet, u ovom slučaju proširenje particije nije potrebno.
Potrebno je:
- Proširite niz md126,
- Proširiti PV (fizički volumen),
- Proširiti LV (logički volumen) vg0-root,
- Proširiti datotečni sustav.
1. Proširujemo niz md126 do maksimuma.
mdadm --grow /dev/md126 --size=max
Nakon proširenja niza md126 veličina zauzetog prostora povećala se na 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]
Širimo fizički volumen.
Prije proširenja provjeravamo trenutnu vrijednost zauzetog prostora PV /dev/md126.
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/md126 vg0 lvm2 a-- 222,40g 0 Proširujemo PV sljedećom naredbom.
pvresize /dev/md126
Provjeravamo izvršenje radnje.
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/md126 vg0 lvm2 a-- <2,73t 2,51tŠirimo logički volumen vg0-root.
Nakon proširenja PV provjeravamo zauzeti prostor VG.
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg0 1 2 0 wz--n- <2,73t 2,51tProvjeravamo zauzeto LV prostor.
[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 Volumen vg0-root zauzima 206,41 GB.
Proširujemo LV do maksimalnog kapaciteta diska.
lvextend -l +100%FREE \/dev\/mapper\/vg0-root Provjeravamo prostor LV nakon proširenja.
[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,00gProširujemo datotečni sustav (ext4).
Provjeravamo trenutnu veličinu datotečnog sustava.
[root@localhost ~]# df -h
Datotečni sustav Veličina Zauzeto Preostalo Zauzeto% Montirano u
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/0Volumen /dev/mapper/vg0-root zauzima 204 GB nakon proširenja LV.
Proširujemo datotečni sustav.
resize2fs \/dev\/mapper\/vg0-root
Provjeravamo veličinu datotečnog sustava nakon što je proširen.
[root@localhost ~]# df -h
Datotečni sustav Veličina Korisničko Dostupno Korisničko% Montirano u
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 Veličina datotečnog sustava povećana je na cijeli volumen.
Izvor: habr.com
