Überprüfung der Integrität der 40-TB-Serverkonfiguration

21

Ich habe 40 Jahre Erfahrung in der Datenverarbeitung, aber ich musste noch nie einen Server wie diesen bauen, daher könnte dies eine n00b-Frage sein.

Ich habe einen Client, der ultrahochauflösende Musikdateien zum Download anbieten wird. In diesem Fall bedeutet das FLAC-komprimierte 24 / 192Khz = ~ 10GB / Album. (Nein, ich möchte nicht die Erwünschtheit des Produkts diskutieren, sondern nur die Serverkonfiguration.) Der Katalog wird etwa 3.000 Alben umfassen, wobei sowohl Ultra-High- als auch Low-Def-Versionen (für ihre iPods, denke ich) enthalten sind 35-40 TB oder so an Primärdaten.

Da es sich um ein sehr spezialisiertes Produkt handelt, ist die Marktgröße relativ gering (denken Sie: Leute, die mehr als 20.000 US-Dollar für ihre Audiosysteme ausgeben), was bedeutet, dass der Server die meiste Zeit zu 100% im Leerlauf (oder in der Nähe davon) ist. Ich habe so etwas wie ein gutes Colocation-Angebot von ColocationAmerica mit einer 1-Gbit / s-Verbindung und einer Bandbreite von etwa 20 USD / TB. Jetzt muss ich nur noch eine Box bauen, um die Waren zu liefern.

Der Anwendungsfall für den Datenzugriff ist "Write-Once / Read-Many". Daher denke ich daran, nur Software-RAID 1 für Laufwerkspaare zu verwenden. Dies würde es mir ( glaube ich ) ermöglichen, Reservelaufwerke für ausgefallene on-the-fly neu zu konfigurieren und so den Neuaufbau des zweiten Laufwerks zu starten, bevor ein Sysadmin das rote Licht auf dem System bemerkt (sie tauschen kostenlos aus). Es wäre großartig, wenn ich die meisten Laufwerke in den Energiesparmodus versetzen könnte, wenn sie nicht benötigt werden. Dies ist für die meisten Laufwerke die meiste Zeit der Fall.

Ich brauche nicht viel Rechenleistung - dieses Ding schiebt nur fette Gegenstände in die Leitung - und so kann die CPU / Hauptplatine ziemlich bescheiden sein, solange sie diese Anzahl von Laufwerken unterstützt.

Ich überlege gerade folgende Konfiguration:

Chasis: Supermicro CSE-847E26-RJBOD1
Drives: 30 4TB SAS drives (Seagate ST4000NM0023 ?)
MB: SUPERMICRO MBD-X10SAE-O w/ 8GB
CPU: Xeon E3-1220V3 3.1GHz LGA 1150 80W Quad-Core Server

Gehe ich also in die richtige Richtung oder ist dies eine völlig neue Art, das Problem anzugehen?

Aktualisieren Sie, um einige Punkte zu klären:

  1. Ich habe keine Erfahrung mit ZFS, da das letzte Sun-Produkt, das ich besaß, Ende der 80er Jahre war. Ich werde ein wenig RTFMing machen, um zu sehen, ob es sich richtig anfühlt.
  2. Ich brauche das Dateisystem nicht wirklich, um etwas Spektakuläres zu tun, da die Dateinamen einfache UUIDs sein werden und die Objekte über die Laufwerke verteilt werden (eine Art großes Caching-System). Ich habe diese Dateien wirklich als 40 separate Dateisysteme betrachtet, und dadurch klang RAID 1 ungefähr richtig (aber ich gebe hier Unwissenheit zu).
  3. Da wir derzeit davon ausgehen, dass wir wahrscheinlich nicht mehr als ein paar Dutzend Dateien gleichzeitig herunterladen werden und in den meisten Fällen genau eine Person eine bestimmte Datei herunterladen wird, weiß ich nicht, ob wir Tonnen von Speicher benötigen für Puffer. Vielleicht sind 8 GB ein bisschen leicht, aber ich glaube nicht, dass 128 GB mehr bewirken, als Energie zu verbrauchen.
  4. Es gibt 2 separate Maschinen hier nicht erwähnt: ihr aktueller Web - Shop und ein fast vollständig entkoppelt herunterladen Master dass Griffe alle Authentifizierung, neue Produkt - Ingest - Management, Policy Enforcement (immerhin dies ist die Spielplatz der RIAA), kurzlebige URL Schöpfung (und möglicherweise Weitergabe von Downloads an mehr als eine dieser Bestien, wenn der Datenverkehr unsere Erwartungen übertrifft), Nutzungsverfolgung und Berichterstellung. Das heißt, diese Maschine könnte fast mit Rennmäusen auf Quaaludes gebaut werden.

