Chunk-, Ext4-Schrittweite und Streifenbreitengröße für RAID-Level 1?

Chunk-, Ext4-Schrittweite und Streifenbreitengröße für RAID-Level 1?

Auf der Manpage mdadmsteht: „[chunk] ist nur für RAID0, RAID4, RAID5, RAID6 und RAID10 sinnvoll.“ Das heißt, es gilt nicht für RAID1. Selbst wenn Sie den Wert übergeben, wird Folgendes angezeigt ignoring chunk sizeund nachdem RAID 1 erstellt wurde, erhalten Sie:

md1 : active raid1 ...
      4883639488 blocks super 1.2 ...
      bitmap: 0/37 pages [0KB], 65536KB chunk

Aus irgendeinem Grund wurden 65 MB bei einer Festplattengröße von 5,6 TB verwendet. Warum?

mkfs.ext4Dann sagt die Manpage für

stride=stride-size = Konfigurieren Sie das Dateisystem für ein RAID-Array mit Dateisystemblöcken in Stride-Größe. Dies ist die Anzahl der Blöcke, die gelesen oder auf die Festplatte geschrieben werden, bevor zur nächsten Festplatte gewechselt wird. Dies wird manchmal als Blockgröße bezeichnet. Dies betrifft hauptsächlich die Platzierung von Dateisystemmetadaten wie Bitmaps zur Zeit von mke2fs, um zu vermeiden, dass sie auf einer einzelnen Festplatte platziert werden, was die Leistung beeinträchtigen kann. Es kann auch vom Blockallocator verwendet werden.

stripe_width=stripe-width = Konfigurieren Sie das Dateisystem für ein RAID-Array mit streifenbreiten Dateisystemblöcken pro Streifen. Dies entspricht normalerweise der Schrittweite * N, wobei N die Anzahl der Datenträger im RAID ist (z. B. gibt es für RAID 5 eine Paritätsfestplatte, sodass N die Anzahl der Festplatten im Array minus 1 ist). Dadurch kann der Blockallocator das Lesen, Ändern und Schreiben der Parität in einem RAID-Streifen nach Möglichkeit verhindern, wenn die Daten geschrieben werden.

Was bedeutet das alles für RAID1? Soll ich einfach denselben Wert wiederholen, den ich oben für den Block erhalten habe? Und stripe_width ignorieren, da RAID1 aus der Anmerkung „wenn möglich“ herausfällt? Oder nicht?

Es ist nicht ganz klar, was ich für RAID1 tun soll. Mithilfe der Formeln, die ich in anderen Tutorials für RAID0 und RAID5 gefunden habe, habe ich diese Zahlen für mein RAID1-Array erhalten, die meiner Meinung nach NICHT korrekt sind.mkfs.ext4 -b 4096 -E stride=16384,stripe-width=16384

Antwort1

Ich denke, das sollte in Ordnung sein, da Sie nichts strippen. Sie benötigen diese Zahl nur, um zu wissen, nach welcher Datenmenge die nächste Platte verwendet werden soll. Allerdings haben Sie effektiv nur eine Datenplatte (und ein Spiegelbild davon), sodass der Controller die Platte nicht wechseln muss und es daher in Ordnung sein sollte. Die hohe Zahl macht meiner Meinung nach auch Sinn, da der Controller sich erst nach einem großen Block fragt, welche Platte verwendet werden soll. Dies sollte also den Overhead begrenzen.

Antwort2

RAID1 ist praktisch dasselbe wie eine einzelne Festplatte, sodass keine RAID-Optimierung möglich ist. Es gibt jedoch immer noch Möglichkeiten, die Speicherorte der Metadaten Ihres Dateisystems basierend auf dem E/A-Profil Ihrer Anwendung und möglicherweise den Fähigkeiten der zugrunde liegenden Festplatte (z. B. SSD-Löschblockgröße) zu optimieren. Ich habe vor einiger Zeit einen Artikel zu genau diesem Thema geschrieben, in dem ich erklärt habe, warumDateisystemausrichtungAngelegenheiten, die für Sie nützlich sein könnten.

verwandte Informationen