Zu RAID oder nicht zu RAID: SSDs und Virtualisierung

8

Ich nähere mich der Zeit, in der sich mein Haupt-PC aufgrund von Windows Rot so verlangsamt hat, dass ich ihn wahrscheinlich neu installieren sollte. Anstatt eine Woche mit Armdrücken zu verbringen, neu zu installieren und zu konfigurieren, nur um festzustellen, dass ich vergessen habe, meine Visual Studio-Einstellungen erneut zu sichern, werde ich ein Upgrade durchführen. Ich habe bereits alle Teile gekauft und bin dabei, ein Benchmarking durchzuführen, um die beste Konfiguration zu finden.

Ich habe zwei Crucial M4 120 GB SSDs gekauft (aktualisiert auf die neueste Firmware ab April '12 :)00F und einige schnelle Benchmarks mit CrystalDiskMark durchgeführt . Hier sind einige Ergebnisse:

Einzellaufwerk:

Leistung eines einzelnen Laufwerks

RAID 0über Intel Z77 Chipsatz Controller:

RAID 0

Diese Benchmarks sind natürlich nicht erschöpfend, aber ich denke, sie geben mir eine gute Vorstellung davon, was mich zwischen verschiedenen Konfigurationen erwartet.

Nach meinem Verständnis sind 4KLese- und Schreibvorgänge für die meisten gängigen Verwendungsmuster, nämlich die Entwicklung mit Visual Studio (meine primäre Verwendung) , selbst während Builds weitaus häufiger. Zwischen RAID 0und nicht gibt es wenig Unterschied. Aber mit 512Kund SequentialR / W sind die Unterschiede genug, um Aufmerksamkeit zu verdienen.

Die Sache ist, um zukünftige Fäulnisprobleme zu vermeiden - und ehrlich gesagt, weil ich kann -, werde ich mich viel mehr auf Virtualisierung verlassen. Mein Plan ist es, verschiedene Teile meiner Entwicklungsumgebung mithilfe von VMware Workstation in virtuelle Maschinen zu segmentieren : Visual Studio und zugehörige Tools auf einer, SQL Server auf einer anderen, Adobe Design Suite auf einer anderen usw. Durch die Nutzung von VM-Snapshots und Easy By Ich glaube, ich werde eine Verbesserung der langfristigen Zuverlässigkeit feststellen (und immer nur Adobe-Update-Popups sehen, wenn ich möchte).

Meine Frage ist also, ob die Virtualisierung die Verwendung einer RAID 0SSD-Konfiguration gegenüber einem herkömmlichen Setup verdient (in meinem Fall Betriebssystem- und Bare-Metal-Apps auf einer SSD, VMs auf der anderen). Wird die Virtualisierung die Stärken von 512Kund SequentialR / W nutzen RAID 0?


Eine Beobachtung:

Ich habe gelesen, dass einige moderne SSDs in der Lage sind, die Speicherbereinigung selbst zu verwalten, sodass TRIMes weniger problematisch ist , sie nicht zu haben . Ich weiß jedoch nicht, wie ich dies auf meinen SSDs aktivieren oder ob sie es unterstützen sollen.


Bearbeiten:

In Bezug auf die Notfallwiederherstellung verfügt dieses System auch über große Standard-Plattentellerlaufwerke für die Dateispeicherung und einen sekundären RAID-Controller, den ich eventuell in einem gespiegelten Array verwenden werde. In Kombination mit nächtlichen lokalen Sicherungen, ständigen externen Sicherungen über Carbonite und konsistenten externen Check-ins für die Quellcodeverwaltung habe ich ein ausreichendes Mittel, um Datenverlust zu verhindern.

Chad Levy
quelle
1
Ich würde RAID 0 ohne einen umfassenden Disaster Recovery-Plan meiden, aber die Virtualisierung wird definitiv die verbesserte Geschwindigkeit von SSDs in dieser Konfiguration nutzen.
Guter Punkt. Ich habe vergessen zu erwähnen, dass ich auch einige Standardlaufwerke an Bord habe und mehrseitige Backups vor Ort und außerhalb des Standorts habe. Ich bin also nicht ganz fertig, wenn ein Laufwerk ausfällt, aber das ist ein guter Punkt, denn ich habe vergessen, dass alle Daten verloren gehen, wenn ein Laufwerk in einem RAID 0-Array ausfällt.
Chad Levy
1
Ein weiteres mögliches Problem, das einige Aufmerksamkeit verdient: Für das Ausführen von RAID müssen möglicherweise alle E / A in Einheiten einer bestimmten Streifengröße vorliegen. VMs werden wahrscheinlich keine E / A-Vorgänge ausführen, die auf diese Streifengrößen ausgerichtet sind, und Sie verursachen eine massive Schreibverstärkung, die die Lebensdauer Ihrer Laufwerke erheblich verkürzen kann.
Afrazier

Antworten:

5

Erstens ist bekannt, dass das Kompilieren von Code weitgehend an die CPU gebunden ist. Erwarten Sie daher dort keine Verbesserungen gegenüber einer einzelnen SSD.

In Ihrem Benchmark steigt die 4k-Warteschlangentiefe mit 0 Warteschlangen zwar nicht an, die Tiefe mit 4k 32-Warteschlangen (QD32) jedoch ziemlich linear. IMO, dieses Ergebnis sollte Ihre Entscheidung bestimmen.

Obwohl Workstations keine Datenbankserver mit konstant großen Warteschlangentiefen sind, sind Warteschlangentiefen von 2 bis 20 zumindest bei Bursts während der halbintensiven Workstation-Nutzung häufig. In diesem Fall verbessert sich die zufällige E / A tatsächlich mit RAID 0. Wenn man bedenkt, dass VM a hinzufügt Ich würde denken, dass diese Metrik die Dinge in Ihrem Szenario verbessern sollte, wenn Sie eine weitere Ebene der gleichzeitigen Betriebssystemaktivität (und möglicherweise verwenden Sie schließlich 2+ simultane VM) verwenden.

Sie können die aktuelle Verwendung der Warteschlangentiefe im Windows-Leistungsmonitor überwachen (Zähler hinzufügen ... Physische Festplatte ... Durchschnittliche Warteschlangentiefe beim Lesen / Schreiben), um sich ein Bild zu machen.

RAID erhöht die Komplexität (und die Probleme bei der Sicherung / Wiederherstellung), aber eine größere 240-GB-Partition ist definitiv ein Plus an IMO. Überprüfen Sie alle TRIM-Probleme, bevor Sie RAID mit Ihren Laufwerken verwenden - dies könnte ein Show-Stopper sein.

mtone
quelle
Tolle Infos, danke. In Bezug auf die TRIM-Unterstützung - Ich denke, TRIM funktioniert oder ist zumindest entsprechend aktiviert fsutil. Würde Windows TRIM aktivieren, wenn die Befehle nicht über die RAID-Schnittstelle übergeben würden?
Chad Levy
1
Ich bin nicht allzu vertraut (habe hier nur 1 SSD ..), aber ich glaube, da RAID-Controller TRIM nicht unterstützen, werden Sie nirgendwo einen Verweis darauf sehen. Mit anderen Worten, TRIM wäre technisch deaktiviert, sodass Sie darauf vertrauen müssen, dass die Firmware Ihrer SSD intern eine anständige Müllverwaltung durchführt (zitieren Sie mich jedoch nicht dazu). Beachten Sie, dass Intel RST-Treiber 2012 voraussichtlich RAID TRIM unterstützen, wenn Sie dies verwenden. Andere Controller werden wahrscheinlich folgen.
mtone
3

Die Festplattengeschwindigkeit ist wichtig für die Gesamtleistung von Visual Studio. Scott Guthrie geht in diesem Beitrag gut darauf ein :

Multi-Core-CPUs auf Computern sind in den letzten Jahren so schnell geworden, dass in den meisten gängigen Anwendungsszenarien die verfügbare Prozessorkapazität Ihres Computers normalerweise nicht blockiert wird.

Wenn Sie mit Visual Studio entwickeln, lesen / schreiben Sie am Ende viele Dateien und verbringen viel Zeit mit der Ausführung von Festplatten-E / A-Aktivitäten. Große Projekte und Lösungen können Hunderte (oder Tausende) von Quelldateien enthalten (einschließlich Bilder, CSS, Seiten, Benutzersteuerelemente usw.). Wenn Sie ein Projekt öffnen, muss Visual Studio alle darin enthaltenen Quelldateien lesen und analysieren, um Intellisense bereitzustellen. Wenn Sie in die Quellcodeverwaltung eingetragen sind und eine Datei auschecken, aktualisieren Sie Dateien und Zeitstempel auf der Festplatte. Wenn Sie eine Lösung kompilieren, sucht Visual Studio von mehreren Datenträgerpfadpositionen nach aktualisierten Assemblys, schreibt nach Abschluss der Kompilierung mehrere neue Assemblys auf die Festplatte und behält die PDF-Debugger-Symboldateien auf der Festplatte bei (alle) als separate Dateispeichervorgänge).

Nach meiner persönlichen Erfahrung hat die Verwendung einer SSD viel geholfen, aber angesichts der Tatsache, dass ein großer Teil der Festplatten-E / A wahrscheinlich kleine zufällige Lesevorgänge sind, ist RAID 0 möglicherweise keine große Verbesserung. Die andere Sache, die Sie möglicherweise finden, ist, dass die E / A der virtuellen Festplatte einige Ihrer Gewinne verschlingt.

Brad Patton
quelle
3

Intel Z77 unterstützt Trim mit RAID und ist einer der ersten Low-Budget-Chipsätze, die dies tun. Sie müssen jedoch im Speicher-Setup angeben, dass Sie eine SSD verwenden.

Daniel
quelle