Ersetzen kleinerer Festplatten durch grĂ¶ĂŸere Festplatten unter Linux

Hallo allerseits. Im Vorgriff auf den Start einer neuen Gruppe des Linux-Administratorkurses veröffentlichen wir nĂŒtzliches Material, das von unserem Studenten sowie dem Kurs-Mentor Roman Travin, dem Spezialisten fĂŒr technischen Support fĂŒr Produkte von REG.RU, verfasst wurde.

In diesem Artikel werden zwei FĂ€lle beschrieben, in denen Festplatten ausgetauscht und Informationen auf neue, grĂ¶ĂŸere Festplatten ĂŒbertragen werden, wobei das Array und das Dateisystem weiter erweitert werden. Der erste Fall betrifft den Austausch von DatentrĂ€gern mit demselben MBR / MBR- oder GPT / GPT-Markup, der zweite Fall den Austausch von DatentrĂ€gern mit MBR-Markierung fĂŒr DatentrĂ€ger mit einer KapazitĂ€t von mehr als 2 TB, fĂŒr die ein GPT-Markup mit der Biosboot-Partition erforderlich ist. In beiden FĂ€llen sind die DatentrĂ€ger, auf die wir Daten ĂŒbertragen, bereits auf dem Server installiert. Das fĂŒr die Root-Partition verwendete Dateisystem ist ext4.



Fall 1: Ersetzen kleinerer Laufwerke durch grĂ¶ĂŸere Laufwerke (bis zu 2 TB)


Aufgabe: Ersetzen Sie aktuelle Festplatten durch grĂ¶ĂŸere Festplatten (bis zu 2 TB) mit InformationsĂŒbertragung. In diesem Fall verfĂŒgen wir ĂŒber 2 x 240 GB SSD-Festplatten (RAID-1) mit dem installierten System und 2 x 1 TB SATA-Festplatten, auf die Sie das System ĂŒbertragen mĂŒssen.

Betrachten Sie das aktuelle Festplattenlayout.

