Frage Sanity-Check bei 40 TB Server-Konfiguration


Ich habe 40 Jahre in der Computerbranche, aber ich musste noch nie einen Server wie diesen bauen, also könnte das eine Frage von n00b sein.

Ich habe einen Kunden, der Ultra-High-Def-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, nur die Server-Konfiguration.) Der Katalog wird etwa 3.000 Alben sein, mit sowohl Ultra-High-und Low-Def-Versionen (für ihre iPods, denke ich), etwa geben 35-40TB oder so von primären Daten.

Da es sich um ein sehr spezialisiertes Produkt handelt, ist die Marktgröße relativ gering (denken Sie daran: Leute, die $ 20.000 für ihre Audiosysteme ausgeben), was bedeutet, dass der Server meistens zu 100% im Leerlauf (oder in der Nähe) ist. Ich sehe aus wie ein gutes Colocation-Angebot von ColocationAmerica mit einer 1Gbps-Verbindung und einer Bandbreite von etwa 20 $ / TB, also muss ich jetzt nur noch eine Box bauen, um die Waren zu liefern.

Der Anwendungsfall für den Datenzugriff ist einmal beschreibbar / schreibend, daher denke ich daran, nur Software-RAID 1 für Laufwerkspaare zu verwenden. Dies würde mir erlauben (I denken) um Ersatzlaufwerke im laufenden Betrieb für fehlgeschlagene zu rekonfigurieren, wodurch die Wiederherstellung des zweiten Laufwerks gestartet werden kann, bevor ein Systemadministrator das rote Licht auf dem System bemerkt (sie tauschen das System aus). Es wäre großartig, wenn ich die meisten Laufwerke in den Ruhezustand versetzen könnte, wenn sie nicht benötigt werden, was für die meisten Laufwerke die meiste Zeit sein wird.

Ich brauche nicht viel Rechenleistung - dieses Ding schiebt nur dicke Gegenstände in die Röhre - und so kann die CPU / das Motherboard ziemlich bescheiden sein, solange sie diese Anzahl von Laufwerken unterstützt.

Ich überlege mir gerade die 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

Also, gehe ich in die richtige Richtung, oder ist das eine völlig neue Art, das Problem anzugehen?

Update zur Klärung einiger Punkte:

  1. Ich habe keine Erfahrung mit ZFS, da das letzte Sun-Produkt, das ich besaß, in den späten 80ern 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 (ähnlich wie bei einem großen Caching-System). Also dachte ich wirklich an diese 40 separaten Dateisysteme, und das hat RAID 1 richtig klingen lassen (aber ich gestehe hier Ignoranz).
  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 wird genau eine Person jede Datei herunterladen, weiß ich nicht, ob wir viel Speicher benötigen für Puffer. Vielleicht 8GB ist ein bisschen Licht, aber ich denke nicht, dass 128GB mehr tun wird, als Energie zu verbrauchen.
  4. Es gibt zwei separate Maschinen, die hier nicht erwähnt werden: ihr derzeitiger Webshop und ein fast vollständig entkoppelter Download-Master, der alle Authentifizierungen, das neue Product-Ingest-Management, die Richtlinienerzwingung (schließlich) übernimmt ist der RIAA-Spielplatz), ephemere URL-Erstellung (und möglicherweise die Verteilung von Downloads an mehr als eine dieser Bestien, wenn der Datenverkehr unsere Erwartungen übersteigt), Nutzungsverfolgung und Berichterstellung. Das bedeutet diese Maschine könnte fast mit Gerbils auf Quaaludes gebaut werden.

ZFS? Wo ist der Vorteil?

OK, ich schlage mich durch mehrere ZFS-Anleitungen, FAQs usw. Verzeihen Sie, dass ich dumm bin, aber ich versuche wirklich zu verstehen der Vorteil mit ZFS über meine vordiluvianische Vorstellung von N RAID1-Paaren. Auf diesem Best Practices Seite (ab 2006), schlagen sie sogar vor nicht macht ein 48-Geräte-ZFS, aber 24 2-Gerät-Spiegel - klingt so ähnlich wie das, worüber ich geredet 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 80% Festplattenauslastung insgesamt 320 Dateien gespeichert werden pro 4 TB Laufwerk. Meine Wiederherstellungszeit mit N RAID 1s ist für jeden Laufwerkfehler ein 4 TB Schreibvorgang von einem Gerät zu einem anderen. Wie verbessert ZFS das?

