Ich frage mich, was die beste Vorgehensweise für die Erstellung von RAID10 in Software unter Linux ist, mit der Möglichkeit, später durch Hinzufügen von Festplatten oder Erweitern von Volumes darunter zu wachsen.
Ich verwende EBS bei Amazon. Ich möchte 8 x 1 GB RAID10 erstellen, kann aber später nach Bedarf wachsen, um Datenmigrationen nach Möglichkeit (und natürlich Ausfallzeiten) zu minimieren.
Welche Kombination, wenn MDADM / LVM am besten ist und es Leistungs- oder Stabilitätskompromisse gibt, die ich beachten muss?
quelle
Die kurze Antwort auf Ihre Frage lautet, dass Sie meines Wissens keine Linux-Software-RAID-Partition erstellen können, sodass RAID Ihnen dort nicht weiterhilft. RAID10 ist jedoch aus einer Reihe anderer Gründe eine gute Idee, und RAID0 ist fast immer eine schlechte Idee, wenn Sie sich um Ihre Daten oder Ausfallzeiten kümmern . Ich sehe im Internet viele Ratschläge zur Verwendung von RAID0 mit EBS-Volumes und es ist eine absolut schreckliche Idee, außer unter den außergewöhnlichsten Umständen.
Mit einem so kleinen Volume-Set (Sie sagten 8x1 GB, also 4 GB verwendbar) würde ich diese Komplexität einfach überspringen und ein einzelnes Volume verwenden, das Sie mit XFS-Snapshots auf 1 TB erweitern können. Mit nur wenigen Datenmengen sollten Sie in der Lage sein, das Volume häufig genug zu erstellen, damit die Datenwiederherstellung zu einem einfachen Problem wird und Sie die E / A nicht maximal nutzen können. Wenn Sie sich alternativ mehr als Ihre aktuellen 0,80 USD / Monat für Ihre Festplatte leisten können, vergrößern Sie sie jetzt einfach und sorgen Sie sich lange nicht um diese Kopfschmerzen. Wenn Sie wirklich 8x1 TB statt 8x1 GB gemeint haben, lesen Sie weiter.
Ich habe vor ein paar Wochen einen Artikel darüber geschrieben http://blog.9minutesnooze.com/raid-10-ebs-data/ und dieses Thema bei Percona Live im Mai kurz behandelt: http://www.percona.tv/ Percona-Live / Ausführen einer E-Commerce-Datenbank in der Cloud
Ich werde hier zusammenfassen.
In der Welt der physischen Hardware ist bekannt und vorhersehbar, wie Festplatten ausfallen können. Andererseits versagen EBS-Volumes auf atypische Weise. Sie sehen keine "Abstürze" der Festplatte - mdadm markiert eine Festplatte niemals automatisch als ausgefallen. Was Sie erhalten, sind Volumes, bei denen ein schwerwiegender und nicht behebbarer Leistungsabfall auftritt. Manchmal sind die Volumes nur langsam, aber manchmal blockieren sie vollständig, wenn 100% ausgelastet sind und keine IOPS ausgeführt werden, was im Wesentlichen nicht mehr verfügbar ist. Manchmal wird die Festplatte wieder zum Leben erweckt, um Daten daraus zu entfernen, manchmal jedoch nicht. Dies geschah in der großen EC2pocalypse vom April 2011.
Wenn Ihr RAID0 in diesem Szenario ist, haben Sie nur wenige Optionen. Das Array wird gesperrt und die Daten bleiben dabei. Manchmal können Sie die Volumes im Array als Snapshot erstellen und den Snapshot wiederherstellen. Die Konsistenz ist jedoch schwer zu gewährleisten, und es kommt zu Ausfallzeiten - wahrscheinlich mehrere Stunden, da das Schreiben von Snapshots sehr langsam ist und RAID-Arrays in der Regel sehr umfangreich sind.
Wenn Sie jedoch RAID10 verwenden und eines dieser leistungsschwachen oder stark verschlechterten Volumes haben, müssen Sie das verschlechterte Volume nur als fehlgeschlagen markieren, es aus dem Array entfernen und ersetzen. Ich habe dies viele Male auf unseren aktiven Master-Datenbankservern getan, die 10 bis 20 Volumes in einem RAID10-Set haben (verwenden Sie nicht so viele. Es ist übertrieben, es sei denn, Sie benötigen ein 10-TB-Array).
Mein Beweis dafür geht auf meine Erfahrungen mit EC2Pocalypse (und mehreren anderen kleineren EBS-Ausfällen) zurück. Während einige der beliebtesten Websites im Internet 4 Tage lang nicht verfügbar waren, hatte mein Arbeitgeber in unserer Produktionsumgebung weniger als eine Stunde Ausfallzeit, da wir die RAID10-Arrays durch Entfernen der ausgefallenen Festplatte (n) wiederherstellen konnten. Wäre es RAID0 gewesen, wäre es eine SOL-Situation gewesen.
Der Nachteil ist das Syndrom mit dem schwächsten Glied ... Die Leistung des Arrays ist an das Mitglied mit der schlechtesten Leistung gebunden. Je mehr Volumen vorhanden sind, desto größer ist die Wahrscheinlichkeit, dass sich das Volumen verschlechtert, aber das ist wirklich ein Überwachungsproblem. Man könnte sogar die Wiederherstellung automatisieren, wenn man dazu neigt, obwohl ich es nicht getan habe. Mit RAID10 erhöhen Sie die Wahrscheinlichkeit eines Problems im Array, erhöhen aber auch die Wahrscheinlichkeit einer Wiederherstellung. Bei RAID0 ist jedes zusätzliche Laufwerk kaum mehr als eine zusätzliche Haftung.
Ich hoffe das hilft einigen.
quelle
Ich habe diesen Benchmark vor einiger Zeit gemacht. Die Befehle, die ich verwendet habe, sind hier: http://wiki.linuxwall.info/doku.php/en:ressources:articles:benchmark_ebs
Nach allem, was ich gesehen habe, ist es wenig vorteilhaft, Ihren Speicher in so viele EBS-Volumes aufzuteilen und diese dann mit mdadm und lvm zu aggregieren. Die Verwendung von RAID 1 und LVM bietet jedoch einen klaren Vorteil, um den Verlust einzelner Volumes zu verhindern und gleichzeitig die Kapazität für das spätere Hinzufügen eines weiteren RAID 1-Paares beizubehalten.
Aber um Ihre Frage zu beantworten:
Sie können ein RAID-Volume nicht vergrößern. Wenn Sie ein RAID 10 (4xEBS) erstellen und LVM damit verwenden, können Sie ein weiteres RAID10 hinzufügen und es Ihrem LVM-Volume hinzufügen. Das anfängliche RAID 10 wird jedoch nicht erweitert.
Mit den folgenden Befehlen können Sie ein RAID 10 erstellen:
Mit den folgenden Befehlen können Sie über diesem RAID10 ein LVM-Volume erstellen:
quelle
Dies ist nicht spezifisch für EBS, aber es gibt gute Nachrichten in der Release-Ankündigung für mdadm 3.3:
Nach dieser Antwort auf U & L benötigen Sie mindestens auch Linux 3.5.
quelle