Hinweis:
- Dieses Tutorial ist in einer von Oracle bereitgestellten kostenlosen Übungsumgebung verfügbar.
- Es verwendet Beispielwerte für Oracle Cloud Infrastructure-Zugangsdaten, -Mandanten und -Compartments. Ersetzen Sie diese Werte durch die für Ihre Cloud-Umgebung spezifischen Werte.
Logische RAID-Volumes auf Oracle Linux konfigurieren
Einführung
Mit LVM RAID können Sie ein logisches Volume (LV) erstellen, das mehrere physische Geräte verwendet, um die Leistung zu verbessern oder Geräteausfälle zu tolerieren. In LVM handelt es sich bei den physischen Geräten um physische Volumes (PVs) in einer einzelnen Volume-Gruppe (VG).
In diesem Tutorial werden die Oracle Linux Volume Manager-Serviceprogramme verwendet, um ein logisches RAID-Volume zu erstellen und dann einen Datenträgerfehler zu beheben.
Ziele
- Logisches RAID-Volume erstellen
- Größe eines logischen RAID-Volumes ändern
- Wiederherstellen eines ausgefallenen RAID-Geräts
Voraussetzungen
Jedes Oracle Linux 8-System mit den folgenden Konfigurationen:
- Nicht-Root-Benutzer mit Sudo-Berechtigungen
- Zusätzliche Block-Volumes zur Verwendung mit LVM
Laborumgebung einrichten
Hinweis: Wenn Sie die kostenlose Übungsumgebung verwenden, finden Sie unter Oracle Linux Lab - Grundlagen Informationen zu Verbindungen und anderen Nutzungsanweisungen.
-
Wenn noch nicht geschehen, öffnen Sie ein Terminal und verbinden Sie mit jeder oben genannten Instanz über ssh.
ssh oracle@<ip_address_of_instance>
-
Prüfen Sie, ob die Block-Volumes vorhanden sind.
sudo lsblk
In der Ausgabe für die freie Übungsumgebung müssen /dev/sda für das vorhandene Dateisystem und die verfügbaren Festplatten /dev/sdb, /dev/sdc, /dev/sdd und /dev/sde angezeigt werden. Es gibt auch zwei zusätzliche Datenträger (/dev/sdf, /dev/sdg), die wir später verwenden werden.
Physisches Volumen (PV)
-
Erstellen Sie die physischen Volumes (PV) mit den verfügbaren Datenträgern.
sudo pvcreate -v /dev/sd[b-e]
Führen Sie den Befehl mit der Option
-v
aus, um Verbose-Informationen abzurufen. -
Prüfen Sie die PV-Erstellung.
sudo pvs
Beispielausgabe:
[oracle@ol-node01 ~]$ sudo pvs PV VG Fmt Attr PSize PFree /dev/sda3 ocivolume lvm2 a-- 45.47g 0 /dev/sdb lvm2 --- 50.00g 50.00g /dev/sdc lvm2 --- 50.00g 50.00g /dev/sdd lvm2 --- 50.00g 50.00g /dev/sde lvm2 --- 50.00g 50.00g
Volume-Gruppe (VG)
-
Erstellen Sie die Volume-Gruppe (VG) mit den neu erstellten physischen Volumes.
sudo vgcreate -v foo /dev/sd[b-e]
-
Prüfen Sie die VG-Erstellung.
sudo vgs
Beispielausgabe:
[oracle@ol-node01 ~]$ sudo vgs VG #PV #LV #SN Attr VSize VFree foo 4 0 0 wz--n- 199.98g 199.98g ocivolume 1 2 0 wz--n- 45.47g 0
Logisches Volume (LV)
-
Erstellen Sie das logische RAID-Volume (LV).
sudo lvcreate --type raid5 -i 3 -L 5G -n rr foo
--type
: Legen Sie die RAID-Ebene fest. LVM unterstützt die RAID-Ebenen 0, 1, 4, 5, 6 und 10.-i
: Legen Sie die Anzahl (n) der Stripes (Geräte) für ein logisches RAID 4/5/6-Volume fest. Für eine raid5-LV sind n+1-Geräte erforderlich.-L
: Gesamtgröße des RAID-Arrays.-n
: Name des RAID-Arrays.
Beispielausgabe:
[oracle@ol-node01 ~]$ sudo lvcreate --type raid5 -i 3 -L 5G -n rr foo Using default stripesize 64.00 KiB. Rounding size 5.00 GiB (1280 extents) up to stripe boundary size 5.00 GiB (1281 extents). Logical volume "rr" created.
Weitere Informationen finden Sie in der
lvmraid(7)
-Manpage. -
Prüfen Sie die LV-Erstellung.
sudo lvdisplay foo
Die Ausgabe zeigt alle logischen Volumes, die in der Foo-VG enthalten sind.
Beispielausgabe:
[oracle@ol-node01 ~]$ sudo lvdisplay foo --- Logical volume --- LV Path /dev/foo/rr LV Name rr VG Name foo LV UUID vghyRi-nKGM-3b9t-tB1I-biJX-10h6-UJWvm2 LV Write Access read/write LV Creation host, time ol-node01, 2022-05-19 01:23:46 +0000 LV Status available # open 0 LV Size 5.00 GiB Current LE 1281 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 1024 Block device 252:10
-
Zeigen Sie den LV-Typ an.
sudo lvs -o name,segtype foo/rr
- Der Befehl
lvs
kann den vollständigen LV-Pfad als Option verwenden, um die Ergebnisse einzugrenzen.
Beispielausgabe:
[oracle@ol-node01 ~]$ sudo lvs -o name,segtype /dev/foo/rr LV Type rr raid5
- Der Befehl
Dateisystem erstellen
-
Erstellen Sie ein XFS-Dateisystem auf dem RAID-LV.
sudo mkfs.xfs -f /dev/foo/rr
-f
: Erzwingt das Überschreiben eines vorhandenen Dateisystems.
Beispielausgabe:
[oracle@ol-node01 ~]$ sudo mkfs.xfs -f /dev/foo/rr meta-data=/dev/foo/rr isize=512 agcount=8, agsize=163952 blks = sectsz=4096 attr=2, projid32bit=1 = crc=1 finobt=1, sparse=1, rmapbt=0 = reflink=1 data = bsize=4096 blocks=1311616, imaxpct=25 = sunit=16 swidth=48 blks naming =version 2 bsize=4096 ascii-ci=0, ftype=1 log =internal log bsize=4096 blocks=2560, version=2 = sectsz=4096 sunit=1 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0
Hinweis: Das XFS-Dateisystem kann seine Größe nach der Erstellung nicht reduzieren. Der Befehl xfs_growfs kann jedoch erweitert werden.
RAID-LV einhängen
-
Mounten Sie das Dateisystem.
sudo mkdir -p /u01 sudo mount /dev/foo/rr /u01
-
Melden Sie die Verwendung des Dateisystemdatenträgers.
df -h
Beispielausgabe:
[oracle@ol-node01 ~]$ df -h Filesystem Size Used Avail Use% Mounted on ... /dev/mapper/foo-rr 5.0G 69M 5.0G 2% /u01
Ändern der Größe eines RAID-LV
Es gibt verschiedene Möglichkeiten, die Größe eines RAID-LV zu ändern:
- Verwenden Sie
lvresize
oderlvextend
, um das LV zu erhöhen. - Verwenden Sie
lvresize
oderlvreduce
, um das LV zu verkleinern. - Verwenden Sie
lvconvert
mit dem Parameter--stripes N
, um die Anzahl der Stripes zu ändern.
Wichtig: Das Verringern eines LV ist riskant und kann zu Datenverlust führen. Wenn Sie ein XFS-Dateisystem auf dem LV ausführen, sollten Sie die LV nicht verkleinern, da XFS die Dateisystemgröße nicht reduziert.
Erhöhen der RAID-LV-Kapazität
-
Erhöhen Sie die RAID-LV-Größe mit dem verfügbaren freien Speicherplatz in der VG auf 10 G.
sudo lvresize -L 10G foo/rr
Um die Größe um 10G zu erhöhen, verwenden Sie stattdessen die Option
-L +10G
. -
Prüfen Sie, ob der LV auf 10G erhöht wurde.
sudo lvs foo/rr
In der LSize-Datei sollte 10g angezeigt werden.
-
Vergrößern Sie das Dateisystem.
sudo xfs_growfs /u01
-
Melden Sie die aktualisierte Datenträgernutzung des Dateisystems.
df -h
-
Prüfen Sie den RAID-Synchronisierungsstatus, bevor Sie fortfahren.
Warnung: Wenn Sie zu schnell mit dem nächsten Schritt fortfahren, wird möglicherweise ein Fehler angezeigt, da foo/rr nicht synchron ist.
Dieser Fehler tritt auf, wenn die Synchronisierung nach dem Ändern der Größe des RAID-LV oben nicht abgeschlossen wurde.
Prüfen Sie den RAID-LV mit
watch sudo lvs foo/rr
, und warten Sie, bis das Feld Cpy%Sync 100% erreicht. Nachdem Cpy%Sync 100% erreicht hat, beenden Sie den Befehlwatch
mitctrl-c
.
Weitere Informationen finden Sie auf den Manpages lvresize(8)
, lvextend(8)
und lvreduce(8)
.
Stripes auf RAID-LV erhöhen
Wenn Sie die Anzahl der Stripes in einem RAID-LV ändern, erhöht sich die Gesamtkapazität und ist unter RAID4/5/6/10 möglich. Jeder zusätzliche Stripe erfordert eine gleiche Anzahl von nicht zugewiesenen physischen Volumes (Geräte) innerhalb der Volume-Gruppe.
-
Prüfen Sie, welche physischen Volumes (PV) in VG-Foo vorhanden sind.
sudo pvs
Aus der Ausgabe /dev/sdb sind /dev/sdc, /dev/sdd und /dev/sde alle mit VG-Foo verknüpft.
-
Prüfen Sie, ob nicht verwendete physische Volumes vorhanden sind.
sudo pvdisplay -m /dev/sd[b-e]
Beispielausgabe:
--- Physical volume --- PV Name /dev/sdb VG Name foo PV Size 50.00 GiB / not usable 4.00 MiB Allocatable yes PE Size 4.00 MiB Total PE 12799 Free PE 11944 Allocated PE 855 PV UUID Q1uEMC-0zL1-dgrA-9rIT-1xrA-Vnfr-2E8tJT --- Physical Segments --- Physical extent 0 to 0: Logical volume /dev/foo/rr_rmeta_0 Logical extents 0 to 0 Physical extent 1 to 854: Logical volume /dev/foo/rr_rimage_0 Logical extents 0 to 853 Physical extent 855 to 12798: FREE ...
Der Befehl
pvdisplay
mit der Option-m
zeigt die Zuordnung von physischen Extents zu logischen Volumes und speziellen Extents an. Das PV /dev/sdb in der Beispielausgabe zeigt physische Extents, die mit dem RAID-LV verknüpft sind. Dasselbe gilt für /dev/sdc, /dev/sdd und /dev/sde. -
Eine weitere PV zur VG hinzufügen.
Da das vorhandene RAID-LV alle vorhandenen physischen Datenträger verwendet, fügen Sie /dev/sdf zum PV-Foot hinzu.
sudo vgextend foo /dev/sdf
Die Ausgabe zeigt, dass der Befehl
vgextend
/dev/sdf in ein PV konvertiert, bevor er dem VG-Foo hinzugefügt wird. -
Fügen Sie dem RAID-LV einen Stripe hinzu.
sudo lvconvert --stripes 4 foo/rr
Antworten Sie mit
y
auf die Eingabeaufforderung.Beispielausgabe:
[oracle@ol-node01 ~]$ sudo lvconvert --stripes 4 foo/rr Using default stripesize 64.00 KiB. WARNING: Adding stripes to active and open logical volume foo/rr will grow it from 2562 to 3416 extents! Run "lvresize -l2562 foo/rr" to shrink it or use the additional capacity. Are you sure you want to add 1 images to raid5 LV foo/rr? [y/n]: y Logical volume foo/rr successfully converted.
-
Prüfen Sie die neue LV-Größe.
sudo lvs foo/rr
Beispielausgabe:
[oracle@ol-node01 ~]$ sudo lvs foo/rr LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert rr foo rwi-aor--- 13.34g 2.24
Die Kapazität (LSize) wurde von 3.34g erhöht, und die Synchronisierung (Cpy%Sync) beginnt. Die Synchronisierung ist der Prozess, bei dem alle Geräte in einem RAID-LV konsistent zueinander sind und eine vollständige Synchronisierung erforderlich wird, wenn Geräte im RAID-LV geändert oder ersetzt werden.
-
Prüfen Sie den Status der Synchronisierung.
Führen Sie die Prüfung aus, bis der Fortschritt 100 % erreicht.
watch sudo lvs foo/rr
Nachdem Cpy%Sync 100% erreicht hat, beenden Sie den Befehl
watch
mitctrl-c
.Weitere Möglichkeiten zur Verwendung des Befehls
watch
:- Führen Sie
watch -n 5 sudo lvs foo/rr
aus, um alle 5s anstelle der Standard-2s zu aktualisieren. - Führen Sie
timeout 60 watch -n 5 sudo lvs foo/rr
aus, um den Vorgang nach 60er Jahren automatisch zu beenden.
- Führen Sie
-
Zeigen Sie den neuen Segmentbereich und PV an, der jetzt /dev/sdf enthält.
sudo lvs -a -o lv_name,attr,segtype,seg_pe_ranges,dataoffset foo
Wiederherstellen eines ausgefallenen RAID-Geräts in einem LV
RAID-Arrays können weiterhin mit ausgefallenen Geräten ausgeführt werden. Wenn Sie ein Gerät für andere RAID-Typen als RAID1 entfernen, würde die Konvertierung in ein RAID auf niedrigerer Ebene erforderlich sein (in diesem Fall RAID5 in RAID0).
LVM ermöglicht es, ein fehlerhaftes Gerät in einem RAID-Volume in einem einzigen Schritt mit dem Befehl lvconvert --repair
für fehlerhafte Geräte zu ersetzen, anstatt ein fehlerhaftes Laufwerk zu entfernen und möglicherweise einen Ersatz hinzuzufügen.
-
Prüfen Sie das aktuelle RAID-LV-Layout.
sudo lvs --all --options name,copy_percent,devices foo
-
Simulieren Sie einen Fehler auf /dev/sdd.
echo 1 | sudo tee /sys/block/sdd/device/delete
-
Überprüfen Sie nach dem Ausfall das RAID-LV-Layout erneut.
sudo lvs --all --options name,copy_percent,devices foo
Beachten Sie die [unbekannten] Geräte.
Beispielausgabe:
[oracle@ol-node01 ~]$ sudo lvs --all --options name,copy_percent,devices foo WARNING: Couldn't find device with uuid o1JwCl-DTpi-anww-rYt3-1LCq-vmLV-FQCKyc. WARNING: VG foo is missing PV o1JwCl-DTpi-anww-rYt3-1LCq-vmLV-FQCKyc (last written to /dev/sdd). LV Cpy%Sync Devices rr 100.00 rr_rimage_0(0),rr_rimage_1(0),rr_rimage_2(0),rr_rimage_3(0),rr_rimage_4(0) [rr_rimage_0] /dev/sdb(855) [rr_rimage_0] /dev/sdb(1) [rr_rimage_1] /dev/sdc(855) [rr_rimage_1] /dev/sdc(1) [rr_rimage_2] [unknown](855) [rr_rimage_2] [unknown](1) [rr_rimage_3] /dev/sde(855) [rr_rimage_3] /dev/sde(1) [rr_rimage_4] /dev/sdf(855) [rr_rimage_4] /dev/sdf(1) [rr_rmeta_0] /dev/sdb(0) [rr_rmeta_1] /dev/sdc(0) [rr_rmeta_2] [unknown](0) [rr_rmeta_3] /dev/sde(0) [rr_rmeta_4] /dev/sdf(0)
-
Tauschen Sie das fehlerhafte Gerät aus.
sudo lvconvert --repair foo/rr
Antworten Sie mit
y
auf die Eingabeaufforderung.Der Befehl kann den verfügbaren Speicherplatz oder das verfügbare Gerät nicht in der VG finden.
Beispielausgabe:
[oracle@ol-node01 ~]$ sudo lvconvert --repair foo/rr WARNING: Couldn't find device with uuid o1JwCl-DTpi-anww-rYt3-1LCq-vmLV-FQCKyc. WARNING: VG foo is missing PV o1JwCl-DTpi-anww-rYt3-1LCq-vmLV-FQCKyc (last written to /dev/sdd). WARNING: Couldn't find device with uuid o1JwCl-DTpi-anww-rYt3-1LCq-vmLV-FQCKyc. Attempt to replace failed RAID images (requires full device resync)? [y/n]: y Insufficient free space: 856 extents needed, but only 0 available Failed to replace faulty devices in foo/rr.
Warnung: Wenn der Fehler eine "Device in foo/rrr kann nicht ersetzt werden, während es sich nicht um eine synchronisierte Meldung handelt" enthält, prüfen Sie, ob das RAID-LV synchron ist, indem Sie
watch sudo lvs foo/rr
ausführen und bestätigen, dass Cpy%Sync 100% beträgt. Danach wiederholen Sie den Befehllvconvert
. -
Gerät /dev/sdg zur VG hinzufügen
sudo vgextend foo /dev/sdg
Die WARNING-Meldungen in der Ausgabe sind für das noch fehlende fehlerhafte Laufwerk verantwortlich.
-
Versuchen Sie, das fehlerhafte Laufwerk zu ersetzen.
sudo lvconvert --repair foo/rr
Beantworten Sie die Eingabeaufforderung erneut mit
y
.Die Ausgabe zeigt erneut die WARNING-Meldungen über das fehlende Laufwerk an, der Befehl hat das fehlerhafte Gerät in der VG jedoch erfolgreich ersetzt.
-
Prüfen Sie das Layout.
sudo lvs --all --options name,copy_percent,devices foo
Beachten Sie, dass /dev/sdg alle [unbekannten] Geräteeinträge ersetzt hat.
-
Entfernen Sie das ausgefallene Gerät aus der VG.
LVM-Dienstprogramme melden weiterhin, dass LVM das fehlerhafte Gerät erst finden kann, wenn es aus der VG entfernt wird.
sudo vgreduce --removemissing foo
Die WARNING-Meldungen in der Ausgabe sind für das noch fehlende fehlerhafte Laufwerk verantwortlich.
-
Prüfen Sie den RAID-Synchronisierungsstatus, bevor Sie fortfahren.
Warnung: Wenn Sie zu schnell zum nächsten Abschnitt fortfahren, wird möglicherweise die folgende Fehlermeldung angezeigt:
Beispielausgabe:
[oracle@ol-node01 ~]$ sudo lvchange --syncaction check foo/rr foo/rr state is currently "recover". Unable to switch to "check".
Dieser Fehler tritt auf, wenn die Synchronisierung nach dem Hinzufügen von Stripes zum RAID-LV nicht abgeschlossen wurde.
Prüfen Sie den RAID-LV mit
watch sudo lvs foo/rr
, und warten Sie, bis das Feld Cpy%Sync 100% erreicht.
Datenkohärenz in RAID-LV prüfen (Bereinigung)
LVM bietet Bereinigungsmöglichkeiten für RAID LV, das alle Daten- und Paritätsblöcke in einem Array liest und auf Kohärenz prüft.
-
Bereinigen im Prüfmodus auslösen
sudo lvchange --syncaction check foo/rr
-
Zeigen Sie den Status der Bereinigungsaktion an.
watch sudo lvs -a -o name,raid_sync_action,sync_percent foo/rr
Beispielausgabe:
[oracle@ol-node01 ~]$ sudo lvs -a -o name,raid_sync_action,sync_percent foo/rr LV SyncAction Cpy%Sync rr check 30.08
-
Nachdem die Bereinigung (Syncronisierung) abgeschlossen ist, zeigen Sie die Anzahl der gefundenen inkonsistenten Blöcke an.
sudo lvs -o +raid_sync_action,raid_mismatch_count foo/rr
Mit der Option
raid_sync_action
wird das Feld SyncAction mit einem der folgenden Werte angezeigt:idle
: Alle Aktionen sind abgeschlossen.resync
: Initialisieren oder Wiederherstellen nach einem Systemfehler.recover
: Gerät im Array wird ersetzt.check
: Es wird nach Unterschieden gesucht.repair
: Unterschiede suchen und beheben.
Beispielausgabe:
[oracle@ol-node01 ~]$ lvs -o +raid_sync_action,raid_mismatch_count foo/rr LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert SyncAction Mismatches rr foo rwi-aor--- 13.34g 44.42 check 0
Die Ausgabe zeigt 0 Inkonsistenzen (Nichtübereinstimmungen).
-
(Optional) Korrigieren Sie die Unterschiede im Array.
Dieser Schritt ist optional, da in diesem Beispielarray keine Unterschiede wahrscheinlich vorhanden sind.
sudo lvchange --syncaction repair foo/rr
-
(Optional) Prüfen Sie den Reparaturstatus.
sudo lvs -o +raid_sync_action,raid_mismatch_count foo/rr
Beachten Sie, dass das Feld SyncAction in repair geändert wurde.
Weitere Informationen finden Sie auf den Manpages lvchange(8)
und lvmraid(7)
.
Weitere Informationen:
Weitere Lernressourcen
Sehen Sie sich andere Übungen auf der Website docs.oracle.com/learn an, oder greifen Sie auf Inhalte zu, die Sie über den Oracle Learning-Kanal YouTube benötigen. Besuchen Sie außerdem education.oracle.com/learning-explorer, um Oracle Learning Explorer zu werden.
Produktdokumentation finden Sie unter Oracle Help Center.
Configure RAID Logical Volumes on Oracle Linux
F57868-02
May 2022
Copyright © 2021, Oracle and/or its affiliates.