Hallo zusammen. Am Vorabend des Beginns einer neuen Kursgruppe
In diesem Artikel werden zwei Fälle betrachtet, in denen Festplatten ausgetauscht und Informationen auf neue Festplatten mit größerer Kapazität übertragen werden, wobei das Array und das Dateisystem weiter erweitert werden. Im ersten Fall geht es um den Austausch von Festplatten mit der gleichen MBR/MBR- oder GPT/GPT-Partitionierung, im zweiten Fall geht es um den Austausch von Festplatten mit MBR-Partitionierung durch Festplatten mit einer Kapazität von mehr als 2 TB, auf denen Sie installieren müssen eine GPT-Partition mit einer BIOSboot-Partition. In beiden Fällen sind die Festplatten, auf die wir die Daten übertragen, bereits auf dem Server installiert. Das für die Root-Partition verwendete Dateisystem ist ext2.
Fall 1: Ersetzen kleinerer Festplatten durch größere Festplatten (bis zu 2 TB)
Problem: Ersetzen Sie aktuelle Festplatten durch größere Festplatten (bis zu 2 TB) mit Informationsübertragung. In diesem Fall haben wir 2 x 240 GB SSD-Festplatten (RAID-1) mit installiertem System und 2 x 1 TB SATA-Festplatten, auf die das System übertragen werden muss.
Schauen wir uns 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 931,5G 0 disk
sdd 8:48 0 931,5G 0 disk
Lassen Sie uns den aktuell verwendeten Dateisystemspeicherplatz überprüfen.
[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 Austausch der Festplatten beträgt 204 GB, es werden 2 MD126-Software-Arrays verwendet, die eingehängt werden /boot
и md127
, das als verwendet wird physisches Volumen für die VG-Gruppe vg0.
1. Entfernen von Festplattenpartitionen aus Arrays
Überprüfen des 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 einem Abschnitt /dev/sda1
и /dev/sdb1
, md127
(LVM für tauschen und das Stammverzeichnis des Dateisystems) - besteht aus /dev/sda2
и /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 die Blockgerätepartitionen /dev/sda aus den Arrays.
mdadm /dev/md126 --remove /dev/sda1
mdadm /dev/md127 --remove /dev/sda2
Nachdem wir die Festplatte aus dem Array entfernt haben, sehen die Blockgeräteinformationen wie folgt 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
Zustand der Arrays nach dem Entfernen von Festplatten.
[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 Sie die Partitionstabelle auf eine neue Festplatte
Mit dem folgenden Befehl können Sie die verwendete Partitionstabelle auf der Festplatte überprüfen.
fdisk -l /dev/sdb | grep 'Disk label type'
Die Ausgabe für MBR wäre:
Disk label type: dos
für GPT:
Disk label type: gpt
Kopieren der Partitionstabelle für MBR:
sfdisk -d /dev/sdb | sfdisk /dev/sdc
In diesem Befehl zuerst Festplatte wird angezeigt с davon das Markup wird kopiert, zweitens - wo Kopieren.
ACHTUNG: Für GPT zuerst Festplatte wird angezeigt auf welche Markup kopieren, Sekunde disk gibt die Festplatte an aus denen Markup kopieren. Wenn Sie die Festplatten vertauschen, wird die ursprünglich funktionierende Partition überschrieben und zerstört.
Kopieren der Layouttabelle für GPT:
sgdisk -R /dev/sdс /dev/sdb
Als nächstes weisen Sie der Festplatte eine zufällige UUID zu (für GPT).
sgdisk -G /dev/sdc
Nachdem der Befehl ausgeführt wurde, sollten die Partitionen auf der Festplatte erscheinen /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
Wenn nach Ausführung der Aktion die Partitionen im System auf der Festplatte vorhanden sind /dev/sdc
unentschlossen, dann führen wir den Befehl aus, um die Partitionstabelle erneut zu lesen.
sfdisk -R /dev/sdc
Wenn die aktuellen Festplatten die MBR-Tabelle verwenden und die Informationen auf Festplatten mit mehr als 2 TB übertragen werden müssen, müssen Sie auf neuen Festplatten manuell eine GPT-Partition mithilfe der BIOSBoot-Partition erstellen. Dieser Fall wird in Teil 2 dieses Artikels besprochen.
3. Hinzufügen von Partitionen der neuen Festplatte zum Array
Fügen wir den entsprechenden Arrays Festplattenpartitionen hinzu.
mdadm /dev/md126 --add /dev/sdc1
mdadm /dev/md127 --add /dev/sdc2
Wir prüfen, ob die 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, bis die Arrays synchronisiert sind.
[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>
Mit dem Dienstprogramm können Sie den Synchronisierungsprozess kontinuierlich überwachen watch
.
watch -n 2 cat /proc/mdstat
Parameter -n
Gibt an, in welchen Sekundenabständen der Befehl ausgeführt werden muss, um den Fortschritt zu überprüfen.
Wiederholen Sie die Schritte 1 bis 3 für die nächste Ersatzfestplatte.
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
Blockgerätepartitionen entfernen /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 Blockgeräteinformationen wie folgt 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
Zustand der Arrays nach dem Entfernen von Festplatten.
[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 der MBR-Partitionstabelle von der Festplatte /dev/sdс
auf die Festplatte /dev/sdd
.
sfdisk -d /dev/sdс | sfdisk /dev/sdd
Nachdem der Befehl ausgeführt wurde, sollten die Partitionen auf der Festplatte erscheinen /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
Hinzufügen von Festplattenpartitionen zu Arrays.
mdadm /dev/md126 --add /dev/sdd1
mdadm /dev/md127 --add /dev/sdd2
Wir prüfen, ob die 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, bis die Arrays synchronisiert sind.
[root@localhost ~]# cat /proc/mdstat
Personalities : [raid1]
md126 : active raid1 sdd1[3] sdc1[2]
1047552 blocks super 1.2 [2/2] [UU]
bitmap: 0/1 pages [0KB], 65536KB chunk
md127 : active raid1 sdd2[3] sdc2[2]
233206784 blocks super 1.2 [2/1] [U_]
[>....................] recovery = 0.5% (1200000/233206784) finish=35.4min speed=109090K/sec
bitmap: 2/2 pages [8KB], 65536KB chunk
unused devices: <none>
5. GRUB auf neuen Laufwerken installieren
Für CentOS:
grub2-install /dev/sdX
Von Debian/Ubuntu:
grub-install /dev/sdX
wo X
— Buchstabe des Blockgeräts. In diesem Fall müssen Sie GRUB installieren /dev/sdc
и /dev/sdd
.
6. Dateisystemerweiterung (ext4) der Root-Partition
Auf neuen Festplatten /dev/sdc
и /dev/sdd
931.5 GB verfügbar. Aufgrund der Tatsache, dass die Partitionstabelle von kleineren Festplatten kopiert wurde, sind die Partitionen /dev/sdc2
и /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:
- Erweitern Sie Partition 2 auf jeder der Festplatten.
- Array md127 erweitern,
- Erweitern Sie PV (physisches Volumen),
- Erweitern Sie LV (logisches Volume) vg0-root,
- Erweitern Sie das Dateisystem.
Verwenden des Dienstprogramms geteilt Erweitern wir den Abschnitt /dev/sdc2
auf den Maximalwert. Führen Sie den Befehl aus parted /dev/sdc
(1) und zeigen Sie die aktuelle Partitionstabelle mit dem Befehl an p
(2).
Wie Sie sehen, endet das Ende von Partition 2 bei 240 GB. Erweitern wir die Partition mit dem Befehl resizepart
2
, wobei 2 die Nummer des Abschnitts (3) ist. Wir geben den Wert im digitalen Format an, zum Beispiel 1000 GB, oder verwenden die Angabe des Festplattenanteils – 100 %. Wir prüfen noch einmal, ob die Partition die neue Größe hat (4).
Wiederholen Sie die obigen Schritte für die Festplatte /dev/sdd
. Nach dem Erweitern von Partitionen /dev/sdc2
и /dev/sdd2
wurde 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 Array md127 bis zum Maximum.
mdadm --grow /dev/md127 --size=max
Wir überprüfen, ob das Array erweitert wurde. Jetzt beträgt seine Größe 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]
Erweiterung der Erweiterung physisches Volumen. Bevor wir erweitern, prüfen wir den aktuellen Zustand 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 zu sehen ist, PV /dev/md127
verbraucht 222.4 GB Speicherplatz.
Wir erweitern PV mit dem folgenden Befehl.
pvresize /dev/md127
Überprüfung des Ergebnisses des PV-Ausbaus.
[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 ]
Erweitern logisches Volumen. Bevor wir erweitern, überprüfen wir 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
verbraucht 206.41 GB.
Wir erweitern LV mit dem folgenden Befehl (2).
lvextend -l +100%FREE /dev/mapper/vg0-root
Wir überprüfen die abgeschlossene Aktion (3).
[root@localhost ~]# lvscan
ACTIVE '/dev/vg0/swap' [<16,00 GiB] inherit
ACTIVE '/dev/vg0/root' [<914,39 GiB] inherit
Wie Sie sehen können, beträgt der belegte Speicherplatz nach der Erweiterung von LV 914.39 GB.
Das LV-Volume hat zugenommen (4), aber das Dateisystem belegt immer noch 204 GB (5).
1. Erweitern wir das Dateisystem.
resize2fs /dev/mapper/vg0-root
Nachdem der Befehl ausgeführt wurde, überprüfen wir 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 erhöht sich auf 900 GB. Nachdem Sie die Schritte abgeschlossen haben, können Sie die alten Datenträger entfernen.
Fall 2: Ersetzen kleinerer Festplatten durch größere Festplatten (mehr als 2 TB)
Zuordnung: Ersetzen Sie die aktuellen Festplatten durch größere Festplatten (2 x 3 TB) und behalten Sie dabei die Informationen bei. In diesem Fall haben wir 2 x 240 GB SSD-Festplatten (RAID-1) mit installiertem System und 2 x 3 TB SATA-Festplatten, auf die das System übertragen werden muss. Aktuelle Festplatten verwenden die MBR-Partitionstabelle. Da neue Festplatten eine Kapazität von mehr als 2 TB haben, müssen sie eine GPT-Tabelle verwenden, da MBR nicht mit Festplatten mit mehr als 2 TB funktionieren kann.
Schauen wir uns 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
Lassen Sie uns die auf der Festplatte verwendete Partitionstabelle überprüfen /dev/sda
.
[root@localhost ~]# fdisk -l /dev/sda | grep 'Disk label type'
Disk label type: dos
Auf Diskette /dev/sdb
Es wird eine ähnliche Partitionstabelle verwendet. Lassen Sie uns den belegten Speicherplatz auf dem System überprüfen.
[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, nimmt das Stammverzeichnis des Dateisystems 204 GB ein. Lassen Sie uns den aktuellen Status des Software-RAID-Arrays überprüfen.
1. Installieren einer GPT-Partitionstabelle und Festplattenpartitionierung
Lassen Sie uns das Festplattenlayout nach Sektor überprüfen.
[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 der neuen 3-TB-Festplatte müssen wir drei Partitionen erstellen:
- Abschnitt
bios_grub
2 MB Größe für GPT-BIOS-Kompatibilität, - Die Partition für das RAID-Array, in das eingebunden wird
/boot
. - Die Partition für das RAID-Array, auf der es sein wird LV-Wurzel и LV-Tausch.
Installieren des Dienstprogramms geteilt Team yum install -y parted
(für CentOS), apt install -y parted
(für Debian/Ubuntu).
Mit geteilt Führen wir die folgenden Befehle aus, um die Festplatte zu partitionieren.
Führen Sie den Befehl aus parted /dev/sdc
und wechseln Sie in den Bearbeitungsmodus für das Festplattenlayout.
Erstellen Sie eine GPT-Partitionstabelle.
(parted) mktable gpt
Erstellen Sie 1 Abschnitt bios_grub
Abschnitt und setzen Sie ein Flag dafür.
(parted) mkpart primary 1MiB 3MiB
(parted) set 1 bios_grub on
Erstellen Sie Partition 2 und setzen Sie ein Flag dafür. Die Partition wird als Block für ein RAID-Array verwendet und eingebunden /boot
.
(parted) mkpart primary ext2 3MiB 1028MiB
(parted) set 2 boot on
Wir erstellen einen dritten Abschnitt, der auch als Array-Block verwendet wird, in dem sich LVM befindet.
(parted) mkpart primary 1028MiB 100%
In diesem Fall ist es nicht notwendig, das Flag zu setzen, kann aber bei Bedarf mit dem folgenden Befehl gesetzt werden.
(parted) set 3 raid on
Wir überprüfen 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
Wir weisen der Festplatte eine neue zufällige GUID zu.
sgdisk -G /dev/sdd
2. Partitionen der ersten Festplatte aus Arrays entfernen
Überprüfen des 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
и /dev/sdb1
, md127
(LVM für swap
und das Stammverzeichnis des Dateisystems) - besteht aus /dev/sda2
и /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
Blockgerätepartitionen entfernen /dev/sda
aus Arrays.
mdadm /dev/md126 --remove /dev/sda1
mdadm /dev/md127 --remove /dev/sda2
Überprüfen des Zustands des Arrays nach dem Entfernen der Festplatte.
[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 besteht darin, Partitionen der neuen Festplatte zur Synchronisierung zu den Arrays hinzuzufügen. Schauen wir 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
Abschnitt /dev/sdc1
ist bios_grub
Abschnitt und ist nicht an der Erstellung von Arrays beteiligt. Die Arrays werden nur verwendet /dev/sdc2
и /dev/sdc3
. Wir fügen diese Abschnitte zu den entsprechenden Arrays hinzu.
mdadm /dev/md126 --add /dev/sdc2
mdadm /dev/md127 --add /dev/sdc3
Dann warten wir, bis das Array synchronisiert ist.
[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>
Festplattenpartitionierung nach dem Hinzufügen von Partitionen zum 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
Blockgerätepartitionen entfernen /dev/sda
aus Arrays.
mdadm /dev/md126 --remove /dev/sdb1
mdadm /dev/md127 --remove /dev/sdb2
5. Kopieren Sie die GPT-Layouttabelle 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 einer GPT-Tabelle enthalten ist - gdisk
.
Einstellung gdisk
für CentOS:
yum install -y gdisk
Einstellung gdisk
für Debian/Ubuntu:
apt install -y gdisk
ACHTUNG: Für GPT zuerst Festplatte wird angezeigt auf welche Kopieren Sie das Markup, Sekunde disk gibt die Festplatte an aus denen Kopieren Sie das Markup. Wenn Sie die Festplatten vertauschen, wird die ursprünglich funktionierende Partition überschrieben und zerstört.
Kopieren Sie die GPT-Markup-Tabelle.
sgdisk -R /dev/sdd /dev/sdc
Festplattenpartitionierung nach der Übertragung einer Tabelle auf die Festplatte /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 alle Partitionen hinzu, die an Software-RAID-Arrays teilnehmen.
mdadm /dev/md126 --add /dev/sdd2
mdadm /dev/md127 --add /dev/sdd3
Wir warten darauf, dass das Array synchronisiert wird.
[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 der GPT-Partition auf die zweite neue Festplatte sieht die Partition 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]
Als nächstes installieren Sie GRUB auf den neuen Festplatten.
Installation für CentOS:
grub2-install /dev/sdX
Installation für Debian/Ubuntu:
grub-install /dev/sdX
wo X
— Laufwerksbuchstabe, in unserem Fall Laufwerke /dev/sdc
и /dev/sdd
.
Wir aktualisieren Informationen über das Array.
Für CentOS:
mdadm --detail --scan --verbose > /etc/mdadm.conf
Von Debian/Ubuntu:
echo "DEVICE partitions" > /etc/mdadm/mdadm.conf
mdadm --detail --scan --verbose | awk '/ARRAY/ {print}' >> /etc/mdadm/mdadm.conf
Das Bild wird aktualisiert initrd
:
Für CentOS:
dracut -f -v --regenerate-all
Von Debian/Ubuntu:
update-initramfs -u -k all
Wir aktualisieren die GRUB-Konfiguration.
Für CentOS:
grub2-mkconfig -o /boot/grub2/grub.cfg
Von Debian/Ubuntu:
update-grub
Nach Abschluss der Schritte können die alten Datenträger entfernt werden.
6. Dateisystemerweiterung (ext4) der Root-Partition
Festplattenpartitionierung vor Dateisystemerweiterung nach der Migration des Systems auf 2 x 3 TB Festplatten (RAID-1).
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 223,6G 0 disk
sdb 8:16 0 223,6G 0 disk
sdc 8:32 0 2,7T 0 disk
├─sdc1 8:33 0 2M 0 part
├─sdc2 8:34 0 1G 0 part
│ └─md127 9:127 0 1023M 0 raid1 /boot
└─sdc3 8:35 0 2,7T 0 part
└─md126 9:126 0 222,4G 0 raid1
├─vg0-root 253:0 0 206,4G 0 lvm /
└─vg0-swap 253:1 0 16G 0 lvm [SWAP]
sdd 8:48 0 2,7T 0 disk
├─sdd1 8:49 0 2M 0 part
├─sdd2 8:50 0 1G 0 part
│ └─md127 9:127 0 1023M 0 raid1 /boot
└─sdd3 8:51 0 2,7T 0 part
└─md126 9:126 0 222,4G 0 raid1
├─vg0-root 253:0 0 206,4G 0 lvm /
└─vg0-swap 253:1 0 16G 0 lvm [SWAP]
Jetzt Abschnitte /dev/sdc3
и /dev/sdd3
belegen 2.7 TB. Da wir ein neues Festplattenlayout mit einer GPT-Tabelle erstellt haben, wurde die Größe der Partition 3 sofort auf den maximal möglichen Speicherplatz eingestellt; in diesem Fall ist keine Erweiterung der Partition erforderlich.
Es ist notwendig:
- Array md126 erweitern,
- Erweitern Sie PV (physisches Volumen),
- Erweitern Sie LV (logisches Volume) vg0-root,
- Erweitern Sie das Dateisystem.
1. Erweitern Sie das Array md126
bis zum Maximum.
mdadm --grow /dev/md126 --size=max
Nach der Array-Erweiterung md126
Die Größe des belegten Speicherplatzes hat sich auf 2.7 TB erhöht.
[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]
Erweitern physisches Volumen.
Überprüfen Sie vor der Erweiterung den aktuellen Wert der belegten Fläche PV /dev/md126
.
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/md126 vg0 lvm2 a-- 222,40g 0
Wir erweitern PV mit dem folgenden Befehl.
pvresize /dev/md126
Wir prüfen die abgeschlossene Aktion.
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/md126 vg0 lvm2 a-- <2,73t 2,51t
Erweitern logisches Volume vg0-root.
Nachdem wir PV erweitert haben, überprüfen wir den belegten Platz VG.
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg0 1 2 0 wz--n- <2,73t 2,51t
Lassen Sie uns den von LV belegten Platz überprüfen.
[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 belegt 206.41 GB.
Wir erweitern LV auf den maximalen Speicherplatz.
lvextend -l +100%FREE /dev/mapper/vg0-root
Überprüfung des LV-Raums 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
Erweitern des Dateisystems (ext4).
Lassen Sie uns die aktuelle Größe des Dateisystems überprüfen.
[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.
Erweitern des Dateisystems.
resize2fs /dev/mapper/vg0-root
Überprüfen der Größe des Dateisystems nach der 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 Dateisystemgröße wurde erhöht, um das gesamte Volume abzudecken.
Source: habr.com