Frage Schreibgeschwindigkeitsanforderung: 1.1GB / s Möglichkeiten?


Wir werden eine Maschine bei der Arbeit haben, die bei Höchstleistung in der Lage sein sollte, zu drücken 50 ("Schreibköpfe") × 75 GB von Daten pro Stunde. Das ist Spitzenleistung von ~ 1100MB / s Schreibgeschwindigkeit. Um das von der Maschine zu bekommen, benötigt es zwei 10GBi-Leitungen. Meine Frage ist, welche Art von Server + Technologie solchen Datenfluss verarbeiten / speichern kann?

Derzeit arbeiten wir mit ZFS für die Datenspeicherung, obwohl Schreibgeschwindigkeiten nie eine Frage waren. (Wir sind nicht einmal in der Nähe dieser Geschwindigkeiten) Würde ZFS (zfs auf Linux) eine Option sein? Wir müssen auch eine Menge Daten speichern, der "IT-Guide" legt insgesamt zwischen 50-75 TB hin. Es können also wahrscheinlich nicht alle SSDs sein, wenn wir unserem erstgeborenen Kind nicht anbieten wollen.

Einige Ergänzungen basieren auf den ausgezeichneten Antworten:

  • das Maximum ist 50x75 GB / Stunde während der Spitze, die weniger als 24 Stunden ist (die meisten wahrscheinlich <6h)
  • Wir erwarten nicht, dass dies bald geschieht, wahrscheinlich werden wir es tun Lauf 5-10x75GB / Stunde
  • es ist eine Pre-Alpha-Maschine, die Anforderungen sollten jedoch erfüllt werden (auch wenn viele Fragezeichen im Spiel sind)
  • wir würden verwenden NFS als Verbindung von der Maschine zum Server
  • Layout: Generator -> Speicher (dieser) -> (Safe Raid 6) -> Cluster berechnen
  • so Lesegeschwindigkeit ist nicht wichtig, aber es wäre nett, es aus dem Rechencluster zu verwenden (aber das ist völlig optional)
  • wahrscheinlich werden es große Datendateien sein (nicht viele kleine)

28
2018-01-04 14:06


Ursprung


mb wie in MegaBIT oder Megabyte? Bitte verwenden Sie MBi MiBi MByte oder MB, um Bytes zu denunzieren. Auch 2 10 GBit-Leitungen ergeben 2400 MByte / s - mzhaase
Es ist jetzt klarer, danke. Noch ein paar Fragen. Spitzenleistung ist 1,1 GBps, aber was ist durchschnittlich? Wie lange dauern diese Spikes? Und was ist das? Minimum Kontinuierlicher Durchsatz, den Sie bereit sind zu akzeptieren? Ist das Schreiben eine große Datei oder mehrere kleine? Welche Art von Protokoll wird verwendet? Welche Art von Redundanz willst du? Es klingt wie eine medizinische oder wissenschaftliche Ausrüstung, können Sie vielleicht das Datenblatt verlinken? Da Sie bereits ZFS verwenden, könnten Sie mit einem spezialisierten ZFS-Speicherunternehmen in Kontakt treten, von dem es ein paar gibt. Sie könnten ein System für Sie festlegen. - mzhaase
Muss das wirklich mit einer einzigen Maschine gemacht werden? Load Balancing zu mehreren Maschinen könnte dies erleichtern. Sie können freigegebenen Speicher verwenden oder die Daten später konsolidieren. In AWS können Sie eine ELB, automatische Skalierung, eine Anzahl von EC2-Instanzen und EFS verwenden, aber es klingt wie Sie wollen Hardware. Ihre Frage beschreibt den Anwendungsfall nicht sehr gut. - Tim
Nur eine Anmerkung, Sie brauchen nicht "Spitzenleistung" - Sie brauchen "nachhaltige" Leistung von 1,1 GBpS - jsbueno
@jsbueno Sie sind richtig, aber wir können wählen, wie viele Schreibköpfe aktiviert werden, also ist 1GB / s "worst case", aber wenn man bedenkt, dass es Stunden dauern kann, ist es eine dauerhafte Leistung. - SvennD


