Ўсім прывітанне. Напярэдадні старту новай групы курса
У дадзеным артыкуле будуць разгледжаны 2 выпадкі замены дыскаў і пераносу інфармацыі на новыя дыскі большага аб'ёму з далейшым пашырэннем масіва і файлавай сістэмы. Першы выпадак будзе тычыцца замены дыскаў з аднайменнай разметкай MBR/MBR або GPT/GPT, другі выпадак датычыцца замены дыскаў з разметкай MBR на дыскі аб'ёмам больш за 2 TB, на якія спатрэбіцца ставіць разметку GPT з раздзелам biosboot. У абодвух выпадках дыскі, на якія пераносім дадзеным, ужо ўсталяваны ў сервер. Файлавая сістэма, якая выкарыстоўваецца для каранёвай часткі - ext4.
Выпадак 1: Замена дыскаў меншага аб'ёму на дыскі большага аб'ёму (да 2TB)
задача: Замяніць бягучыя дыскі на дыскі большага аб'ёму (да 2 TB) з пераносам інфармацыі. У дадзеным выпадку маем кружэлкі 2 x 240 GB SSD (RAID-1) з усталяванай сістэмай і кружэлкі 2 x 1 TB SATA, на якія неабходна перанесці сістэму.
Разгледзім бягучую разметку дыскаў.
[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
Праверым выкарыстоўваную прастору файлавай сістэмы на дадзены момант.
[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
Памер файлавай сістэмы да замены дыскаў складае 204 GB, выкарыстоўваюцца 2 праграмных масіва md126, які змантаваны ў /boot
и md127
, Які выкарыстоўваецца як фізічны аб'ём для VG групы vg0.
1. Выдаленне раздзелаў дыска з масіваў
Праверам стан масіва
[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>
У сістэме выкарыстоўваецца 2 масіва: md126
(кропка мантавання /boot
) — складаецца з падзелу /dev/sda1
и /dev/sdb1
, md127
(LVM для абмен і кораня файлавай сістэмы) - складаецца з /dev/sda2
и /dev/sdb2
.
Пазначаем часткі першай кружэлкі, якія выкарыстоўваюцца ў кожным масіве, як збойныя.
mdadm /dev/md126 --fail /dev/sda1
mdadm /dev/md127 --fail /dev/sda2
Выдаляем часткі блочнай прылады /dev/sda з масіваў.
mdadm /dev/md126 --remove /dev/sda1
mdadm /dev/md127 --remove /dev/sda2
Пасля таго, як мы выдалілі дыск з масіва, інфармацыя аб блокавых прыладах будзе выглядаць наступным чынам.
[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
Стан масіваў пасля выдалення дыскаў.
[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. Капіраванне табліцы раздзелаў на новы дыск
Праверыць выкарыстоўваную табліцу частак на дыску можна наступнай камандай.
fdisk -l /dev/sdb | grep 'Disk label type'
Вывадам для MBR будзе:
Disk label type: dos
для GPT:
Disk label type: gpt
Капіраванне табліцы разметкі для MBR:
sfdisk -d /dev/sdb | sfdisk /dev/sdc
У дадзенай камандзе першым паказваецца дыск с якога капіюецца разметка, другім - куды капіяваць.
УВАГА: Для GPT першым паказваецца дыск на які капіяваць разметку, другім дыскам паказваецца дыск з якога капіяваць разметку. Калі пераблытаць дыскі, то першапачаткова спраўная разметка будзе перазапісана і знішчана.
Капіраванне табліцы разметкі для GPT:
sgdisk -R /dev/sdс /dev/sdb
Далей прызначаем дыску выпадковы UUID (для GPT).
sgdisk -G /dev/sdc
Пасля выкананай каманды раздзелы павінны з'явіцца на дыску /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
Калі пасля выкананага дзеяння раздзелы ў сістэме на дыску /dev/sdc
не вызначыліся, то выконваем каманду, каб перачытаць табліцу раздзелаў.
sfdisk -R /dev/sdc
Калі на бягучых дысках выкарыстоўваецца табліца MBR і інфармацыю неабходна перанесці на дыскі аб'ёмам больш за 2 TB, то на новых дысках спатрэбіцца ўручную ствараць разметку GPT з выкарыстаннем раздзела biosboot. Гэты выпадак будзе разгледжаны ў 2 частцы гэтага артыкула.
3. Даданне раздзелаў новага дыска ў масіў
Дадамо раздзелы дыска ў адпаведныя масівы.
mdadm /dev/md126 --add /dev/sdc1
mdadm /dev/md127 --add /dev/sdc2
Правяраем, што раздзелы дададзены.
[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
Пасля гэтага чакаем сінхранізацыі масіваў.
[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>
Бесперапынна назіраць за працэсам сінхранізацыі можна з дапамогай утыліты watch
.
watch -n 2 cat /proc/mdstat
Параметр -n
паказвае з якім інтэрвалаў у секундах неабходна выконваць каманду для праверкі прагрэсу.
Паўтараем пункты 1 - 3 для наступнага заменнага дыска.
Пазначаем раздзелы другога дыска, якія выкарыстоўваюцца ў кожным масіве, як збойныя.
mdadm /dev/md126 --fail /dev/sdb1
mdadm /dev/md127 --fail /dev/sdb2
Выдаляем раздзелы блокавай прылады /dev/sdb
з масіваў.
mdadm /dev/md126 --remove /dev/sdb1
mdadm /dev/md127 --remove /dev/sdb2
Пасля таго, як мы выдалілі дыск з масіва, інфармацыя аб блокавых прыладах будзе выглядаць наступным чынам.
[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
Стан масіваў пасля выдалення дыскаў.
[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>
Капіяваны табліцу разметкі MBR з дыска /dev/sdс
на дыск /dev/sdd
.
sfdisk -d /dev/sdс | sfdisk /dev/sdd
Пасля выкананай каманды раздзелы павінны з'явіцца на дыску /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
Дадаем раздзелы дыска ў масівы.
mdadm /dev/md126 --add /dev/sdd1
mdadm /dev/md127 --add /dev/sdd2
Правяраем, што раздзелы дададзены.
[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]
Пасля гэтага чакаем сінхранізацыі масіваў.
[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. Устаноўка GRUB на новыя дыскі
Для CentOS:
grub2-install /dev/sdX
Для Debian/Ubuntu:
grub-install /dev/sdX
дзе X
- літара блокавай прылады. У дадзеным выпадку ўсталяваць GRUB неабходна на /dev/sdc
и /dev/sdd
.
6. Пашырэнне файлавай сістэмы (ext4) каранёвай часткі
На новых дысках /dev/sdc
и /dev/sdd
даступныя 931.5 GB. З-за таго, што табліца раздзелаў скапіяваная з дыскаў меншага аб'ёму, на раздзелах /dev/sdc2
и /dev/sdd2
даступныя 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]
неабходна:
- Пашырыць раздзел 2 на кожным з дыскаў,
- Пашырыць масіў md127,
- Пашырыць PV (physical volume),
- Пашырыць LV (logical-volume) vg0-root,
- Пашырыць файлавую сістэму.
Выкарыстоўваючы ўтыліту рассталіся пашырым падзел /dev/sdc2
да максімальнага значэння. Выконваем каманду parted /dev/sdc
(1) і праглядаем бягучую табліцу раздзелаў камандай p
(2).
Як відаць, канец часткі 2 сканчаецца на 240 GB. Выканаем пашырэнне падзелу камандай resizepart
2
, дзе 2 - нумар раздзела (3). Паказваем значэнне ў лічбавым фармаце, напрыклад 1000 GB, або выкарыстоўваем указанне долі дыска – 100%. Зноў правяраем, што раздзел мае новы памер (4).
Паўтараем названыя вышэй дзеянні для дыска /dev/sdd
. Пасля пашырэння раздзелаў /dev/sdc2
и /dev/sdd2
сталі роўнымі 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]
Пасля гэтага выконваем пашырэнне масіва md127 да максімуму.
mdadm --grow /dev/md127 --size=max
Правяраем, што масіў пашырэў. Цяпер яго памер стаў 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]
Выконваем пашырэнне фізічны аб'ём. Перад пашырэннем праверым бягучы стан 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 ]
Як бачна, PV /dev/md127
выкарыстоўвае 222.4 GB прасторы.
Пашыраем PV наступнай камандай.
pvresize /dev/md127
Правяраем вынік пашырэння PV.
[root@localhost ~]# pvscan
PV /dev/md127 VG vg0 lvm2 [930,38 GiB / 707,98 GiB free]
Total: 1 [930,38 GiB] / in use: 1 [930,38 GiB] / in no VG: 0 [0 ]
Пашыраем лагічны аб'ём. Перад пашырэннем праверым бягучы стан 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
выкарыстоўвае 206.41 GB.
Пашыраем LV наступнай камандай (2).
lvextend -l +100%FREE /dev/mapper/vg0-root
Правяраем выкананае дзеянне (3).
[root@localhost ~]# lvscan
ACTIVE '/dev/vg0/swap' [<16,00 GiB] inherit
ACTIVE '/dev/vg0/root' [<914,39 GiB] inherit
Як бачым, пасля пашырэння LV аб'ём займанай дыскавай прасторы стаў 914.39 GB.
Аб'ём LV павялічыўся (4), але файлавая сістэма па-ранейшаму займае 204 GB (5).
1. Выканаем пашырэнне файлавай сістэмы.
resize2fs /dev/mapper/vg0-root
Правяраем пасля выкананай каманды памер файлавай сістэмы.
[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
Памер каранёвай файлавай сістэмы павялічыцца да 900 Гб. Пасля выкананых дзеянняў можна здабываць старыя дыскі.
Выпадак 2: Замена дыскаў меншага аб'ёму на дыскі большага аб'ёму (больш за 2TB)
заданне: Замяніць бягучыя дыскі на дыскі большага аб'ёму (2 x 3TB) з захаваннем інфармацыі. У дадзеным выпадку маем кружэлкі 2 x 240 GB SSD (RAID-1) з усталяванай сістэмай і кружэлкі 2 x 3 TB SATA, на якія неабходна перанесці сістэму. На бягучых дысках выкарыстоўваецца табліца раздзелаў MBR. Так як новыя дыскі маюць аб'ём больш за 2 TB, то на іх спатрэбіцца выкарыстоўваць табліцу GPT, так як MBR не можа працаваць з дыскамі больш за 2TB.
Прагледзім бягучую разметку дыскаў.
[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
Праверым табліцу раздзелаў на дыску, якая выкарыстоўваецца. /dev/sda
.
[root@localhost ~]# fdisk -l /dev/sda | grep 'Disk label type'
Disk label type: dos
На дыску /dev/sdb
выкарыстоўваецца аналагічная табліца раздзелаў. Праверым выкарыстоўваную дыскавую прастору ў сістэме.
[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
Як бачна, корань файлавай сістэмы займае 204 GB. Праверым бягучы стан праграмнага RAID-масіва.
1. Устаноўка GPT табліцы раздзелаў і разметка дыска
Праверым разметку дыскаў па сектарах.
[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
На новым дыску 3TB нам неабходна будзе стварыць 3 раздзелы:
- Раздзел
bios_grub
памерам 2MiB для сумяшчальнасці GPT з BIOS, - Раздзел для RAID масіва, які будзе змантаваны ў
/boot
. - Раздзел для RAID-масіва, на якім будзе LV root и LV swap.
Усталёўваны ўтыліту рассталіся камандай yum install -y parted
(для CentOS), apt install -y parted
(для Debian/Ubuntu).
Выкарыстоўваючы рассталіся выканаем наступныя каманды для разметкі дыска.
Выконваем каманду parted /dev/sdc
і пераходзім у рэжым рэдагавання разметкі дыска.
Ствараем табліцу раздзелаў GPT.
(parted) mktable gpt
Ствараем 1 раздзел bios_grub
раздзел і ўсталёўваны сцяг для яго.
(parted) mkpart primary 1MiB 3MiB
(parted) set 1 bios_grub on
Ствараем 2 раздзел і ўсталёўваны сцяг для яго. Раздзел будзе выкарыстоўваць у якасці блока для RAID-масіва і мантавання яго ў /boot
.
(parted) mkpart primary ext2 3MiB 1028MiB
(parted) set 2 boot on
Ствараем 3 раздзел, які таксама будзе выкарыстоўвацца ў якасці блока масіва, у якім будзе LVM.
(parted) mkpart primary 1028MiB 100%
У дадзеным выпадку ўсталёўваць сцяг не абавязкова, але калі неабходна, тое магчыма яго ўсталяваць наступнай камандай.
(parted) set 3 raid on
Правяраем створаную табліцу.
(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
Прызначаем дыску новы выпадковы GUID.
sgdisk -G /dev/sdd
2. Выдаленне раздзелаў першага дыска з масіваў
Праверам стан масіва
[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>
У сістэме выкарыстоўваецца 2 масіва: md126 (кропка мантавання /boot) - складаецца з /dev/sda1
и /dev/sdb1
, md127
(LVM для swap
і кораня файлавай сістэмы) - складаецца з /dev/sda2
и /dev/sdb2
.
Пазначаем часткі першай кружэлкі, якія выкарыстоўваюцца ў кожным масіве, як збойныя.
mdadm /dev/md126 --fail /dev/sda1
mdadm /dev/md127 --fail /dev/sda2
Выдаляем раздзелы блокавай прылады /dev/sda
з масіваў.
mdadm /dev/md126 --remove /dev/sda1
mdadm /dev/md127 --remove /dev/sda2
Правяраем стан масіва пасля выдалення дыска.
[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. Даданне раздзелаў новага дыска ў масіў
Наступным крокам неабходна дадаць часткі новага дыска ў масівы для сінхранізацыі. Глядзім бягучы стан разметкі дыскаў.
[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
Раздзел /dev/sdc1
з'яўляецца bios_grub
раздзелам і не ўдзельнічае з стварэнні масіваў. У масівах будуць задзейнічаны толькі /dev/sdc2
и /dev/sdc3
. Дадаем дадзеныя раздзелы ў адпаведныя масівы.
mdadm /dev/md126 --add /dev/sdc2
mdadm /dev/md127 --add /dev/sdc3
Пасля чаго чакаем сінхранізацыі масіва.
[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>
Разметка дыскаў пасля дадання раздзелаў у масіў.
[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. Выдаленне раздзелаў другога дыска з масіваў
Пазначаем раздзелы другога дыска, якія выкарыстоўваюцца ў кожным масіве, як збойныя.
mdadm /dev/md126 --fail /dev/sdb1
mdadm /dev/md127 --fail /dev/sdb2
Выдаляем раздзелы блокавай прылады /dev/sda
з масіваў.
mdadm /dev/md126 --remove /dev/sdb1
mdadm /dev/md127 --remove /dev/sdb2
5. Капіяваны табліцу разметкі GPT і сінхранізуем масіў
Для капіявання табліцы разметкі GPT скарыстаемся ўтылітай sgdisk
, якая ўваходзіць у пакет для працы з раздзеламі дыскаў і табліцай GPT gdisk
.
Ўстаноўка gdisk
для CentOS:
yum install -y gdisk
Ўстаноўка gdisk
для Debian/Ubuntu:
apt install -y gdisk
УВАГА: Для GPT першым паказваецца дыск на які капіюем разметку, другім дыскам паказваецца дыск з якога капіююць разметку. Калі пераблытаць дыскі, то першапачаткова спраўная разметка будзе перазапісана і знішчана.
Капіяваны табліцу разметкі GPT.
sgdisk -R /dev/sdd /dev/sdc
Разметка дыскаў пасля пераносу табліцы на дыск /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
Далей дадаем кожны з раздзелаў, якія ўдзельнічаюць у праграмных RAID-масівах.
mdadm /dev/md126 --add /dev/sdd2
mdadm /dev/md127 --add /dev/sdd3
Чакаем сінхранізацыі масіва.
[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>
Пасля капіявання разметкі GPT на другі новы дыск, разметка будзе выглядаць наступным чынам.
[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]
Далей усталёўваны GRUB на новыя дыскі.
Усталёўка для CentOS:
grub2-install /dev/sdX
Усталяванне для Debian/Ubuntu:
grub-install /dev/sdX
дзе X
- літара дыска, у нашым выпадку дыскі /dev/sdc
и /dev/sdd
.
Абнаўляем інфармацыю аб масіве.
Для CentOS:
mdadm --detail --scan --verbose > /etc/mdadm.conf
Для Debian/Ubuntu:
echo "DEVICE partitions" > /etc/mdadm/mdadm.conf
mdadm --detail --scan --verbose | awk '/ARRAY/ {print}' >> /etc/mdadm/mdadm.conf
Абнаўляем вобраз initrd
:
Для CentOS:
dracut -f -v --regenerate-all
Для Debian/Ubuntu:
update-initramfs -u -k all
Абнаўляем канфігурацыю GRUB.
Для CentOS:
grub2-mkconfig -o /boot/grub2/grub.cfg
Для Debian/Ubuntu:
update-grub
Пасля выкананых дзеянняў старыя дыскі можна здабываць.
6. Пашырэнне файлавай сістэмы (ext4) каранёвай часткі
Разметка дыскаў да пашырэння файлавай сістэмы пасля пераносу сістэмы на дыскі 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]
Зараз раздзелы /dev/sdc3
и /dev/sdd3
займаюць 2.7/3 TB. Бо мы стваралі новую разметку дыскаў з табліцай GPT, то памер XNUMX часткі быў адразу зададзены на максімальна магчымую дыскавую прастору, пашыраць частку ў дадзеным выпадку не патрабуецца.
неабходна:
- Пашырыць масіў md126,
- Пашырыць PV (physical volume),
- Пашырыць LV (logical-volume) vg0-root,
- Пашырыць файлавую сістэму.
1. Пашыраем масіў md126
да максімуму.
mdadm --grow /dev/md126 --size=max
Пасля пашырэння масіва md126
памер займаемай прасторы павялічыўся да 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]
Пашыраем фізічны аб'ём.
Перад пашырэннем правяраем бягучае значэнне займанай прасторы PV /dev/md126
.
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/md126 vg0 lvm2 a-- 222,40g 0
Пашыраем PV наступным камандай.
pvresize /dev/md126
Правяраем выкананае дзеянне.
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/md126 vg0 lvm2 a-- <2,73t 2,51t
Пашыраем logical volume vg0-root.
Пасля пашырэння PV праверым займанае прастору VG.
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg0 1 2 0 wz--n- <2,73t 2,51t
Праверым займанае 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 займае 206.41 GB.
Пашыраем LV да максімуму дыскавай прасторы.
lvextend -l +100%FREE /dev/mapper/vg0-root
Правяраем прастору LV пасля пашырэння.
[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
Пашыраем файлавую сістэму (ext4).
Праверым бягучы памер файлавай сістэмы.
[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
Тым /dev/mapper/vg0-root займае 204 GB пасля пашырэння LV.
Пашыраем файлавую сістэму.
resize2fs /dev/mapper/vg0-root
Правяраем памер файлавай сістэмы пасля яе пашырэння.
[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
Памер файлавай сістэмы павялічаны на ўвесь аб'ём тома.
Крыніца: habr.com