Hallo allemaal. Ter voorbereiding op de start van een nieuwe cursusgroep publiceren we nuttig materiaal, geschreven door onze student en begeleider in de cursussen, specialist in technische ondersteuning van de zakelijke producten van REG.RU – Roman Travyin.
In dit artikel zullen we twee gevallen van het vervangen van schijven en het overbrengen van informatie naar nieuwe grotere schijven met verdere uitbreiding van de array en het bestandssysteem bespreken. Het eerste geval betreft het vervangen van schijven met een identieke indeling MBR/MBR of GPT/GPT, het tweede geval betreft het vervangen van schijven met een indeling MBR door schijven van meer dan 2 TB, waarvoor de GPT-indeling met een biosboot-partitie moet worden ingesteld. In beide gevallen zijn de schijven waarop we de gegevens overbrengen al geïnstalleerd in server. Het bestandssysteem dat voor de hoofddirectory wordt gebruikt, is ext4.
Geval 1: Vervangen van kleinere schijven door grotere schijven (tot 2TB)
Taak: Vervang de huidige schijven door grotere schijven (tot 2 TB) met het overbrengen van de informatie. In dit geval hebben we schijven 2 x 240 GB SSD (RAID-1) met een geïnstalleerd systeem en schijven 2 x 1 TB SATA, waarop het systeem moet worden overgebracht.
Laten we de huidige schijfindeling bekijken.
[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 Laten we de gebruikte schijfruimte op dit moment controleren.
[root@localhost ~]# df -h
Bestandssysteem Grootte In gebruik Beschikbaar Gebruik% Aangemount op
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 De grootte van het bestandssysteem voordat de schijven worden vervangen bedraagt 204 GB, er worden 2 software-RAID's md126 gebruikt, die zijn gemonteerd in /boot en md127, dat wordt gebruikt als fysiek volume voor de VG-groep vg0.
1. Verwijderen van schijfpartities uit arrays
Controleer de status van de array
[root@localhost ~]# cat /proc/mdstat
Personen: [raid1]
md126 : actieve raid1 sda1[0] sdb1[1]
1047552 blocks super 1.2 [2/2] [UU]
bitmap: 0/1 pagina's [0KB], 65536KB chunk
md127 : actieve raid1 sda2[0] sdb2[1]
233206784 blocks super 1.2 [2/2] [UU]
bitmap: 0/2 pagina's [0KB], 65536KB chunk
ongebruikte apparaten: Er worden 2 arrays in het systeem gebruikt: md126 (mountpoint /boot) - bestaat uit partition /dev/sda1 en /dev/sdb1, md127 (LVM voor swap en de root van het bestandssysteem) - bestaat uit /dev/sda2 en /dev/sdb2.
Markeer de partities van de eerste schijf die in elk array worden gebruikt als kapot.
mdadm /dev/md126 --fail /dev/sda1
mdadm /dev/md127 --fail /dev/sda2
Verwijder de partities van het blokapparaat /dev/sda uit de arrays.
mdadm /dev/md126 --remove /dev/sda1
mdadm /dev/md127 --remove /dev/sda2Nadat we de schijf uit de array hebben verwijderd, zal de informatie over de blokapparaten er als volgt uitzien.
[root@localhost ~]# lsblk
NAAM MAJ:MIN RM GROTE RO TYPE AANSLUITPUNT
sda 8:0 0 223,6G 0 schijf
├─sda1 8:1 0 1G 0 deel
└─sda2 8:2 0 222,5G 0 deel
sdb 8:16 0 223,6G 0 schijf
├─sdb1 8:17 0 1G 0 deel
│ └─md126 9:126 0 1023M 0 raid1 /boot
└─sdb2 8:18 0 222,5G 0 deel
└─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 schijf
sdd 8:48 0 931,5G 0 schijf De status van de arrays na het verwijderen van schijven.
[root@localhost ~]# cat /proc/mdstat
Personen: [raid1]
md126 : actieve raid1 sdb1[1]
1047552 blocks super 1.2 [2/1] [_U]
bitmap: 0/1 pagina's [0KB], 65536KB chunk
md127 : actieve raid1 sdb2[1]
233206784 blocks super 1.2 [2/1] [_U]
bitmap: 1/2 pagina's [4KB], 65536KB chunk
ongebruikte apparaten:2. Kopiëren van de partitie-tabel naar een nieuwe schijf
De gebruikte partitie-tabel op de schijf kan worden gecontroleerd met het volgende commando.
fdisk -l /dev/sdb | grep 'Disk label type'
De output voor MBR zal zijn:
Disk label type: dosvoor GPT:
Disk label type: gpt Kopiëren van de partitie-indeling voor MBR:
sfdisk -d /dev/sdb | sfdisk /dev/sdcIn dit commando de eerste specificeert de schijf met waarvan de indeling wordt gekopieerd, de tweede - waar deze moet worden gekopieerd.
LET OP: Voor GPT de eerste specificeert de schijf waarop de indeling moet worden gekopieerd, de tweede schijf specificeert de schijf waarvan de indeling moet worden gekopieerd. Als de schijven verwisseld worden, zal de oorspronkelijk correcte indeling worden overschreven en vernietigd. Kopiëren van de partitie-indeling voor GPT:
sgdisk -R /dev/sdc /dev/sdb
Vervolgens wijzen we de schijf een willekeurige UUID toe (voor GPT).sgdisk -G /dev/sdc
Na het uitvoeren van het commando moeten de partities op de schijf verschijnen. Na de uitgevoerde opdracht zouden de secties op de schijf zichtbaar moeten zijn /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 Als de partities na de uitgevoerde actie niet zijn herkend, /dev/sdc voeren we de opdracht uit om de partitietabel opnieuw te lezen.
sfdisk -R /dev/sdcAls de huidige schijven een MBR-partitietabel gebruiken en de informatie naar schijven van meer dan 2 TB moet worden overgezet, moeten op de nieuwe schijven handmatig GPT-partities worden gemaakt met behulp van de biosboot-partitie. Dit geval zal in het tweede deel van dit artikel worden besproken.
3. Partities van de nieuwe schijf aan de array toevoegen
Laten we de partities van de schijf aan de bijbehorende arrays toevoegen.
mdadm /dev/md126 --add /dev/sdc1
mdadm /dev/md127 --add /dev/sdc2We controleren of de partities zijn toegevoegd.
[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 Daarna wachten we op de synchronisatie van de arrays.
[root@localhost ~]# cat /proc/mdstat
Personalities : [raid1]
md126 : actieve raid1 sdc1[2] sdb1[1]
1047552 blokken super 1.2 [2/2] [UU]
bitmap: 0/1 pagina's [0KB], 65536KB chunk
md127 : actieve raid1 sdc2[2] sdb2[1]
233206784 blokken super 1.2 [2/1] [_U]
[==>..................] recuperatie = 10.6% (24859136/233206784) finish=29.3min snelheid=118119K/sec
bitmap: 2/2 pagina's [8KB], 65536KB chunk
ongebruikte apparaten: Je kunt continu het synchronisatieproces volgen met de tool watch.
watch -n 2 cat /proc/mdstat Parameter -n geeft aan met welk interval in seconden de opdracht moet worden uitgevoerd om de voortgang te controleren.
Herhaal stappen 1 — 3 voor de volgende te vervangen schijf.
Markeer de partities van de tweede schijf die in elke array worden gebruikt als defect.
mdadm /dev/md126 --fail /dev/sdb1
mdadm /dev/md127 --fail /dev/sdb2
Verwijder de partities van het blokapparaat /dev/sdb uit arrays.
mdadm /dev/md126 --remove /dev/sdb1
mdadm /dev/md127 --remove /dev/sdb2Nadat we de schijf uit de array hebben verwijderd, zal de informatie over de blokapparaten er als volgt uitzien.
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 223,6G 0 schijf
├─sda1 8:1 0 1G 0 deel
└─sda2 8:2 0 222,5G 0 deel
sdb 8:16 0 223,6G 0 schijf
├─sdb1 8:17 0 1G 0 deel
└─sdb2 8:18 0 222,5G 0 deel
sdc 8:32 0 931,5G 0 schijf
├─sdc1 8:33 0 1G 0 deel
│ └─md126 9:126 0 1023M 0 raid1 /boot
└─sdc2 8:34 0 222,5G 0 deel
└─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 schijf
De status van de arrays na het verwijderen van schijven.
[root@localhost ~]# cat /proc/mdstat
Persoonlijkheden : [raid1]
md126 : actieve raid1 sdc1[2]
1047552 blokken super 1.2 [2/1] [U_]
bitmap: 0/1 pagina's [0KB], 65536KB chunk
md127 : actieve raid1 sdc2[2]
233206784 blokken super 1.2 [2/1] [U_]
bitmap: 1/2 pagina's [4KB], 65536KB chunk
ongebruikte apparaten: Kopieer de MBR-partitietabel van de schijf /dev/sdс naar de schijf /dev/sdd.
sfdisk -d /dev/sdc | sfdisk /dev/sdd Na de uitgevoerde opdracht zouden de secties op de schijf zichtbaar moeten zijn /dev/sdd.
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 223,6G 0 schijf
├─sda1 8:1 0 1G 0 deel
└─sda2 8:2 0 222,5G 0 deel
sdb 8:16 0 223,6G 0 schijf
├─sdb1 8:17 0 1G 0 deel
└─sdb2 8:18 0 222,5G 0 deel
sdc 8:32 0 931,5G 0 schijf
├─sdc1 8:33 0 1G 0 deel
│ └─md126 9:126 0 1023M 0 raid1 /boot
└─sdc2 8:34 0 222,5G 0 deel
└─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 schijf
├─sdd1 8:49 0 1G 0 deel
└─sdd2 8:50 0 222,5G 0 deel Voeg de partities van de schijf toe aan de arrays.
mdadm /dev/md126 --add /dev/sdd1
mdadm /dev/md127 --add /dev/sdd2We controleren of de partities zijn toegevoegd.
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 223,6G 0 schijf
├─sda1 8:1 0 1G 0 deel
└─sda2 8:2 0 222,5G 0 deel
sdb 8:16 0 223,6G 0 schijf
├─sdb1 8:17 0 1G 0 deel
└─sdb2 8:18 0 222,5G 0 deel
sdc 8:32 0 931,5G 0 schijf
├─sdc1 8:33 0 1G 0 deel
│ └─md126 9:126 0 1023M 0 raid1 /boot
└─sdc2 8:34 0 222,5G 0 deel
└─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 schijf
├─sdd1 8:49 0 1G 0 deel
│ └─md126 9:126 0 1023M 0 raid1 /boot
└─sdd2 8:50 0 222,5G 0 deel
└─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]Daarna wachten we op de synchronisatie van de arrays.
[root@localhost ~]# cat /proc/mdstat
Persoonlijkheden : [raid1]
md126 : actieve raid1 sdd1[3] sdc1[2]
1047552 blokken super 1.2 [2/2] [UU]
bitmap: 0/1 pagina's [0KB], 65536KB chunk
md127 : actieve raid1 sdd2[3] sdc2[2]
233206784 blokken super 1.2 [2/1] [U_]
[>....................] herstel = 0.5% (1200000/233206784) voltooiing=35.4min snelheid=109090K/sec
bitmap: 2/2 pagina's [8KB], 65536KB chunk
ongebruikte apparaten:
5. Installatie van GRUB op de nieuwe schijven
Voor CentOS:
grub2-install /dev/sdXVoor Debian/Ubuntu:
grub-install /dev/sdX waar X — de letter van het blokapparaat. In dit geval moet GRUB op geïnstalleerd worden. /dev/sdc en /dev/sdd.
6. Het uitbreiden van het bestandssysteem (ext4) van de root partitie
Op nieuwe schijven /dev/sdc en /dev/sdd zijn 931.5 GB beschikbaar. Omdat de partitietabel is gekopieerd van kleinere schijven, zijn op de partities /dev/sdc2 en /dev/sdd2 222.5 GB beschikbaar.
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]Vereist:
- De tweede partitie op elke schijf uitbreiden,
- de array md127 uitbreiden,
- PV (physical volume) uitbreiden,
- LV (logical volume) vg0-root uitbreiden,
- het bestandssysteem uitbreiden.
Met behulp van de tool parted vergroten we de partitie /dev/sdc2 tot de maximale waarde. Voer de opdracht uit parted \/dev\/sdc (1) en bekijk de huidige partitietabel met de opdracht Het commando geeft een lijst van onze huidige partities weer. In mijn geval één partitie van 30 GB en nog 20 GB in vrije ruimte, als ik dat zo mag zeggen. (2).