Ich gebe zu, ein Dinosaurier zu sein, aber die Festplatte ist billig, RAID 1 Ich verstehe, meine Dateiverwaltungsbedürfnisse sind trivial, und ZFS unter Linux (mein bevorzugtes Betriebssystem) ist immer noch ein bisschen jung. Vielleicht bin ich zu konservativ, aber wenn ich ein Produktionssystem betrachte, rolle ich es.

Ich danke Ihnen allen für Ihre Kommentare, die mich dazu gebracht haben, darüber nachzudenken. Ich bin immer noch nicht völlig entschieden und ich muss vielleicht zurückkommen und ein paar mehr Fragen stellen.


20
2018-02-12 22:12


Ursprung


Für diese Menge an Speicher würde ich nicht einmal in Erwägung ziehen, weniger als 128 GB RAM zu verwenden. Ziehen Sie auch die Verwendung des zfs-Dateisystems in Betracht. - EEAA
Festplattenpaare in RAID1 klingen ... schrecklich. Persönlich würde ich einen Speicherserver / Regal angeben, voll mit Nearline-SAS-Laufwerken, das Ganze in RAID 10 oder 6 stecken, ein oder zwei Hotspare hinzufügen und es einen Tag nennen. - HopelessN00b
@ Etherfish - der RAM wird für Rechenzwecke nicht benötigt, aber er wird definitiv für Dateisystem-Cache benötigt. Leistung mit nur 8 GB wäre horrend. Mehr noch, wenn ich ZFS verwende, das ist wirklich das einzige fs, das ich bei dieser Größe ernsthaft in Erwägung ziehen würde. ZFS benötigt ein Menge von RAM, um gut zu funktionieren. Zum Glück ist RAM relativ günstig. - EEAA
Die Leistung wäre übermäßig ausreichend, um 1 Gbit / s zu sättigen. Die Performance würde nur beeinträchtigt werden, wenn das Dateisystem Blöcke von der Festplatte, die aus dem Puffer-Cache ausgelöscht worden war, erneut lesen würde und keine oder nur geringe Erwartung einer zeitlichen Lokalität hätte, der Punkt des abnehmenden Ertrags für zusätzlichen RAM ist gut erreicht, also weit vor 128 GB. Bei einem extensionsbasierten Dateisystem und großen Dateien belegen selbst Dateisystem-Metadaten eine unbedeutende Menge an RAM. Er geht sogar davon aus, dass die Nutzung spärlich genug sein wird, damit Laufwerke heruntergespielt werden können. 73s. - etherfish
Nur ein Hinweis auf das Herunterfahren der Festplatten - Tue es nicht! (Klicken Sie auf mich, um herauszufinden, warum) Spin-Up / Spin-Down ist eine große Belastung für die beweglichen Teile einer herkömmlichen Festplatte und führt zu einem vorzeitigen Ausfall. Das Geld, das Sie für den Strom sparen, geht verloren und ersetzt fehlerhafte Festplatten. - voretaq7


Antworten:


Basierend auf Ihrer Problembeschreibung ist Ihr Problem nicht so sehr der Server als der Speicher.
Sie möchten ein zuverlässiges, robustes Dateisystem wie ZFS Diese Lösung wurde entwickelt, um große Speicherkapazitäten gut zu bewältigen, und verfügt über integrierte Verwaltungsfunktionen, die die Verwaltung dieses Systems vereinfachen.

Wie in den Kommentaren erwähnt, würde ich mit ZFS für den Speicherpool gehen (wahrscheinlich auf FreeBSD, weil ich mit diesem Betriebssystem am vertrautesten bin und weil es eine lange, nachgewiesene Erfolgsbilanz mit ZFS hat - Meine zweite Wahl OS wäre Illumos, wieder wegen der gut getesteten ZFS-Unterstützung).


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

Offensichtlich runde RAM-Anforderungen nach oben statt nach unten und nicht geizig sein: Wenn Ihre Mathematik sagt, dass Sie 5 GB RAM benötigen, laden Sie den Server nicht mit 8 GB - Schritt bis zu 16 GB.

Sie können Ihren Server dann entweder direkt auf der Speicherbox 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 an "Front-End" -Server anhängen tatsächlich Clientanfragen bedienen.
(Ersteres ist anfänglich billiger, letzteres ist langfristig besser skalierbar.)


