Externes Mdadm-Bitmap wird nicht verwendet

Externes Mdadm-Bitmap wird nicht verwendet

Ich habe die Bitmap auf einem externen EXT4-Laufwerk (1xHDD) abgelegt, aber ich würde erwarten, dass die Datei auch geschrieben wird, wenn Daten auf meinem RAID10-Array geändert werden, oder?
Ich habe sogar eine Prüfsumme der Bitmap-Datei erstellt, und sie hat sich mit Sicherheit nicht geändert. Die
Dateigröße beträgt nur 2 KB (die Bitmap-Blockgröße ist auf 64 MB eingestellt).

  • Ich habe versucht, das Array zu stoppen und zu starten, keine Änderung, kein Schreiben in die Datei
  • Wenn die Datei beim Start des Arrays nicht zugänglich ist, erhalte ich den Fehler mdadm: Could not open bitmap file /mnt/1xHDD/R10_bitmap.dat, was gut ist

Status des mdadm-Prozesses mit cat /proc/mdstat: Bildbeschreibung hier eingeben

Array-Details mit mdadm --detail /dev/md127: Bildbeschreibung hier eingeben

Prüfung der Bitmap-Datei mitmdadm -X /mnt/1xHDD/R10_bitmap.dat

      Filename : /mnt/1xHDD/R10_bitmap.dat
         Magic : 6d746962
       Version : 4
          UUID : 39f863d1:4d247162:c3672454:1765abe2
        Events : 2914
Events Cleared : 2914
         State : OK
     Chunksize : 64 MB
        Daemon : 5s flush period
    Write Mode : Normal
     Sync Size : 624877568 (595.93 GiB 639.87 GB)
        Bitmap : 9535 bits (chunks), 0 dirty (0.0%)

Inhalt meiner mdadm.conf:

HOMEHOST <system>
MAILADDR root
ARRAY /dev/md/SRV01:R10_HDD metadata=1.2 bitmap=/mnt/1xHDD/R10_bitmap.dat name=SRV01:R10_HDD UUID=39f863d1:4d247162:c3672454:1765abe2

Gibt es übrigens Kommentare zum Platzieren der Bitmap-Datei auf einer einzelnen Festplatte? Ich habe versucht, sie einfach umzubenennen, und das Array läuft ohne Probleme weiter, obwohl mdadm --details...angezeigt wird, dass die Bitmap gelöscht wurde.

Zusätzlicher Hinweis: Durch die Umstellung auf externe Bitmaps wurde die Schreibleistung dieses RAID10-Arrays von 135 MB/s auf 370 MB/s gesteigert! (bei Verwendung von direktem IO, d. h. Seitencache wird nicht verwendet).

Antwort1

Es schien, als ob die externe Bitmap-Datei doch funktionierte.

Wie Stephen Kitt in seinem Kommentar anmerkt, ist die Datei normalerweise ziemlich klein, insbesondere wenn Sie eine große Bitmap-Blockgröße verwenden. (Ich hatte erwartet, dass sie viel größer ist.)

Der Grund, warum ich die Änderung der Bitmap-Datei nicht bemerkt habe, lag darin, dass ich vergessen hatte, das Dateisystem mit der Option EXT4 gemountet zu haben noatime(dadurch werden Änderungsdatum und -uhrzeit nicht aktualisiert) und als ich eine MD5-Prüfsumme der Datei erstellte, war das Array zu diesem Zeitpunkt synchron, also gab es keine Änderungen.

Zweitens zur Stabilität/Risiko beim Platzieren der externen Bitmap auf einem „unsicheren“ 1x-Laufwerk:
Das Herunterfahren des Laufwerks, auf dem sich die Bitmap-Datei befand, zur Laufzeit führte zu keiner Instabilität des laufenden und betroffenen Arrays. mdadm meldet lediglich, dass die Bitmap-Datei „gelöscht“ wurde, aber das Array funktioniert weiterhin einwandfrei. Allerdings wird es beim Neustart des Arrays, z. B. beim Neustart, nicht online gehen, bis Sie die Bitmap neu konfigurieren (entweder auf noneoder internalauf eine andere externalBitmap-Datei).
Alles in allem halte ich es für sicher, es auf einer nicht gespiegelten Festplatte zu platzieren.

In der mdadm-Dokumentation und in allen mdadm-Anleitungen, die ich gelesen habe, wird stark unterschätzt, wie groß die Auswirkungen auf die Leistung bei Verwendung des standardmäßigen internen Bitmaps sind, zumindest bei RAID10 und RAID5.

Habe gerade einen schnellen Benchmark auf R5 durchgeführt:
Bitmap: Intern, Schreiben: 267 MB
Bitmap: Keine, Schreiben: 434 MB
(Gesamttestgröße 20 G, Blockgröße 512 K, Seitencache aktiviert)

verwandte Informationen