Saluton al ĉiuj. Antaŭtagmeze de la komenco de nova kursgrupo
Ĉi tiu artikolo konsideros 2 kazojn de anstataŭigo de diskoj kaj translokado de informoj al novaj diskoj de pli granda kapablo kun plia ekspansio de la tabelo kaj dosiersistemo. La unua kazo koncernas la anstataŭigon de diskoj kun la sama MBR/MBR aŭ GPT/GPT-dispartigo, la dua kazo koncernas la anstataŭigon de diskoj kun MBR-diskodo kun diskoj kun kapacito de pli ol 2 TB, sur kiuj vi devos instali. GPT-disko kun biosboot-disko. En ambaŭ kazoj, la diskoj al kiuj ni transdonas la datumojn jam estas instalitaj sur la servilo. La dosiersistemo uzata por la radikdisko estas ext4.
Kazo 1: Anstataŭigi pli malgrandajn diskojn per pli grandaj diskoj (ĝis 2TB)
Tasko: Anstataŭigi nunajn diskojn per pli grandaj diskoj (ĝis 2 TB) per informtransdono. En ĉi tiu kazo, ni havas 2 x 240 GB SSD (RAID-1) diskojn kun la sistemo instalita kaj 2 x 1 TB SATA diskoj al kiuj la sistemo devas esti translokigita.
Ni rigardu la nunan diskaranĝon.
[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
Ni kontrolu la nuntempe uzatan dosiersisteman spacon.
[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
La grandeco de la dosiersistemo antaŭ anstataŭigo de diskoj estas 204 GB, 2 md126 programaraj tabeloj estas uzataj, kiuj estas muntitaj en /boot
и md127
, kiu estas uzata kiel fizika volumeno por VG-grupo vg0.
1. Forigante diskpartojn de tabeloj
Kontrolante la staton de la tabelo
[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>
La sistemo uzas 2 tabelojn: md126
(montpunkto /boot
) - konsistas el sekcio /dev/sda1
и /dev/sdb1
, md127
(LVM por swap kaj la radiko de la dosiersistemo) - konsistas el /dev/sda2
и /dev/sdb2
.
Ni markas la sekciojn de la unua disko, kiuj estas uzataj en ĉiu tabelo, kiel malbonaj.
mdadm /dev/md126 --fail /dev/sda1
mdadm /dev/md127 --fail /dev/sda2
Ni forigas la /dev/sda-blokajn aparatdiskojn de la tabeloj.
mdadm /dev/md126 --remove /dev/sda1
mdadm /dev/md127 --remove /dev/sda2
Post kiam ni forigis la diskon de la tabelo, la informoj pri bloka aparato aspektos tiel.
[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
Stato de tabeloj post forigo de diskoj.
[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. Kopiu la dispartigan tabelon al nova disko
Vi povas kontroli la uzatan disktablon sur la disko per la sekva komando.
fdisk -l /dev/sdb | grep 'Disk label type'
La eligo por MBR estus:
Disk label type: dos
por GPT:
Disk label type: gpt
Kopiante la sekciotabelon por MBR:
sfdisk -d /dev/sdb | sfdisk /dev/sdc
En ĉi tiu teamo unue stirado estas indikita с el kiuj la markado estas kopiita, dua - kie kopio.
ATENTO: Por GPT unue stirado estas indikita sur kiu kopii markadon dua disko indikas la diskon de kiu kopii markadon. Se vi miksas la diskojn, la komence bona subdisko estos anstataŭita kaj detruita.
Kopiante la aranĝan tabelon por GPT:
sgdisk -R /dev/sdс /dev/sdb
Poste, asignu hazardan UUID al la disko (por GPT).
sgdisk -G /dev/sdc
Post kiam la komando estas ekzekutita, la sekcioj devus aperi sur la disko /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
Se, post kiam la ago estas farita, la subdiskoj en la sistemo sur la disko /dev/sdc
nedecidite, tiam ni plenumas la komandon por relegi la diskpartigan tabelon.
sfdisk -R /dev/sdc
Se la nunaj diskoj uzas la MBR-tabelon kaj informoj devas esti transdonitaj al diskoj pli grandaj ol 2 TB, tiam sur novaj diskoj vi devos permane krei GPT-dispartigon uzante la biosboot-diskon. Ĉi tiu kazo estos diskutita en Parto 2 de ĉi tiu artikolo.
3. Aldonante sekciojn de la nova disko al la tabelo
Ni aldonu diskpartojn al la respondaj tabeloj.
mdadm /dev/md126 --add /dev/sdc1
mdadm /dev/md127 --add /dev/sdc2
Ni kontrolas, ke la sekcioj estas aldonitaj.
[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
Post ĉi tio, ni atendas ke la tabeloj sinkroniĝos.
[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>
Vi povas kontinue kontroli la sinkronigan procezon uzante la ilon watch
.
watch -n 2 cat /proc/mdstat
Parametro -n
specifas je kiuj intervaloj en sekundoj la komando devas esti efektivigita por kontroli progreson.
Ripetu paŝojn 1 - 3 por la sekva anstataŭiga disko.
Ni markas la sekciojn de la dua disko, kiuj estas uzataj en ĉiu tabelo, kiel malbonaj.
mdadm /dev/md126 --fail /dev/sdb1
mdadm /dev/md127 --fail /dev/sdb2
Forigante blokajn aparatajn sekciojn /dev/sdb
de tabeloj.
mdadm /dev/md126 --remove /dev/sdb1
mdadm /dev/md127 --remove /dev/sdb2
Post kiam ni forigis la diskon de la tabelo, la informoj pri bloka aparato aspektos tiel.
[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
Stato de tabeloj post forigo de diskoj.
[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>
Kopiante la MBR-diskotabelon de la disko /dev/sdс
al disko /dev/sdd
.
sfdisk -d /dev/sdс | sfdisk /dev/sdd
Post kiam la komando estas ekzekutita, la sekcioj devus aperi sur la disko /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
Aldonante diskpartojn al tabeloj.
mdadm /dev/md126 --add /dev/sdd1
mdadm /dev/md127 --add /dev/sdd2
Ni kontrolas, ke la sekcioj estas aldonitaj.
[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]
Post ĉi tio, ni atendas ke la tabeloj sinkroniĝos.
[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. Instalante GRUB sur novaj diskoj
Por CentOS:
grub2-install /dev/sdX
Por Debian/Ubuntu:
grub-install /dev/sdX
kie X
— letero de la bloka aparato. En ĉi tiu kazo, vi devas instali GRUB sur /dev/sdc
и /dev/sdd
.
6. Dosiersistema etendo (ext4) de la radika subdisko
Sur novaj diskoj /dev/sdc
и /dev/sdd
931.5 GB disponeblaj. Pro la fakto, ke la sekciotabelo estis kopiita de pli malgrandaj diskoj, la sekcioj /dev/sdc2
и /dev/sdd2
222.5 GB disponeblaj.
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]
Estas necese:
- Etendi subdiskon 2 sur ĉiu el la diskoj,
- Vastigi tabelon md127,
- Pligrandigi PV (fizika volumeno),
- Vastigu LV (logika-volumeno) vg0-radiko,
- Pligrandigu la dosiersistemon.
Uzante la utilecon disigita ni vastigu la sekcion /dev/sdc2
al la maksimuma valoro. Efektivigu la komandon parted /dev/sdc
(1) kaj rigardu la nunan disdividan tabelon per la komando p
(2).
Kiel vi povas vidi, la fino de subdisko 2 finiĝas je 240 GB. Ni vastigu la subdiskon per la komando resizepart
2
, kie 2 estas la nombro de sekcio (3). Ni indikas la valoron en cifereca formato, ekzemple 1000 GB, aŭ uzas la indikon de la diskparto - 100%. Ni denove kontrolas, ke la subdisko havas la novan grandecon (4).
Ripetu la suprajn paŝojn por la disko /dev/sdd
. Post vastigado de sekcioj /dev/sdc2
и /dev/sdd2
iĝis egala al 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]
Post ĉi tio ni vastigas la tabelon Md127 al la maksimumo.
mdadm --grow /dev/md127 --size=max
Ni kontrolas, ke la tabelo disetendiĝis. Nun ĝia grandeco fariĝis 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]
Etendante la etendon fizika volumeno. Antaŭ ol pligrandigi, ni kontrolu la nunan staton de la 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 ]
Kiel videblas, PV /dev/md127
uzas 222.4 GB da spaco.
Ni vastigas PV per la sekva komando.
pvresize /dev/md127
Kontrolante la rezulton de PV-vastigo.
[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 ]
Vastiĝanta logika volumeno. Antaŭ ol pligrandigi, ni kontrolu la nunan staton de 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
uzas 206.41 GB.
Ni vastigas LV per la sekva komando (2).
lvextend -l +100%FREE /dev/mapper/vg0-root
Ni kontrolas la plenumitan agon (3).
[root@localhost ~]# lvscan
ACTIVE '/dev/vg0/swap' [<16,00 GiB] inherit
ACTIVE '/dev/vg0/root' [<914,39 GiB] inherit
Kiel vi povas vidi, post vastigado de LV, la kvanto de okupita diskspaco fariĝis 914.39 GB.
La LV-volumo pliiĝis (4), sed la dosiersistemo ankoraŭ okupas 204 GB (5).
1. Ni vastigu la dosiersistemon.
resize2fs /dev/mapper/vg0-root
Post kiam la komando estas ekzekutita, ni kontrolas la grandecon de la dosiersistemo.
[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
La grandeco de la radika dosiersistemo pliiĝos al 900 GB. Post plenumi la paŝojn, vi povas forigi la malnovajn diskojn.
Kazo 2: Anstataŭigi pli malgrandajn diskojn per pli grandaj diskoj (pli ol 2TB)
Ekzerco: Anstataŭigi la nunajn diskojn per pli grandaj diskoj (2 x 3TB) konservante la informojn. En ĉi tiu kazo, ni havas 2 x 240 GB SSD (RAID-1) diskojn kun la sistemo instalita kaj 2 x 3 TB SATA diskoj al kiuj la sistemo devas esti translokigita. Nunaj diskoj uzas la MBR-diskotabelon. Ĉar novaj diskoj havas kapaciton pli grandan ol 2 TB, ili devos uzi GPT-tabelon, ĉar MBR ne povas funkcii kun diskoj pli grandaj ol 2 TB.
Ni rigardu la nunan diskaranĝon.
[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
Ni kontrolu la diskpartigan tabelon uzatan sur la disko /dev/sda
.
[root@localhost ~]# fdisk -l /dev/sda | grep 'Disk label type'
Disk label type: dos
Sur disko /dev/sdb
simila disparttabulo estas uzata. Ni kontrolu la uzatan diskspacon en la sistemo.
[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
Kiel vi povas vidi, la radiko de la dosiersistemo okupas 204 GB. Ni kontrolu la nunan staton de la programaro RAID-tabelo.
1. Instalado de GPT-dispartiga tablo kaj diskpartigado
Ni kontrolu la disko-aranĝon laŭ sektoro.
[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
Sur la nova disko de 3TB ni devos krei 3 sekciojn:
- Sekcio
bios_grub
2MiB grandeco por GPT BIOS-kongruo, - La sekcio por la RAID-tabelo, kiu estos muntita enen
/boot
. - La sekcio por la RAID-tabelo sur kiu estos LV radiko и LV-interŝanĝo.
Instalante la utilecon disigita teamo yum install -y parted
(por CentOS), apt install -y parted
(por Debian/Ubuntu).
Uzante disigita Ni rulu la sekvajn komandojn por dividi la diskon.
Efektivigu la komandon parted /dev/sdc
kaj iru al disko-aranĝa redakta reĝimo.
Kreu GPT-diskondan tabelon.
(parted) mktable gpt
Kreu 1 sekcion bios_grub
sekcio kaj starigu flagon por ĝi.
(parted) mkpart primary 1MiB 3MiB
(parted) set 1 bios_grub on
Kreu subdiskon 2 kaj starigu flagon por ĝi. La sekcio estos uzata kiel bloko por RAID-tabelo kaj muntita enen /boot
.
(parted) mkpart primary ext2 3MiB 1028MiB
(parted) set 2 boot on
Ni kreas 3-an sekcion, kiu ankaŭ estos uzata kiel tabelbloko en kiu situos LVM.
(parted) mkpart primary 1028MiB 100%
En ĉi tiu kazo, ne necesas agordi la flagon, sed se necese, ĝi povas esti agordita per la sekva komando.
(parted) set 3 raid on
Ni kontrolas la kreitan tabelon.
(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
Ni asignas novan hazardan GUID al la disko.
sgdisk -G /dev/sdd
2. Forigante sekciojn de la unua disko el tabeloj
Kontrolante la staton de la tabelo
[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>
La sistemo uzas 2 tabelojn: md126 (montpunkto /boot) - konsistas el /dev/sda1
и /dev/sdb1
, md127
(LVM por swap
kaj la radiko de la dosiersistemo) - konsistas el /dev/sda2
и /dev/sdb2
.
Ni markas la sekciojn de la unua disko, kiuj estas uzataj en ĉiu tabelo, kiel malbonaj.
mdadm /dev/md126 --fail /dev/sda1
mdadm /dev/md127 --fail /dev/sda2
Forigante blokajn aparatajn sekciojn /dev/sda
de tabeloj.
mdadm /dev/md126 --remove /dev/sda1
mdadm /dev/md127 --remove /dev/sda2
Kontrolante la staton de la tabelo post forigo de la disko.
[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. Aldonante sekciojn de la nova disko al la tabelo
La sekva paŝo estas aldoni sekciojn de la nova disko al la tabeloj por sinkronigado. Ni rigardu la nunan staton de disko-aranĝo.
[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
Sekcio /dev/sdc1
Estas bios_grub
sekcio kaj ne estas implikita en la kreado de tabeloj. La tabeloj nur uzos /dev/sdc2
и /dev/sdc3
. Ni aldonas ĉi tiujn sekciojn al la respondaj tabeloj.
mdadm /dev/md126 --add /dev/sdc2
mdadm /dev/md127 --add /dev/sdc3
Tiam ni atendas ke la tabelo sinkroniĝu.
[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>
Diska aranĝo post aldoni sekciojn al la tabelo.
[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. Forigante sekciojn de la dua disko de tabeloj
Ni markas la sekciojn de la dua disko, kiuj estas uzataj en ĉiu tabelo, kiel malbonaj.
mdadm /dev/md126 --fail /dev/sdb1
mdadm /dev/md127 --fail /dev/sdb2
Forigante blokajn aparatajn sekciojn /dev/sda
de tabeloj.
mdadm /dev/md126 --remove /dev/sdb1
mdadm /dev/md127 --remove /dev/sdb2
5. Kopiu la GPT-aranĝan tabelon kaj sinkronigu la tabelon
Por kopii la GPT-marktablon ni uzos la ilon sgdisk
, kiu estas inkluzivita en la pakaĵo por labori kun diskpartoj kaj GPT-tabelo - gdisk
.
fikso gdisk
por CentOS:
yum install -y gdisk
fikso gdisk
por Debian/Ubuntu:
apt install -y gdisk
ATENTO: Por GPT unue stirado estas indikita sur kiu kopiu la markadon, dua disko indikas la diskon de kiu kopiu la markadon. Se vi miksas la diskojn, la komence bona subdisko estos anstataŭita kaj detruita.
Kopiu la GPT markada tabelo.
sgdisk -R /dev/sdd /dev/sdc
Diskpartigo post translokado de tablo al disko /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
Poste, ni aldonas ĉiun el la sekcioj partoprenantaj en programaraj RAID-tabeloj.
mdadm /dev/md126 --add /dev/sdd2
mdadm /dev/md127 --add /dev/sdd3
Ni atendas la sinkronigi la tabelon.
[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>
Post kopiado de la GPT-disko al la dua nova disko, la subdisko aspektos tiel.
[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]
Poste, instalu GRUB sur la novaj diskoj.
Instalado por CentOS:
grub2-install /dev/sdX
Instalado por Debian/Ubuntu:
grub-install /dev/sdX
kie X
— stirletero, en nia kazo stiradoj /dev/sdc
и /dev/sdd
.
Ni ĝisdatigas informojn pri la tabelo.
Por CentOS:
mdadm --detail --scan --verbose > /etc/mdadm.conf
Por Debian/Ubuntu:
echo "DEVICE partitions" > /etc/mdadm/mdadm.conf
mdadm --detail --scan --verbose | awk '/ARRAY/ {print}' >> /etc/mdadm/mdadm.conf
Ĝisdatigante la bildon initrd
:
Por CentOS:
dracut -f -v --regenerate-all
Por Debian/Ubuntu:
update-initramfs -u -k all
Ni ĝisdatigas la agordon de GRUB.
Por CentOS:
grub2-mkconfig -o /boot/grub2/grub.cfg
Por Debian/Ubuntu:
update-grub
Post plenumi la paŝojn, la malnovaj diskoj povas esti forigitaj.
6. Dosiersistema etendo (ext4) de la radika subdisko
Diskpartigo antaŭ dosiersistemvastigo post migrado de la sistemo al 2 x 3TB-diskoj (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]
Nun sekcioj /dev/sdc3
и /dev/sdd3
okupas 2.7 TB. Ĉar ni kreis novan diskaranĝon kun GPT-tabelo, la grandeco de subdisko 3 tuj estis agordita al la maksimuma ebla diskspaco; en ĉi tiu kazo, ne necesas vastigi la subdiskon.
Estas necese:
- Vastigi tabelon md126,
- Pligrandigi PV (fizika volumeno),
- Vastigu LV (logika-volumeno) vg0-radiko,
- Pligrandigu la dosiersistemon.
1. Vastigu la tabelon md126
al la maksimumo.
mdadm --grow /dev/md126 --size=max
Post ekspansio de tabelo md126
la grandeco de la okupata spaco pliiĝis al 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]
Vastiĝanta fizika volumeno.
Antaŭ ol pligrandigi, kontrolu la nunan valoron de la okupata spaco PV /dev/md126
.
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/md126 vg0 lvm2 a-- 222,40g 0
Ni vastigas PV per la sekva komando.
pvresize /dev/md126
Ni kontrolas la plenumitan agon.
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/md126 vg0 lvm2 a-- <2,73t 2,51t
Vastiĝanta logika volumo vg0-radiko.
Post vastiĝo de PV, ni kontrolu la okupatan spacon VG.
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg0 1 2 0 wz--n- <2,73t 2,51t
Ni kontrolu la spacon okupitan de LV.
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root vg0 -wi-ao---- <206,41g
swap vg0 -wi-ao---- <16,00g
La vg0-radika volumo okupas 206.41 GB.
Ni vastigas LV al la maksimuma diskospaco.
lvextend -l +100%FREE /dev/mapper/vg0-root
Kontrolante la LV-spacon post ekspansio.
[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
Vastigante la dosiersistemon (ext4).
Ni kontrolu la nunan grandecon de la dosiersistemo.
[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
La volumo /dev/mapper/vg0-root okupas 204 GB post LV-vastigo.
Pligrandigante la dosiersistemon.
resize2fs /dev/mapper/vg0-root
Kontrolante la grandecon de la dosiersistemo post vastigado de ĝi.
[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
La dosiersistemo grandeco estis pliigita por kovri la tutan volumon.
fonto: www.habr.com