Über diesen Rat hinaus sind die besten Vorschläge, die ich Ihnen geben kann, bereits gut abgedeckt unsere Fragen zur Kapazitätsplanung - grundsätzlich "Belastungstest, Lade Test, Lade Test".


11
2018-02-12 22:51



Denk dran, deine Mathematik ist aus. Mit Ihrer Formel würde er 41G brauchen. - EEAA
@EEEAA In der Tat habe ich eine Null fallen gelassen :-) Und beachte, dass das ein Minimum an RAM ist. ZFS wäre sehr glücklich, 41G zu benutzen und alles mit Cache zu füllen :-) - voretaq7
@ voretaq7: Danke für den Link zur Kapazitätsplanung; Es ist das nächste auf meiner Liste nach dem Lesen von ZFS. - Peter Rowell
Wenn Sie mit ZFS arbeiten, ziehen Sie Hardware von ixsystems.com - sciurus
@PeterRowell Die Hauptvorteile von ZFS sind, dass es ist entworfen um Dateisysteme mit mehreren Terabyte zu verarbeiten - Es wurde im Schmelztiegel von Sun Microsystems hergestellt und als ein Dateisystem des 21. Jahrhunderts für Datengrößen des 21. Jahrhunderts (von der Art, von der Sie sprechen) gebaut. Eine Frage über die Vorteile / Nachteile von ZFS gegenüber <einem anderen Dateisystem> wäre ein gutes Thema für eine andere separate Frage, aber ich werde dieses Nugget fallen lassen: Es gibt nichts, worauf ich warten muss fsck Wenn Sie ZFS verwenden und der Computer abstürzt. Ich habe fsck'd Terabyte-Dateisysteme. Es ist ziemlich schrecklich. - voretaq7


Ich benutze ZFS für einen Multi-TB-Server und es war felsenfest. Ich habe mit OpenIndiana angefangen und bin jetzt zu FreeNAS gewechselt, da es genau das tut, wofür ich es brauche.

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

Angesichts der einmal gelesenen Schreibweise meines Systems würde ich eine ZFS-Z2-Topologie verwenden (vermeiden Sie RAID-5 und Z1 mit Laufwerken dieser Größe). Angesichts der Tatsache, dass Sie 4TB-Festplatten verwenden, wäre die Zeit für die Neuerstellung (resilver) für ein großes einzelnes vDev-Array eine lange Zeit, wenn der Pool voll ist. Um lange Wiederherstellungszeiten zu vermeiden, ordnen Sie die vDevs in Gruppen von 6 oder 10 an, um den Pool zu erstellen (Empfehlungen aus der FreeNAS-Dokumentation). Ein Pool aus drei 6 Drive-vDevs (4TB-Laufwerke angenommen) hätte eine nutzbare Kapazität von ~ 48 TB und bietet ein gutes Maß an Fehlertoleranz (denken Sie daran, Sie müssen immer noch stopfen, da RAID Backups nicht ersetzt :)).

Um die Geschwindigkeit für häufig verwendete Dateien zu erhöhen, können Sie ein paar SSDs für L2ARC einwerfen (die für Ihre Anwendung wahrscheinlich nicht benötigt werden, aber für 120 GB SSDs ziemlich günstig sind).

Und wie gesagt, nutze viel RAM. 64 GB sind angesichts der anderen Hardware im System nicht übermäßig teuer. Leider kann das kleinere XEON nicht mehr als 32 GB verwenden. Sie könnten es versuchen, aber mehr RAM wäre besser nach ZFS Literatur (Ich benutze die XEON Sie mit 32GB RAM und eine 24TB Kapazität Z2 Array erwähnen, und es funktioniert gut).

Ein weiterer Vorteil von ZFS ist, dass Sie regelmäßige Snapshots einrichten 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 replizieren (lokal oder remote) und dies kann zur Sicherheit über SSH erfolgen.

Ich mag die Zuverlässigkeit des ZFS-Systems. 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 etc., die mit Hardware-RAID passieren können (kein Problem mit besseren Karten, aber sie sind teurer als HBA-Karten und brauchen Treiber etc. - war in der Vergangenheit schon ein bisschen davon).

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

Prost,


1
2018-01-03 21:27