Hej alle. Foran starten af den nye kursusgruppe offentliggør vi nyttigt materiale skrevet af vores studerende, samt en mentor pĂĽ kurserne, en specialist i teknisk support af virksomhedens produkter REG.RU â Roman Travin.
I denne artikel vil vi se pü to tilfÌlde af udskiftning af drev og overførsel af data til nye, større drev med derefter udvidelse af RAID-arrayet og filsystemet. Det første tilfÌlde vil omhandle udskiftning af drev med den samme partitionering MBR/MBR eller GPT/GPT, det andet tilfÌlde vedrører udskiftning af drev med MBR-partitionering til drev med over 2 TB, hvor det er nødvendigt at anvende GPT-partitionering med en biosboot-partition. I begge tilfÌlde er de drev, som dataene overføres til, allerede installeret i server. Filssystemet, der bruges til rodpartitionen, er ext4.
Sag 1: Udskiftning af mindre kapacitetsdrev med større kapacitetsdrev (op til 2TB)
Opgave: Udskift nuvÌrende drev med større kapacitetsdrev (op til 2 TB) med overførsel af data. I dette tilfÌlde har vi drev 2 x 240 GB SSD (RAID-1) med installeret system og drev 2 x 1 TB SATA, hvortil systemet skal overføres.
Lad os se pĂĽ den nuvĂŚrende diskpartitionering.
[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 Lad os tjekke det nuvĂŚrende brugte plads pĂĽ filsystemet.
[root@localhost ~]# df -h
Filsystem Størrelse Brugt Dato Brug% Cmnt
/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 af filsystemet før udskiftning af drevene er 204 GB, der bruges 2 software-RAID-arrays md126, som er monteret i /boot og md127, som bruges som fysisk volumen til VG-gruppen vg0.
1. Fjernelse af diskpartitioner fra arrayene
Kontrollerer status for arrayet
[root@localhost ~]# cat /proc/mdstat
Personligheder : [raid1]
md126 : aktiv raid1 sda1[0] sdb1[1]
1047552 blokke super 1.2 [2/2] [UU]
bitmap: 0/1 sider [0KB], 65536KB chunk
md127 : aktiv raid1 sda2[0] sdb2[1]
233206784 blokke super 1.2 [2/2] [UU]
bitmap: 0/2 sider [0KB], 65536KB chunk
ubrugte enheder: Systemet bruger 2 arrays: md126 (monteringspunkt /boot) â bestĂĽr af partitionen /dev/sda1 og /dev/sdb1, md127 (LVM til swap og rodfilen) â bestĂĽr af /dev/sda2 og /dev/sdb2.
Markerer partitionerne fra den første disk, der bruges i hvert array, som fejlede.
mdadm /dev/md126 --fail /dev/sda1
mdadm /dev/md127 --fail /dev/sda2
Fjerner partitionerne fra bloco enheden /dev/sda fra arrays.
mdadm /dev/md126 --remove /dev/sda1
mdadm /dev/md127 --remove /dev/sda2NĂĽr vi har fjernet disken fra arrayet, vil oplysningerne om bloco enhederne se sĂĽledes ud.
[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 efter fjernelse af diske.
[root@localhost ~]# cat /proc/mdstat
Personligheder : [raid1]
md126 : aktiv raid1 sdb1[1]
1047552 blokke super 1.2 [2/1] [_U]
bitmap: 0/1 sider [0KB], 65536KB chunk
md127 : aktiv raid1 sdb2[1]
233206784 blokke super 1.2 [2/1] [_U]
bitmap: 1/2 sider [4KB], 65536KB chunk
ubrugte enheder:2. Kopiering af partitionstabel til en ny disk
Den brugte partitionstabel pü disken kan kontrolleres med følgende kommando.
fdisk -l /dev/sdb | grep 'Disk label type'
Resultatet for MBR vil vĂŚre:
Disk label type: dosfor GPT:
Disk label type: gpt Kopiering af partitionstabel for MBR:
sfdisk -d /dev/sdb | sfdisk /dev/sdcI denne kommando anges først disken med hvis partitioneringen kopieres, for det andet â hvor at kopiere.
ADVARSEL: For GPT anges først disken hvor partitioneringen kopieres, angives den anden disk som disken hvorfra partitioneringen kopieres. Hvis diske swaps, vil den oprindeligt korrekt partitionering blive overskrevet og ødelagt.
Kopiering af partitionstabel for GPT:
sgdisk -R /dev/sdc /dev/sdbTildel derefter disken et tilfĂŚldigt UUID (for GPT).
sgdisk -G /dev/sdc Efter udførelsen af kommandoen skal partitionerne 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 partitionerne pü disken ikke er blevet identificeret efter den udførte handling, /dev/sdc skal vi køre kommandoen for at genlÌse partitionslisten.
sfdisk -R /dev/sdcHvis der bruges en MBR-partitionstabel pü de nuvÌrende diske, og oplysningerne skal overføres til diske, der er større end 2 TB, skal der manuelt oprettes en GPT-format pü de nye diske med biosboot-partitionen. Denne situation vil blive behandlet i del 2 af denne artikel.
3. Tilføjelse af partitioner fra den nye disk til arrayet
Vi tilføjer partitionerne pü disken til de relevante arrays.
mdadm /dev/md126 --add /dev/sdc1
mdadm /dev/md127 --add /dev/sdc2Vi kontrollerer, at partitionerne er blevet tilføjet.
[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 Herefter venter vi pĂĽ, at arraysene synkroniseres.
[root@localhost ~]# cat /proc/mdstat
Personalities : [raid1]
md126 : aktiv raid1 sdc1[2] sdb1[1]
1047552 blocks super 1.2 [2/2] [UU]
bitmap: 0/1 sider [0KB], 65536KB chunk
md127 : aktiv 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 sider [8KB], 65536KB chunk
unused devices: Man kan kontinuerligt overvüge synkroniseringsprocessen ved hjÌlp af vÌrktøjet watch.
watch -n 2 cat /proc/mdstat Parameter -n angiver intervallet i sekunder, som kommandoen skal udføres for at kontrollere fremdriften.
Gentag punkterne 1-3 for den nĂŚste disk, der skal skiftes.
MarkĂŠr partitionerne pĂĽ den anden disk, som bruges i hvert array, som fejlede.
mdadm /dev/md126 --fail /dev/sdb1
mdadm /dev/md127 --fail /dev/sdb2
Fjern partitionerne fra blokenheden /dev/sdb fra matriser.
mdadm /dev/md126 --remove /dev/sdb1
mdadm /dev/md127 --remove /dev/sdb2NĂĽr vi har fjernet disken fra arrayet, vil oplysningerne om bloco enhederne se sĂĽledes ud.
[root@localhost ~]# lsblk
NAME MAJ:MIN RM STĂRRELSE 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 efter fjernelse af diske.
[root@localhost ~]# cat /proc/mdstat
Personligheder : [raid1]
md126 : aktiv raid1 sdc1[2]
1047552 blocks super 1.2 [2/1] [U_]
bitmap: 0/1 sider [0KB], 65536KB chunk
md127 : aktiv raid1 sdc2[2]
233206784 blocks super 1.2 [2/1] [U_]
bitmap: 1/2 sider [4KB], 65536KB chunk
ubrugte enheder: Vi kopierer MBR-partitionstabel fra disk /dev/sdŃ til disk /dev/sdd.
sfdisk -d /dev/sdc | sfdisk /dev/sdd Efter udførelsen af kommandoen skal partitionerne vises pü disken /dev/sdd.
[root@localhost ~]# lsblk
NAME MAJ:MIN RM STĂRRELSE 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 Vi tilføjer diskpartitioner til matriser.
mdadm /dev/md126 --add /dev/sdd1
mdadm /dev/md127 --add /dev/sdd2Vi kontrollerer, at partitionerne er blevet tilføjet.
[root@localhost ~]# lsblk
NAME MAJ:MIN RM STĂRRELSE 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]Herefter venter vi pĂĽ, at arraysene synkroniseres.
[root@localhost ~]# cat /proc/mdstat
Personligheder : [raid1]
md126 : aktiv raid1 sdd1[3] sdc1[2]
1047552 blocks super 1.2 [2/2] [UU]
bitmap: 0/1 sider [0KB], 65536KB chunk
md127 : aktiv raid1 sdd2[3] sdc2[2]
233206784 blocks super 1.2 [2/1] [U_]
[>....................] genopretning = 0.5% (1200000/233206784) fĂŚrdig=35.4min hastighed=109090K/sek
bitmap: 2/2 sider [8KB], 65536KB chunk
ubrugte enheder:
5. Installation af GRUB pĂĽ nye diske
For CentOS:
grub2-install /dev/sdXFor Debian/Ubuntu:
grub-install /dev/sdX hvor X â bogstavet for blokkens enhed. Her skal GRUB installeres pĂĽ /dev/sdc og /dev/sdd.
6. Udvidelse af filsystemet (ext4) pĂĽ rodpartitionen
PĂĽ de nye diske /dev/sdc og /dev/sdd er der tilgĂŚngelige 931,5 GB. Da partitionstabellen er kopieret fra diske med mindre kapacitet, er der pĂĽ partitionerne /dev/sdc2 og /dev/sdd2 tilgĂŚngelige 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]Nødvendigt:
- Udvid partition 2 pĂĽ hver af diskerne,
- Udvid arrayet md127,
- Udvid PV (physical volume),
- Udvid LV (logical-volume) vg0-root,
- Udvid filsystemet.
Ved at bruge vÌrktøjet parted udvider vi partitionen /dev/sdc2 til maximum. Kør kommandoen parted /dev/sdc (1) og vis den aktuelle partitionsoversigt med kommandoen p (2).

Som det fremgür, slutter slutningen af partition 2 pü 240 GB. Vi udfører udvidelsen af partitionen med kommandoen resizepart 2, hvor 2 er partitionens nummer (3). Angiv vÌrdien i numerisk format, f.eks. 1000 GB, eller brug en andel af disken - 100%. Tjek igen, at partitionen har den nye størrelse (4).
Gentag ovenstĂĽende trin for disken /dev/sdd. Efter udvidelsen blev partitionerne /dev/sdc2 og /dev/sdd2 lige med 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]Derefter udfører vi udvidelsen af arrayet md127 til maksimum.
mdadm --grow /dev/md127 --size=maxTjek, at arrayet er blevet udvidet. Nu er størrelsen blevet 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]Vi udfører en udvidelse fysisk volumen. Før udvidelsen kontrollerer vi den aktuelle tilstand af 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 ses, /dev/md127 bruger PV 222,4 GB plads.
Vi udvider PV med følgende kommando.
pvresize /dev/md127Vi tjekker resultatet af PV-udvidelsen.
[
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 ]Vi udvider logisk volumen. Før udvidelsen kontrollerer vi den aktuelle tilstand af 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 bruger 206,41 GB.
Vi udvider LV med følgende kommando (2).
lvextend -l +100%FREE /dev/mapper/vg0-rootVi tjekker den udførte handling (3).
[root@localhost ~]# lvscan
ACTIVE '/dev/vg0/swap' [<16,00 GiB] inherit
ACTIVE '/dev/vg0/root' [<914,39 GiB] inherit
Som vi kan se, efter udvidelsen er størrelsen pü det optagne diskplads steget til 914,39 GB.