ZFS? Wo ist der Nutzen?

OK, ich arbeite mich durch mehrere ZFS-Anleitungen, häufig gestellte Fragen usw. Verzeihen Sie, dass ich dumm klinge, aber ich versuche wirklich zu verstehen, welche Vorteile die Verwendung von ZFS gegenüber meiner antidiluvianischen Vorstellung von N RAID1-Paaren hat. Auf dieser Best Practices- Seite (ab 2006) schlagen sie sogar vor, kein 48-Geräte-ZFS, sondern 24 2-Geräte-Spiegel zu verwenden - das klingt nach dem, worüber ich gesprochen habe. Andere Seiten erwähnen die Anzahl der Geräte, auf die zugegriffen werden muss, um 1 (einen) ZFS-Block zu liefern. Denken Sie auch daran, dass bei 10 GB pro Objekt und einer Festplattenauslastung von 80% insgesamt 320 Dateien pro 4-TB-Laufwerk gespeichert werden . Die Neuerstellungszeit mit N RAID 1-Computern für einen bestimmten Laufwerksfehler beträgt 4 TB Schreibzugriff von einem Gerät auf ein anderes.Wie verbessert ZFS das?

Ich gebe zu, ein Dinosaurier zu sein, aber die Festplatte ist billig, RAID 1 Ich verstehe, meine Dateiverwaltungsanforderungen sind trivial, und ZFS unter Linux (mein bevorzugtes Betriebssystem) ist noch recht jung. Vielleicht bin ich zu konservativ, aber wenn ich mir ein Produktionssystem anschaue, rolle ich so.

Ich danke Ihnen allen für Ihre Kommentare, die mich zum Nachdenken gebracht haben. Ich bin immer noch nicht vollständig entschieden und muss möglicherweise zurückkommen, um weitere n00b-Fragen zu stellen.

Peter Rowell
quelle
6
Für diese Menge an Speicher würde ich nicht einmal in Betracht ziehen, weniger als 128 GB RAM zu verwenden. Ziehen Sie auch die Verwendung des zfs-Dateisystems in Betracht.
EEAA
3
Festplattenpaare in RAID1 klingen ... schrecklich. Persönlich würde ich einen Speicherserver / Regal auslegen, es mit Nearline-SAS-Laufwerken füllen, das Ganze in RAID 10 oder 6 stecken, ein oder zwei Ersatzlaufwerke hinzufügen und es einen Tag nennen.
HopelessN00b
3
@etherfish - Der RAM wird nicht für Berechnungszwecke benötigt, aber definitiv für den Dateisystem-Cache. Leistung mit nur 8 GB wäre horrend. Umso mehr, wenn Sie ZFS verwenden, das ist wirklich die einzige Funktion, die ich bei dieser Größe ernsthaft in Betracht ziehen würde. ZFS benötigt viel RAM, um gut zu funktionieren. Glücklicherweise ist RAM relativ billig.
EEAA
1
Die Leistung würde ausreichen, um 1 Gbit / s zu erreichen. Die Leistung wäre nur beeinträchtigt, wenn das Dateisystem Blöcke von der Festplatte erneut lesen müsste, die aus dem Puffercache entfernt wurden, und wenn keine oder nur eine geringe zeitliche Lokalität erwartet wird, ist der Punkt, an dem die Erträge für zusätzlichen Arbeitsspeicher sinken, weit vor 128 GB erreicht. Selbst Dateisystem-Metadaten belegen bei umfangbasiertem Dateisystem und großen Dateien nur unwesentlich RAM. Er geht sogar davon aus, dass die Nutzung spärlich genug sein wird, damit die Laufwerke herunterfahren können. '73s.
Ätherfisch
5
Nur eine Notiz zum Herunterschleudern der Festplatten - TUN SIE ES NICHT! (Klicken Sie mich an, um herauszufinden, warum) Hoch- / Herunterdrehen ist ein starker Verschleiß an den beweglichen Teilen einer herkömmlichen Festplatte und führt zu vorzeitigem Ausfall. Das Geld, das Sie beim Strom sparen, geht verloren, wenn Sie ausgefallene Festplatten ersetzen.
Voretaq7