Antworten:


Absolut ... ZFS unter Linux ist eine Möglichkeit, wenn es korrekt aufgebaut ist. Es gibt viele Fälle von schlechtes ZFS-Design, aber gut gemacht, Ihre Anforderungen können erfüllt werden.

Die Hauptdeterminante wird also sein, wie Sie sich mit diesem Datenspeichersystem verbinden. Ist es NFS? CIFS? Wie verbinden sich die Clients mit dem Speicher? Oder ist die Verarbeitung usw. erledigt? auf das Speichersystem?

Füllen Sie weitere Details aus und wir können sehen, ob wir Ihnen helfen können.

Wenn dies zum Beispiel NFS und synchrone Mounts sind, ist es auf jeden Fall möglich, ZFS unter Linux zu skalieren, um die Anforderungen an die Schreibleistung zu erfüllen und trotzdem die Anforderungen an die langfristige Speicherkapazität zu erfüllen. Sind die Daten komprimierbar? Wie ist jeder Kunde verbunden? Gigabit Ethernet?


Bearbeiten:

Okay, ich beiße:

Hier ist eine Spezifikation, die grob ist $ 17k- $ 23k und passt in einen 2U-Rack-Platz.

HP ProLiant DL380 Gen9 2U Rackmount
2 x Intel E5-2620v3 or v4 CPUs (or better)
128GB RAM
2 x 900GB Enterprise SAS OS drives 
12 x 8TB Nearline SAS drives
1 or 2 x Intel P3608 1.6TB NVMe drives

Dieses Setup bietet 80 TB nutzbaren Speicherplatz, entweder mit Hardware-RAID6 oder ZFS-RAIDZ2.

Da der Fokus auf der NFS-basierten Leistung liegt (unter der Annahme synchroner Schreibvorgänge), können wir all dies problemlos mit den P3608 NVMe-Laufwerken (Striped SLOG) aufnehmen. Sie können bei sequentiellen Schreibvorgängen 3 GB / s aufnehmen und verfügen über eine ausreichend hohe Ausdauerleistung, um die von Ihnen beschriebene Arbeitslast kontinuierlich bewältigen zu können. Die Laufwerke können leicht übervorbereitet werden, um unter einem SLOG-Anwendungsfall einige Schutzfunktionen hinzuzufügen.

Mit der NFS-Auslastung werden die Schreibvorgänge zusammengeführt und auf die sich drehende Festplatte ausgelagert. Unter Linux würden wir alle 15-30 Sekunden tunen. Die rotierenden Platten könnten damit umgehen und könnten noch mehr profitieren, wenn diese Daten komprimierbar sind.

Der Server kann mit 4 weiteren offenen PCIe-Steckplätzen und einem zusätzlichen Anschluss für 10GbE-FLR-Adapter mit zwei Anschlüssen erweitert werden. So haben Sie Netzwerk-Flexibilität.


18
2018-01-04 14:39



