GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Erstellen und migrieren Sie ein vorhandenes funktionierendes RedHat-/CentOS-System auf RAID 1/RAID 10

Das Linux-System verfügt über eine integrierte Unterstützung für Software-RAID über MD-Geräte, auch bekannt als Linux-Software-RAID. Die meisten Linux-Distributionen wie Red Hat Enterprise Linux (RHEL) und CentOS ermöglichen Ihnen die einfache Einrichtung von RAID-Arrays während der Installation des Betriebssystems. Wenn Sie jedoch bereits ein voll funktionsfähiges, funktionierendes und laufendes System mit mehreren Festplattenlaufwerken haben, bisher aber auf einem System mit einer einzelnen Festplatte liefen, birgt die Konvertierung von einer einzelnen Festplatte zu RAID viel mehr Risiken und Möglichkeiten eines Systemausfalls.

RAID bietet Vorteile in Bezug auf Datenredundanz und Leistungsverbesserung und wird für die Einrichtung unternehmenskritischer Server empfohlen. Beispielsweise erzeugt RAID 1 einen gespiegelten Satz, der den Ausfall einer einzelnen Festplatte tolerieren kann, während die Leistung möglicherweise beschleunigt wird, da Leseanforderungen von jeder Festplatte im Array bedient werden können. RAID 10 (RAID 1+0) ist ein Stripe von gespiegelten Sets oder RAID 0 von gespiegelten RAID 1-Sets, das einen besseren Durchsatz und eine bessere Latenz bietet und gleichzeitig den Ausfall mehrerer Festplatten toleriert, solange kein Mirror alle seine Laufwerke verliert.

Dieses Tutorial bietet eine Schritt-für-Schritt-Anleitung zum manuellen Erstellen von RAID 1 auf einem System mit zwei Festplatten oder RAID 10 auf einem System mit vier Festplatten auf einem derzeit laufenden System, auf dem CentOS / RedHat bereits installiert ist. Auch der GRUB-Bootloader ist so konfiguriert, dass das System beim Ausfall einer Festplatte noch booten kann. Dies ist besonders nützlich, wenn Sie nicht auf die Konsole auf einem dedizierten Server zugreifen können, der von einem Webhosting-Unternehmen abonniert ist, was Sie versehentlich daran hindert, RAID-Geräte während der Installation zu erstellen.

