Hei alle sammen. På tampen av oppstart av ny kursgruppe
Denne artikkelen vil vurdere 2 tilfeller av utskifting av disker og overføring av informasjon til nye disker med større kapasitet med ytterligere utvidelse av matrisen og filsystemet. Det første tilfellet vil gjelde utskifting av disker med samme MBR/MBR- eller GPT/GPT-partisjonering, det andre tilfellet gjelder utskifting av disker med MBR-partisjonering med disker med en kapasitet på mer enn 2 TB, som du må installere på en GPT-partisjon med en biosboot-partisjon. I begge tilfeller er diskene som vi overfører dataene til allerede installert på serveren. Filsystemet som brukes for rotpartisjonen er ext4.
Tilfelle 1: Bytte ut mindre disker med større disker (opptil 2 TB)
Mål: Bytt ut nåværende disker med større disker (opptil 2 TB) med informasjonsoverføring. I dette tilfellet har vi 2 x 240 GB SSD (RAID-1)-disker med systemet installert og 2 x 1 TB SATA-disker som systemet må overføres til.
La oss se på gjeldende diskoppsett.
[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
La oss sjekke filsystemplassen som brukes for øyeblikket.
[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
Størrelsen på filsystemet før utskifting av disker er 204 GB, det brukes 2 md126 programvarematriser, som er montert i /boot
и md127
, som brukes som fysisk volum for VG-gruppen vg0.
1. Fjerne diskpartisjoner fra arrays
Kontrollerer matrisens tilstand
[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>
Systemet bruker 2 arrays: md126
(monteringspunkt /boot
) - består av en seksjon /dev/sda1
и /dev/sdb1
, md127
(LVM for swap og roten til filsystemet) - består av /dev/sda2
и /dev/sdb2
.
Vi merker partisjonene til den første disken som brukes i hver array som dårlige.
mdadm /dev/md126 --fail /dev/sda1
mdadm /dev/md127 --fail /dev/sda2
Vi fjerner /dev/sda-blokkenhetspartisjonene fra arrayene.
mdadm /dev/md126 --remove /dev/sda1
mdadm /dev/md127 --remove /dev/sda2
Etter at vi har fjernet disken fra arrayet, vil blokkeringsenhetsinformasjonen se slik ut.
[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
Status for arrays etter fjerning av disker.
[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. Kopier partisjonstabellen til en ny disk
Du kan sjekke den brukte partisjonstabellen på disken med følgende kommando.
fdisk -l /dev/sdb | grep 'Disk label type'
Utgangen for MBR vil være:
Disk label type: dos
for GPT:
Disk label type: gpt
Kopierer partisjonstabellen for MBR:
sfdisk -d /dev/sdb | sfdisk /dev/sdc
I dette laget første disk er indikert с hvorav markeringen er kopiert, andre - hvor kopiere.
FORSIKTIG: For GPT første disk er indikert på hvilken kopier markering, andre disk indikerer disken hvorfra kopier markering. Hvis du blander opp diskene, vil den opprinnelig gode partisjonen bli overskrevet og ødelagt.
Kopiering av layouttabellen for GPT:
sgdisk -R /dev/sdс /dev/sdb
Deretter tilordner du en tilfeldig UUID til disken (for GPT).
sgdisk -G /dev/sdc
Etter at kommandoen er utført, skal partisjonene vises på disken /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
Hvis, etter at handlingen er utført, partisjonene i systemet på disken /dev/sdc
ikke bestemt, så utfører vi kommandoen for å lese partisjonstabellen på nytt.
sfdisk -R /dev/sdc
Hvis de nåværende diskene bruker MBR-tabellen og informasjonen må overføres til disker større enn 2 TB, må du på nye disker manuelt opprette en GPT-partisjon ved å bruke biosboot-partisjonen. Denne saken vil bli diskutert i del 2 av denne artikkelen.
3. Legge til partisjoner av den nye disken til matrisen
La oss legge til diskpartisjoner til de tilsvarende matrisene.
mdadm /dev/md126 --add /dev/sdc1
mdadm /dev/md127 --add /dev/sdc2
Vi sjekker at seksjonene er lagt til.
[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
Etter dette venter vi på at arrayene skal synkroniseres.
[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>
Du kan kontinuerlig overvåke synkroniseringsprosessen ved å bruke verktøyet watch
.
watch -n 2 cat /proc/mdstat
Parameter -n
angir med hvilke intervaller i sekunder kommandoen må utføres for å sjekke fremdriften.
Gjenta trinn 1 - 3 for neste erstatningsdisk.
Vi merker partisjonene til den andre disken som brukes i hver array som dårlige.
mdadm /dev/md126 --fail /dev/sdb1
mdadm /dev/md127 --fail /dev/sdb2
Fjerner blokkenhetspartisjoner /dev/sdb
fra arrays.
mdadm /dev/md126 --remove /dev/sdb1
mdadm /dev/md127 --remove /dev/sdb2
Etter at vi har fjernet disken fra arrayet, vil blokkeringsenhetsinformasjonen se slik ut.
[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
Status for arrays etter fjerning av disker.
[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>
Kopierer MBR-partisjonstabellen fra disken /dev/sdс
til disk /dev/sdd
.
sfdisk -d /dev/sdс | sfdisk /dev/sdd
Etter at kommandoen er utført, skal partisjonene vises på disken /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
Legge til diskpartisjoner til arrays.
mdadm /dev/md126 --add /dev/sdd1
mdadm /dev/md127 --add /dev/sdd2
Vi sjekker at seksjonene er lagt til.
[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]
Etter dette venter vi på at arrayene skal synkroniseres.
[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. Installere GRUB på nye stasjoner
For CentOS:
grub2-install /dev/sdX
Del Debian/Ubuntu:
grub-install /dev/sdX
der X
— bokstaven til blokkanordningen. I dette tilfellet må du installere GRUB på /dev/sdc
и /dev/sdd
.
6. Filsystemutvidelse (ext4) av rotpartisjonen
På nye disker /dev/sdc
и /dev/sdd
931.5 GB tilgjengelig. På grunn av det faktum at partisjonstabellen ble kopiert fra mindre disker, ble partisjonene /dev/sdc2
и /dev/sdd2
222.5 GB tilgjengelig.
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]
Det er nødvendig:
- Utvid partisjon 2 på hver av diskene,
- Utvid array md127,
- Utvid PV (fysisk volum),
- Utvid LV (logisk volum) vg0-root,
- Utvid filsystemet.
Bruke verktøyet skiltes la oss utvide delen /dev/sdc2
til maksimumsverdien. Utfør kommandoen parted /dev/sdc
(1) og se gjeldende partisjonstabell med kommandoen p
(2).
Som du kan se, ender slutten av partisjon 2 på 240 GB. La oss utvide partisjonen med kommandoen resizepart
2
, hvor 2 er nummeret på seksjon (3). Vi angir verdien i digitalt format, for eksempel 1000 GB, eller bruker indikasjonen på diskandelen - 100%. Vi sjekker igjen at partisjonen har den nye størrelsen (4).
Gjenta trinnene ovenfor for disken /dev/sdd
. Etter utvidelse av partisjoner /dev/sdc2
и /dev/sdd2
ble lik 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]
Etter dette utvider vi matrisen md127 maksimalt.
mdadm --grow /dev/md127 --size=max
Vi sjekker at matrisen har utvidet seg. Nå har størrelsen blitt 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]
Forlengelse av utvidelsen fysisk volum. Før vi utvider, la oss sjekke den nåværende tilstanden til 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 ]
Som det kan sees, PV /dev/md127
bruker 222.4 GB plass.
Vi utvider PV med følgende kommando.
pvresize /dev/md127
Kontrollerer resultatet av PV-utvidelse.
[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 ]
Utvider logisk volum. Før vi utvider, la oss sjekke den nåværende tilstanden til 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
bruker 206.41 GB.
Vi utvider LV med følgende kommando (2).
lvextend -l +100%FREE /dev/mapper/vg0-root
Vi sjekker den fullførte handlingen (3).
[root@localhost ~]# lvscan
ACTIVE '/dev/vg0/swap' [<16,00 GiB] inherit
ACTIVE '/dev/vg0/root' [<914,39 GiB] inherit
Som du kan se, etter utvidelse av LV, ble mengden okkupert diskplass 914.39 GB.
LV-volumet har økt (4), men filsystemet opptar fortsatt 204 GB (5).
1. La oss utvide filsystemet.
resize2fs /dev/mapper/vg0-root
Etter at kommandoen er utført, kontrollerer vi størrelsen på filsystemet.
[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
Størrelsen på rotfilsystemet vil øke til 900 GB. Etter å ha fullført trinnene, kan du fjerne de gamle diskene.
Tilfelle 2: Bytte ut mindre disker med større disker (mer enn 2 TB)
Oppgaven: Bytt ut de nåværende diskene med større disker (2 x 3TB) mens du beholder informasjonen. I dette tilfellet har vi 2 x 240 GB SSD (RAID-1)-disker med systemet installert og 2 x 3 TB SATA-disker som systemet må overføres til. Gjeldende disker bruker MBR-partisjonstabellen. Siden nye disker har en kapasitet større enn 2 TB, må de bruke en GPT-tabell, siden MBR ikke kan fungere med disker som er større enn 2 TB.
La oss se på gjeldende diskoppsett.
[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
La oss sjekke partisjonstabellen som brukes på disken /dev/sda
.
[root@localhost ~]# fdisk -l /dev/sda | grep 'Disk label type'
Disk label type: dos
På disk /dev/sdb
en lignende partisjonstabell brukes. La oss sjekke den brukte diskplassen på systemet.
[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
Som du kan se, tar roten til filsystemet opp 204 GB. La oss sjekke den nåværende tilstanden til programvare-RAID-arrayet.
1. Installere en GPT-partisjonstabell og diskpartisjonering
La oss sjekke diskoppsettet etter 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
På den nye 3TB-disken må vi lage 3 partisjoner:
- Seksjon
bios_grub
2MiB størrelse for GPT BIOS-kompatibilitet, - Partisjonen for RAID-arrayet som skal monteres i
/boot
. - Partisjonen for RAID-arrayet som det vil være LV rot и LV bytte.
Installere verktøyet skiltes team yum install -y parted
(for CentOS), apt install -y parted
(for Debian/Ubuntu).
Hjelp skiltes La oss kjøre følgende kommandoer for å partisjonere disken.
Utfør kommandoen parted /dev/sdc
og gå til redigeringsmodus for disklayout.
Lag en GPT-partisjonstabell.
(parted) mktable gpt
Opprett 1 seksjon bios_grub
seksjonen og sett et flagg for den.
(parted) mkpart primary 1MiB 3MiB
(parted) set 1 bios_grub on
Lag partisjon 2 og sett et flagg for den. Partisjonen vil bli brukt som en blokk for et RAID-array og montert i /boot
.
(parted) mkpart primary ext2 3MiB 1028MiB
(parted) set 2 boot on
Vi lager en tredje seksjon, som også vil bli brukt som en array-blokk der LVM vil bli plassert.
(parted) mkpart primary 1028MiB 100%
I dette tilfellet er det ikke nødvendig å sette flagget, men om nødvendig kan det settes med følgende kommando.
(parted) set 3 raid on
Vi sjekker den opprettede tabellen.
(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
Vi tildeler en ny tilfeldig GUID til disken.
sgdisk -G /dev/sdd
2. Fjerne partisjoner på den første disken fra arrays
Kontrollerer matrisens tilstand
[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>
Systemet bruker 2 arrays: md126 (mount point /boot) - består av /dev/sda1
и /dev/sdb1
, md127
(LVM for swap
og roten til filsystemet) - består av /dev/sda2
и /dev/sdb2
.
Vi merker partisjonene til den første disken som brukes i hver array som dårlige.
mdadm /dev/md126 --fail /dev/sda1
mdadm /dev/md127 --fail /dev/sda2
Fjerner blokkenhetspartisjoner /dev/sda
fra arrays.
mdadm /dev/md126 --remove /dev/sda1
mdadm /dev/md127 --remove /dev/sda2
Kontrollerer statusen til arrayet etter fjerning av disken.
[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. Legge til partisjoner av den nye disken til matrisen
Det neste trinnet er å legge til partisjoner av den nye disken til arrayene for synkronisering. La oss se på den nåværende tilstanden til diskoppsett.
[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
Seksjon /dev/sdc1
er bios_grub
seksjonen og er ikke involvert i opprettelsen av arrays. Arrayene vil bare bruke /dev/sdc2
и /dev/sdc3
. Vi legger til disse seksjonene til de tilsvarende matrisene.
mdadm /dev/md126 --add /dev/sdc2
mdadm /dev/md127 --add /dev/sdc3
Deretter venter vi på at matrisen skal synkroniseres.
[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>
Diskoppsett etter å ha lagt til partisjoner i arrayet.
[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. Fjerning av partisjoner på den andre disken fra arrays
Vi merker partisjonene til den andre disken som brukes i hver array som dårlige.
mdadm /dev/md126 --fail /dev/sdb1
mdadm /dev/md127 --fail /dev/sdb2
Fjerner blokkenhetspartisjoner /dev/sda
fra arrays.
mdadm /dev/md126 --remove /dev/sdb1
mdadm /dev/md127 --remove /dev/sdb2
5. Kopier GPT-layouttabellen og synkroniser matrisen
For å kopiere GPT-markeringstabellen bruker vi verktøyet sgdisk
, som er inkludert i pakken for arbeid med diskpartisjoner og en GPT-tabell - gdisk
.
Installasjon gdisk
for CentOS:
yum install -y gdisk
Installasjon gdisk
for Debian/Ubuntu:
apt install -y gdisk
FORSIKTIG: For GPT første disk er indikert på hvilken kopier markeringen, andre disk indikerer disken hvorfra kopier markeringen. Hvis du blander opp diskene, vil den opprinnelig gode partisjonen bli overskrevet og ødelagt.
Kopier GPT-markeringstabellen.
sgdisk -R /dev/sdd /dev/sdc
Diskpartisjonering etter overføring av en tabell til 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
Deretter legger vi til hver av partisjonene som deltar i programvare RAID-matriser.
mdadm /dev/md126 --add /dev/sdd2
mdadm /dev/md127 --add /dev/sdd3
Vi venter på at matrisen skal synkroniseres.
[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>
Etter å ha kopiert GPT-partisjonen til den andre nye disken, vil partisjonen se slik ut.
[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]
Deretter installerer du GRUB på de nye diskene.
Installasjon for CentOS:
grub2-install /dev/sdX
Installasjon for Debian/Ubuntu:
grub-install /dev/sdX
der X
— stasjonsbokstav, i vårt tilfelle stasjoner /dev/sdc
и /dev/sdd
.
Vi oppdaterer informasjon om arrayet.
For CentOS:
mdadm --detail --scan --verbose > /etc/mdadm.conf
Del Debian/Ubuntu:
echo "DEVICE partitions" > /etc/mdadm/mdadm.conf
mdadm --detail --scan --verbose | awk '/ARRAY/ {print}' >> /etc/mdadm/mdadm.conf
Oppdaterer bildet initrd
:
For CentOS:
dracut -f -v --regenerate-all
Del Debian/Ubuntu:
update-initramfs -u -k all
Vi oppdaterer GRUB-konfigurasjonen.
For CentOS:
grub2-mkconfig -o /boot/grub2/grub.cfg
Del Debian/Ubuntu:
update-grub
Etter å ha fullført trinnene, kan de gamle diskene fjernes.
6. Filsystemutvidelse (ext4) av rotpartisjonen
Diskpartisjonering før filsystemutvidelse etter migrering av systemet til 2 x 3TB disker (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]
Nå seksjoner /dev/sdc3
и /dev/sdd3
opptar 2.7 TB. Siden vi opprettet et nytt diskoppsett med en GPT-tabell, ble størrelsen på partisjon 3 umiddelbart satt til maksimalt mulig diskplass; i dette tilfellet er det ikke nødvendig å utvide partisjonen.
Det er nødvendig:
- Utvid array md126,
- Utvid PV (fysisk volum),
- Utvid LV (logisk volum) vg0-root,
- Utvid filsystemet.
1. Utvid matrisen md126
maksimalt.
mdadm --grow /dev/md126 --size=max
Etter utvidelse av array md126
størrelsen på den okkuperte plassen har økt til 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]
Utvider fysisk volum.
Før du utvider, kontroller gjeldende verdi for den okkuperte plassen PV /dev/md126
.
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/md126 vg0 lvm2 a-- 222,40g 0
Vi utvider PV med følgende kommando.
pvresize /dev/md126
Vi sjekker den fullførte handlingen.
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/md126 vg0 lvm2 a-- <2,73t 2,51t
Utvider logisk volum vg0-root.
Etter å ha utvidet PV, la oss sjekke den okkuperte plassen VG.
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg0 1 2 0 wz--n- <2,73t 2,51t
La oss sjekke plassen som er okkupert av 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-rotvolumet opptar 206.41 GB.
Vi utvider LV til maksimal diskplass.
lvextend -l +100%FREE /dev/mapper/vg0-root
Kontrollerer LV-plassen etter utvidelse.
[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
Utvide filsystemet (ext4).
La oss sjekke gjeldende størrelse på filsystemet.
[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
Volumet /dev/mapper/vg0-root opptar 204 GB etter LV-utvidelse.
Utvide filsystemet.
resize2fs /dev/mapper/vg0-root
Kontrollerer størrelsen på filsystemet etter å ha utvidet det.
[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
Filsystemstørrelsen er økt for å dekke hele volumet.
Kilde: www.habr.com