Danke Ewwwite; wir würden NFS verwenden, und es gibt nur einen Client (die Maschine), den wir optional als Lesegerät von unserem Cluster verwenden würden. (aber welche Verarbeitung oder wie ist unbekannt) Wir haben den "Speicherplatz" auf Raid 6 Storage Servern. - SvennD
@SvennD Wenn es sich um NFS und synchrone Mounts handelt, ist es definitiv möglich, ZFS unter Linux zu skalieren, um die Anforderungen an die Schreibleistung zu erfüllen und trotzdem die Anforderungen an die langfristige Speicherkapazität zu erfüllen. Sind die Daten komprimierbar? Das ist ein weiterer Faktor. Der Umfang davon ist jedoch jenseits der Ratschläge, die ich in einem Online-Forum kostenlos geben könnte. Meine Kontaktinformationen sind in meinem verfügbar ServerFault-Profil. Treten Sie mit mir in Verbindung, wenn Sie weiter besprechen müssen. - ewwhite
ZFS ist mehr als das, wonach Sie fragen. Das erste Problem wird sicherstellen, dass Ihre tatsächlichen Hardware- ist dazu in der Lage. Es wird ziemlich einfach sein, versehentlich einen Engpass zu erzeugen, der weniger als 1 GB / s auf der Adapter- oder Backplane-Ebene ist, wenn Sie nicht vorsichtig sind. Stellen Sie sicher, dass Sie den richtigen Teil erhalten, und fragen Sie danach, wie Sie Fehler auf der ZFS-Seite vermeiden können. - Jim Salter
@ SvennD Bearbeitet mit einer grundlegenden Entwurfsspezifikation und groben Kosten. - ewwhite
Ich denke, ich würde eine empfehlen Oracle X6-2L über einen HP Server. Der Oracle-Server wird standardmäßig mit vier 10-GB-Netzwerk-Ports ausgeliefert. Und meiner Erfahrung nach plumpst du mit HP für ILOM, lizensierst an ILOM-Software, bis ein HP-Server teurer ist als eine entsprechende Oracle-Box. Meine Erfahrung sagt mir auch, dass die Oracle-Box die HP-Box übertreffen wird - und viel weniger wahrscheinlich als die HP-Box einen dieser Hardware-Engpässe haben wird, die @JimSalter erwähnt. Ja, der Kauf von Oracle kann schmerzhaft sein. - Andrew Henle


Für eine solche extreme Schreibgeschwindigkeit empfehle ich gegen ZFS, BTRFS oder irgendein CoW-Dateisystem. Ich würde XFS verwenden, was bei großen / Streaming-Übertragungen extrem effizient ist.

Es gibt viele fehlende Informationen (wie planen Sie, auf diese Daten zuzugreifen? Sind Lesegeschwindigkeit wichtig? Werden Sie in großen Brocken schreiben? Usw.), um Ihnen spezifische Ratschläge zu geben, jedoch sind einige allgemeine Ratschläge:

  • verwende XFS über einer unformatierten Partition oder einem fetten LVM-Volume (verwende keine dünnen Volumes)
  • Passen Sie die Größe des ioblocks an, um große Datenschreibvorgänge effizient bewältigen zu können
  • Verwenden Sie eine Hardware-RAID-Karte mit Powerloss-geschütztem Schreib-Cache; Wenn ein Hardware-RAID nicht in Frage kommt, verwenden Sie ein Software-RAID-10-Schema (vermeiden Sie einen paritätsbasierten RAID-Modus).
  • Verwenden Sie zwei 10 Gb / s Netzwerkschnittstelle mit LACP (Link Aggregation)
  • Stellen Sie sicher, dass Jumbo Frames aktiviert sind
  • Wenn Sie NFS verwenden, sollten Sie es verwenden pNFS (v4.1) für erhöhte Skalierbarkeit
  • sicherlich viele andere Dinge ...

23
2018-01-04 14:52



Wenn Sie XFS verwenden, legen Sie das Journal auch auf ein SSD-RAID1-Paar. - T. B.
Wenn Sie eine RAID-Karte mit einem Powerloss-geschützten Writeback-Cache verwenden, kann das Journal im Hauptarray belassen werden: Der Schreibcache wird die Journalschreibvorgänge absorbieren und verschmelzen. Darüber hinaus sollte das Laden von Metadaten im Vergleich zum Datenstreaming ziemlich niedrig sein. - shodanshok
ZFS würde gut funktionieren und kann viel schneller als XFS gehen. Sicher, Sie müssen es richtig einrichten und haben RAM und SSDs für die ZIL und SLOG, aber das ist wahrscheinlich egal mit den erforderlichen Geschwindigkeiten. - John Keates
Ich sehe XFS auf Linux als alte Technologie. Das OP könnte genauso einfach ZFS auf Hardware-RAID laufen lassen. Der Grund, warum ich ZFS empfehle, ist, dass eingehende synchrone NFS-Schreibvorgänge von dem SLOG mit niedriger Latenz absorbiert werden können, ohne einen All-SSD-Pool zu benötigen. - ewwhite
Ein Shelby Cobra ist "Old Technology", aber es kann immer noch die meisten Autos aus dem Tor rauchen. ZFS wurde ursprünglich nie als leistungsstarkes Dateisystem konzipiert, und obwohl es möglich ist, es so einzustellen, dass es bei einer bestimmten Arbeitslast blitzartig schnell ist, ist es standardmäßig nicht dafür vorgesehen. Es wird mehr Hardware, viel mehr Arbeitsspeicher und viel Tuning benötigen, um es zu übertreffen, was XFS Ihnen mit einigen Datei- und Formatierungsoptionen kostenlos zur Verfügung stellt. - T. B.


