it-swarm.com.de

Schreibgeschwindigkeitsanforderung: 1,1 GB / s Möglichkeiten?

Wir werden eine Maschine am Werk haben, die bei maximaler Leistung in der Lage sein sollte, 50 ("Schreibköpfe") x 75 GB Daten pro Stunde zu pushen. Das ist eine Spitzenleistung von ~ 1100 MB/s Schreibgeschwindigkeit. Um dies von der Maschine zu erhalten, sind zwei 10-GBi-Leitungen erforderlich. Meine Frage ist, welche Art von Server + Technologie einen solchen Datenfluss verarbeiten/speichern kann.

Derzeit arbeiten wir für die Datenspeicherung mit ZFS, obwohl Schreibgeschwindigkeiten nie eine Frage waren. (Wir sind nicht einmal in der Nähe dieser Geschwindigkeiten) Wäre ZFS (zfs unter Linux) eine Option? Wir müssen auch viele Daten speichern, der "IT-Leitfaden" schlägt irgendwo zwischen 50 und 75 vor TB insgesamt. Es können also wahrscheinlich nicht alle SSDs sein, es sei denn, wir möchten unsere ersten anbieten -geborenes Kind.

Einige Ergänzungen basierend auf den ausgezeichneten Antworten:

  • das Maximum beträgt 50 x 75 GB/Stunde während der Spitzenzeit, was weniger als 24 Stunden ist (höchstwahrscheinlich <6 Stunden).
  • Wir erwarten nicht, dass dies bald geschieht. Höchstwahrscheinlich werden wir 5-10x75 GB/Stunde ausführen
  • es ist eine Pre-Alpha-Maschine, jedoch sollten die Anforderungen erfüllt sein (obwohl viele Fragezeichen im Spiel sind).
  • wir würden NFS als Verbindung von der Maschine zum Server verwenden
  • layout: Maschine generieren -> Speicher (dieser) -> (sicherer RAID 6) -> Cluster berechnen
  • also Lesegeschwindigkeit ist nicht unbedingt erforderlich, aber es wäre schön, sie aus dem Rechencluster zu verwenden (dies ist jedoch völlig optional)
  • höchstwahrscheinlich werden es große Datendateien sein (nicht viele kleine)
29
SvennD

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

Die Hauptdeterminante ist also, wie Sie sich mit diesem Datenspeichersystem verbinden. Ist es NFS? CIFS? Wie stellen die Clients eine Verbindung zum Speicher her? Oder ist die Verarbeitung usw. erledigt on das Speichersystem?

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

Wenn dies beispielsweise NFS und mit synchronen Mounts ist, ist es definitiv möglich, ZFS unter Linux zu skalieren, um die Anforderungen an die Schreibleistung zu erfüllen und dennoch die Anforderungen an die langfristige Speicherkapazität aufrechtzuerhalten. Sind die Daten komprimierbar? Wie ist jeder Client verbunden? Gigabit Ethernet?


Bearbeiten:

Okay, ich beiße :

Hier ist eine Spezifikation, die ungefähr $ 17k- $ 23k beträgt und in ein 2U-Rack passt.

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 Ihnen 80 TB nutzbaren Speicherplatz, wenn Sie entweder Hardware-RAID6 oder ZFS-RAIDZ2 verwenden.

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

Mit der NFS-Workload werden die Schreibvorgänge zusammengeführt und auf die sich drehende Festplatte übertragen. Unter Linux würden wir dies so einstellen, dass es alle 15 bis 30 Sekunden geleert wird. Die sich drehenden Festplatten könnten damit umgehen und könnten noch mehr davon profitieren, wenn diese Daten komprimierbar sind.

Der Server kann mit 4 weiteren offenen PCIe-Steckplätzen und einem zusätzlichen Port für 10-GbE-FLR-Adapter mit zwei Ports erweitert werden. Sie haben also Flexibilität beim Networking.

18
ewwhite

Für solch extreme Schreibgeschwindigkeit empfehle ich gegen ZFS, BTRFS oder jedes CoW-Dateisystem. Ich würde XFS verwenden, das bei großen/Streaming-Übertragungen äußerst effizient ist.

Es fehlen viele Informationen (wie planen Sie den Zugriff auf diese Daten? Sind die Lesegeschwindigkeit wichtig? Schreiben Sie in großen Blöcken usw.), um Ihnen spezifische Ratschläge zu geben. Einige allgemeine Ratschläge sind jedoch:

  • verwenden Sie XFS über einer unformatierten Partition oder einem fetten LVM-Volume (verwenden Sie keine dünnen Volumes).
  • passen Sie die ioblock-Größe an, um große Datenschreibvorgänge effizient zu bewältigen
  • verwenden Sie eine Hardware-RAID-Karte mit einem leistungsverlustgeschützten Schreibcache. Wenn die Verwendung von Hardware-RAID nicht in Frage kommt, verwenden Sie ein Software-RAID10-Schema (vermeiden Sie paritätsbasierten RAID-Modus).
  • verwenden Sie zwei 10-Gbit/s-Netzwerkschnittstellen mit LACP (Link Aggregation).
  • stellen Sie sicher, dass Sie Jumbo Frames aktivieren
  • wenn Sie NFS verwenden möchten, sollten Sie pNFS (v4.1) verwenden, um die Skalierbarkeit zu verbessern
  • sicherlich viele andere Dinge ...
