Ich muss eine Lösung erstellen, um interne Git-Repositorys zu hosten. Es muss Hunderttausende (oder mehr) Repositorys unterstützen.
Ich plane, mehrere "dumme" Server mit einem gemeinsam genutzten Speicher zu verwenden. Wenn also ein Client versucht, auf ein Repository zuzugreifen, wird dieser vom Load-Balancer auf einen der verfügbaren Server umgeleitet. Jede Änderung am Repository wird auf allen Knoten repliziert.
Mein erster Gedanke war, GlusterFS dafür zu verwenden, aber ich habe gelesen, dass es mit kleinen Dateien nicht gut funktioniert. Ich denke auch daran, alles selbst mit DRBD zu replizieren, aber dies erfordert mehr Setup und scheint im Vergleich zu GlusterFS komplizierter zu sein.
Welcher der beiden bietet bessere Leistungen? Grundsätzlich ist das Problem, das ich zu lösen versuche, dass ich möchte, dass andere die Daten weiterhin bereitstellen können, wenn einer der Server ausfällt.
Ich hatte ein ähnliches Setup für Cyrus Mail-Server, bei denen Gluster bei Stresstests nicht in der Lage war, die Last zu bewältigen. wir haben uns ursprünglich für gluster entschieden, weil es einfach war, aber wieder zu drbd wechseln musste. Wie dyasny hervorhob, ist drbd activs / active cfg jedoch nicht ratsam (ganz zu schweigen von den Schmerzen). Wenn Sie alle Server benötigen, um den gemeinsam genutzten Speicher gleichzeitig bereitzustellen, ist drbd keine Option. Eine andere Sache, die Sie sich ansehen möchten, ist clvmd mit Lock Manager. lvm2 unterstützt jetzt den RAID-Typ lv und verwendet zu diesem Zweck Man-Code. Dies kann eine Option sein, die mit dem entsprechenden Dateisystem gemischt wird (einige Cluster-fähige, falls erforderlich). Ich habe es jedoch nie selbst in der Produktion getestet, sondern nur als PoC.
quelle
Das Problem mit Gluster ist hauptsächlich die Latenz zwischen den Knoten. Ich würde Ihnen raten, es auszuprobieren und zu prüfen, ob es Ihre Arbeitslast bewältigt. Wenn Ihre Server leistungsfähig genug sind und eine schnelle Verbindung haben, sollten Sie eine ziemlich gute Leistung erzielen. Vielleicht möchten Sie auch den eingebauten NFS-Server ausprobieren, der meiner Erfahrung nach kleine Dateien etwas schneller verarbeitet.
Aber wenn Sie Ihre Lösung so schnell wie möglich benötigen, ist GlusterFS wahrscheinlich nichts für Sie. Andere Optionen wären kommerzielle Produkte wie Git Clustering (haben das allerdings noch nicht getestet) oder Sie könnten Ihre eigene Lösung mit kostenlosen Tools wie gitmirror erstellen .
quelle
Wenn Sie Gluster erwägen (die in meiner Erfahrung ist verwendbar mit vielen kleinen Dateien , aber YMMV), können Sie auch einen Blick auf Ceph haben http://ceph.com/
quelle
Ich würde auch empfehlen, Glustet am einfachsten und am schnellsten einzurichten und zu konfigurieren. Auch skaliert es sehr sehr gut. Das Problem ist die Geschwindigkeit, und mein 2c ia, dass Sie zwischen einfacher Konfiguration und einfachem Scale-out wählen müssen, und zwischen einigen technischen Schwierigkeiten (einige ausgefallene drbd / ocfs2 / Glances-Blockspeicher) mit dem Geschwindigkeitsgewinn. Aber ... wie viel Geschwindigkeit gewinnen Sie? Yoi muss einen Stresstest machen und wählen ..
quelle