Ahoj všichni. V předvečer zahájení nové skupiny kurzů
Tento článek se bude zabývat 2 případy výměny disků a přenosu informací na nové disky s větší kapacitou s dalším rozšířením pole a souborového systému. První případ se bude týkat výměny disků se stejným rozdělením MBR/MBR nebo GPT/GPT, druhý případ výměny disků s rozdělením MBR za disky s kapacitou větší než 2 TB, na které bude potřeba nainstalovat oddíl GPT s oddílem biosboot. V obou případech jsou disky, na které data přenášíme, již nainstalovány na serveru. Souborový systém používaný pro kořenový oddíl je ext4.
Případ 1: Výměna menších disků za větší disky (až 2 TB)
Úkol: Vyměňte současné disky za větší disky (až 2 TB) s přenosem informací. V tomto případě tu máme 2 x 240 GB SSD (RAID-1) disky s nainstalovaným systémem a 2 x 1 TB SATA disky, na které je potřeba systém přenést.
Podívejme se na aktuální rozložení disku.
[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
Zkontrolujeme aktuálně používaný prostor souborového systému.
[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 souborového systému před výměnou disků je 204 GB, jsou použita 2 softwarová pole md126, která se montují v /boot
и md127
, který se používá jako fyzický objem pro skupinu VG vg0.
1. Odstranění diskových oddílů z polí
Kontrola stavu pole
[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>
Systém používá 2 pole: md126
(bod připojení /boot
) - skládá se z oddílu /dev/sda1
и /dev/sdb1
, md127
(LVM pro výměna a kořen souborového systému) – skládá se z /dev/sda2
и /dev/sdb2
.
Oddíly prvního disku, které jsou použity v každém poli, označíme jako špatné.
mdadm /dev/md126 --fail /dev/sda1
mdadm /dev/md127 --fail /dev/sda2
Z polí odstraníme oddíly blokových zařízení /dev/sda.
mdadm /dev/md126 --remove /dev/sda1
mdadm /dev/md127 --remove /dev/sda2
Poté, co vyjmeme disk z pole, budou informace o blokovém zařízení vypadat takto.
[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
Stav polí po vyjmutí disků.
[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. Zkopírujte tabulku oddílů na nový disk
Použitou tabulku oddílů na disku můžete zkontrolovat pomocí následujícího příkazu.
fdisk -l /dev/sdb | grep 'Disk label type'
Výstup pro MBR by byl:
Disk label type: dos
pro GPT:
Disk label type: gpt
Kopírování tabulky oddílů pro MBR:
sfdisk -d /dev/sdb | sfdisk /dev/sdc
V tomto týmu nejprve je indikován disk с z toho označení se zkopíruje, druhý - kde kopírovat.
UPOZORNĚNÍ: Pro GPT nejprve je indikován disk na kterých kopírovat označení, druhá disk označuje disk z nichž kopírovat označení. Pokud zaměníte disky, původně dobrý oddíl bude přepsán a zničen.
Kopírování tabulky rozvržení pro GPT:
sgdisk -R /dev/sdс /dev/sdb
Dále disku přiřaďte náhodné UUID (pro GPT).
sgdisk -G /dev/sdc
Po provedení příkazu by se oddíly měly objevit 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
Pokud se po provedení akce oddíly v systému na disku /dev/sdc
nerozhodnutý, pak provedeme příkaz k opětovnému přečtení tabulky oddílů.
sfdisk -R /dev/sdc
Pokud aktuální disky používají tabulku MBR a informace je třeba přenést na disky větší než 2 TB, pak na nových discích budete muset ručně vytvořit oddíl GPT pomocí oddílu biosboot. Tento případ bude popsán v části 2 tohoto článku.
3. Přidání oddílů nového disku do pole
K odpovídajícím polím přidáme diskové oddíly.
mdadm /dev/md126 --add /dev/sdc1
mdadm /dev/md127 --add /dev/sdc2
Zkontrolujeme, zda byly sekce přidány.
[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
Poté počkáme, až se pole synchronizují.
[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>
Pomocí nástroje můžete průběžně sledovat proces synchronizace watch
.
watch -n 2 cat /proc/mdstat
Parametr -n
určuje, v jakých intervalech v sekundách musí být příkaz proveden, aby se zkontroloval průběh.
Opakujte kroky 1–3 pro další náhradní disk.
Oddíly druhého disku, které jsou použity v každém poli, označíme jako špatné.
mdadm /dev/md126 --fail /dev/sdb1
mdadm /dev/md127 --fail /dev/sdb2
Odstranění oddílů blokového zařízení /dev/sdb
z polí.
mdadm /dev/md126 --remove /dev/sdb1
mdadm /dev/md127 --remove /dev/sdb2
Poté, co vyjmeme disk z pole, budou informace o blokovém zařízení vypadat takto.
[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
Stav polí po vyjmutí disků.
[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>
Zkopírování tabulky oddílů MBR z disku /dev/sdс
na disk /dev/sdd
.
sfdisk -d /dev/sdс | sfdisk /dev/sdd
Po provedení příkazu by se oddíly měly objevit 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
Přidání diskových oddílů do polí.
mdadm /dev/md126 --add /dev/sdd1
mdadm /dev/md127 --add /dev/sdd2
Zkontrolujeme, zda byly sekce přidány.
[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]
Poté počkáme, až se pole synchronizují.
[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. Instalace GRUB na nové disky
Pro CentOS:
grub2-install /dev/sdX
Pro Debian/Ubuntu:
grub-install /dev/sdX
kde X
— písmeno blokového zařízení. V tomto případě musíte nainstalovat GRUB /dev/sdc
и /dev/sdd
.
6. Přípona systému souborů (ext4) kořenového oddílu
Na nových discích /dev/sdc
и /dev/sdd
K dispozici 931.5 GB. Vzhledem k tomu, že tabulka oddílů byla zkopírována z menších disků, oddíly /dev/sdc2
и /dev/sdd2
K dispozici 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]
Je nutné:
- Rozšiřte oddíl 2 na každém z disků,
- Rozbalit pole md127,
- Rozbalte PV (fyzický objem),
- Rozbalte LV (logický svazek) vg0-root,
- Rozbalte systém souborů.
Pomocí utility rozdělil se rozšíříme sekci /dev/sdc2
na maximální hodnotu. Proveďte příkaz parted /dev/sdc
(1) a pomocí příkazu zobrazte aktuální tabulku oddílů p
(2).
Jak vidíte, konec oddílu 2 končí na 240 GB. Rozbalíme oddíl pomocí příkazu resizepart
2
, kde 2 je číslo sekce (3). Hodnotu uvádíme v digitálním formátu, například 1000 GB, nebo použijeme údaj o sdílení disku - 100 %. Znovu zkontrolujeme, že oddíl má novou velikost (4).
Opakujte výše uvedené kroky pro disk /dev/sdd
. Po rozbalení oddílů /dev/sdc2
и /dev/sdd2
se rovnala 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]
Poté pole rozšíříme md127 na maximum.
mdadm --grow /dev/md127 --size=max
Zkontrolujeme, zda se pole rozšířilo. Nyní se jeho velikost stala 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]
Prodloužení prodloužení fyzický objem. Před rozbalením zkontrolujme aktuální stav FV.
[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 ]
Jak je vidět, PV /dev/md127
využívá 222.4 GB prostoru.
PV rozbalíme následujícím příkazem.
pvresize /dev/md127
Kontrola výsledku expanze FV.
[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 ]
Rozšiřující se logický objem. Před rozšířením zkontrolujme aktuální stav 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
používá 206.41 GB.
LV rozbalíme následujícím příkazem (2).
lvextend -l +100%FREE /dev/mapper/vg0-root
Zkontrolujeme dokončenou akci (3).
[root@localhost ~]# lvscan
ACTIVE '/dev/vg0/swap' [<16,00 GiB] inherit
ACTIVE '/dev/vg0/root' [<914,39 GiB] inherit
Jak vidíte, po rozšíření LV se velikost obsazeného místa na disku stala 914.39 GB.
Objem LV se zvýšil (4), ale souborový systém stále zabírá 204 GB (5).
1. Rozšiřme souborový systém.
resize2fs /dev/mapper/vg0-root
Po provedení příkazu zkontrolujeme velikost souborového systému.
[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 kořenového systému souborů se zvýší na 900 GB. Po dokončení kroků můžete staré disky vyjmout.
Případ 2: Výměna menších disků za větší disky (více než 2 TB)
Zadání: Vyměňte stávající disky za větší disky (2 x 3 TB) při zachování informací. V tomto případě máme 2 x 240 GB SSD (RAID-1) disky s nainstalovaným systémem a 2 x 3 TB SATA disky, na které je potřeba systém přenést. Současné disky používají tabulku oddílů MBR. Protože nové disky mají kapacitu větší než 2 TB, budou muset použít tabulku GPT, protože MBR nemůže pracovat s disky většími než 2 TB.
Podívejme se na aktuální rozložení disku.
[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
Zkontrolujeme tabulku oddílů použitou na disku /dev/sda
.
[root@localhost ~]# fdisk -l /dev/sda | grep 'Disk label type'
Disk label type: dos
Na disku /dev/sdb
používá se podobná tabulka oddílů. Pojďme zkontrolovat použité místo na disku v systému.
[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
Jak vidíte, kořen souborového systému zabírá 204 GB. Pojďme zkontrolovat aktuální stav softwarového pole RAID.
1. Instalace tabulky oddílů GPT a rozdělení disku
Zkontrolujeme rozložení disku podle sektorů.
[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 novém 3TB disku budeme muset vytvořit 3 oddíly:
- Část
bios_grub
Velikost 2MiB pro kompatibilitu GPT BIOS, - Oddíl pro pole RAID, do kterého bude připojeno
/boot
. - Oddíl pro pole RAID, na kterém bude LV kořen и Výměna LV.
Instalace utility rozdělil se tým yum install -y parted
(pro CentOS), apt install -y parted
(pro Debian/Ubuntu).
Použití rozdělil se Spusťte následující příkazy k rozdělení disku.
Proveďte příkaz parted /dev/sdc
a přejděte do režimu úprav rozložení disku.
Vytvořte tabulku oddílů GPT.
(parted) mktable gpt
Vytvořte 1 sekci bios_grub
sekce a nastavit pro ni vlajku.
(parted) mkpart primary 1MiB 3MiB
(parted) set 1 bios_grub on
Vytvořte oddíl 2 a nastavte pro něj příznak. Oddíl bude použit jako blok pro pole RAID a připojen /boot
.
(parted) mkpart primary ext2 3MiB 1028MiB
(parted) set 2 boot on
Vytvoříme 3. sekci, která bude také použita jako blok pole, ve kterém bude umístěn LVM.
(parted) mkpart primary 1028MiB 100%
V tomto případě není nutné příznak nastavovat, ale v případě potřeby jej lze nastavit následujícím příkazem.
(parted) set 3 raid on
Vytvořenou tabulku zkontrolujeme.
(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
Disk přiřadíme nový náhodný GUID.
sgdisk -G /dev/sdd
2. Odstranění oddílů prvního disku z polí
Kontrola stavu pole
[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>
Systém používá 2 pole: md126 (připojovací bod /boot) - skládá se z /dev/sda1
и /dev/sdb1
, md127
(LVM pro swap
a kořen souborového systému) – skládá se z /dev/sda2
и /dev/sdb2
.
Oddíly prvního disku, které jsou použity v každém poli, označíme jako špatné.
mdadm /dev/md126 --fail /dev/sda1
mdadm /dev/md127 --fail /dev/sda2
Odstranění oddílů blokového zařízení /dev/sda
z polí.
mdadm /dev/md126 --remove /dev/sda1
mdadm /dev/md127 --remove /dev/sda2
Kontrola stavu pole po vyjmutí disku.
[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. Přidání oddílů nového disku do pole
Dalším krokem je přidání oddílů nového disku do polí pro synchronizaci. Podívejme se na aktuální stav rozložení disku.
[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
Část /dev/sdc1
to je bios_grub
sekce a nepodílí se na vytváření polí. Pole budou pouze používat /dev/sdc2
и /dev/sdc3
. Tyto sekce přidáme do odpovídajících polí.
mdadm /dev/md126 --add /dev/sdc2
mdadm /dev/md127 --add /dev/sdc3
Poté počkáme, až se pole synchronizuje.
[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>
Rozdělení disku po přidání oddílů do pole.
[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. Odebrání oddílů druhého disku z polí
Oddíly druhého disku, které jsou použity v každém poli, označíme jako špatné.
mdadm /dev/md126 --fail /dev/sdb1
mdadm /dev/md127 --fail /dev/sdb2
Odstranění oddílů blokového zařízení /dev/sda
z polí.
mdadm /dev/md126 --remove /dev/sdb1
mdadm /dev/md127 --remove /dev/sdb2
5. Zkopírujte tabulku rozložení GPT a synchronizujte pole
Ke zkopírování tabulky značek GPT použijeme nástroj sgdisk
, který je součástí balení pro práci s diskovými oddíly a tabulkou GPT - gdisk
.
Instalace gdisk
pro CentOS:
yum install -y gdisk
Instalace gdisk
pro Debian/Ubuntu:
apt install -y gdisk
UPOZORNĚNÍ: Pro GPT nejprve je indikován disk na kterých zkopírovat označení, druhá disk označuje disk z nichž zkopírujte označení. Pokud zaměníte disky, původně dobrý oddíl bude přepsán a zničen.
Zkopírujte tabulku značek GPT.
sgdisk -R /dev/sdd /dev/sdc
Rozdělení disku po přenosu tabulky 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
Dále přidáme každý z oddílů účastnících se softwarových polí RAID.
mdadm /dev/md126 --add /dev/sdd2
mdadm /dev/md127 --add /dev/sdd3
Čekáme na synchronizaci pole.
[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 zkopírování oddílu GPT na druhý nový disk bude oddíl vypadat takto.
[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]
Dále nainstalujte GRUB na nové disky.
Instalace pro CentOS:
grub2-install /dev/sdX
Instalace pro Debian/Ubuntu:
grub-install /dev/sdX
kde X
— písmeno jednotky, v našem případě jednotky /dev/sdc
и /dev/sdd
.
Aktualizujeme informace o poli.
Pro CentOS:
mdadm --detail --scan --verbose > /etc/mdadm.conf
Pro Debian/Ubuntu:
echo "DEVICE partitions" > /etc/mdadm/mdadm.conf
mdadm --detail --scan --verbose | awk '/ARRAY/ {print}' >> /etc/mdadm/mdadm.conf
Aktualizace obrázku initrd
:
Pro CentOS:
dracut -f -v --regenerate-all
Pro Debian/Ubuntu:
update-initramfs -u -k all
Aktualizujeme konfiguraci GRUB.
Pro CentOS:
grub2-mkconfig -o /boot/grub2/grub.cfg
Pro Debian/Ubuntu:
update-grub
Po dokončení kroků lze staré disky vyjmout.
6. Přípona systému souborů (ext4) kořenového oddílu
Rozdělení disku před rozšířením systému souborů po migraci systému na disky 2 x 3 TB (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]
Nyní sekce /dev/sdc3
и /dev/sdd3
zabírají 2.7 TB. Protože jsme vytvořili nové rozložení disku s tabulkou GPT, velikost oddílu 3 byla okamžitě nastavena na maximální možné místo na disku, v tomto případě není nutné oddíl rozšiřovat.
Je nutné:
- Rozbalit pole md126,
- Rozbalte PV (fyzický objem),
- Rozbalte LV (logický svazek) vg0-root,
- Rozbalte systém souborů.
1. Rozbalte pole md126
na maximum.
mdadm --grow /dev/md126 --size=max
Po rozšíření pole md126
velikost obsazeného prostoru se zvýšila 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]
Rozšiřující se fyzický objem.
Před rozbalením zkontrolujte aktuální hodnotu obsazeného prostoru PV /dev/md126
.
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/md126 vg0 lvm2 a-- 222,40g 0
PV rozbalíme následujícím příkazem.
pvresize /dev/md126
Dokončenou akci zkontrolujeme.
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/md126 vg0 lvm2 a-- <2,73t 2,51t
Rozšiřující se logický svazek vg0-root.
Po rozbalení PV zkontrolujme obsazené místo VG.
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg0 1 2 0 wz--n- <2,73t 2,51t
Zkontrolujme místo obsazené 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
Vg0-root svazek zabírá 206.41 GB.
Rozšiřujeme LV na maximální místo na disku.
lvextend -l +100%FREE /dev/mapper/vg0-root
Kontrola prostoru NN po rozšíření.
[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
Rozšíření systému souborů (ext4).
Zkontrolujeme aktuální velikost souborového systému.
[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
Svazek /dev/mapper/vg0-root zabírá po rozšíření LV 204 GB.
Rozšíření systému souborů.
resize2fs /dev/mapper/vg0-root
Kontrola velikosti souborového systému po jeho rozbalení.
[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 systému souborů byla zvětšena tak, aby pokryla celý svazek.
Zdroj: www.habr.com