23
shodanshok

25-Gbit/s-Ethernet ist bereits Borderline-Mainstream, während PCIe-basiertes NVMe diesen Datenverkehr problemlos auflädt.

Als Referenz habe ich kürzlich eine kleine "Log Capture" -Lösung mit vier regulären Dual-Xeon-Servern (in diesem Fall HPE DL380 Gen9s) mit jeweils 6 NVMe-Laufwerken erstellt. Ich habe IP über Infiniband verwendet, aber diese 25/40-Gbit/s-NICs wären dieselben und wir erfassen bis zu 8 GBit/s pro Server - ein Vergnügen.

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

4
Chopper3

Klingt nicht nach einer großen Sache. Unser lokaler Hardwarelieferant hat dies als Standardprodukt - anscheinend kann es im CCTV-Aufzeichnungsmodus 1400 MB/s aufrechterhalten, was schwieriger sein sollte als Ihre Spitzenanforderungen.

(Der Link bezieht sich auf die Standardkonfiguration mit 12 GB, es wird jedoch auch darauf hingewiesen, dass 20 x 4 TB eine Option sind. Keine persönlichen Erfahrungen mit diesem bestimmten Modellserver.)

2
MSalters

Etwas tangential, aber erwägen Sie die Verwendung von InfiniBand anstelle von zwei 10-GbE-Verbindungen. Sie können Infiniband-Karten mit 56 Gbit/s recht günstig oder 100 Gbit/s für nicht allzu viel mehr erhalten. Unter Linux ist es einfach, NFS mit RDMA über IB zu verwenden, was Ihnen eine extrem niedrige Latenz und einen nahezu theoretischen Durchsatz der Leitungsgeschwindigkeit bietet (sofern Ihr zugrunde liegender Speicher dies kann damit umgehen). Sie benötigen keinen Schalter, nur zwei InfiniBand-Karten und ein Direktanschlusskabel (oder ein InfiniBand-Glasfaserkabel, wenn Sie größere Entfernungen benötigen).

Eine Mellanox-56-Gbit/s-Karte mit einem Port (8x PCIe 3.0) wie die MCB191A-FCAT kostet weniger als 700 US-Dollar, und ein 2 m langes Kupfer-Direktanschlusskabel kostet etwa 80 US-Dollar.

Die Leistung wird in allen Anwendungsfällen im Allgemeinen 10 GbE aus dem Wasser blasen. Es gibt keine Nachteile, es sei denn, Sie müssen von vielen verschiedenen Clients aus auf den Server zugreifen, die nicht alle InfiniBand verwenden können (und selbst dann können die Switches von Mellanox 10 GbE und 40 GbE mit IB verbinden, aber das ist eher eine Investition. Na sicher).

2
Joakim Ziegler

Sequentielle Schreibvorgänge mit 1100 MB/s sind bei moderner Hardware kein Problem. Anekdotischerweise unterstützt mein Heim-Setup mit Laptop-Laufwerken mit 8 x 5900 U/min, Laufwerken mit 2 x 15000 U/min und Laufwerken mit 2 x 7200 U/min 300 MB/s bei einer einmaligen Nutzlast von 16 GB.

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

Sprechen Sie mit einem erfahrenen Systemadministrator, der Ihnen genau sagen kann, welche Controller und Laufwerke Ihren Anforderungen entsprechen.

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

Dies mit ZFS zu tun ist jedoch möglich. Erwägen Sie jedoch die Verwendung von FreeBSD, da FreeBSD den schnelleren Netzwerkstapel hat. Dies würde möglicherweise 100 GBit auf einem einzelnen Computer ermöglichen.

1100 MBit/s klingen nach viel, aber Sie können dies realistisch erreichen, indem Sie nur normale Festplatten verwenden. Sie sagen, Sie benötigen 75 TB Speicherplatz, damit Sie 24 8 TB Festplatten in Spiegeln) verwenden können. Dies würde Ihnen die 12-fache Schreibgeschwindigkeit eines einzelnen Laufwerks geben. und 24-fache Laufwerkslesegeschwindigkeit. Da diese Laufwerke eine höhere Schreibgeschwindigkeit als 100 MBit/s haben, sollte dies problemlos in der Lage sein, die Bandbreite zu verarbeiten. Achten Sie besonders darauf, keine SMR-Laufwerke zu erhalten, da diese sehr viel langsamere Schreibgeschwindigkeiten aufweisen.

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

Die genauen Implementierungsdetails hängen jedoch stark von den Details ab.

1
mzhaase

Wir haben ein 10G NIC-Dumping von Daten an einen Gluster-Cluster über ihren Fuse-Client) festgelegt. Es dauert ein wenig, bis Sie die Leistung, die es seit 3.0 erreichen kann, nicht glauben würden.

1
pozcircuitboy