Здравейте всички. В навечерието на началото на нова курсова група
Тази статия ще разгледа 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 първи е посочен диск на която копиране на маркиране, втори disk показва диска от кое копиране на маркиране. Ако объркате дисковете, първоначално добрият дял ще бъде презаписан и унищожен.
Копиране на таблицата с оформление за 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
undecided, тогава изпълняваме командата за препрочитане на таблицата на дяловете.
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 (физически обем),
- Разширете LV (логически том) 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 GB. След като изпълните стъпките, можете да премахнете старите дискове.
Случай 2: Подмяна на по-малки дискове с по-големи дискове (повече от 2TB)
Настройка: Заменете текущите дискове с по-големи дискове (2 x 3TB), като същевременно запазите информацията. В този случай имаме 2 x 240 GB SSD (RAID-1) диска с инсталирана система и 2 x 3 TB SATA диска, на които системата трябва да бъде прехвърлена. Текущите дискове използват MBR таблицата на дяловете. Тъй като новите дискове имат капацитет по-голям от 2 TB, те ще трябва да използват GPT таблица, тъй като MBR не може да работи с дискове, по-големи от 2 TB.
Нека да разгледаме текущото оформление на диска.
[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 корен и Смяна на НН.
Инсталиране на помощната програма разединен екип 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 (точка на монтиране /зареждане) - състои се от /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 първи е посочен диск на която копирайте маркирането, втори disk показва диска от кое копирайте маркировката. Ако объркате дисковете, първоначално добрият дял ще бъде презаписан и унищожен.
Копирайте таблицата за маркиране на 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 TB. Тъй като създадохме ново дисково оформление с GPT таблица, размерът на дял 3 беше незабавно зададен на максималното възможно дисково пространство; в този случай няма нужда да разширявате дяла.
Необходимо е:
- Разширете масива md126,
- Разширете PV (физически обем),
- Разширете LV (логически том) 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
Разширяване логически том 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
Размерът на файловата система е увеличен, за да покрие целия обем.
Източник: www.habr.com