gespiegeltes Dateisystem auf einigen Servern

12

Ich suche nach einer Lösung, um ein Verzeichnis (oder ein Dateisystem) auf einigen Linux-Servern zu spiegeln oder zu replizieren. Die ideale Lösung wäre eine, die allen Servern Lese- und Schreibzugriff ermöglicht. Ich möchte auch, dass es für mich belastbar ist. Wenn einer der Server ausfällt, sollte die Ruhe weiterhin funktionieren, ohne dass Daten verloren gehen.

Ich habe nach Lösungen gesucht:

  • DRBD : Replikationen auf Blockebene, scheint etwas übertrieben;
  • lsyncd : sieht sehr einfach aus, aber ich habe Zweifel an der Leistung;
  • GlusterFS : Das scheint eine gute Übereinstimmung zu sein. Ich habe noch nicht herausgefunden, wie genau der Replikationsmodus funktioniert. Wird es Eigenschaften haben, die ich benötige?

Alle anderen Vorschläge sind willkommen.

vartec
quelle
Suchen Sie nach einem Shared-Nothing-Setup oder verbinden Sie alle Server mit demselben Backend-SAN?
HampusLi
logischerweise hat es nichts geteilt (physisch ist es EC2 mit EBS).
Vartec

Antworten:

6

Die erste Frage, die ich stellen würde, ist, ob dies auf zwei Server oder mehr als zwei Server repliziert werden soll. Für zwei Server würde ich mit DRDB gehen, für drei oder mehr würde ich mit Glanz gehen.

Wenn die E / A-Latenz kein kritisches Problem darstellt, würde ich mich für Glanz entscheiden. Es ist ziemlich einfach einzurichten und kann eindeutig das tun, was Sie brauchen. Alles, was Sie tun müssen, ist, einen Gluster-Server zu erstellen, der die Dateien auf allen drei Boxen bereitstellt, und dann jede Box als Gluster-Client zu fungieren, der die Dateien bereitstellt.

DRDB wird kompliziert, um in einem Master <-> Master-Modus mit 3 oder mehr Servern zu arbeiten. Sie müssen ein ringbasiertes Setup konfigurieren und ich würde es nicht empfehlen. Für zwei Server ist DRDB jedoch fantastisch. Master <-> Der Master-Modus ist nicht kompliziert einzurichten und Sie müssen nichts vom Dateisystem lernen.

lsycd eignet sich hervorragend für ein Master / Slave-Setup, aber das scheint Ihnen nicht zu wollen.

Ceph ist noch ziemlich neu, als ich das letzte Mal nachgesehen habe, hatte es noch nicht einmal fsck-Unterstützung. Ich würde meine Infrastruktur lieber auf etwas Stabileres stützen.

Lustre ist ein fantastisches Produkt für Bereitstellungen in großem Maßstab, aber Sie müssen Heartbeat und Failover für den mds-Server einrichten, oder es wird einen einzigen Fehlerpunkt geben. Angesichts der begrenzten Anzahl von Servern, von denen er spricht, vermute ich, dass dies in diesem Fall übertrieben ist.

n8whnp
quelle
Anfangs beginne ich mit nur 2 Servern pro Cluster, aber ich möchte die Option haben, mehr als 2 Server für das Scale-Out zu haben. Würde das von Ihnen beschriebene Gluster-Setup einen der Server zum Absturz bringen? Wäre es einfach, einen zusätzlichen Server hinzuzufügen?
Vartec
2

Wie wäre es mit Ceph oder Lustre ?

Chopper3
quelle
Unterstützt Lustre Ubuntu Server? Ich checke jetzt Ceph aus, danke für den Vorschlag.
Vartec
Aus dem Ceph-Wiki: "Ceph befindet sich in einer starken Entwicklung und ist noch nicht für andere Zwecke
Jeff Busby
2

Sie sollten sich OpenAFS ansehen - es ist ein größtenteils verteiltes Dateisystem, das es ermöglicht, dass mehrere Kopien von Daten über den Cluster verteilt existieren und jeder gleichzeitig in den FS lesen / schreiben kann.