Antworten:

12

Aufgrund Ihrer Problembeschreibung ist Ihr Problem weniger der Server als der Speicher.
Sie möchten ein zuverlässiges, robustes Dateisystem wie ZFS , das für eine gute Speicherkapazität ausgelegt ist und über integrierte Verwaltungsfunktionen verfügt, um die Verwaltung dieses Endes des Systems zu vereinfachen.

Wie in den Kommentaren erwähnt, würde ich mich für den Speicherpool für ZFS entscheiden (wahrscheinlich unter FreeBSD, weil ich mit diesem Betriebssystem am besten vertraut bin und weil es eine lange, nachgewiesene Erfolgsgeschichte in Bezug auf eine solide Leistung mit ZFS aufweist - meine zweite Wahl Das Betriebssystem wäre Illumos (wiederum aufgrund der bewährten ZFS-Unterstützung).


Was das Servieren der Dateien angeht, stimme ich zu - Sie brauchen nicht viel Hardware, um nur Daten über den Netzwerkanschluss zu übertragen. Ihr primärer Treiber für CPU / RAM wird die Anforderungen des Dateisystems (ZFS) sein.
Die allgemeine Faustregel lautet: ZFS benötigt 1 GB RAM plus 1 GB für jede 10 TB Festplattenspeicher, die es verwaltet (für 40 TB benötigen Sie also 5 GB RAM für ZFS) - die Beziehung ist jedoch nicht ganz linear (es gibt viele) gute Bücher / Tutorials / Dokumente zu ZFS, die Ihnen dabei helfen können, einen Kostenvoranschlag für Ihre Umgebung zu erstellen).
Beachten Sie, dass das Hinzufügen von ZFS-Funktionen wie Deduplizierung mehr RAM erfordert.

Runden Sie die RAM-Anforderungen offensichtlich eher nach oben als nach unten und seien Sie nicht geizig: Wenn Ihre Mathematik sagt, dass Sie 5 GB RAM benötigen, laden Sie den Server nicht mit 8 GB - erhöhen Sie die Kapazität auf 16 GB.

Sie können dann entweder Ihren Server direkt auf der Storage Box ausführen (was bedeutet, dass Sie noch mehr RAM auf dieser Box benötigen, um die Serverprozesse zu unterstützen), oder Sie können den Speicher remote auf "Front-End" -Servern bereitstellen Kundenwünsche tatsächlich bedienen.
(Ersteres ist anfangs billiger, letzteres skaliert langfristig besser.)


Abgesehen von diesen Ratschlägen werden die besten Vorschläge, die ich Ihnen machen kann, in unserer Reihe von Fragen zur Kapazitätsplanung bereits ausführlich behandelt - im Grunde genommen "Belastungstest, Belastungstest , Belastungstest ".

voretaq7
quelle
Denkst du, deine Mathematik ist aus? Nach Ihrer Formel würde er 41G brauchen.
EEAA
@EEAA In der Tat habe ich eine Null fallen lassen :-) Und beachten Sie, dass dies ein Minimum an RAM ist. ZFS würde gerne 41G verwenden und alles mit Cache
aufsaugen
@ voretaq7: Danke für den Link zur Kapazitätsplanung; Es steht als nächstes auf meiner Liste, nachdem ich über ZFS gelesen habe.
Peter Rowell
Wenn Sie sich für ZFS entscheiden, sollten Sie Hardware von ixsystems.com
sciurus
1
@PeterRowell Die wesentlichen Vorteile von ZFS sind , dass es entworfen Dateisysteme Multi-Terabyte - Maßstab zu handhaben - Es wurde in den Tiegel von Sun Microsystems geschmiedet und als 21. Jahrhunderts Dateisystem für das 21. Jahrhundert Datengrößen gebaut (von der Art , du redest) . Eine Frage zu den Vor- und Nachteilen von ZFS im Vergleich zu <einem anderen Dateisystem> wäre ein gutes Thema für eine andere Frage, aber ich werde dieses Nugget fallen lassen: Es gibt keine Wartezeiten, fsckwenn Sie ZFS und den Computer verwenden stürzt ab. Ich habe fsckTerabyte-Dateisysteme. Es ist ziemlich schrecklich.
Voretaq7
2

