Wir werden eine Maschine in Betrieb haben, die bei maximaler Leistung 50 ("Schreibköpfe") x 75 GB Daten pro Stunde übertragen kann. Das ist eine Spitzenleistung von ~ 1100 MB / s Schreibgeschwindigkeit. Um das von der Maschine zu bekommen, werden zwei 10GBi-Leitungen benötigt. Meine Frage ist, welche Art von Server + Technologie kann solchen Datenfluss verarbeiten / speichern?
Derzeit arbeiten wir für die Datenspeicherung mit ZFS, obwohl Schreibgeschwindigkeiten nie eine Frage waren. (wir sind diesen Geschwindigkeiten nicht einmal nahe) Wäre ZFS (zfs unter Linux) eine Option? Wir müssen auch viele Daten speichern, der "IT-Leitfaden" schlägt insgesamt zwischen 50 und 75 TB vor. Es können also wahrscheinlich nicht alle SSDs sein, es sei denn, wir möchten unserem erstgeborenen Kind etwas anbieten.
Einige Ergänzungen aufgrund der hervorragenden Antworten:
- Das Maximum ist 50x75GB / Stunde während der Spitzenzeit, die weniger als 24 Stunden beträgt (höchstwahrscheinlich <6 Stunden).
- Wir gehen nicht davon aus, dass dies bald passieren wird. Wahrscheinlich werden wir 5-10x75GB / Stunde ausführen
- Es ist eine Pre-Alpha-Maschine, aber die Anforderungen sollten erfüllt sein (obwohl viele Fragezeichen im Spiel sind)
- Wir würden NFS als Verbindung vom Computer zum Server verwenden
- layout: maschine generieren -> speicher (dieses) -> (safe raid 6) -> cluster berechnen
- Die Lesegeschwindigkeit ist also nicht unbedingt erforderlich , aber es wäre schön, sie aus dem Compute-Cluster zu verwenden (dies ist jedoch völlig optional).
- höchstwahrscheinlich handelt es sich um große Datendateien (nicht viele kleine)
quelle
Antworten:
Absolut ... ZFS unter Linux ist eine Möglichkeit, wenn es richtig aufgebaut ist. Es gibt viele Fälle von schlechtem ZFS-Design , aber gut gemacht, können Ihre Anforderungen erfüllt werden.
Die wichtigste Determinante ist also, wie Sie sich mit diesem Datenspeichersystem verbinden. Ist es NFS? CIFS? Wie stellen die Clients eine Verbindung zum Speicher her? Oder erfolgt die Bearbeitung etc. auf dem Speichersystem?
Geben Sie weitere Details ein und wir können sehen, ob wir helfen können.
Wenn dies beispielsweise NFS und synchrone Bereitstellungen sind, ist es definitiv möglich, ZFS unter Linux zu skalieren, um die Anforderungen an die Schreibleistung zu erfüllen und gleichzeitig die Anforderungen an die langfristige Speicherkapazität zu erfüllen. Sind die Daten komprimierbar? Wie ist jeder Client verbunden? Gigabit Ethernet?
Bearbeiten:
Okay, ich werde beißen:
Hier ist eine Spezifikation, die zwischen 17.000 und 23.000 US-Dollar liegt und in ein 2- HE-Rack passt.
Dieses Setup würde Ihnen mit Hardware-RAID6 oder ZFS-RAIDZ2 80 TB nutzbaren Speicherplatz zur Verfügung stellen.
Da der Schwerpunkt auf der NFS-basierten Leistung liegt (sofern synchrone Schreibvorgänge vorausgesetzt werden), können wir diese mit den P3608 NVMe-Laufwerken (Striped SLOG) problemlos absorbieren. Sie bieten Platz für 3 GB / s bei sequenziellen Schreibvorgängen und verfügen über eine ausreichende Ausdauer, um die von Ihnen beschriebene Arbeitslast kontinuierlich zu bewältigen. Die Laufwerke können leicht überlastet 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 alle 15-30 Sekunden eine Leerung erfolgt. Die sich drehenden Festplatten könnten damit umgehen und könnten sogar 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 Netzwerkflexibilität.
quelle
Für solch eine extreme Schreibgeschwindigkeit empfehle ich ZFS, BTRFS oder ein beliebiges CoW-Dateisystem. Ich würde XFS verwenden, was bei großen / Streaming-Übertragungen äußerst effizient ist.
Es fehlen viele Informationen (wie wollen Sie auf diese Daten zugreifen? Sind die Lesegeschwindigkeiten wichtig? Werden Sie in großen Blöcken schreiben? Usw.), um Ihnen spezifische Ratschläge zu geben. Einige allgemeine Ratschläge lauten jedoch:
quelle
25-Gbit / s-Ethernet ist bereits Borderline-Mainstream, während PCIe-basiertes NVMe diesen Datenverkehr problemlos überbrückt.
Als Referenz habe ich kürzlich eine kleine Lösung zur Protokollaufzeichnung mit vier regulären Dual-xeon-Servern (in diesem Fall HPE DL380 Gen9) mit jeweils 6 x NVMe-Laufwerken erstellt. Ich habe IP über Infiniband verwendet, aber diese NICs mit 25/40 Gbit / s wären dieselben und wir erfassen bis zu 8 GBit / s pro Server - das ist ein Vergnügen.
Im Grunde ist es nicht billig, aber es ist heutzutage sehr machbar.
quelle
Klingt nicht nach einer großen Sache. Unser lokaler Hardwarelieferant hat dies als Standardprodukt eingeführt - anscheinend können 1400 MB / s im CCTV-Aufzeichnungsmodus gespeichert werden, was schwieriger sein sollte als Ihre Spitzenanforderungen.
(Der Link bezieht sich auf die Standardkonfiguration mit 12 GB, es wird jedoch darauf hingewiesen, dass auch 20 x 4 TB möglich sind. Es liegen keine persönlichen Erfahrungen mit diesem speziellen Modellserver vor.)
quelle
Sequentielle Schreibvorgänge mit 1100 MB / s sind mit moderner Hardware kein Problem. Anekdotisch ist, dass 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 mit einer einmaligen Nutzlast von 16 GB unterstützt.
Das Netzwerk ist 10 GbE mit Glasfaserkabeln, 9000 MTU im Ethernet und die Anwendungsschicht ist Samba 3.0. Der Speicher wird in raid50 mit drei Stripes über drei RAID5-Volumes mit vier 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 mitteilen kann, welche Controller und Laufwerke Ihren Anforderungen entsprechen.
Ich denke, Sie können es mit jedem 12-Gbit / s-Controller versuchen und zwei gespiegelte Stripes 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 überlasten, und verwenden Sie vier Karten, wenn ein einzelnes Paar von 10-GbE-Karten nicht damit umgehen kann.
quelle
Etwas wie eine Tangente, aber erwägen Sie die Verwendung von InfiniBand anstelle von dualen 10-GbE-Links. Sie können 56-Gbit / s-Infinibandkarten recht günstig oder 100-Gbit / s-Infinibandkarten für nicht allzu viel mehr erwerben. Unter Linux ist es einfach, NFS mit RDMA über IB zu verwenden, wodurch Sie eine extrem niedrige Latenz und einen nahezu theoretischen Durchsatz bei der Leitungsgeschwindigkeit erhalten (sofern dies Ihr zugrunde liegender Speicher kann) damit umgehen). Sie benötigen keinen Switch, 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 der MCB191A-FCAT kostet weniger als 700 US-Dollar, und ein 2-Meter-Kupfer-Direktanschlusskabel kostet 80 US-Dollar.
Die Leistung wird in der Regel in allen Anwendungsfällen 10 GbE aus dem Wasser blasen. Es gibt keine Nachteile, es sei denn, Sie müssen von vielen verschiedenen Clients, die nicht alle InfiniBand verwenden können, auf den Server zugreifen (und selbst dann können die Switches von Mellanox 10 GbE und 40 GbE mit IB verbinden. Dies ist jedoch eine größere Investition. Na sicher).
quelle
Dies mit ZFS zu tun ist möglich, erwägen Sie jedoch die Verwendung von FreeBSD, da FreeBSD den schnelleren Netzwerkstack hat. Dies würde möglicherweise 100 GBit auf einer einzelnen Maschine ermöglichen.
1100 MBit / s klingt viel, aber Sie können dies realistisch erreichen, indem Sie nur normale Festplatten verwenden. Sie sagen, Sie benötigen 75 TB Speicherplatz, sodass Sie 24 Festplatten mit 8 TB in Spiegeln verwenden können. Dies würde Ihnen die 12-fache Schreibgeschwindigkeit eines einzelnen Laufwerks und die 24-fache Lesegeschwindigkeit des Laufwerks ermöglichen. Da diese Laufwerke eine Schreibgeschwindigkeit von mehr als 100 MBit / s haben, sollte dies die Bandbreite problemlos bewältigen können. Achten Sie besonders darauf, keine SMR-Laufwerke zu beschaffen, da diese erheblich langsamere Schreibgeschwindigkeiten haben.
ZFS erstellt Prüfsummen für jeden Block. Dies ist Single-Threaded implementiert. Als solches sollten Sie eine CPU mit einer einigermaßen schnellen Taktrate haben, um nicht zu blockieren.
Die genauen Implementierungsdetails hängen jedoch stark von den Details ab.
quelle
Wir haben 10G-NIC-Dump-Daten über ihren Sicherungsclient an einen Gluster-Cluster gebunden. Es dauert ein wenig, bis Sie die Leistung, die es seit 3.0 erreichen kann, nicht glauben.
quelle