25Gbps Ethernet ist bereits grenzwertig-Mainstream, während PCIe-Base NVMe diesen Traffic leicht überlappen wird.

Als Referenz habe ich vor kurzem eine kleine "Log Capture" -Lösung mit vier regulären Dual-Xeon-Servern (HPE DL380 Gen9 in diesem Fall) mit je 6 x NVMe-Laufwerken erstellt. Ich habe IP über Infiniband verwendet, aber diese 25 / 40Gbps-NICs wären gleich und wir erfassen bis zu 8 GB pro Server - ein Vergnügen.

Grundsätzlich ist es nicht billig, aber es ist heutzutage sehr machbar.


4
2018-01-04 14:58



Ja, aber wie speichern Sie ~ 50 TB auf NVMes? Spinners sind billig, also wie verschmelzen wir, um die Geschwindigkeit auf ... - SvennD
Guter Punkt, realistisch, Sie müssen nur 4 x 4 TB in einem Server bekommen, ich benutze mehrere Server, vermutlich können Sie nicht? ansonsten sind es nur 2.5 "10krpm's in R10 - Chopper3
Ich will nicht mehr so, wir werden diese Spezifikationen nicht brauchen, außer um in die Tür zu kommen, und ich will nicht den Alptraum des Overheads mehrerer Server. für nur eine Maschine. Wäre R10 schnell genug? (Harware Raid?) - SvennD
Wir haben eine Windows 2012R2-Box, die wir aus Ersatzkits, die nicht verwendet wurde, gebaut, wir verwenden es als NAS, es hat intern 6 x 400GB SAS SSDs, 8 x D2600 Regale mit je 25 x 900GB 10k SAS-Festplatten und einem D6000 Regal mit 70 x 4 TB Festplatten und das kann eine 10 Gbps NIC leicht überschwemmen - nicht mit einer 25 Gb NIC noch tbh versucht. - Chopper3
@MSalter Es gibt eine Reihe von 8/10 TB PMR-Laufwerken (ohne SMR) mit einer Übertragungsrate im Bereich von 200 MB / s. Ein Array mit 12 oder 16 Laufwerken, sowohl in RAID10 als auch in RAID6, sollte die erforderliche Übertragungsgeschwindigkeit von 1,1 GB / s leicht überschreiten. - shodanshok


Sequenzielles Schreiben bei 1100 MB / s ist bei moderner Hardware kein Problem. Mein Heim-Setup mit 8x5900 RPM Laptop-Laufwerken, 2x15000 RPM-Laufwerken und 2x7200 RPM-Laufwerken hält 300 MB / s mit einer einmaligen Nutzlast von 16 GB aufrecht.

Das Netzwerk ist ein 10GbE mit Glasfaserkabeln, 9000 MTU auf Ethernet, und die Anwendungsschicht ist Samba 3.0. Der Speicher ist in Raid50 mit drei Streifen über drei Raid5-Volumes mit je vier Laufwerken konfiguriert. Der Controller ist LSI MegaRAID SAS 9271-8i mit bis zu 6 Gb / s pro Port (ich habe einen zusätzlichen, langsameren Port-Multiplikator).

Sprechen Sie mit erfahrenen Systemadministratoren und sie sollten Ihnen genau sagen können, welche Controller und Laufwerke Ihren Anforderungen entsprechen.

Ich denke, Sie können mit jedem 12 Gb / s-Controller versuchen und zwei gespiegelte Streifen von jeweils acht 7200-RPM-Laufwerken konfigurieren (fast jedes Laufwerk sollte dies tun). Starten Sie 3-4 TCP-Verbindungen, um die Verbindung zu sättigen, und wenn ein einzelnes Paar 10GbE-Karten nicht damit umgehen kann, verwenden Sie vier Karten.


