Zamjena manjih diskova većim diskovima u Linuxu

Bok svima. Uoči početka nove grupe tečajeva "Linux administrator" Objavljujemo korisne materijale koje je napisao naš student, kao i mentor tečaja, stručnjak za tehničku podršku za REG.RU korporativne proizvode - Roman Travin.

Ovaj članak će razmotriti 2 slučaja zamjene diskova i prijenosa informacija na nove diskove većeg kapaciteta uz daljnje proširenje polja i datotečnog sustava. Prvi slučaj odnosi se na zamjenu diskova s ​​istim MBR/MBR ili GPT/GPT particioniranjem, drugi slučaj se odnosi na zamjenu diskova s ​​MBR particioniranjem s diskovima kapaciteta više od 2 TB na koje ćete morati instalirati GPT particija s biosboot particijom. U oba slučaja diskovi na koje prenosimo podatke već su instalirani na poslužitelju. Datotečni sustav koji se koristi za root particiju je ext4.

Slučaj 1: Zamjena manjih diskova većim diskovima (do 2TB)

cilj: Zamijenite postojeće diskove većim diskovima (do 2 TB) uz prijenos informacija. U ovom slučaju imamo 2 x 240 GB SSD (RAID-1) diska s instaliranim sustavom i 2 x 1 TB SATA diska na koje je potrebno prebaciti sustav.

Pogledajmo trenutni izgled diska.