Es gibt auch eine Reihe anderer nützlicher Funktionen (gute Authentifizierung, Verschlüsselung auf dem Kabel, integriertes lokales Caching auf Clients, nativer Windows-Client, portabel für viele Unix-Versionen usw.)

Das Einrichten ist allerdings etwas schwierig.

chris
quelle
gleiche Frage wie bei NFS: "erlaubt mehrere Kopien". OK, aber kümmert es sich darum, diese Kopien tatsächlich zu synchronisieren?
Vartec
Ja. Und es ist möglich, obwohl ärgerlich, sich von dem Verlust des primären Masters zu erholen. Es ist jedoch trivial, mehrere Writer und die daraus resultierenden Blöcke auf mehreren Hosts zu speichern.
Chris
Der Schlüssel zum Verständnis von OpenAFS ist, dass es sich um ein Cache-Verwaltungssystem handelt - es gibt einen Namespace (dh es existiert nur eine "Datei"), aber es gibt überall zwischengespeicherte Kopien der Datei und ein Protokoll, um sicherzustellen, dass alle zwischengespeicherten Kopien konsistent sind . Wenn Sie den Master verlieren, können Sie eine der zwischengespeicherten Kopien in den Master verwandeln, aber es ist nicht ideal, in dieser Situation zu sein.
Chris
1

Abhängig von Ihren Anforderungen funktioniert NFS möglicherweise auch einwandfrei.

lsd
quelle
AFAIK, NFS bietet keine Möglichkeit, replizierte Server bereitzustellen, jedoch nicht die Replikation selbst. Aber ich habe NFS schon lange nicht mehr benutzt, vielleicht hat sich das geändert. Könnten Sie auf NFS-Dokumente verlinken, die ein solches Setup beschreiben?
Vartec
Ein Ausweg wäre, die Verzeichnisse auf mehrere NFS-Server zu replizieren, von denen einer einen primären VIP hat, und den VIP über Server zu migrieren, wenn einer ausfällt. Oder Round Robin DNS vielleicht. NFS selbst kann möglicherweise nicht alles tun, was Sie benötigen, aber in Verbindung mit Heartbeat- oder Red Hat-Clusterdiensten ist es möglicherweise genau das, was Sie benötigen. Ich bin nicht sicher, ob die ursprüngliche Frage alle Anforderungen enthielt. Sie können sogar etwa jede Stunde eine Synchronisierung auf mehreren Servern durchführen, um eine wirklich schnelle und einfache Lösung zu erhalten.
LSD
Überspringen Sie den Teil über rsync. Es würde die Replikation durchführen, ist jedoch hauptsächlich für schreibgeschützte Setups vorgesehen, die nicht Ihren Anforderungen entsprechen. Ich wollte meinen Kommentar oben bearbeiten, aber er ließ mich nicht.
LSD
1

Es wird sehr schwierig sein, dies mit DRBD zum Laufen zu bringen - das Problem liegt nicht darin, dass n8whnp ein Problem in Bezug auf die Mehrwegereplikation zu denken scheint (Sie machen einfach alle Knotenstreifen in einem Spiegelsatz), sondern in der Parallelitätskontrolle - Sie ' d muss ein Cluster-Dateisystem über der Spiegelung auf DRBD ausführen.

lsyncd ist noch schlimmer, da es keine praktische Lösung für die Parallelitätskontrolle gibt.

Ich würde eine AFS-Lösung (AFS, OpenAFS) als ausgereifte, stabile und offene Lösung empfehlen. Ich würde mich vom Glanz fernhalten, seit Oracle ihn heruntergefahren hat. Nicht allzu vertraut mit glusterfs, aber da es sich eher um verteilten als um replizierten Speicher handelt, würde ich empfehlen, dass Sie sich genau ansehen, wie es sich im Split-Brain-Betrieb verhält (AFS OTOH ist für den Betrieb im getrennten Modus ausgelegt).

symcbean
quelle