3
2018-01-04 22:52





Klingt nicht nach einer großen Sache. Unser lokaler Hardwarelieferant hat dies als Standardprodukt - Im CCTV-Aufnahmemodus, der härter als Ihre Spitzenanforderungen sein sollte, kann er 1400 MB / s drücken.

(Link ist Standard-12GB-Konfiguration, aber sie merken 20x4TB ist auch eine Option. Keine persönliche Erfahrung mit diesem bestimmten Modell-Server.)


2
2018-01-04 19:05



Nun, mit "Standard-Produkt" beziehen Sie sich auf eine "schwarze Software-Box" mit 20 x 600gb sas 15k und 3 x Enterprise ssd. Es ist ein faires Angebot, wir haben einen ähnlichen von unserem Hardware-Anbieter, aber die Lizenzkosten für mich ist verrückt nach etwas, das im Grunde frei ist (ZFS). Danke für die Freigabe des Build! (nette Verbindung) - SvennD


Etwas von einer Tangente, aber in Betracht ziehen, InfiniBand statt duale 10GbE-Links zu verwenden. Sie können 56 Gbps Infiniband-Karten recht günstig kaufen, oder 100 Gbps für nicht viel mehr, und unter Linux ist es einfach, NFS mit RDMA über IB zu verwenden, was Ihnen eine extrem niedrige Latenz und einen nahezu theoretischen Durchsatz bringt (wenn Ihr zugrunde liegender Speicher dies kann) handle es). Sie benötigen keinen Switch, nur zwei InfiniBand-Karten und ein Direct-Attach-Kabel (oder ein InfiniBand-Glasfaserkabel, wenn Sie größere Entfernungen benötigen).

Eine Single-Port Mellanox 56Gbps-Karte (8x PCIe 3.0) wie der MCB191A-FCAT ist weniger als 700 Dollar, und ein 2-Meter-Kupfer-Direktanschlusskabel ist wie 80 Dollar.

Die Leistung bläst in allen Anwendungsfällen 10 GbE aus dem Wasser. Es gibt keine Nachteile, es sei denn, Sie müssen auf den Server von vielen verschiedenen Clients zugreifen, die nicht alle InfiniBand verwenden können (und selbst dann können Mellanox Switches 10 GbE und 40 GbE zu IB überbrücken, aber das ist ein bisschen mehr eine Investition, Na sicher).


2
2018-03-17 06:39





Dies ist mit ZFS möglich, jedoch sollten Sie FreeBSD verwenden, da FreeBSD den schnelleren Netzwerk-Stack besitzt. Dies würde möglicherweise 100 GBit auf einer einzelnen Maschine ermöglichen.

1100 MBps klingt nach viel, aber Sie können dies realistisch erreichen, indem Sie nur normale Festplatten verwenden. Sie sagen, Sie benötigen 75 TB Speicherplatz, so dass Sie 24 8 TB Festplatten in Spiegeln verwenden können. Dies würde Ihnen 12x Schreibgeschwindigkeit eines einzelnen Laufwerks und 24x Laufwerkslesegeschwindigkeit geben. Da diese Laufwerke eine höhere Schreibgeschwindigkeit als 100 MB / s haben, sollte dies die Bandbreite problemlos bewältigen können. Stellen Sie sicher, dass Sie keine SMR-Laufwerke erhalten, da diese sehr viel langsamer geschrieben werden.

ZFS erstellt Prüfsummen für jeden Block. Dies ist single-threaded implementiert. Als solche sollten Sie eine CPU mit einer relativ schnellen Taktrate haben, um nicht zu blockieren.

Die genauen Details der Implementierung hängen jedoch stark von Details ab.


1
2018-01-04 15:15



"FreeBSD hat einen schnelleren Netzwerk-Stack" [muss zitiert werden] - Jim Salter
Genau. Linux ist ziemlich fähig. - ewwhite