Pozdravljeni vsi skupaj. Na predvečer začetka nove tečajne skupine
Ta članek bo obravnaval 2 primera zamenjave diskov in prenosa informacij na nove diske večje zmogljivosti z nadaljnjo širitvijo polja in datotečnega sistema. V prvem primeru gre za zamenjavo diskov z enako MBR/MBR ali GPT/GPT particioniranjem, v drugem primeru pa za zamenjavo diskov z MBR particioniranjem z diski s kapaciteto nad 2 TB, na katere boste morali namestiti particijo GPT s particijo biosboot. V obeh primerih sta diska, na katera prenašamo podatke, že nameščena na strežniku. Datotečni sistem, uporabljen za korensko particijo, je ext4.
1. primer: Zamenjava manjših diskov z večjimi (do 2TB)
Naloga: Zamenjajte trenutne diske z večjimi (do 2 TB) s prenosom informacij. V tem primeru imamo 2 x 240 GB SSD (RAID-1) diska z nameščenim sistemom in 2 x 1 TB SATA diska, na katera je potrebno prenesti sistem.
Poglejmo trenutno postavitev 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
Preverimo trenutno uporabljen prostor datotečnega sistema.
[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
Velikost datotečnega sistema pred zamenjavo diskov je 204 GB, uporabljena sta 2 programska polja md126, ki je nameščena v /boot
и md127
, ki se uporablja kot fizični volumen za skupino VG vg0.
1. Odstranjevanje diskovnih particij iz nizov
Preverjanje stanja matrike
[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>
Sistem uporablja 2 polja: md126
(točka pritrditve /boot
) - sestoji iz razdelka /dev/sda1
и /dev/sdb1
, md127
(LVM za swap in koren datotečnega sistema) - sestavljen iz /dev/sda2
и /dev/sdb2
.
Particije prvega diska, ki se uporabljajo v posameznem polju, označimo kot slabe.
mdadm /dev/md126 --fail /dev/sda1
mdadm /dev/md127 --fail /dev/sda2
Iz nizov odstranimo particije blokovnih naprav /dev/sda.
mdadm /dev/md126 --remove /dev/sda1
mdadm /dev/md127 --remove /dev/sda2
Ko odstranimo disk iz polja, bodo informacije o blokovni napravi videti takole.
[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 nizov po odstranitvi diskov.
[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 particijsko tabelo na nov disk
Uporabljeno tabelo particij na disku lahko preverite z naslednjim ukazom.
fdisk -l /dev/sdb | grep 'Disk label type'
Izhod za MBR bi bil:
Disk label type: dos
za GPT:
Disk label type: gpt
Kopiranje particijske tabele za MBR:
sfdisk -d /dev/sdb | sfdisk /dev/sdc
V tej ekipi prvi disk je označen с od tega oznaka je kopirana, drugič - kje kopirati.
POZOR: Za GPT prvi disk je označen na katerem kopiranje oznake, drugič disk označuje disk od katerih kopijo oznake. Če pomešate diske, bo prvotno dobra particija prepisana in uničena.
Kopiranje tabele postavitve za GPT:
sgdisk -R /dev/sdс /dev/sdb
Nato disku dodelite naključni UUID (za GPT).
sgdisk -G /dev/sdc
Po izvedbi ukaza bi se morale na disku pojaviti particije /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
Če po izvedbi dejanja particije v sistemu na disku /dev/sdc
neodločen, nato izvedemo ukaz za ponovno branje particijske tabele.
sfdisk -R /dev/sdc
Če trenutni diski uporabljajo tabelo MBR in je treba podatke prenesti na diske, večje od 2 TB, boste morali na novih diskih ročno ustvariti particijo GPT z uporabo particije biosboot. O tem primeru bomo razpravljali v 2. delu tega članka.
3. Dodajanje particij novega diska v polje
Ustreznim poljem dodamo diskovne particije.
mdadm /dev/md126 --add /dev/sdc1
mdadm /dev/md127 --add /dev/sdc2
Preverimo, ali so razdelki 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
Po tem počakamo, da se nizi sinhronizirajo.
[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>
S pomočjo pripomočka lahko nenehno spremljate proces sinhronizacije watch
.
watch -n 2 cat /proc/mdstat
Parameter -n
določa, v katerih intervalih v sekundah mora biti ukaz izveden za preverjanje napredka.
Ponovite korake 1–3 za naslednji nadomestni disk.
Particije drugega diska, ki se uporabljajo v vsakem polju, označimo kot slabe.
mdadm /dev/md126 --fail /dev/sdb1
mdadm /dev/md127 --fail /dev/sdb2
Odstranjevanje blokovnih particij naprave /dev/sdb
iz nizov.
mdadm /dev/md126 --remove /dev/sdb1
mdadm /dev/md127 --remove /dev/sdb2
Ko odstranimo disk iz polja, bodo informacije o blokovni napravi videti takole.
[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 nizov po odstranitvi diskov.
[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 particijske tabele MBR z diska /dev/sdс
na disk /dev/sdd
.
sfdisk -d /dev/sdс | sfdisk /dev/sdd
Po izvedbi ukaza bi se morale na disku pojaviti particije /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
Dodajanje diskovnih particij v polja.
mdadm /dev/md126 --add /dev/sdd1
mdadm /dev/md127 --add /dev/sdd2
Preverimo, ali so razdelki 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]
Po tem počakamo, da se nizi sinhronizirajo.
[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. Namestitev GRUB na nove pogone
Za CentOS:
grub2-install /dev/sdX
Za Debian/Ubuntu:
grub-install /dev/sdX
če X
— črka blokovne naprave. V tem primeru morate GRUB namestiti na /dev/sdc
и /dev/sdd
.
6. Pripona datotečnega sistema (ext4) korenske particije
Na novih diskih /dev/sdc
и /dev/sdd
Na voljo 931.5 GB. Ker je bila particijska tabela prekopirana z manjših diskov, particije /dev/sdc2
и /dev/sdd2
Na voljo 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:
- Razširite particijo 2 na vsakem od diskov,
- Razširi niz md127,
- Razširi PV (fizična glasnost),
- Razširite LV (logični nosilec) vg0-root,
- Razširite datotečni sistem.
Uporaba pripomočka razdeljen razširimo razdelek /dev/sdc2
na največjo vrednost. Izvedite ukaz parted /dev/sdc
(1) in si oglejte trenutno particijsko tabelo z ukazom p
(2).
Kot lahko vidite, se konec particije 2 konča pri 240 GB. Razširimo particijo z ukazom resizepart
2
, kjer je 2 številka odseka (3). Vrednost navedemo v digitalni obliki, na primer 1000 GB, ali uporabimo navedbo diskovnega deleža - 100%. Ponovno preverimo, ali ima particija novo velikost (4).
Ponovite zgornje korake za disk /dev/sdd
. Po razširitvi predelnih sten /dev/sdc2
и /dev/sdd2
postal enak 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]
Po tem razširimo matriko md127 do maksimuma.
mdadm --grow /dev/md127 --size=max
Preverimo, ali se je niz razširil. Zdaj je njegova velikost 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]
Podaljšanje podaljška fizični volumen. Pred razširitvijo preverimo 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 ]
Kot je razvidno, PV /dev/md127
uporablja 222.4 GB prostora.
PV razširimo z naslednjim ukazom.
pvresize /dev/md127
Preverjanje 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 ]
Širi se logični volumen. Pred razširitvijo preverimo 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
uporablja 206.41 GB.
LV razširimo z naslednjim ukazom (2).
lvextend -l +100%FREE /dev/mapper/vg0-root
Preverimo opravljeno akcijo (3).
[root@localhost ~]# lvscan
ACTIVE '/dev/vg0/swap' [<16,00 GiB] inherit
ACTIVE '/dev/vg0/root' [<914,39 GiB] inherit
Kot lahko vidite, je po razširitvi LV količina zasedenega prostora na disku postala 914.39 GB.
Prostornina LV se je povečala (4), vendar datotečni sistem še vedno zaseda 204 GB (5).
1. Razširimo datotečni sistem.
resize2fs /dev/mapper/vg0-root
Po izvedbi ukaza preverimo velikost datotečnega sistema.
[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
Velikost korenskega datotečnega sistema se bo povečala na 900 GB. Ko končate korake, lahko odstranite stare diske.
2. primer: Zamenjava manjših diskov z večjimi (več kot 2TB)
Naloga: Zamenjajte trenutne diske z večjimi diski (2 x 3TB), pri tem pa ohranite podatke. V tem primeru imamo 2 x 240 GB SSD (RAID-1) diska z nameščenim sistemom in 2 x 3 TB SATA diska, na katera je potrebno prenesti sistem. Trenutni diski uporabljajo particijsko tabelo MBR. Ker imajo novi diski kapaciteto večjo od 2 TB, bodo morali uporabiti tabelo GPT, saj MBR ne more delovati z diski, večjimi od 2 TB.
Poglejmo trenutno postavitev 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
Preverimo particijsko tabelo, uporabljeno na disku /dev/sda
.
[root@localhost ~]# fdisk -l /dev/sda | grep 'Disk label type'
Disk label type: dos
Na disku /dev/sdb
uporabljena je podobna razdelilna tabela. Preverimo zaseden prostor na disku v sistemu.
[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
Kot lahko vidite, koren datotečnega sistema zavzame 204 GB. Preverimo trenutno stanje programskega polja RAID.
1. Namestitev particijske tabele GPT in particioniranje diska
Preverimo postavitev diska po sektorjih.
[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 novem 3TB disku bomo morali ustvariti 3 particije:
- Oddelek
bios_grub
Velikost 2 MiB za združljivost GPT BIOS, - Particija za polje RAID, v katero bo nameščen
/boot
. - Particija za polje RAID, na kateri bo Koren LV и Zamenjava LV.
Namestitev pripomočka razdeljen ekipa yum install -y parted
(za CentOS), apt install -y parted
(za Debian/Ubuntu).
Uporaba razdeljen Zaženimo naslednje ukaze za razdelitev diska.
Izvedite ukaz parted /dev/sdc
in pojdite v način urejanja postavitve diska.
Ustvarite particijsko tabelo GPT.
(parted) mktable gpt
Ustvarite 1 razdelek bios_grub
in zanj nastavite zastavico.
(parted) mkpart primary 1MiB 3MiB
(parted) set 1 bios_grub on
Ustvarite particijo 2 in nastavite zastavico zanjo. Particija bo uporabljena kot blok za polje RAID in nameščena vanj /boot
.
(parted) mkpart primary ext2 3MiB 1028MiB
(parted) set 2 boot on
Ustvarimo 3. razdelek, ki bo uporabljen tudi kot blok polja, v katerem bo LVM.
(parted) mkpart primary 1028MiB 100%
V tem primeru zastavice ni potrebno nastaviti, po potrebi pa jo lahko nastavimo z naslednjim ukazom.
(parted) set 3 raid on
Preverimo izdelano tabelo.
(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 dodelimo nov naključni GUID.
sgdisk -G /dev/sdd
2. Odstranjevanje particij prvega diska iz nizov
Preverjanje stanja matrike
[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>
Sistem uporablja 2 niza: md126 (mount point /boot) - sestavljen iz /dev/sda1
и /dev/sdb1
, md127
(LVM za swap
in koren datotečnega sistema) - sestavljen iz /dev/sda2
и /dev/sdb2
.
Particije prvega diska, ki se uporabljajo v posameznem polju, označimo kot slabe.
mdadm /dev/md126 --fail /dev/sda1
mdadm /dev/md127 --fail /dev/sda2
Odstranjevanje blokovnih particij naprave /dev/sda
iz nizov.
mdadm /dev/md126 --remove /dev/sda1
mdadm /dev/md127 --remove /dev/sda2
Preverjanje stanja polja po odstranitvi 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. Dodajanje particij novega diska v polje
Naslednji korak je dodajanje particij novega diska v polja za sinhronizacijo. Poglejmo trenutno stanje postavitve 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
Oddelek /dev/sdc1
je bios_grub
in ne sodeluje pri ustvarjanju nizov. Nizi bodo uporabljali samo /dev/sdc2
и /dev/sdc3
. Te razdelke dodamo v ustrezne nize.
mdadm /dev/md126 --add /dev/sdc2
mdadm /dev/md127 --add /dev/sdc3
Nato počakamo, da se niz sinhronizira.
[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 po dodajanju particij v 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. Odstranjevanje particij drugega diska iz nizov
Particije drugega diska, ki se uporabljajo v vsakem polju, označimo kot slabe.
mdadm /dev/md126 --fail /dev/sdb1
mdadm /dev/md127 --fail /dev/sdb2
Odstranjevanje blokovnih particij naprave /dev/sda
iz nizov.
mdadm /dev/md126 --remove /dev/sdb1
mdadm /dev/md127 --remove /dev/sdb2
5. Kopirajte tabelo postavitve GPT in sinhronizirajte matriko
Za kopiranje označevalne tabele GPT bomo uporabili pripomoček sgdisk
, ki je vključen v paket za delo s particijami diska in tabelo GPT - gdisk
.
Namestitev gdisk
za CentOS:
yum install -y gdisk
Namestitev gdisk
za Debian/Ubuntu:
apt install -y gdisk
POZOR: Za GPT prvi disk je označen na katerem kopiraj oznako, drugič disk označuje disk od katerih kopirajte oznako. Če pomešate diske, bo prvotno dobra particija prepisana in uničena.
Kopirajte označevalno tabelo GPT.
sgdisk -R /dev/sdd /dev/sdc
Particioniranje diska po prenosu tabele 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
Nato dodamo vsako od particij, ki sodelujejo v programskih nizih RAID.
mdadm /dev/md126 --add /dev/sdd2
mdadm /dev/md127 --add /dev/sdd3
Čakamo na sinhronizacijo polja.
[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>
Po kopiranju particije GPT na drugi novi disk bo particija videti takole.
[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]
Nato namestite GRUB na nove diske.
Namestitev za CentOS:
grub2-install /dev/sdX
Namestitev za Debian/Ubuntu:
grub-install /dev/sdX
če X
— črka pogona, v našem primeru pogoni /dev/sdc
и /dev/sdd
.
Posodabljamo podatke o matriki.
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
Posodabljanje slike initrd
:
Za CentOS:
dracut -f -v --regenerate-all
Za Debian/Ubuntu:
update-initramfs -u -k all
Posodobimo konfiguracijo GRUB.
Za CentOS:
grub2-mkconfig -o /boot/grub2/grub.cfg
Za Debian/Ubuntu:
update-grub
Po opravljenih korakih lahko stare diske odstranite.
6. Pripona datotečnega sistema (ext4) korenske particije
Particioniranje diska pred razširitvijo datotečnega sistema po selitvi sistema na diske 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]
Zdaj razdelki /dev/sdc3
и /dev/sdd3
zasedejo 2.7 TB. Ker smo ustvarili novo postavitev diska s tabelo GPT, je bila velikost particije 3 takoj nastavljena na največji možni prostor na disku; v tem primeru ni treba razširiti particije.
Potrebno je:
- Razširi niz md126,
- Razširi PV (fizična glasnost),
- Razširite LV (logični nosilec) vg0-root,
- Razširite datotečni sistem.
1. Razširite matriko md126
do maksimuma.
mdadm --grow /dev/md126 --size=max
Po razširitvi polja md126
velikost zasedenega prostora se je povečala 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]
Širi se fizični volumen.
Pred razširitvijo preverite trenutno vrednost zasedenega prostora PV /dev/md126
.
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/md126 vg0 lvm2 a-- 222,40g 0
PV razširimo z naslednjim ukazom.
pvresize /dev/md126
Preverimo opravljeno dejanje.
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/md126 vg0 lvm2 a-- <2,73t 2,51t
Širi se logični nosilec vg0-root.
Po razširitvi PV preverimo zaseden prostor VG.
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg0 1 2 0 wz--n- <2,73t 2,51t
Preverimo prostor, ki ga zaseda 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
Nosilec vg0-root zavzema 206.41 GB.
LV razširimo na največji diskovni prostor.
lvextend -l +100%FREE /dev/mapper/vg0-root
Preverjanje LV prostora po ekspanziji.
[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
Razširitev datotečnega sistema (ext4).
Preverimo trenutno velikost datotečnega sistema.
[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
Nosilec /dev/mapper/vg0-root zaseda 204 GB po razširitvi LV.
Razširitev datotečnega sistema.
resize2fs /dev/mapper/vg0-root
Preverjanje velikosti datotečnega sistema po njegovi razširitvi.
[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
Velikost datotečnega sistema je bila povečana, da pokrije celoten nosilec.
Vir: www.habr.com