Wir haben einen kleinen Cluster von sechs Ubuntu-Servern. Wir führen Bioinformatik-Analysen für diese Cluster durch. Jede Analyse dauert ungefähr 24 Stunden, jeder Core i7-Server kann 2 gleichzeitig verarbeiten, nimmt als Eingabe ungefähr 5 GB Daten und gibt ungefähr 10-25 GB Daten aus. Wir führen Dutzende davon pro Woche durch. Die Software ist eine Ansammlung von benutzerdefinierten Perl-Skripten und Sequenzausrichtungssoftware von Drittanbietern, die in C / C ++ geschrieben wurden.
Derzeit werden Dateien von zwei der Rechenknoten bereitgestellt (ja, wir verwenden Rechenknoten als Dateiserver) - jeder Knoten verfügt über 5 separat gemountete 1-TB-Sata-Laufwerke (kein RAID) und wird über glusterfs 2.0.1 gepoolt. Sie verfügen jeweils über 3 gebundene Intel Ethernet PCI-Gigabit-Ethernet-Karten, die an einen D-Link DGS-1224T-Switch angeschlossen sind (300 US-Dollar für Verbraucher mit 24 Ports). Wir verwenden derzeit keine Jumbo-Frames (nicht sicher, warum, eigentlich). Die beiden Dateidienst-Rechenknoten werden dann über glusterfs gespiegelt.
Jeder der vier anderen Knoten stellt die Dateien über glusterfs bereit.
Die Dateien sind alle groß (4 GB +) und werden als reine Dateien (keine Datenbank / usw.) gespeichert, wenn dies wichtig ist.
Wie Sie sich vorstellen können, ist dies ein kleines Durcheinander, das ohne Voraussicht organisch gewachsen ist, und wir möchten es jetzt verbessern, da uns der Platz ausgeht. Unsere Analysen sind E / A-intensiv und es handelt sich um einen Flaschenhals - wir erhalten nur 140 MB / s zwischen den beiden Dateiservern, möglicherweise 50 MB / s von den Clients (die nur einzelne Netzwerkkarten haben). Wir haben ein flexibles Budget, mit dem ich wahrscheinlich 5.000 USD oder so verdienen kann.
Wie sollen wir unser Budget ausgeben?
Wir benötigen mindestens 10 TB Speicherplatz, der schnell genug ist, um alle Knoten zu bedienen. Wie schnell / groß muss die CPU / der Speicher eines solchen Dateiservers sein? Sollten wir NFS, ATA über Ethernet, iSCSI, Glusterfs oder etwas anderes verwenden? Sollten wir zwei oder mehr Server kaufen und eine Art Speichercluster erstellen, oder reicht 1 Server für eine so kleine Anzahl von Knoten aus? Sollten wir in schnellere Netzwerkkarten investieren (z. B. PCI-Express-Karten mit mehreren Anschlüssen)? Der Schalter? Sollten wir Raid verwenden, wenn ja, Hardware oder Software? und welcher Überfall (5, 6, 10 usw.)?
Irgendwelche Ideen geschätzt. Wir sind Biologen, keine IT-Gurus.