[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 

ÜberprĂŒfen Sie den aktuell verwendeten Dateisystemspeicher.

 [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 

Die GrĂ¶ĂŸe des Dateisystems vor dem Ersetzen der Festplatten betrĂ€gt 204 GB. Es werden 2 Software-md126-Arrays verwendet, die in /boot md127 , und md127 , das als physisches Volume fĂŒr die VG-Gruppe vg0 verwendet wird .

1. Entfernen von Festplattenpartitionen aus Arrays


ÜberprĂŒfen Sie den Status des Arrays

 [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> 

Das System verwendet 2 Arrays: md126 (EinhĂ€ngepunkt /boot ) - besteht aus den md127 /dev/sda1 und /dev/sdb1 , md127 (LVM fĂŒr Swap und Root des Dateisystems) - besteht aus /dev/sda2 und /dev/sdb2 .

Wir markieren die Partitionen der ersten Festplatte, die in jedem Array verwendet werden, als fehlerhaft.

 mdadm /dev/md126 --fail /dev/sda1 mdadm /dev/md127 --fail /dev/sda2 

Wir entfernen Abschnitte des Blocks device / dev / sda aus Arrays.

 mdadm /dev/md126 --remove /dev/sda1 mdadm /dev/md127 --remove /dev/sda2 

Nachdem wir die Festplatte aus dem Array entfernt haben, sehen die Informationen zu BlockgerĂ€ten folgendermaßen aus.

 [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 

Der Status von Arrays nach dem Entfernen von DatentrÀgern.

 [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. Kopieren der Partitionstabelle auf eine neue Festplatte


Sie können die auf der Festplatte verwendete Partitionstabelle mit dem folgenden Befehl ĂŒberprĂŒfen.

 fdisk -l /dev/sdb | grep 'Disk label type' 

Die Ausgabe fĂŒr den MBR lautet:

 Disk label type: dos 

fĂŒr GPT:

 Disk label type: gpt 

Markup-Tabelle fĂŒr MBR kopieren:

 sfdisk -d /dev/sdb | sfdisk /dev/sdc 

Bei diesem Befehl ist das erste das Laufwerk, von dem das Markup kopiert wird, und das zweite das zu kopierende Laufwerk.

ACHTUNG : Bei GPT wird zuerst das Laufwerk angegeben, auf das das Markup kopiert werden soll , und dann das Laufwerk, auf das das Markup vom zweiten Laufwerk kopiert werden soll. Wenn Sie die DatentrĂ€ger vertauschen, wird das ursprĂŒnglich fehlerfreie Markup ĂŒberschrieben und zerstört.

Kopieren der Markup-Tabelle fĂŒr das GPT:

 sgdisk -R /dev/sd /dev/sdb 

Weisen Sie als NĂ€chstes der Festplatte eine zufĂ€llige UUID zu (fĂŒr GPT).

 sgdisk -G /dev/sdc 

Nachdem der Befehl ausgefĂŒhrt wurde, sollten Partitionen auf der Festplatte /dev/sdc werden.

 [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 

Wenn nach der ausgefĂŒhrten Aktion die Partitionen im System auf der /dev/sdc Platte nicht definiert sind, fĂŒhren wir den Befehl zum erneuten Lesen der Partitionstabelle aus.

 sfdisk -R /dev/sdc 

Wenn die aktuellen DatentrĂ€ger die MBR-Tabelle verwenden und die Informationen auf DatentrĂ€ger mit einer KapazitĂ€t von mehr als 2 TB ĂŒbertragen werden mĂŒssen, mĂŒssen neue DatentrĂ€ger mithilfe des Biosboot-Abschnitts manuell ein GPT-Markup erstellen. Dieser Fall wird in Teil 2 dieses Artikels behandelt.

3. HinzufĂŒgen von Partitionen der neuen Festplatte zum Array


FĂŒgen Sie den entsprechenden Arrays Festplattenpartitionen hinzu.

 mdadm /dev/md126 --add /dev/sdc1 mdadm /dev/md127 --add /dev/sdc2 

ÜberprĂŒfen Sie, ob Abschnitte hinzugefĂŒgt wurden.

 [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 

Danach warten wir auf die Synchronisation der Arrays.

 [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> 

Sie können den Synchronisierungsvorgang mit dem Überwachungsdienstprogramm kontinuierlich ĂŒberwachen.

 watch -n 2 cat /proc/mdstat 

Die -n gibt an, in welchen Intervallen in Sekunden der Befehl ausgefĂŒhrt werden muss, um den Fortschritt zu ĂŒberprĂŒfen.

Wiederholen Sie die Schritte 1 bis 3 fĂŒr das nĂ€chste Ersatzlaufwerk.

Wir markieren die Partitionen der zweiten Festplatte, die in jedem Array verwendet werden, als fehlerhaft.

 mdadm /dev/md126 --fail /dev/sdb1 mdadm /dev/md127 --fail /dev/sdb2 

Wir entfernen Abschnitte des BlockgerÀtes /dev/sdb aus Arrays.

 mdadm /dev/md126 --remove /dev/sdb1 mdadm /dev/md127 --remove /dev/sdb2 

Nachdem wir die Festplatte aus dem Array entfernt haben, sehen die Informationen zu BlockgerĂ€ten folgendermaßen aus.

 [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 

Der Status von Arrays nach dem Entfernen von DatentrÀgern.

 [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> 

Kopieren Sie die MBR-Markup-Tabelle vom Laufwerk /dev/sd auf das Laufwerk /dev/sdd .

 sfdisk -d /dev/sd | sfdisk /dev/sdd 

Nachdem der Befehl ausgefĂŒhrt wurde, sollten Partitionen auf dem Laufwerk /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 

FĂŒgen Sie den Arrays Festplattenpartitionen hinzu.

 mdadm /dev/md126 --add /dev/sdd1 mdadm /dev/md127 --add /dev/sdd2 

ÜberprĂŒfen Sie, ob Abschnitte hinzugefĂŒgt wurden.

 [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] 

Danach warten wir auf die Synchronisation der Arrays.

 [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. Installieren Sie GRUB auf neuen Laufwerken


FĂŒr CentOS:

 grub2-install /dev/sdX 

FĂŒr Debian / Ubuntu:

 grub-install /dev/sdX 

Dabei ist X der Buchstabe des BlockgerÀts. In diesem Fall installieren Sie GRUB unter /dev/sdc und /dev/sdd .

6. Erweiterung des Dateisystems (ext4) der Root-Partition


931,5 GB sind auf den neuen Laufwerken /dev/sdc und /dev/sdd . Da die Partitionstabelle von kleineren Festplatten kopiert wird, sind auf den Partitionen /dev/sdc2 und /dev/sdd2 222,5 GB verfĂŒgbar.

 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] 

Es ist notwendig:

  1. Erweitern Sie Abschnitt 2 auf jedem Laufwerk.
  2. Erweitern Sie das md127-Array,
  3. Erweitern Sie PV (physikalisches Volumen),
  4. LV (Logical-Volume) vg0-root erweitern,
  5. Erweitern Sie das Dateisystem.

Erweitern Sie mit dem Dienstprogramm /dev/sdc2 auf den Maximalwert. parted /dev/sdc Befehl parted /dev/sdc (1) aus und zeigen die aktuelle Partitionstabelle mit dem Befehl p (2) an.



Wie Sie sehen, endet das Ende von Abschnitt 2 mit 240 GB. Erweitern wir den Abschnitt mit dem Befehl resizepart 2 , wobei 2 die Abschnittsnummer (3) ist. Wir geben den Wert in digitalem Format an, zum Beispiel 1000 GB, oder wir verwenden die Angabe der Festplattenfreigabe - 100%. Wir ĂŒberprĂŒfen erneut, ob der Abschnitt eine neue GrĂ¶ĂŸe hat (4).

Wiederholen Sie die obigen Schritte fĂŒr das Laufwerk /dev/sdd . Nach dem Erweitern der Partitionen wurden /dev/sdc2 und /dev/sdd2 gleich 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] 

Danach erweitern wir das md127- Array auf das Maximum.

 mdadm --grow /dev/md127 --size=max 

ÜberprĂŒfen Sie, ob das Array erweitert wurde. Jetzt ist seine GrĂ¶ĂŸe 930,4 GB geworden.

 [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] 

Wir fĂŒhren die Erweiterung des physischen Volumens durch . ÜberprĂŒfen Sie vor der Erweiterung den aktuellen Status der 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 ] 

Wie Sie sehen, belegt PV /dev/md127 222,4 GB Speicherplatz.

Erweitern Sie PV mit dem folgenden Befehl.

 pvresize /dev/md127 

ÜberprĂŒfen Sie das Ergebnis der PV-Erweiterung.

[
 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 ] 

Logisches Volume erweitern . ÜberprĂŒfen Sie vor der Erweiterung den aktuellen Status von 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 verwendet 206,41 GB.

Wir erweitern LV mit dem folgenden Befehl (2).

 lvextend -l +100%FREE /dev/mapper/vg0-root 


ÜberprĂŒfen Sie die ausgefĂŒhrte Aktion (3).

 [root@localhost ~]# lvscan ACTIVE '/dev/vg0/swap' [<16,00 GiB] inherit ACTIVE '/dev/vg0/root' [<914,39 GiB] inherit 

Wie Sie sehen, betrug der belegte Speicherplatz nach der LV-Erweiterung 914,39 GB.



Das LV-Volumen hat zugenommen (4), das Dateisystem belegt jedoch immer noch 204 GB (5).

1. FĂŒhren Sie die Dateisystemerweiterung durch.

 resize2fs /dev/mapper/vg0-root 

Wir ĂŒberprĂŒfen nach dem ausgefĂŒhrten Befehl die GrĂ¶ĂŸe des Dateisystems.

 [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 

Die GrĂ¶ĂŸe des Root-Dateisystems wird auf 900 GB erhöht. Nachdem Sie die Schritte ausgefĂŒhrt haben, können Sie die alten Discs entfernen.

Fall 2: Ersetzen kleinerer Laufwerke durch grĂ¶ĂŸere Laufwerke (mehr als 2 TB)


Aufgabe: Ersetzen Sie aktuelle DatentrĂ€ger durch grĂ¶ĂŸere DatentrĂ€ger (2 x 3 TB), indem Sie Informationen speichern. In diesem Fall verfĂŒgen wir ĂŒber 2 x 240 GB SSD-Festplatten (RAID-1) mit dem installierten System und 2 x 3 TB SATA-Festplatten, auf die Sie das System ĂŒbertragen mĂŒssen. Aktuelle Laufwerke verwenden die MBR-Partitionstabelle. Da neue Festplatten eine KapazitĂ€t von mehr als 2 TB haben, mĂŒssen sie die GPT-Tabelle verwenden, da MBR nicht mit Festplatten arbeiten kann, die grĂ¶ĂŸer als 2 TB sind.

Zeigen Sie das aktuelle Festplattenlayout an.

 [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 

ÜberprĂŒfen Sie die Partitionstabelle, die auf dem Laufwerk /dev/sda .

 [root@localhost ~]# fdisk -l /dev/sda | grep 'Disk label type' Disk label type: dos 

Das Laufwerk /dev/sdb verwendet eine Ă€hnliche Partitionstabelle. ÜberprĂŒfen Sie den verwendeten Speicherplatz im System.

 [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 

Wie Sie sehen, ist das Stammverzeichnis des Dateisystems 204 GB. ÜberprĂŒfen Sie den aktuellen Status des Software-RAID.

1. Installieren Sie die GPT-Partitionstabelle und die Festplattenpartitionierung


ÜberprĂŒfen Sie das Festplattenlayout nach 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 

Auf dem neuen 3-TB-Laufwerk mĂŒssen drei Partitionen erstellt werden:

  1. bios_grub Abschnitt fĂŒr die GPT-KompatibilitĂ€t mit dem BIOS,
  2. Die Partition fĂŒr das RAID-Array, die in /boot eingehĂ€ngt werden soll.
  3. Die Partition fĂŒr das RAID-Array, auf der sich LV-Root und LV-Swap befinden .

Installieren Sie das Dienstprogramm parted mit dem Befehl yum install -y parted (fĂŒr CentOS), apt install -y parted (fĂŒr Debian / Ubuntu).

FĂŒhren Sie mit parted die folgenden Befehle aus, um die Festplatte zu partitionieren.

parted /dev/sdc Befehl parted /dev/sdc und wechseln in den Bearbeitungsmodus fĂŒr das Festplattenlayout.

Erstellen Sie eine GPT-Partitionstabelle.

 (parted) mktable gpt 

Erstelle 1 Sektion bios_grub Sektion und setze ein Flag dafĂŒr.

 (parted) mkpart primary 1MiB 3MiB (parted) set 1 bios_grub on 

Erstellen Sie einen Abschnitt 2 und setzen Sie ein Flag dafĂŒr. Die Partition wird als Block fĂŒr das RAID-Array verwendet und in /boot .

 (parted) mkpart primary ext2 3MiB 1028MiB (parted) set 2 boot on 

Wir erstellen einen 3-Abschnitt, der auch als Array-Block verwendet wird, in dem sich LVM befindet.

 (parted) mkpart primary 1028MiB 100% 

In diesem Fall ist das Setzen des Flags nicht erforderlich, es kann jedoch bei Bedarf mit dem folgenden Befehl gesetzt werden.

 (parted) set 3 raid on 

ÜberprĂŒfen Sie die erstellte Tabelle.

 (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 

Weisen Sie dem Laufwerk eine neue zufÀllige GUID zu.

 sgdisk -G /dev/sdd 

2. Entfernen von Partitionen der ersten Festplatte aus Arrays


ÜberprĂŒfen Sie den Status des Arrays

 [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> 

Das System verwendet 2 Arrays: md126 (EinhĂ€ngepunkt / boot) - besteht aus /dev/sda1 und /dev/sdb1 , md127 (LVM fĂŒr swap und Root des Dateisystems) - besteht aus /dev/sda2 und /dev/sdb2 .

Wir markieren die Partitionen der ersten Festplatte, die in jedem Array verwendet werden, als fehlerhaft.

 mdadm /dev/md126 --fail /dev/sda1 mdadm /dev/md127 --fail /dev/sda2 

Wir entfernen Abschnitte des Blocks device /dev/sda aus Arrays.

 mdadm /dev/md126 --remove /dev/sda1 mdadm /dev/md127 --remove /dev/sda2 

ÜberprĂŒfen Sie den Status des Arrays, nachdem Sie die Festplatte entfernt haben.

 [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. HinzufĂŒgen von Partitionen der neuen Festplatte zum Array


Der nĂ€chste Schritt ist das HinzufĂŒgen der Partitionen der neuen Festplatte zu den Arrays zur Synchronisierung. Wir schauen uns den aktuellen Stand des Festplattenlayouts an.

 [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 

Die /dev/sdc1 ist eine bios_grub Partition und nicht an der Erstellung von Arrays beteiligt. /dev/sdc2 nur /dev/sdc2 und /dev/sdc3 . FĂŒgen Sie diese Abschnitte den entsprechenden Arrays hinzu.

 mdadm /dev/md126 --add /dev/sdc2 mdadm /dev/md127 --add /dev/sdc3 

Dann warten wir auf die Synchronisation des Arrays.

 [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> 

Partitionieren von Festplatten nach dem HinzufĂŒgen von Partitionen zu einem Array.

 [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. Entfernen von Partitionen der zweiten Festplatte aus Arrays


Wir markieren die Partitionen der zweiten Festplatte, die in jedem Array verwendet werden, als fehlerhaft.

 mdadm /dev/md126 --fail /dev/sdb1 mdadm /dev/md127 --fail /dev/sdb2 

Wir entfernen Abschnitte des Blocks device /dev/sda aus Arrays.

 mdadm /dev/md126 --remove /dev/sdb1 mdadm /dev/md127 --remove /dev/sdb2 

5. Kopieren Sie die GPT-Markup-Tabelle und synchronisieren Sie das Array


Um die GPT-Markup-Tabelle zu kopieren, verwenden wir das Dienstprogramm sgdisk , das im Paket fĂŒr die Arbeit mit Festplattenpartitionen und der GPT-Tabelle - gdisk .

Installieren Sie gdisk fĂŒr CentOS:

 yum install -y gdisk 

Installieren Sie die gdisk fĂŒr Debian / Ubuntu:

 apt install -y gdisk 

ACHTUNG : Bei GPT wird zuerst der DatentrĂ€ger angegeben, auf den das Markup kopiert wird. Der zweite DatentrĂ€ger ist der DatentrĂ€ger, von dem das Markup kopiert wird. Wenn Sie die DatentrĂ€ger vertauschen, wird das ursprĂŒnglich fehlerfreie Markup ĂŒberschrieben und zerstört.

Kopieren Sie die GPT-Markup-Tabelle.

 sgdisk -R /dev/sdd /dev/sdc 

Partitionieren von Festplatten nach dem Übertragen einer Tabelle auf das Laufwerk /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 

Als NĂ€chstes fĂŒgen wir jede der an den Software-RAID-Arrays beteiligten Partitionen hinzu.

 mdadm /dev/md126 --add /dev/sdd2 mdadm /dev/md127 --add /dev/sdd3 

Wir warten auf die Synchronisation des Arrays.

 [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> 

Nach dem Kopieren des GPT-Markups auf einen zweiten neuen DatentrĂ€ger sieht das Markup folgendermaßen aus.

 [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] 

Installieren Sie als NĂ€chstes GRUB auf den neuen Laufwerken.

Installation fĂŒr CentOS:

 grub2-install /dev/sdX 

Installation fĂŒr Debian / Ubuntu:

 grub-install /dev/sdX 

wobei X der Laufwerksbuchstabe ist, in unserem Fall die Laufwerke /dev/sdc und /dev/sdd .

Aktualisieren der Informationen zum Array.

FĂŒr CentOS:

 mdadm --detail --scan --verbose > /etc/mdadm.conf 

FĂŒr Debian / Ubuntu:

 echo "DEVICE partitions" > /etc/mdadm/mdadm.conf mdadm --detail --scan --verbose | awk '/ARRAY/ {print}' >> /etc/mdadm/mdadm.conf 

Aktualisieren des initrd Image:
FĂŒr CentOS:

 dracut -f -v --regenerate-all 

FĂŒr Debian / Ubuntu:

 update-initramfs -u -k all 

Aktualisieren der GRUB-Konfiguration.

FĂŒr CentOS:

 grub2-mkconfig -o /boot/grub2/grub.cfg 

FĂŒr Debian / Ubuntu:

 update-grub 

Nach den Schritten können Sie die alten Discs entfernen.

6. Erweiterung des Dateisystems (ext4) der Root-Partition


Partitionieren von Festplatten vor dem Erweitern des Dateisystems nach dem Verschieben des Systems auf RAID-1-Festplatten (2 x 3 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 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] 

Die /dev/sdd3 /dev/sdc3 und /dev/sdd3 belegen /dev/sdd3 2,7 TB. Da wir eine neue Partitionierung von Festplatten mit der GPT-Tabelle erstellt haben, wurde die GrĂ¶ĂŸe der 3 Partitionen sofort auf den maximal möglichen Festplattenspeicher festgelegt. In diesem Fall ist das Erweitern der Partition nicht erforderlich.

Es ist notwendig:

  1. Erweitern Sie das md126-Array,
  2. Erweitern Sie PV (physikalisches Volumen),
  3. LV (Logical-Volume) vg0-root erweitern,
  4. Erweitern Sie das Dateisystem.

1. md126 Array bis zum Maximum.

 mdadm --grow /dev/md126 --size=max 

Nach der Erweiterung des md126 Arrays md126 GrĂ¶ĂŸe des belegten Speicherplatzes auf 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] 

Der Ausbau Physikalisches Volumens .

Vor der Erweiterung prĂŒfen wir den aktuellen Wert des belegten Platzes PV / dev/md126.

 [root@localhost ~]# pvs PV VG Fmt Attr PSize PFree /dev/md126 vg0 lvm2 a-- 222,40g 0 

Erweitern Sie PV mit dem folgenden Befehl.

 pvresize /dev/md126 

ÜberprĂŒfen Sie die abgeschlossene Aktion.

 [root@localhost ~]# pvs PV VG Fmt Attr PSize PFree /dev/md126 vg0 lvm2 a-- <2,73t 2,51t 

Expanding - Klasse logischen Volume vg0-root .

Nach der Erweiterung von PV ĂŒberprĂŒfen wir den belegten Raum von VG.

 [root@localhost ~]# vgs VG #PV #LV #SN Attr VSize VFree vg0 1 2 0 wz--n- <2,73t 2,51t 

ÜberprĂŒfen Sie den von LV belegten Platz.

 [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 

Das vg0-root-Volume nimmt 206,41 GB auf.

Erweitern Sie LV auf den maximalen Speicherplatz.

 lvextend -l +100%FREE /dev/mapper/vg0-root 

ÜberprĂŒfen des LV-Speicherplatzes nach der Erweiterung.

 [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 

Dateisystem erweitern (ext4).

ÜberprĂŒfen Sie die aktuelle DateisystemgrĂ¶ĂŸe.

 [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 

Das Volume / dev / mapper / vg0-root belegt nach der LV-Erweiterung 204 GB.

Das Dateisystem erweitern.

 resize2fs /dev/mapper/vg0-root 

ÜberprĂŒfen Sie die GrĂ¶ĂŸe des Dateisystems nach seiner Erweiterung.

 [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 

Die GrĂ¶ĂŸe des Dateisystems wird um das gesamte Volume des Volumes erhöht.

Source: https://habr.com/ru/post/de486084/


All Articles