Het is te zien dat het einde van partitie 2 eindigt op 240 GB. Laten we de partitie uitbreiden met de opdracht resizepart 2, waarbij 2 het partitie nummer is (3). Geef een waarde op in numeriek formaat, bijvoorbeeld 1000 GB, of gebruik een schijfpercentage - 100%. Controleer opnieuw of de partitie de nieuwe grootte heeft (4).
Herhaal de bovenstaande stappen voor de schijf /dev/sdd. Na het uitbreiden zijn de partities /dev/sdc2 en /dev/sdd2 nu gelijk aan 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]Daarna breiden we de array uit md127 tot het maximum.
mdadm --grow \/dev\/md127 --size=maxControleer of de array is uitgebreid. Nu is de grootte 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]We voeren de uitbreiding uit fysiek volume. Voor de uitbreiding controleren we de huidige status van de PV.
[root@localhost ~]# pvscan
PV /dev/md127 VG vg0 lvm2 [222,40 GiB / 0 free]
Totaal: 1 [222,40 GiB] / in gebruik: 1 [222,40 GiB] / in geen VG: 0 [0 ]
Zoals te zien is, /dev/md127 gebruikt de PV 222.4 GB ruimte.
We vergroten de PV met het volgende commando.
pvresize /dev/md127We controleren het resultaat van de uitbreiding van de PV.
[
root@localhost ~]# pvscan
PV /dev/md127 VG vg0 lvm2 [930,38 GiB / 707,98 GiB free]
Totaal: 1 [930,38 GiB] / in gebruik: 1 [930,38 GiB] / in geen VG: 0 [0 ]We vergroten logisch volume. Voor de uitbreiding controleren we de huidige status van LV (1).
[root@localhost ~]# lvscan
ACTIEF ' /dev/vg0/swap' [<16,00 GiB] overerven
ACTIEF ' /dev/vg0/root' [<206,41 GiB] overerven LV /dev/vg0/root gebruikt 206.41 GB.
We vergroten het LV met het volgende commando (2).
lvextend -l +100%FREE /dev/mapper/vg0-rootWe controleren de uitgevoerde actie (3).
[root@localhost ~]# lvscan
ACTIEF ' /dev/vg0/swap' [<16,00 GiB] overerven
ACTIEF ' /dev/vg0/root' [<914,39 GiB] overerven
Zoals we zien, is na de uitbreiding het volume van de gebruikte schijfruimte gestegen naar 914.39 GB.

