Kann Linux RAID 1 eine hohe Latenz berücksichtigen?

Kann Linux RAID 1 eine hohe Latenz berücksichtigen?

Szenario: Wir führen eine große Solr-Installation (insgesamt 3 TB im Cluster) in EC2 aus. Mich interessiert nur die Festplattenleistung auf der Leseseite. Wir vermuten, dass wir durch die Festplatten-E/A eingeschränkt sind und insbesondere dann Probleme bekommen, wenn ein EBS-Volume instabil wird und langsamer wird.

Ich überlege, RAID 1 auszuprobieren. Soweit ich weiß, teilt Linux-Software-RAID die Lesevorgänge zwischen den Festplatten auf, aber ich bin mir nicht sicher, wie intelligent das ist. Wenn eine der Festplatten in einem RAID-1-Paar beim Lesen gesichert wird, sendet sie dann weitere Lesevorgänge an die andere Festplatte? Wenn ein Lesevorgang zu lange aussteht, wird dieser Lesevorgang dann auf die andere Festplatte verschoben?

Mir fällt keine Möglichkeit ein, dieses Verhalten zu testen. Ich würde mir den Code gerne ansehen, bin mir aber nicht einmal sicher, ob dies vom I/O-Scheduler gehandhabt wird oder ob es Teil der RAID-Treiber ist. Ich kann keine Dokumentation finden, die tiefer in die Materie eindringt als das Software-RAID-HowTo.

Antwort1

Der Leseausgleich wird in den MD-Treibern im Kernel gehandhabt; drivers/md/raid1.c

Es ist nicht besonders clever. Es versucht, Suchvorgänge zu minimieren, und das war’s. Ich bin mir nicht sicher, ob eine der RAID-Implementierungen so clever ist, wie Sie es sich wünschen …

Haben Sie genügend Speicher in Ihren Systemen? Bei sehr leseintensiven Vorgängen sollte Caching etwas helfen.

verwandte Informationen