Die erste Phase der Migration eines derzeit laufenden Systems zu RAID ohne Datenverlust besteht darin, sicherzustellen, dass alle aktuellen Daten auf ein heruntergestuftes RAID repliziert werden. In diesem Tutorial arbeiten wir an einem System, das mit 477 MB /boot-Partition als /dev/sda1, mehr als 900 GB /root-Partition als /dev/sda2, 4 GB Auslagerungsspeicher in /dev/sda3 und einem weiteren ausgestattet ist 4 GB /tmp logische Partition /dev/sda5 gehostet auf /dev/sda4 erweiterter Partition.

  1. Überprüfen und vergewissern Sie sich, dass derzeit keine vorhandenen RAID-Geräte ausgeführt werden. Der Inhalt der Datei /etc/mdadm.conf und das Ergebnis von cat /proc/mdstat sollte leer sein, und es sollten keine Arrays in der Konfigurationsdatei oder automatisch gefunden werden.
    mdadm --examine --scan > /etc/mdadm.conf
    mdadm --assemble --scan 
    cat /proc/mdstat
  2. Fahren Sie als Vorsichtsmaßnahme alle Arrays herunter, die heruntergefahren werden können (d. h. derzeit nicht verwendet werden):
    mdadm --stop --scan
  3. Ändern Sie die Partitionstabelle der Festplatten mit den folgenden Befehlen in MBR. Überspringen Sie diesen Schritt, wenn Ihre Festplatten keine GTP-Partitionstabelle haben.
    parted /dev/sdb
    (parted) mktable msdos
    (parted) quit

    Antworten Sie mit Ja wenn Sie mit „Warnung:Das vorhandene Plattenlabel auf /dev/sdb wird zerstört und alle Daten auf dieser Platte gehen verloren. Möchten Sie fortfahren?“

    Update an Kernel senden:

    partprobe /dev/sdb

    Wiederholen Sie den Befehl für andere Laufwerke, d. h. /dev/sdc und /dev/sdd, falls zutreffend.

  4. Partitionieren Sie die Festplatte nach Ihren Wünschen.

    In diesem Tutorial verwenden wir den folgenden Befehl, um Partitionen zu erstellen, die mit dem vorhandenen Laufwerk /dev/sda:

    identisch sind
    sfdisk -d /dev/sda | sfdisk --force /dev/sdb

    Wiederholen Sie den Befehl für andere Laufwerke, d. h. /dev/sdc und /dev/sdd, falls zutreffend.

    TippWenn Sie „fdisk“ zum manuellen Erstellen von Partitionen verwenden, können Sie den obigen Befehl „sfdisk“ verwenden, um die Partitionsstrukturen auf andere Festplatten zu replizieren, wenn Sie mehr als 1 zusätzliche Festplatte haben. Beispiel:„sfdisk -d /dev/sdb | sfdisk –force /dev/sdc“ repliziert Partitionen von /dev/sdb nach /dev/sdc.
  5. Ändert den Partitionstyp in Linux RAID Autodetect. Dazu „fdisk“ die jeweilige Festplatte. Beispiel:
    fdisk /dev/sdb

    Geben Sie dann t aus Befehl:

    Command (m for help): t
    Partition number (1-5): 1
    Hex code (type L to list codes): fd
    Changed system type of partition 1 to fd (Linux raid autodetect)

    Wiederholen Sie den Vorgang für die restlichen Partitionen auf der Festplatte. Machen Sie die Änderung dann dauerhaft:

    Command (m for help): w

  6. Entfernen Sie RAID für die neuen Laufwerke, falls das RAID zuvor auf den „neuen“ Laufwerken eingerichtet wurde:
    mdadm --stop --scan
    mdadm --zero-superblock /dev/sdb{1..9}

    Und dann Update an Kernel senden:

    partprobe /dev/sdb

    Wiederholen Sie den Befehl für andere Laufwerke, d. h. /dev/sdc und /dev/sdd, falls zutreffend.

  7. Laden Sie die erforderlichen Module in den Kernel:
    modprobe raid0
    modprobe raid1
    modprobe raid10

    Wenn Sie jetzt „cat /proc/mdstat“ ausführen, sollten Sie etwas Ähnliches sehen wie:

    Persönlichkeiten:[Überfall0] [Überfall1] [Überfall10]
    nicht verwendete Geräte:

    RAID-bezogene Module wurden in den Kernel geladen, aber es sind keine RAID-Sets konfiguriert.

  8. Erstellen Sie RAID-Geräte im heruntergestuften Zustand, da das eine Laufwerk fehlt, d. h. /dev/sda, das derzeit mit dem Betriebssystem installiert ist und zum Booten verwendet wird. Da CentOS und RedHat Version 5.0 und 6.0 standardmäßig Grub 0.97 verwenden, wird „–metadata=0.9“ angegeben, damit eine ältere Version von Superblock verwendet wird. Andernfalls antwortet Grub möglicherweise mit dem Fehler „Dateisystemtyp unbekannt, Partitionstyp 0xfd“ und verweigert die Installation. Darüber hinaus gibt mdadm auch eine Warnung für das Boot-Array aus:Dieses Array hat am Anfang Metadaten und ist möglicherweise nicht als Boot-Gerät geeignet. Wenn Sie „/boot“ auf diesem Gerät speichern möchten, stellen Sie bitte sicher, dass Ihr Bootloader md/v1.x-Metadaten versteht, oder verwenden Sie –metadata=0.90. Bei Grub2 ist der Parameter nicht notwendig. Die folgende Syntax geht davon aus, dass wir RAID10-Arrays mit 4 Festplatten erstellen. Wechseln Sie zu RAID1, wenn Sie nur 2 Festplatten haben, indem Sie die Optionen auf „–level=1“ ändern und die nicht vorhandenen Festplattenpartitionen entfernen.

    Für /boot verwenden wir RAID1:

    mdadm --create --verbose /dev/md1 --metadata=0.9 --level=1 --raid-devices=4 missing /dev/sdb1 /dev/sdc1 /dev/sdd1

    Verwenden Sie für /root wie vorgesehen RAID10:

    mdadm --create --verbose /dev/md2 --metadata=0.9 --level=10 --raid-devices=4 missing /dev/sdb2 /dev/sdc2 /dev/sdd2

    Wenn Sie gefragt werden, ob Sie mit der Erstellung des Arrays fortfahren möchten, antworten Sie mit Ja . Wiederholen Sie den Vorgang, um RAID-Arrays für Auslagerungsspeicher und andere Partitionen zu erstellen, falls verfügbar.

    HinweisRAID-Array kann nicht auf erweiterter Partition erstellt werden, mdadm antwortet mit /dev/sdbX ist für dieses Array nicht geeignet.
  9. Überprüfen Sie das Ergebnis mit:
    cat /proc/mdstat

    Die Ausgabe sollte sein:

    [Überfall0] [Überfall1] [Überfall10]
    md5 :aktiv raid10 sdd5[3] sdc5[2] sdb5[1]
    4189184 Blöcke 512K Chunks 2 Beinahe-Kopien [4/3] [_UUU]

    md2 :aktives raid10 sdd2[3] sdc2[2] sdb2[1]
    1939915776 Blöcke 512.000 Blöcke 2 Beinahe-Kopien [4/3] [_UUU]
    Bitmap:15/15 Seiten [60 KB], 65536 KB Stück

    md1 :aktiver raid1 sdd1[3] sdc1[2] sdb1[1]
    511936 Blöcke [4/3] [_UUU]

    md3 :aktives raid10 sdd3[3] sdb3[1] sdc3[2]
    8387584 Blöcke 512K Chunks 2 Beinahe-Kopien [4/3] [_UUU]

    nicht verwendete Geräte:

  10. Erstellen Sie eine mdadm.conf aus der aktuellen RAID-Konfiguration:
    mdadm --examine --scan >> /etc/mdadm.conf
  11. Erstellen Sie die Dateisysteme auf den neuen RAID-Geräten:
    mkfs.ext4 /dev/md1 # You may want to use mkfs.ext2 for ext2 filesystem for /boot
    mkfs.ext4 /dev/md2 # ext4 filesystem for / root
    mkswap /dev/md3 # Swap space

    Erstellen Sie das ext4-Dateisystem für alle anderen neu erstellten RAID-Arrays.

  12. Ersetzen Sie die Geräteeinträge in /etc/fstab mit den neuen RAID-Geräten. Führen Sie dazu zunächst aus:
    blkid | grep /dev/md

    Die Ausgabe mit der UUID neuer Software-RAID-Geräte sieht folgendermaßen aus:

    /dev/md1:UUID=“1234abcd-12ab-12ab-12ab-123456abcdef“ TYPE=“ext4“
    /dev/md2:UUID=“2234abcd-12ab-12ab-12ab-123456abcdef“ TYPE=“ext4“
    /dev/md3:UUID=“3234abcd-12ab-12ab-12ab-123456abcdef“ TYPE=“swap“
    /dev/md5:UUID=”4234abcd-12ab-12ab-12ab-123456abcdef” TYPE=”ext4″

    In /etc/fstab , ändern Sie die Zeilen, die verschiedene Einhängepunkte enthalten, in die UUID der entsprechenden neuen /dev/mdX neuen RAID-Dateisysteme, dh den Wert nach „UUID=“. Zum Beispiel

    UUID=2234abcd-12ab-12ab-12ab-123456abcdef /       ext4   defaults              1 1
    UUID=1234abcd-12ab-12ab-12ab-123456abcdef /boot   ext4   defaults              1 2
    UUID=4234abcd-12ab-12ab-12ab-123456abcdef /tmp    ext4   noexec,nosuid,nodev   1 2
    UUID=3234abcd-12ab-12ab-12ab-123456abcdef swap    swap   defaults              0 0

    Lassen Sie tmpfs, devpts, sysfs, proc und andere unberührt. Wenn Sie wissen, was Sie tun, oder radikal andere Dateisysteme haben, können Sie fstab natürlich nach Belieben ändern.

  13. Aktualisieren Sie die initrd und erstellen Sie die initramfs mit der neuen mdadm.conf:
    mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.old
    dracut --mdadmconf  --add-drivers "raid1 raid10" --filesystems "ext4 ext3 swap tmpfs devpts sysfs proc" --force /boot/initramfs-$(uname -r).img $(uname -r)
    neu

    Hinweis:Ersetzen Sie $(uname -r) durch die aktuelle Kernel-Version, wenn die Befehle für Sie nicht funktionieren, insbesondere auf einer LiveCD.

  14. In /boot/grub/menu.lst , ändern Sie den Wert der UUID oder des Bezeichnungseintrags für den Kernel in die UUID von / (Stammverzeichnis) auf dem RAID-Array oder /dev/md2 (ändern Sie dies entsprechend, wenn Ihr /boot auf einer anderen Partition gemountet ist). Zum Beispiel:
    title CentOS (2.6.32-504.3.3.el6.x86_64)
            root (hd0,0)
            kernel /vmlinuz-2.6.32-504.3.3.el6.x86_64 ro root=UUID=2234abcd-12ab-12ab-12ab-123456abcdef rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rhgb quiet
            initrd /initramfs-2.6.32-504.3.3.el6.x86_64.img

    Oder,

    title CentOS (2.6.32-504.3.3.el6.x86_64)
            root (hd0,0)
            kernel /vmlinuz-2.6.32-504.3.3.el6.x86_64 ro root=/dev/md2 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rhgb quiet
            initrd /initramfs-2.6.32-504.3.3.el6.x86_64.img

    Stellen Sie sicher, dass KEIN rn_NO_DM und rn_NO_MD Boot-Parameter werden nicht als Optionen für den Kernel aufgeführt. Wenn Sie mit der Bearbeitung fertig sind, speichern Sie die aktualisierte menu.lst.

  15. Replizieren Sie die vorhandenen Daten auf vorhandenen Partitionen manuell auf neue Software-RAID-Partitionen.

    Für /root (/dev/md2, ändern Sie es entsprechend, wenn es nicht so ist):

    mkdir /mnt/raid
    mount /dev/md2 /mnt/raid
    cd /mnt/raid
    cp -ax / .
    sync

    Für /boot:

    rm -rf /mnt/raid/boot
    mkdir /mnt/raid/boot
    mount /dev/md1 /mnt/raid/boot
    cd /mnt/raid/boot
    cp -ax /boot/* .
    sync

    Führen Sie unter SELinux außerdem Folgendes aus:touch /mnt/raid/.autorelabel für /boot.

    Wenn Sie weitere Partitionen wie /var, /home usw. zur Verfügung haben, wiederholen Sie den Vorgang für diese Dateisysteme. Zum Beispiel:

    rm -rf /mnt/raid/home
    mkdir /mnt/raid/home
    mount /dev/md1 /mnt/raid/home
    cd /mnt/raid/home
    cp -ax /home/* .
    sync
    TippEs gibt viele Möglichkeiten, die Dateien auf neue RAID-Arrays zu kopieren und zu duplizieren. Zum Beispiel:

    rsync -avxHAXS --delete --progress / /mnt/raid
    tar -C / -clspf - . | tar -xlspvf -
    find / -depth -xdev | cpio -pmd /mnt/raid
  16. Installieren Sie Grub 0.97 auf dem MBR aller Festplatten, damit das System booten kann, wenn eine der Festplatten ausfällt. Dazu muss folgender Schritt durchgeführt werden::
    grub
    grub> root (hd0,0)
    grub> setup (hd0) 
    grub> root (hd1,0)
    grub> setup (hd1)
    grub> root (hd2,0)
    grub> setup (hd2)
    grub> root (hd3,0)
    grub> setup (hd3)
    grub> quit

    Überspringen Sie hd2 und hd3, wenn Sie nur 2 Festplatten haben.

  17. Wir werden den Server neu starten. Sichern Sie alles, falls der Server nicht zurückkommt, und geben Sie dann Folgendes aus:
    reboot

Der erste Teil der Konfiguration der Linux-Software-RAID-Unterstützung auf dem aktuell ausgeführten System ist abgeschlossen. Wenn der Server zurückgekehrt ist, fahren Sie mit den folgenden Verfahren fort, um die fehlende Festplatte (z. B. /dev/sda, auf der das System ursprünglich ausgeführt wird) erneut zu den RAID-Arrays hinzuzufügen. Die folgende Anleitung geht davon aus, dass die verbleibende Festplatte, die nicht zu RAID-Arrays hinzugefügt wurde, /dev/sda ist. Ändern Sie, falls Ihr Gerätename anders ist.

  1. Bestätigen Sie nach dem Hochfahren des Servers, dass die Dateisysteme auf den RAID-Arrays gemountet sind, d. h. /dev/md0, /dev/md1…./dev/md3.
    df -h

    Erwartetes Ergebnis:

    Filesystem      Size  Used Avail Use% Mounted on
    /dev/md2        1.8T  1.2G  1.7T   1% /
    tmpfs           3.9G     0  3.9G   0% /dev/shm
    /dev/md1        477M   76M  377M  17% /boot
    /dev/md5        3.9G  8.1M  3.7G   1% /tmp 
  2. Ändern Sie die Partitionstabelle der Festplatte mit den folgenden Befehlen in MBR. Überspringen Sie diesen Schritt, wenn die Festplatte keine GTP-Partitionstabelle hat.
    parted /dev/sda
    (parted) mktable msdos
    (parted) quit

    Antworten Sie mit Ja wenn Sie mit „Warnung:Das vorhandene Plattenlabel auf /dev/sdb wird zerstört und alle Daten auf dieser Platte gehen verloren. Möchten Sie fortfahren?“

  3. Löschen Sie alle vorhandenen Partitionen auf /dev/sda:
    fdisk /dev/sda
    Command (m for help): d
    Partition number (1-5): 1
    
    Command (m for help): d
    Partition number (1-5): 2
    
    Command (m for help): d
    Partition number (1-5): 3
    
    Command (m for help): d
    Partition number (1-5): 4
    
    Command (m for help): d
    Partition number (1-5): 5
    
    Command (m for help): w
    The partition table has been altered!
    
    Calling ioctl() to re-read partition table.
    Syncing disks.
  4. Entfernen Sie jegliches RAID auf der Festplatte:
    mdadm --zero-superblock /dev/sda{1..9}

    Update an Kernel senden:

    partprobe /dev/sda
  5. Kopieren Sie die Partitionsstruktur von /dev/sdb:
    sfdisk -d /dev/sdb | sfdisk --force /dev/sda
  6. Ausführen:
    fdisk -l

    Stellen Sie sicher, dass alle Partitionen, die die RAID-Arrays bilden, von fd sind Automatische Erkennung von Linux-RAID-Partitionstypen (Wert in der Spalte „ID“). Wenn es Linux vom Typ 83 ist, verwenden Sie fdisk, cfdisk oder parted, um es in „fd“ zu ändern. Zum Beispiel:

    Aktualisierung an den Kernel senden, wenn es Änderungen gibt.

    partprobe /dev/sda
  7. Fügen Sie die Partitionen in /dev/sda zu den jeweiligen RAID-Arrays hinzu, um die Arrays zu vervollständigen (4 Festplatten auf RAID10 oder 2 Festplatten auf RAID1):
    mdadm --add /dev/md1 /dev/sda1
    mdadm --add /dev/md2 /dev/sda2
    mdadm --add /dev/md3 /dev/sda3

    Wiederholen Sie dies gegebenenfalls für andere Partitionen.

  8. Überprüfen Sie den Fortschritt des RAID-Wiederherstellungsprozesses mit:
    cat /proc/mdstat

    Die Ausgabe sollte sein:

    [Überfall0] [Überfall1] [Überfall10]
    md5 :aktiv raid10 sdd5[3] sdc5[2] sdb5[1]
    4189184 Blöcke 512K Chunks 2 Beinahe-Kopien [4/3] [_UUU]

    md2 :aktives raid10 sdd2[3] sdc2[2] sdb2[1]
    1939915776 Blöcke 512.000 Blöcke 2 Beinahe-Kopien [4/3] [_UUU]
    [====>…………………………….] Erholung =37,8 % (177777777/388888888) Ende =60,5 min Geschwindigkeit =100000 K/s
    Bitmap:15/15 Seiten [60 KB], 65536 KB Stück

    md1 :aktiver raid1 sdd1[3] sdc1[2] sdb1[1]
    511936 Blöcke [4/3] [_UUU]

    md3 :aktives raid10 sdd3[3] sdb3[1] sdc3[2]
    8387584 Blöcke 512K Chunks 2 Beinahe-Kopien [4/3] [_UUU]

    nicht verwendete Geräte:

    TippSie können den Inhalt der Datei /proc/mdstat mit dem folgenden Befehl, der alle 5 Sekunden aktualisiert wird, kontinuierlich aktualisieren:

    watch -n 5 cat /proc/mdstat
  9. Erstellen Sie den Boot-Record auf dem /dev/sda MBR mit grub neu, um sicherzustellen, dass das System auf jeder Festplatte booten kann:
    grub
    grub> root (hd0,0)
    grub> setup (hd0) 
    grub> quit
  10. Führen Sie nach der Wiederherstellung aller RAID-Arrays einen Systemneustart durch.
    reboot
  11. Als das System wieder hochgefahren und online war, herzlichen Glückwunsch, Sie arbeiten jetzt mit Software-RAID.

Nachdem RAID mit mdadm aktiviert wurde, ist es am wichtigsten, sicherzustellen, dass das E-Mail-Warnbenachrichtigungssystem funktioniert. Linux-Software-RAID kann sich selbst auf mögliche Probleme auf den RAID-Arrays wie Festplattenfehler überwachen und E-Mail-Benachrichtigungen senden, wenn es mögliche Fehler findet.

Um zu überprüfen, ob die E-Mail-Benachrichtigung funktioniert, geben Sie den folgenden Befehl ein:

mdadm --monitor --test --oneshot /dev/md1

Sie sollten eine E-Mail mit dem Inhalt von /proc/mdstat erhalten. Wenn Sie die E-Mail nicht erhalten, vergewissern Sie sich, dass Ihr System E-Mails senden kann, und überprüfen Sie die MAILADDR Wert in mdadm.conf . Es sollte ungefähr so ​​lauten:

MAILADDR [email protected]

Linux
  1. So konfigurieren Sie die Virtualisierung unter Redhat Linux

  2. So migrieren Sie von CentOS 8 auf Rocky Linux 8

  3. Erstellen Sie einen sudo-Benutzer in CentOS

  4. Wie erstelle ich eine EFI-Systempartition?

  5. Korrigieren der CentOS-Systemuhr

Konfigurieren Sie externes RAID auf Ubuntu/Centos/RedHat

Centos vs. RedHat:15 interessante Fakten

So migrieren Sie CentOS 8 auf CentOS Stream

So installieren Sie Dgraph unter CentOS 8

So migrieren Sie den CentOS-Stream nach AlmaLinux

So installieren Sie Nginx unter CentOS 8