[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šten prostor datotečnog sustava.

[root@localhost ~]# df -h
Файловая система     Размер Использовано  Дост Использовано% Cмонтировано в
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 sustava prije zamjene diskova je 204 GB, koriste se 2 md126 softverska polja koja se montiraju u /boot и md127, koji se koristi kao fizički volumen za VG grupu vg0.

1. Uklanjanje particija diska iz polja

Provjera stanja niza

[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: <none>

Sustav koristi 2 polja: md126 (točka montiranja /boot) - sastoji se od odjeljka /dev/sda1 и /dev/sdb1, md127 (LVM za razmijeniti i korijen datotečnog sustava) – sastoji se od /dev/sda2 и /dev/sdb2.

Označavamo particije prvog diska koje se koriste u svakom nizu kao loše.

mdadm /dev/md126 --fail /dev/sda1

mdadm /dev/md127 --fail /dev/sda2

Uklanjamo /dev/sda blok particije uređaja iz polja.

mdadm /dev/md126 --remove /dev/sda1

mdadm /dev/md127 --remove /dev/sda2

Nakon što smo uklonili disk iz niza, informacije o blok uređaju ć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  
│ └─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  

Stanje polja nakon uklanjanja diskova.

[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: <none>

2. Kopirajte tablicu particija na novi disk

Korištenu tablicu particija na disku možete provjeriti sljedećom naredbom.

fdisk -l /dev/sdb | grep 'Disk label type'

Izlaz za MBR bi bio:

Disk label type: dos

za GPT:

Disk label type: gpt

Kopiranje particijske tablice za MBR:

sfdisk -d /dev/sdb | sfdisk /dev/sdc

U ovoj ekipi prvi disk je naznačen с od kojih oznaka se kopira, drugo - gdje kopirati.

OPREZ: Za GPT prvi disk je naznačen na kojoj kopija oznake, drugi disk označava disk od kojeg kopija oznake. Ako pomiješate diskove, početno dobra particija bit će prepisana i uništena.

Kopiranje tablice izgleda za GPT:

sgdisk -R /dev/sdс /dev/sdb

Zatim dodijelite nasumični UUID disku (za GPT).


sgdisk -G /dev/sdc

Nakon izvršenja 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šenja radnje particije u sustavu na disku /dev/sdc neodlučan, tada izvršavamo naredbu za ponovno čitanje particijske tablice.

sfdisk -R /dev/sdc

Ako trenutni diskovi koriste MBR tablicu i podatke je potrebno prenijeti na diskove veće od 2 TB, tada ćete na novim diskovima morati ručno izraditi GPT particiju pomoću biosboot particije. O ovom slučaju bit će riječi u drugom dijelu ovog članka.

3. Dodavanje particija novog diska u polje

Dodajmo particije diska odgovarajućim nizovima.

mdadm /dev/md126 --add /dev/sdc1

mdadm /dev/md127 --add /dev/sdc2

Provjeravamo jesu li odjeljci dodani.

[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 : 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: <none>

Pomoću uslužnog programa možete kontinuirano pratiti proces sinkronizacije watch.

watch -n 2 cat /proc/mdstat

Parametar -n specificira u kojim se intervalima u sekundama naredba mora izvršiti da bi se provjerio napredak.

Ponovite korake 1 - 3 za sljedeći zamjenski disk.

Označavamo particije drugog diska koje se koriste u svakom polju kao loše.

mdadm /dev/md126 --fail /dev/sdb1

mdadm /dev/md127 --fail /dev/sdb2

Uklanjanje particija blok uređaja /dev/sdb iz nizova.

mdadm /dev/md126 --remove /dev/sdb1

mdadm /dev/md127 --remove /dev/sdb2

Nakon što smo uklonili disk iz niza, informacije o blok uređaju ć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 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  

Stanje polja nakon uklanjanja diskova.

[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: <none>

Kopiranje MBR particijske tablice s diska /dev/sdс na disk /dev/sdd.

sfdisk -d /dev/sdс | sfdisk /dev/sdd

Nakon izvršenja naredbe, particije bi se trebale pojaviti na disku /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  

Dodavanje particija diska u polja.

mdadm /dev/md126 --add /dev/sdd1

mdadm /dev/md127 --add /dev/sdd2

Provjeravamo jesu li odjeljci dodani.

[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]

Nakon toga čekamo da se nizovi sinkroniziraju.

[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: <none>

5. Instaliranje GRUB-a na nove pogone

Za CentOS:

grub2-install /dev/sdX

Za Debian/Ubuntu:

grub-install /dev/sdX

gdje X — slovo blok uređaja. U tom slučaju trebate instalirati GRUB na /dev/sdc и /dev/sdd.

6. Ekstenzija datotečnog sustava (ext4) korijenske particije

Na novim diskovima /dev/sdc и /dev/sdd Dostupno 931.5 GB. S obzirom na to da je particijska tablica kopirana s manjih diskova, particije /dev/sdc2 и /dev/sdd2 Dostupno 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]

Potrebno je:

  1. Proširite particiju 2 na svakom od diskova,
  2. Proširi niz md127,
  3. Proširi PV (fizički volumen),
  4. Proširi LV (logički volumen) vg0-root,
  5. Proširite datotečni sustav.

Korištenje uslužnog programa slomljen proširimo odjeljak /dev/sdc2 na maksimalnu vrijednost. Izvršite naredbu parted /dev/sdc (1) i pogledajte trenutnu particijsku tablicu pomoću naredbe p (2).

Zamjena manjih diskova većim diskovima u Linuxu

Kao što vidite, kraj particije 2 završava na 240 GB. Proširimo particiju naredbom resizepart 2, gdje je 2 broj odjeljka (3). Vrijednost označavamo u digitalnom obliku, na primjer 1000 GB, ili koristimo naznaku udjela diska - 100%. Ponovno provjeravamo ima li particija novu veličinu (4).

Ponovite gornje korake za disk /dev/sdd. Nakon proširenja particija /dev/sdc2 и /dev/sdd2 postao jednak 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]

Nakon toga širimo niz md127 do maksimuma.

mdadm --grow /dev/md127 --size=max

Provjeravamo je li niz proširen. Sada je njegova veličina postala 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]

Proširenje produžetka fizički volumen. Prije proširenja, provjerimo trenutno stanje PV-a.

[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.

Proširujemo PV sljedećom naredbom.

pvresize /dev/md127

Provjera rezultata PV ekspanzije.

[

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   ]

Proširujući se logički volumen. Prije proš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.

Proširujemo LV sljedećom naredbom (2).

lvextend -l +100%FREE /dev/mapper/vg0-root

Provjeravamo izvršenu akciju (3).

[root@localhost ~]# lvscan 
  ACTIVE            '/dev/vg0/swap' [<16,00 GiB] inherit
  ACTIVE            '/dev/vg0/root' [<914,39 GiB] inherit

Kao što vidite, nakon proširenja LV-a, količina zauzetog prostora na disku postala je 914.39 GB.

Zamjena manjih diskova većim diskovima u Linuxu

LV volumen je povećan (4), ali datotečni sustav i dalje zauzima 204 GB (5).

1. Proširimo datotečni sustav.

resize2fs /dev/mapper/vg0-root

Nakon što je naredba izvršena, provjeravamo veličinu datotečnog sustava.

[root@localhost ~]# df -h
Файловая система     Размер Использовано  Дост Использовано% Cмонтировано в
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/0

Veličina korijenskog datotečnog sustava povećat će se na 900 GB. Nakon dovršetka koraka možete ukloniti stare diskove.

Slučaj 2: Zamjena manjih diskova većim diskovima (više od 2TB)

Mjesto radnje: Zamijenite trenutne diskove s većim diskovima (2 x 3TB) uz očuvanje podataka. U ovom slučaju imamo 2 x 240 GB SSD (RAID-1) diska s instaliranim sustavom i 2 x 3 TB SATA diska na koje je potrebno prebaciti sustav. Trenutačni diskovi koriste MBR particijsku tablicu. Budući da novi diskovi imaju kapacitet veći od 2 TB, morat će koristiti GPT tablicu, jer MBR ne može raditi s diskovima većim od 2 TB.

Pogledajmo trenutni izgled diska.

[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 tablicu particija koja se koristi na disku /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šteni diskovni prostor na sustavu.

[root@localhost ~]# df -h
Файловая система     Размер Использовано  Дост Использовано% Cмонтировано в
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/0

Kao što vidite, korijen datotečnog sustava zauzima 204 GB. Provjerimo trenutno stanje softverskog RAID polja.

1. Instalacija GPT particijske tablice i particioniranje diska

Provjerimo raspored diska po sektorima.

[root@localhost ~]# parted /dev/sda print
Модель: ATA KINGSTON SVP200S (scsi)
Диск /dev/sda: 240GB
Размер сектора (логич./физич.): 512B/512B
Таблица разделов: msdos
Disk Flags: 

Номер  Начало  Конец   Размер  Тип      Файловая система  Флаги
 1     1049kB  1076MB  1075MB  primary                    загрузочный, raid
 2     1076MB  240GB   239GB   primary                    raid

Na novom disku od 3TB morat ćemo napraviti 3 particije:

  1. Odjeljak bios_grub Veličina od 2 MiB za GPT BIOS kompatibilnost,
  2. Particija za RAID polje u koje će se montirati /boot.
  3. Particija za RAID niz na kojem će se nalaziti LV korijen и NN zamjena.

Instaliranje uslužnog programa slomljen Tim yum install -y parted (za CentOS), apt install -y parted (za Debian/Ubuntu).

Korištenje slomljen Pokrenimo sljedeće naredbe za particioniranje diska.

Izvršite naredbu parted /dev/sdc i idite na način za uređivanje izgleda diska.

Napravite GPT particijsku tablicu.

(parted) mktable gpt

Napravite 1 odjeljak bios_grub odjeljak i postavite zastavu za njega.

(parted) mkpart primary 1MiB 3MiB
(parted) set 1 bios_grub on  

Napravite particiju 2 i postavite oznaku za nju. Particija će se koristiti kao blok za RAID polje i montirati /boot.

(parted) mkpart primary ext2 3MiB 1028MiB
(parted) set 2 boot on

Kreiramo particiju 3, koja će se također koristiti kao blok polja u kojem će se nalaziti LVM.

(parted) mkpart primary 1028MiB 100% 

U ovom slučaju nije potrebno postavljati zastavu, ali ako je potrebno, može se postaviti sljedećom naredbom.

(parted) set 3 raid on

Provjeravamo izrađenu tablicu.

(parted) p                                                                
Модель: ATA TOSHIBA DT01ACA3 (scsi)
Диск /dev/sdc: 3001GB
Размер сектора (логич./физич.): 512B/4096B
Таблица разделов: gpt
Disk Flags: 

Номер  Начало  Конец   Размер  Файловая система  Имя      Флаги
 1     1049kB  3146kB  2097kB                    primary  bios_grub
 2     3146kB  1077MB  1074MB                    primary  загрузочный
 3     1077MB  3001GB  3000GB                    primary

Disku dodjeljujemo novi nasumični GUID.

sgdisk -G /dev/sdd

2. Uklanjanje particija prvog diska iz polja

Provjera stanja niza

[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: <none>

Sustav koristi 2 niza: md126 (mount point /boot) - sastoji se od /dev/sda1 и /dev/sdb1, md127 (LVM za swap i korijen datotečnog sustava) – sastoji se od /dev/sda2 и /dev/sdb2.

Označavamo particije prvog diska koje se koriste u svakom nizu kao loše.

mdadm /dev/md126 --fail /dev/sda1

mdadm /dev/md127 --fail /dev/sda2

Uklanjanje particija blok uređaja /dev/sda iz nizova.

mdadm /dev/md126 --remove /dev/sda1

mdadm /dev/md127 --remove /dev/sda2

Provjera stanja niza nakon uklanjanja diska.

[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: <none>

3. Dodavanje particija novog diska u polje

Sljedeći korak je dodavanje particija novog diska u polja za sinkronizaciju. Pogledajmo trenutno stanje izgleda diska.

[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  

Odjeljak /dev/sdc1 je bios_grub odjeljak i ne sudjeluje u stvaranju nizova. Nizovi će koristiti samo /dev/sdc2 и /dev/sdc3. Te odjeljke dodajemo u odgovarajuće nizove.

mdadm /dev/md126 --add /dev/sdc2

mdadm /dev/md127 --add /dev/sdc3

Zatim čekamo da se niz sinkronizira.

[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: <none>

Particioniranje diska nakon dodavanja particija u polje.

[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. Uklanjanje particija drugog diska iz polja

Označavamo particije drugog diska koje se koriste u svakom polju kao loše.

mdadm /dev/md126 --fail /dev/sdb1

mdadm /dev/md127 --fail /dev/sdb2

Uklanjanje particija blok uređaja /dev/sda iz nizova.

mdadm /dev/md126 --remove /dev/sdb1

mdadm /dev/md127 --remove /dev/sdb2

5. Kopirajte GPT tablicu izgleda i sinkronizirajte niz

Za kopiranje GPT tablice oznaka koristit ćemo uslužni program sgdisk, koji je uključen u paket za rad s particijama diska i GPT tablicom - gdisk.

Instalacija gdisk za CentOS:

yum install -y gdisk

Instalacija gdisk za Debian/Ubuntu:

apt install -y gdisk

OPREZ: Za GPT prvi disk je naznačen na kojoj kopiraj oznaku, drugi disk označava disk od kojeg kopirajte oznaku. Ako pomiješate diskove, početno dobra particija bit će prepisana i uništena.

Kopirajte GPT označnu tablicu.

sgdisk -R /dev/sdd /dev/sdc

Particioniranje diska nakon prijenosa tablice na disk /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  

Zatim dodajemo svaku od particija koje sudjeluju u softverskim RAID nizovima.

mdadm /dev/md126 --add /dev/sdd2

mdadm /dev/md127 --add /dev/sdd3

Čekamo da se niz sinkronizira.

[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: <none>

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]

Zatim instalirajte GRUB na nove diskove.

Instalacija za CentOS:

grub2-install /dev/sdX

Instalacija za Debian/Ubuntu:

grub-install /dev/sdX

gdje X — slovo pogona, u našem slučaju pogoni /dev/sdc и /dev/sdd.

Ažuriramo informacije o nizu.

Za CentOS:

mdadm --detail --scan --verbose > /etc/mdadm.conf

Za Debian/Ubuntu:

echo "DEVICE partitions" > /etc/mdadm/mdadm.conf

mdadm --detail --scan --verbose | awk '/ARRAY/ {print}' >> /etc/mdadm/mdadm.conf

Ažuriranje slike initrd:
Za CentOS:

dracut -f -v --regenerate-all

Za Debian/Ubuntu:

update-initramfs -u -k all

Ažuriramo GRUB konfiguraciju.

Za CentOS:

grub2-mkconfig -o /boot/grub2/grub.cfg

Za Debian/Ubuntu:

update-grub

Nakon dovršetka koraka, stari diskovi se mogu ukloniti.

6. Ekstenzija datotečnog sustava (ext4) korijenske particije

Particioniranje diska prije proširenja datotečnog sustava nakon migracije sustava na 2 x 3TB diska (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 odjeljci /dev/sdc3 и /dev/sdd3 zauzimaju 2.7 TB. Budući da smo izradili novi izgled diska s GPT tablicom, veličina particije 3 odmah je postavljena na najveći mogući prostor na disku; u ovom slučaju nema potrebe za proširivanjem particije.

Potrebno je:

  1. Proširi niz md126,
  2. Proširi PV (fizički volumen),
  3. Proširi LV (logički volumen) vg0-root,
  4. Proširite datotečni sustav.

1. Proširite niz md126 do maksimuma.

mdadm --grow /dev/md126 --size=max

Nakon proširenja niza md126 veličina zauzetog prostora porasla je 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]

Proširujući se fizički volumen.

Prije širenja provjerite 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šenu akciju.

[root@localhost ~]# pvs
  PV         VG  Fmt  Attr PSize  PFree
  /dev/md126 vg0 lvm2 a--  <2,73t 2,51t

Proširujući se logički volumen vg0-root.

Nakon proširenja PV, provjerimo zauzeti prostor VG.

[root@localhost ~]# vgs
  VG  #PV #LV #SN Attr   VSize  VFree
  vg0   1   2   0 wz--n- <2,73t 2,51t

Provjerimo prostor koji zauzima 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            

Volumen vg0-root zauzima 206.41 GB.

Proširujemo LV do maksimalnog prostora na disku.

lvextend -l +100%FREE /dev/mapper/vg0-root 

Provjera LV prostora nakon ekspanzije.

[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,00g

Proširenje datotečnog sustava (ext4).

Provjerimo trenutnu veličinu datotečnog sustava.

[root@localhost ~]# df -h
Файловая система     Размер Использовано  Дост Использовано% Cмонтировано в
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/0

Volumen /dev/mapper/vg0-root zauzima 204 GB nakon LV proširenja.

Proširenje datotečnog sustava.

resize2fs /dev/mapper/vg0-root 

Provjera veličine datotečnog sustava nakon proširenja.

[root@localhost ~]# df -h
Файловая система     Размер Использовано  Дост Использовано% Cмонтировано в
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 je povećana kako bi pokrila cijeli volumen.

Izvor: www.habr.com

Dodajte komentar