Het volume van de LV is vergroot (4), maar het bestandssysteem neemt nog steeds 204 GB in (5).
1. Laten we de uitbreiding van het bestandssysteem uitvoeren.
resize2fs /dev/mapper/vg0-rootWe controleren de grootte van het bestandssysteem na het uitgevoerde commando.
[root@localhost ~]# df -h
Bestandssysteem Grootte Gebruikt Beschikbaar Gebruik% Gemonteerd op
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/0De grootte van het root-bestandssysteem zal toenemen tot 900 GB. Na de uitgevoerde acties kunnen de oude schijven worden verwijderd.
Geval 2: Vervangen van schijven met een kleinere capaciteit door schijven met een grotere capaciteit (meer dan 2TB)
Taak: Vervang de huidige schijven door schijven van een groter volume (2 x 3TB) met behoud van de informatie. In dit geval hebben we schijven van 2 x 240 GB SSD (RAID-1) met een geïnstalleerd systeem en schijven van 2 x 3 TB SATA waarop het systeem moet worden overgezet. Op de huidige schijven wordt een MBR-partitietabel gebruikt. Aangezien de nieuwe schijven een volume groter dan 2 TB hebben, moet voor deze schijven een GPT-tabel worden gebruikt, omdat MBR niet kan werken met schijven van meer dan 2 TB.
Laten we de huidige schijfindeling bekijken.
[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 Laten we de gebruikte partitietabel op de schijf controleren /dev/sda.
[root@localhost ~]# fdisk -l /dev/sda | grep 'Disk label type'
Disk label type: dos Op de schijf /dev/sdb wordt een vergelijkbare partitietabel gebruikt. Laten we het gebruikte schijfruimte in het systeem controleren.
[root@localhost ~]# df -h
Bestandssysteem Grootte Gebruikt Beschikbaar Gebruik% Gemonteerd op
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/0Zoals te zien is, neemt de root van het bestandssysteem 204 GB in beslag. Laten we de huidige status van de software RAID-array controleren.
1. Installatie van de GPT-partitietabel en schijfindeling
Laten we de schijfindeling per sector controleren.
[root@localhost ~]# parted /dev/sda print
Model: ATA KINGSTON SVP200S (scsi)
Schijf /dev/sda: 240GB
Sector grootte (logisch/fysiek): 512B/512B
Partitietabel: msdos
Disk Flags:
Nummer Begin Einde Grootte Type Bestandsysteem Vlaggen
1 1049kB 1076MB 1075MB primary opstartbaar, raid
2 1076MB 240GB 239GB primary raid
Op de nieuwe 3TB-schijf moeten we 3 partities aanmaken:
- Sectie
bios_grubmet een grootte van 2MiB voor compatibiliteit met GPT en BIOS, - Partitie voor de RAID-array, die gemonteerd zal worden in
/boot. - Partitie voor de RAID-array waarop LV root en LV swap.
We installeren de utility parted met het commando yum install -y parted (voor CentOS), apt install -y parted (voor Debian/Ubuntu).
Door gebruik te maken van parted we zullen de volgende opdrachten uitvoeren voor de partitie-indeling van de schijf.
We voeren de opdracht uit parted \/dev\/sdc en gaan naar de bewerkingsmodus van de partitie-indeling.
We maken een GPT-partitietabel aan.
(parted) mktable gpt We maken 1 partitie aan bios_grub partitie en stellen de vlag voor deze in.
(parted) mkpart primary 1MiB 3MiB
(parted) set 1 bios_grub on We maken 2 partitie aan en stellen de vlag voor deze in. Deze partitie zal gebruikt worden als een blok voor een RAID-array en gemonteerd worden in /boot.
(parted) mkpart primary ext2 3MiB 1028MiB
(parted) set 2 boot onWe maken 3 partitie aan, die ook gebruikt zal worden als een blok voor de array, waarin LVM zal worden gebruikt.
(parted) mkpart primary 1028MiB 100% In dit geval is het niet noodzakelijk om de vlag in te stellen, maar als dat nodig is, kan dit met de volgende opdracht.
(parted) set 3 raid onWe controleren de gemaakte tabel.
(parted) p
Model: ATA TOSHIBA DT01ACA3 (scsi)
Schijf /dev/sdc: 3001GB
Sector grootte (logisch/fysiek): 512B/4096B
Partitietabel: gpt
Schijfvlaggen:
Nummer Begin Eind Grootte Bestandssysteem Naam Vlaggen
1 1049kB 3146kB 2097kB primary bios_grub
2 3146kB 1077MB 1074MB primary opstartbaar
3 1077MB 3001GB 3000GB primary
We wijzen de schijf een nieuwe willekeurige GUID toe.
sgdisk -G /dev/sdd
2. Verwijderen van partities van de eerste schijf uit de arrays
Controleer de status van de array
[root@localhost ~]# cat /proc/mdstat
Personen: [raid1]
md126 : actieve raid1 sda1[0] sdb1[1]
1047552 blocks super 1.2 [2/2] [UU]
bitmap: 0/1 pagina's [0KB], 65536KB chunk
md127 : actieve raid1 sda2[0] sdb2[1]
233206784 blocks super 1.2 [2/2] [UU]
bitmap: 0/2 pagina's [0KB], 65536KB chunk
ongebruikte apparaten: In het systeem worden 2 arrays gebruikt: md126 (mountpunt /boot) — bestaat uit /dev/sda1 en /dev/sdb1, md127 (LVM voor swap en de root van het bestandssysteem) - bestaat uit /dev/sda2 en /dev/sdb2.
Markeer de partities van de eerste schijf die in elk array worden gebruikt als kapot.
mdadm /dev/md126 --fail /dev/sda1
mdadm /dev/md127 --fail /dev/sda2 Verwijder de partities van het blokapparaat /dev/sda uit arrays.
mdadm /dev/md126 --remove /dev/sda1
mdadm /dev/md127 --remove /dev/sda2
We controleren de staat van de array na het verwijderen van de schijf.
[root@localhost ~]# cat /proc/mdstat
Personaliteiten: [raid1]
md126: actieve raid1 sdb1[1]
1047552 blocks super 1.2 [2/1] [_U]
bitmap: 0/1 pagina's [0KB], 65536KB chunk
md127: actieve raid1 sdb2[1]
233206784 blocks super 1.2 [2/1] [_U]
bitmap: 2/2 pagina's [8KB], 65536KB chunk
onbenutte apparaten:
3. Partities van de nieuwe schijf aan de array toevoegen
De volgende stap is om de partities van de nieuwe schijf aan de arrays toe te voegen voor synchronisatie. We bekijken de huidige status van de schijfindeling.
[root@localhost ~]# lsblk
NAAM MAJ:MIN RM GROOTTE RO TYPE MOUNTPOINT
sda 8:0 0 223,6G 0 schijf
├─sda1 8:1 0 1G 0 part
└─sda2 8:2 0 222,5G 0 part
sdb 8:16 0 223,6G 0 schijf
├─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 schijf
├─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 schijf Sectie /dev/sdc1 is bios_grub partitie en neemt niet deel aan de creatie van arrays. In de arrays zullen alleen /dev/sdc2 en /dev/sdc3deze partities worden toegevoegd aan de bijbehorende arrays.
mdadm /dev/md126 --add /dev/sdc2
mdadm /dev/md127 --add /dev/sdc3Daarna wachten we op de synchronisatie van de array.
[root@localhost ~]# cat /proc/mdstat
Personen : [raid1]
md126 : actieve raid1 sdc2[2] sdb1[1]
1047552 blokken super 1.2 [2/2] [UU]
bitmap: 0/1 pagina's [0KB], 65536KB chunk
md127 : actieve raid1 sdc3[2] sdb2[1]
233206784 blokken super 1.2 [2/1] [_U]
[>....................] herstel = 0.2% (619904/233206784) finish=31.2min snelheid=123980K/sec
bitmap: 2/2 pagina's [8KB], 65536KB chunk
ongebruikte apparaten:De indeling van de schijven na het toevoegen van partities aan de array.
[root@localhost ~]# lsblk
NAAM MAJ:MIN RM GROTE RO TYPE MOUNTPOINT
sda 8:0 0 223,6G 0 schijf
├─sda1 8:1 0 1G 0 deel
└─sda2 8:2 0 222,5G 0 deel
sdb 8:16 0 223,6G 0 schijf
├─sdb1 8:17 0 1G 0 deel
│ └─md126 9:126 0 1023M 0 raid1 /boot
└─sdb2 8:18 0 222,5G 0 deel
└─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 schijf
├─sdc1 8:33 0 2M 0 deel
├─sdc2 8:34 0 1G 0 deel
│ └─md126 9:126 0 1023M 0 raid1 /boot
└─sdc3 8:35 0 2,7T 0 deel
└─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 schijf 4. Verwijderen van partities van de tweede schijf uit arrays
Markeer de partities van de tweede schijf die in elke array worden gebruikt als defect.
mdadm /dev/md126 --fail /dev/sdb1
mdadm /dev/md127 --fail /dev/sdb2
Verwijder de partities van het blokapparaat /dev/sda uit arrays.
mdadm /dev/md126 --remove /dev/sdb1
mdadm /dev/md127 --remove /dev/sdb2
5. We kopiëren de GPT-indelingstabel en synchroniseren de array
Voor het kopiëren van de GPT-indelingstabel gebruiken we de tool sgdisk, die deel uitmaakt van het pakket voor het werken met schijfpartities en de GPT-tabel — gdisk.
Installatie gdisk voor CentOS:
yum install -y gdisk Installatie gdisk voor Debian/Ubuntu:
apt install -y gdiskLET OP: Voor GPT de eerste specificeert de schijf waarop We kopiëren de indeling, de tweede schijf specificeert de schijf waarvan de indeling moet worden gekopieerd. Als de schijven verwisseld worden, zal de oorspronkelijk correcte indeling worden overschreven en vernietigd. kopen de indeling. Als je de schijven verwisselt, zal de aanvankelijk correcte indeling worden overschreven en vernietigd.
We kopiëren de GPT-indelingstabel.
sgdisk -R /dev/sdd /dev/sdc Indeling van de schijven na het verplaatsen van de tabel naar de schijf /dev/sdd.
[root@localhost ~]# lsblk
NAAM MAJ:MIN RM GROTE RO TYPE MOUNTPOINT
sda 8:0 0 223,6G 0 schijf
├─sda1 8:1 0 1G 0 deel
└─sda2 8:2 0 222,5G 0 deel
sdb 8:16 0 223,6G 0 schijf
├─sdb1 8:17 0 1G 0 deel
└─sdb2 8:18 0 222,5G 0 deel
sdc 8:32 0 2,7T 0 schijf
├─sdc1 8:33 0 2M 0 deel
├─sdc2 8:34 0 1G 0 deel
│ └─md126 9:126 0 1023M 0 raid1 /boot
└─sdc3 8:35 0 2,7T 0 deel
└─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 schijf
├─sdd1 8:49 0 2M 0 deel
├─sdd2 8:50 0 1G 0 deel
└─sdd3 8:51 0 2,7T 0 deel Vervolgens voegen we elk van de partities die deelnemen aan de software RAID-arrays toe.
mdadm /dev/md126 --add /dev/sdd2
mdadm /dev/md127 --add /dev/sdd3We wachten op de synchronisatie van de array.
[root@localhost ~]# cat /proc/mdstat
Persoonlijkheden: [raid1]
md126: actieve raid1 sdd2[3] sdc2[2]
1047552 blokken super 1.2 [2/2] [UU]
bitmap: 1/1 pagina's [4KB], 65536KB chunk
md127: actieve raid1 sdd3[3] sdc3[2]
233206784 blokken super 1.2 [2/1] [U_]
[>....................] herstel = 0.0% (148224/233206784) voltooid=26.2min snelheid=148224K/sec
bitmap: 2/2 pagina's [8KB], 65536KB chunk
onnodige apparaten:Na het kopiëren van de GPT-partitie naar de tweede nieuwe schijf, ziet de partitie er als volgt uit.
[root@localhost ~]# lsblk
NAAM MAJ:MIN RM GROOTTE RO TYPE MOUNTPOINT
sda 8:0 0 223.6G 0 schijf
├─sda1 8:1 0 1G 0 deel
└─sda2 8:2 0 222.5G 0 deel
sdb 8:16 0 223.6G 0 schijf
├─sdb1 8:17 0 1G 0 deel
└─sdb2 8:18 0 222.5G 0 deel
sdc 8:32 0 2.7T 0 schijf
├─sdc1 8:33 0 2M 0 deel
├─sdc2 8:34 0 1G 0 deel
│ └─md126 9:126 0 1023M 0 raid1 /boot
└─sdc3 8:35 0 2.7T 0 deel
└─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 schijf
├─sdd1 8:49 0 2M 0 deel
├─sdd2 8:50 0 1G 0 deel
│ └─md126 9:126 0 1023M 0 raid1 /boot
└─sdd3 8:51 0 2.7T 0 deel
└─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]Installeer vervolgens GRUB op de nieuwe schijven.
Installatie voor CentOS:
grub2-install /dev/sdXInstallatie voor Debian/Ubuntu:
grub-install /dev/sdX waar X — de schijfletter, in ons geval de schijven /dev/sdc en /dev/sdd.
Werk de informatie over de array bij.
Voor CentOS:
mdadm --detail --scan --verbose > /etc/mdadm.confVoor Debian/Ubuntu:
echo "DEVICE partities" > /etc/mdadm/mdadm.conf
mdadm --detail --scan --verbose | awk '/ARRAY/ {print}' >> /etc/mdadm/mdadm.conf Werk het beeld bij initrd:
Voor CentOS:
dracut -f -v --regenerate-allVoor Debian/Ubuntu:
update-initramfs -u -k allWerk de GRUB-configuratie bij.
Voor CentOS:
grub2-mkconfig -o /boot/grub2/grub.cfg
Voor Debian/Ubuntu:
update-grubNa het voltooien van deze stappen kunnen de oude schijven worden verwijderd.
6. Het uitbreiden van het bestandssysteem (ext4) van de root partitie
De schijfindeling vóór het uitbreiden van het bestandssysteem na het verplaatsen van het systeem naar schijven van 2 x 3TB (RAID-1).
[root@localhost ~]# lsblk
NAAM MAJ:MIN RM GROOTTE RO TYPE MOUNTPOINT
sda 8:0 0 223.6G 0 schijf
sdb 8:16 0 223.6G 0 schijf
sdc 8:32 0 2.7T 0 schijf
├─sdc1 8:33 0 2M 0 deel
├─sdc2 8:34 0 1G 0 deel
│ └─md127 9:127 0 1023M 0 raid1 /boot
└─sdc3 8:35 0 2.7T 0 deel
└─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 schijf
├─sdd1 8:49 0 2M 0 deel
├─sdd2 8:50 0 1G 0 deel
│ └─md127 9:127 0 1023M 0 raid1 /boot
└─sdd3 8:51 0 2.7T 0 deel
└─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] De partities zijn nu /dev/sdc3 en /dev/sdd3 bezetten 2.7 TB. Aangezien we een nieuwe schijfindeling met de GPT-tabel hebben gemaakt, is de grootte van 3 partities onmiddellijk ingesteld op de maximaal beschikbare schijfruimte, het uitbreiden van de partitie is in dit geval niet nodig.
Vereist:
- Vergroot het md126-array,
- PV (physical volume) uitbreiden,
- LV (logical volume) vg0-root uitbreiden,
- het bestandssysteem uitbreiden.
1. We vergroten de array md126 tot het maximum.
mdadm --grow /dev/md126 --size=max
Na het vergroten van de array md126 is de grootte van de gebruikte ruimte vergroot tot 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]
We vergroten fysiek volume.
Controleer vóór het uitbreiden de huidige waarde van de gebruikte ruimte PV /dev/md126.
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/md126 vg0 lvm2 a-- 222,40g 0 We vergroten de PV met het volgende commando.
pvresize /dev/md126
Controleer de uitgevoerde actie.
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/md126 vg0 lvm2 a-- <2,73t 2,51tWe vergroten logisch volume vg0-root.
Na het vergroten van de PV controleren we de gebruikte ruimte van de VG.
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg0 1 2 0 wz--n- <2,73t 2,51tControleer de gebruikte LV-ruimte.
[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 Volumes vg0-root bezet 206,41 GB.
We vergroten de LV naar de maximaal beschikbare schijfruimte.
lvextend -l +100%FREE /dev/mapper/vg0-root Controleer de LV-ruimte na het vergroten.
[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,00gWe vergroten het bestandssysteem (ext4).
Laten we de huidige grootte van het bestandssysteem controleren.
[root@localhost ~]# df -h
Bestandssysteem Grootte In gebruik Beschikbaar Gebruik% Aangekoppeld
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/0Volume /dev/mapper/vg0-root bezet 204 GB na het vergroten van de LV.
We vergroten het bestandssysteem.
resize2fs /dev/mapper/vg0-root
We check the size of the file system after its expansion.
[root@localhost ~]# df -h
Bestandssysteem Grootte Gebruikt Beschikbaar Gebruik% Gemount op
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 De grootte van het bestandssysteem is verhoogd tot de volledige capaciteit van het volume.
Bron: habr.com