Størrelsen af LV er forøget (4), men filsystemet bruger stadig 204 GB (5).
1. Lad os udvide filsystemet.
resize2fs /dev/mapper/vg0-rootVi tjekker størrelsen af filsystemet efter udførelsen af kommandoen.
[root@localhost ~]# df -h
Filsystem Størrelse Anvendt Dost Anvendt% Cmt
/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/0Størrelsen af rodfilsystemet vil stige til 900 GB. Efter de udførte handlinger kan de gamle diske uddrages.
Case 2: Udskiftning af diske med mindre kapacitet til diske med større kapacitet (mere end 2TB)
Opgave: Erstat de nuvÌrende diske med større diske (2 x 3TB) med bevarelse af oplysninger. I dette tilfÌlde har vi diske 2 x 240 GB SSD (RAID-1) med det installerede system og diske 2 x 3 TB SATA, som systemet skal flyttes til. De nuvÌrende diske bruger MBR-partitionstabel. Da de nye diske har en kapacitet over 2 TB, skal der bruges en GPT-tabel, da MBR ikke kan arbejde med diske større end 2 TB.
Lad os se pĂĽ den nuvĂŚrende diskopdeling.
[root@localhost ~]# lsblk
NAME MAJ:MIN RM STĂRRELSE 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 Lad os kontrollere den anvendte partitionstabel pĂĽ disken. /dev/sda.
[root@localhost ~]# fdisk -l /dev/sda | grep 'Disk label type'
Disk label type: dos PĂĽ disken /dev/sdb bruges en tilsvarende partitionstabel. Lad os kontrollere den anvendte diskplads i systemet.
[root@localhost ~]# df -h
Filsystem Størrelse Bruges Døbt Brugt% Monteret i
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/0Som synligt, tager rodmappen i filsystemet 204 GB. Lad os kontrollere den aktuelle tilstand af det softwarebaserede RAID-array.
1. Installation af GPT-partitionstabeller og opdeling af disk.
Lad os tjekke diskopdelingen i sektioner.
[root@localhost ~]# parted /dev/sda print
Model: ATA KINGSTON SVP200S (scsi)
Disk /dev/sda: 240GB
Sektorstørrelse (logisk/fysisk): 512B/512B
Partitionstabel: msdos
Disk Flags:
Nummer Start Slut Størrelse Type Filsystem Flags
1 1049kB 1076MB 1075MB primary bootable, raid
2 1076MB 240GB 239GB primary raid
PĂĽ den nye 3TB disk skal vi oprette 3 partitioner:
- Partition
bios_grubstørrelse 2MiB for kompatibilitet mellem GPT og BIOS, - Partition til RAID-arrayet, som vil blive monteret i
/boot. - Partition til RAID-arrayet, hvorpĂĽ der vil vĂŚre LV root og LV swap.
Installerer vÌrktøjet parted med kommandoen yum install -y parted (til CentOS), apt install -y parted (til Debian/Ubuntu).
Ved at bruge parted vi udfører følgende kommandoer for at partitionere disken.
Kør kommandoen parted /dev/sdc og gür ind i redigeringstilstand for partitionstabel.
Vi opretter GPT partitionstabel.
(parted) mktable gpt Vi opretter 1 partition bios_grub partition og sĂŚtter flag for den.
(parted) mkpart primary 1MiB 3MiB
(parted) set 1 bios_grub on Vi opretter 2 partition og sĂŚtter flag for den. Partitionen vil blive brugt som blok til RAID-array og monteres i /boot.
(parted) mkpart primary ext2 3MiB 1028MiB
(parted) set 2 boot onVi opretter 3 partition, som ogsĂĽ vil blive brugt som blok i arrayet, hvor LVM vil vĂŚre.
(parted) mkpart primary 1028MiB 100% I dette tilfÌlde er det ikke nødvendigt at sÌtte flaget, men hvis det er nødvendigt, kan det sÌttes med følgende kommando.
(parted) set 3 raid onVi kontrollerer den oprettede tabel.
(parted) p
Model: ATA TOSHIBA DT01ACA3 (scsi)
Disk /dev/sdc: 3001GB
Sektorstørrelse (logisk/fysisk): 512B/4096B
Partitionstabel: gpt
Diskflags:
Nummer Start Slut Størrelse Filsystem Navn Flag
1 1049kB 3146kB 2097kB primary bios_grub
2 3146kB 1077MB 1074MB primary boot
3 1077MB 3001GB 3000GB primary
Tildel disken et nyt tilfĂŚldigt GUID.
sgdisk -G /dev/sdd
2. Sletning af partitionerne fra den første disk i arrayene
Kontrollerer status for arrayet
[root@localhost ~]# cat /proc/mdstat
Personligheder : [raid1]
md126 : aktiv raid1 sda1[0] sdb1[1]
1047552 blokke super 1.2 [2/2] [UU]
bitmap: 0/1 sider [0KB], 65536KB chunk
md127 : aktiv raid1 sda2[0] sdb2[1]
233206784 blokke super 1.2 [2/2] [UU]
bitmap: 0/2 sider [0KB], 65536KB chunk
ubrugte enheder: Der er 2 arrays i systemet: md126 (monteringspunkt /boot) â bestĂĽr af /dev/sda1 og /dev/sdb1, md127 (LVM til swap og rodfilen) â bestĂĽr af /dev/sda2 og /dev/sdb2.
Markerer partitionerne fra den første disk, der bruges i hvert array, som fejlede.
mdadm /dev/md126 --fail /dev/sda1
mdadm /dev/md127 --fail /dev/sda2 Fjern partitionerne fra blokenheden /dev/sda fra matriser.
mdadm /dev/md126 --remove /dev/sda1
mdadm /dev/md127 --remove /dev/sda2
Vi kontrollerer status for arrayet efter sletning af disken.
[root@localhost ~]# cat /proc/mdstat
Personaliteter: [raid1]
md126: aktiv raid1 sdb1[1]
1047552 blokke super 1.2 [2/1] [_U]
bitmap: 0/1 sider [0KB], 65536KB chunk
md127: aktiv raid1 sdb2[1]
233206784 blokke super 1.2 [2/1] [_U]
bitmap: 2/2 sider [8KB], 65536KB chunk
unused devices:
3. Tilføjelse af partitioner fra den nye disk til arrayet
Det nÌste skridt er at tilføje partitionerne fra den nye disk til arrayene for synkronisering. Lad os se den nuvÌrende tilstand af diskpartitionerne.
[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 Partition /dev/sdc1 Baggrunden indeholder tekstur af siden og illustrationer, og dens opløsning er lavere end maskens. Baggrunden gemmes tabsløst for opfattelse med en opløsning pü 100 dpi. bios_grub partition og deltager ikke i oprettelsen af arrays. I arrays vil kun /dev/sdc2 og /dev/sdc3tilføjes disse partitioner til de tilsvarende arrays.
mdadm /dev/md126 --add /dev/sdc2
mdadm /dev/md127 --add /dev/sdc3Efterfølgende venter vi pü synkroniseringen af arrayet.
[root@localhost ~]# cat /proc/mdstat
Personligheder : [raid1]
md126 : aktiv raid1 sdc2[2] sdb1[1]
1047552 blokke super 1.2 [2/2] [UU]
bitmap: 0/1 sider [0KB], 65536KB chunk
md127 : aktiv raid1 sdc3[2] sdb2[1]
233206784 blokke super 1.2 [2/1] [_U]
[>....................] genopretning = 0.2% (619904/233206784) fĂŚrdig=31.2min hastighed=123980K/sek
bitmap: 2/2 sider [8KB], 65536KB chunk
ubrugte enheder:Diskenes opdeling efter tilføjelse af partitioner til arrayet.
[root@localhost ~]# lsblk
NAVN MAJ:MIN RM STĂRRELSE RO TYPE MONTERINGSSTED
sda 8:0 0 223,6G 0 disk
ââsda1 8:1 0 1G 0 del
ââsda2 8:2 0 222,5G 0 del
sdb 8:16 0 223,6G 0 disk
ââsdb1 8:17 0 1G 0 del
â ââmd126 9:126 0 1023M 0 raid1 /boot
ââsdb2 8:18 0 222,5G 0 del
ââ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 del
ââsdc2 8:34 0 1G 0 del
â ââmd126 9:126 0 1023M 0 raid1 /boot
ââsdc3 8:35 0 2,7T 0 del
ââ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. Fjernelse af partitioner fra den anden disk fra arrays
MarkĂŠr partitionerne pĂĽ den anden disk, som bruges i hvert array, som fejlede.
mdadm /dev/md126 --fail /dev/sdb1
mdadm /dev/md127 --fail /dev/sdb2
Fjern partitionerne fra blokenheden /dev/sda fra matriser.
mdadm /dev/md126 --remove /dev/sdb1
mdadm /dev/md127 --remove /dev/sdb2
5. Vi kopierer GPT-partitionstabel og synkroniserer arrayet
Til at kopiere GPT-partitionstabellen bruger vi vĂŚrktøjet sgdisk, som er en del af pakken til hĂĽndtering af diskpartitioner og GPT-tabel â gdisk.
Installation gdisk til CentOS:
yum install -y gdisk Installation gdisk til Debian/Ubuntu:
apt install -y gdiskADVARSEL: For GPT anges først disken hvor vi kopierer opdelingen, angives den anden disk som disken hvorfra de kopierer opdelingen. Hvis diskene forveksles, vil den oprindeligt korrekte opdeling blive overskrevet og ødelagt.
Vi kopierer GPT-partitionstabellen.
sgdisk -R /dev/sdd /dev/sdc Diskenes opdeling efter overførsel af tabellen til disken /dev/sdd.
[root@localhost ~]# lsblk
NAVN MAJ:MIN RM STĂRRELSE RO TYPE MONTERINGSSTED
sda 8:0 0 223,6G 0 disk
ââsda1 8:1 0 1G 0 del
ââsda2 8:2 0 222,5G 0 del
sdb 8:16 0 223,6G 0 disk
ââsdb1 8:17 0 1G 0 del
ââsdb2 8:18 0 222,5G 0 del
sdc 8:32 0 2,7T 0 disk
ââsdc1 8:33 0 2M 0 del
ââsdc2 8:34 0 1G 0 del
â ââmd126 9:126 0 1023M 0 raid1 /boot
ââsdc3 8:35 0 2,7T 0 del
ââ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 del
ââsdd2 8:50 0 1G 0 del
ââsdd3 8:51 0 2,7T 0 del Herefter tilføjer vi hver af partitionerne, der deltager i software RAID-arrays.
mdadm /dev/md126 --add /dev/sdd2
mdadm /dev/md127 --add /dev/sdd3Vi venter pĂĽ synkronisering af arrayet.
[root@localhost ~]# cat /proc/mdstat
Personligheder : [raid1]
md126 : aktiv raid1 sdd2[3] sdc2[2]
1047552 blokke super 1.2 [2/2] [UU]
bitmap: 1/1 sider [4KB], 65536KB chunk
md127 : aktiv raid1 sdd3[3] sdc3[2]
233206784 blokke super 1.2 [2/1] [U_]
[>....................] genoprettelse = 0.0% (148224/233206784) fĂŚrdig=26.2min hastighed=148224K/sek
bitmap: 2/2 sider [8KB], 65536KB chunk
unused devices:Efter kopiering af GPT-partitioneringen til den anden nye disk, vil partitioneringen se sĂĽledes ud.
[root@localhost ~]# lsblk
NAVN MAJ:MIN RM STĂRRELSE 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]Vi installerer GRUB pĂĽ de nye diske.
Installation til CentOS:
grub2-install /dev/sdXInstallation til Debian/Ubuntu:
grub-install /dev/sdX hvor X â diskkens bogstav, i vores tilfĂŚlde diskene /dev/sdc og /dev/sdd.
Vi opdaterer informationen om arrayet.
For CentOS:
mdadm --detail --scan --verbose > /etc/mdadm.confFor Debian/Ubuntu:
echo "DEVICE partitioner" > /etc/mdadm/mdadm.conf
mdadm --detail --scan --verbose | awk '/ARRAY/ {print}' >> /etc/mdadm/mdadm.conf Vi opdaterer billedet initrd:
For CentOS:
dracut -f -v --regenerate-allFor Debian/Ubuntu:
update-initramfs -u -k allVi opdaterer GRUB-konfigurationen.
For CentOS:
grub2-mkconfig -o /boot/grub2/grub.cfg
For Debian/Ubuntu:
update-grubEfter de udførte handlinger kan de gamle diske fjernes.
6. Udvidelse af filsystemet (ext4) pĂĽ rodpartitionen
Partitioneringen af diskene før udvidelsen af filsystemet efter overførslen til diskene 2 x 3TB (RAID-1).
[root@localhost ~]# lsblk
NAVN MAJ:MIN RM STĂRRELSE 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] Nu partitionerne /dev/sdc3 og /dev/sdd3 de optager 2,7 TB. Da vi oprettede en ny diskarrangement med GPT-tabellen, blev størrelsen pĂĽ 3 partitioner straks indstillet til den maksimalt mulige diskplads, sĂĽ opgradering af partitionen er ikke nødvendig i dette tilfĂŚlde.
Nødvendigt:
- Udvid md126-arrayet,
- Udvid PV (physical volume),
- Udvid LV (logical-volume) vg0-root,
- Udvid filsystemet.
1. Vi udvider arrayet md126 til maksimum.
mdadm --grow /dev/md126 --size=max
Efter udvidelsen af arrayet md126 øges den optagne plads 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]
Vi udvider fysisk volumen.
Før udvidelsen tjekker vi den aktuelle vÌrdi for optaget plads PV /dev/md126.
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/md126 vg0 lvm2 a-- 222,40g 0 Vi udvider PV med følgende kommando.
pvresize /dev/md126
Vi tjekker den udførte handling.
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/md126 vg0 lvm2 a-- <2,73t 2,51tVi udvider logisk volumen vg0-root.
Efter udvidelsen af PV tjekker vi den optagne plads i VG.
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg0 1 2 0 wz--n- <2,73t 2,51tVi tjekker den optagne LV-plads.
[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 Volumen vg0-root optager 206,41 GB.
Vi udvider LV til den maksimale diskplads.
lvextend -l +100%FREE /dev/mapper/vg0-root Vi tjekker LV-pladsen efter udvidelsen.
[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,00gVi udvider filsystemet (ext4).
Vi tjekker den nuvÌrende størrelse pü filsystemet.
[root@localhost ~]# df -h
Filsystem Størrelse Anvendt Dost Anvendt% Montering i
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/0Volumen /dev/mapper/vg0-root optager 204 GB efter udvidelsen af LV.
Vi udvider filsystemet.
resize2fs /dev/mapper/vg0-root
Vi kontrollerer størrelsen pü filsystemet efter dets udvidelse.
[root@localhost ~]# df -h
Filsystem Størrelse Brug Benyttet % Benyttet Monteret i
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 Størrelsen pü filsystemet er steget til hele volumen.
Kilde: habr.com
