Was ist eine Bitmap:
Eine mdadm-Bitmap, auch als "Write Intent Bitmap" bezeichnet, ist ein Mechanismus, um RAID-Neuerstellungen nach einem unsauberen Herunterfahren oder nach dem Entfernen und erneuten Hinzufügen einer Festplatte zu beschleunigen.
Mit einer Bitmap sieht das Schreiben von Daten in das RAID folgendermaßen aus:
- Bitmap aktualisieren: Markieren Sie die RAID-Blöcke, in die Sie schreiben möchten, als fehlerhaft.
- Schreiben Sie die Daten auf das RAID.
- Bitmap aktualisieren: Markieren Sie die gerade geschriebenen RAID-Blöcke als sauber.
Der Vorteil einer Bitmap besteht darin, dass bei einem Ausfall des Systems während eines Schreibvorgangs bei der Neuerstellung nur die als fehlerhaft gekennzeichneten Blöcke und nicht das gesamte Multi-TB-RAID überprüft werden müssen. Dies kann den Wiederherstellungsprozess von mehreren Stunden bis zum Abschluss in nur wenigen Sekunden beschleunigen.
Der Nachteil ist eine geringere Schreibleistung bei normaler Verwendung (außerhalb von Neuerstellungen), da mdadm zusätzlichen Datenträgerzugriff zum Aktualisieren der Bitmap ausführt.
Extern gegen intern:
- extern : Wird als Datei auf einer Festplatte außerhalb des RAID gespeichert. Der Vorteil gegenüber einer internen Bitmap ist eine bessere Schreibleistung während des normalen Gebrauchs (außerhalb von Neuerstellungen).
- intern : Als RAID-Metadaten gespeichert. Der Vorteil gegenüber einer externen Bitmap besteht darin, dass Sie keine Nicht-RAID-Festplatte benötigen und bei der Konfiguration (dem Pfad zur Bitmap) ein wenig sparen.
Laut der Manpage von mdadm:
Note: external bitmaps are only known to work on ext2 and ext3.
Storing bitmap files on other filesystems may result in serious
problems.
Laut einem Beitrag von Neil Brown , dem mdadm-Autor, sollten externe Bitmaps auch auf ext4 funktionieren:
I haven't looked inside ext4 but I am fairly confident that external bitmaps
will work properly.
WIE MAN:
Bitmaps werden hinzugefügt und entfernt mit mdadm --grow --bitmap=XXX ...
, wobei XXX eines der folgenden Elemente ist:
--bitmap=internal
: Erstellen Sie eine interne Bitmap.
--bitmap=/var/my_bitmap.bin
: Erstellen Sie eine externe Bitmap unter dem angegebenen Pfad. Der Pfad muss sich außerhalb des RAID befinden. Dem bitmap=...
ARRAY-Eintrag in muss ein Parameter hinzugefügt werden /etc/mdadm/mdadm.conf
, und der --bitmap=...
Parameter muss übergeben werden, wenn Sie das RAID über die Befehlszeile zusammenstellen.
--bitmap=none
: Entfernen / deaktivieren Sie alle Bitmaps.
Verweise:
Bemerkungen:
IMO, Bitmaps sind möglicherweise hauptsächlich für RAID-Level 5 und 6 von Interesse, da diese die langsamsten Neuerstellungen aufweisen.
Ich habe selbst von RAID 5 auf RAID 10 umgestellt . Die Neuerstellungen sind so viel schneller, dass ich keine Bitmap benötige, und RAID 10 scheint in erster Linie weitaus weniger Neuerstellungen zu erfordern.
Bei meinem RAID 5-Setup wurde eine Festplatte etwa einmal im Monat gelöscht, was zu Neuaufbauten von 12 bis 14 Stunden führte. Das RAID 10 hat nur einmal im halben Jahr eine Festplatte gelöscht, die in weniger als einer Stunde wiederhergestellt wurde.
Ich weiß nicht, ob die häufigen Festplattenausfälle, die ich erlebt habe, durch etwas anderes als den RAID-Level verursacht wurden, aber das RAID 10 war weitaus stabiler und die Wiederherstellungsgeschwindigkeit ist kein großes Problem mehr.