Ich verwende ZFS für einen Multi-TB-Server und es war absolut solide. Anfangs habe ich OpenIndiana verwendet und bin jetzt zu FreeNAS gewechselt, da es genau das tut, was ich brauche.

Ich würde empfehlen, eine LSI-HBA-Karte (9211-8i ist eine gute Basiskarte) mit SAS-Erweiterungen zu verwenden (SuperMicro-Gehäuse können mit integrierten SAS-Erweiterungen bestellt werden, die auf LSI-Chipsätzen basieren). Die LSI-Firmware wird in FreeNAS und FreeBSD unterstützt. Suchen Sie nach geeigneten Versionen (V16 ist für FreeBSD V9.x geeignet).

Angesichts der einmal gelesenen Schreibzugriffe auf Ihr System würde ich eine ZFS-Z2-Topologie verwenden (vermeiden Sie RAID-5 und Z1 mit Laufwerken dieser Größe). Angesichts der Tatsache, dass Sie 4-TB-Festplatten verwenden, ist die Wiederherstellungszeit (Resilver) für ein großes einzelnes vDev-Array sehr lang, wenn der Pool voll ist. Um lange Wiederherstellungszeiten zu vermeiden, ordnen Sie die vDevs in Gruppen von 6 oder 10 ein, um den Pool zu erstellen (Empfehlungen aus der FreeNAS-Dokumentation). Ein Pool aus drei vDevs mit 6 Laufwerken (4 TB Laufwerke vorausgesetzt) ​​hätte eine nutzbare Kapazität von ~ 48 TB und bietet eine gute Fehlertoleranz (denken Sie daran, dass Sie immer noch Daten sichern müssen, da RAID Backups nicht ersetzt :)).

Um den Zugriff auf häufig verwendete Dateien zu beschleunigen, können Sie ein paar SSDs für L2ARC einbauen (wahrscheinlich nicht für Ihre Anwendung erforderlich, aber für SSDs mit 120 GB recht günstig).

Und wie gesagt, verwenden Sie viel RAM. 64 GB sind angesichts der anderen Hardware im System nicht allzu teuer. Leider kann der kleinere XEON nicht mehr als 32 GB verwenden. Sie könnten es versuchen, aber laut ZFS-Literatur wäre mehr RAM besser (ich verwende das XEON, das Sie erwähnen, mit 32 GB RAM und einem Z2-Array mit 24 TB Kapazität, und es funktioniert einwandfrei).

Ein weiterer Vorteil von ZFS ist, dass Sie regelmäßige Snapshots erstellen können. Auf diese Weise können Sie frühere Versionen einfach wiederherstellen und die Snapshots sind sehr platzsparend. Darüber hinaus können Sie jeden Snapshot in ein anderes Dataset (lokal oder remote) replizieren. Dies kann aus Sicherheitsgründen über SSH erfolgen.

Ich mag die Zuverlässigkeit des ZFS-Systems sehr. Ich mag auch die Tatsache, dass es Hardware UNABHÄNGIG ist !! Jedes System, das die Laufwerke sehen kann, kann den Pool importieren. Keine Firmware-Abhängigkeiten usw., die bei Hardware-Überfällen auftreten können (kein Problem mit besseren Karten, diese sind jedoch teurer als HBA-Karten und benötigen Treiber usw.).

Da dieser Beitrag älter ist, haben Sie wahrscheinlich eine Lösung. Wenn ja, erzählst du uns was du gebaut hast?

Prost,

Scharbag
quelle