Welches verteilte Dateisystem als Backend für Cloud Computing?


11

Ich habe eine grundlegende Cloud auf Ubuntu Server (9.04) und Eucalyptus. Walross (Eucalyptus 'API-kompatible S3-Implementierung) speichert Dateien auf dem Cloud-Controller. Jeder der anderen 4 Server verfügt jedoch über 1 TB Speicher, der weitgehend ungenutzt ist. Ich suche nach einer Möglichkeit, den gesamten Speicher zusammenzufassen, um alle verfügbaren Ressourcen zu nutzen. Ich habe mir verschiedene Optionen angesehen, darunter PVFS, Lustre, HDFS (Hadoop).

Meine einzigen Anforderungen sind, dass es skalierbar sein muss und unter Ubuntu gut läuft. Ich würde mich freuen, von jedem zu hören, der Erfahrung mit solchen Technologien hat, und ich freue mich auf Ihre Vorschläge.


Wenn es nicht Ubuntu sein müsste, würde ich ZFS sagen.
Brad Gilbert

3
Nur dass ZFS kein Cluster-Dateisystem ist.
MarkR

Antworten:


5

Obwohl ich es nirgendwo in unseren Systemen persönlich implementiert habe, habe ich mich Gluster ziemlich ausführlich angesehen . Ich kenne ein paar Leute an einigen großen Standorten, die dies verwenden, und es funktioniert anscheinend sehr gut. Sie verwenden es in der Produktion für einige Hochleistungs-HPC-Anwendungen.


2

GlusterFS scheint mir die ideale Lösung zu sein. Zu dem Typen, der behauptet, dass Gluster sich viel Mühe gibt, muss ich sagen, dass er es wahrscheinlich nie versucht hat. Ab Gluster 3.2 sind die Konfigurationsdienstprogramme ziemlich beeindruckend und es sind 2 oder 3 Befehle erforderlich, um die Gluster-Lautstärke zu erhöhen und im Netzwerk freizugeben. Die Montage der Glanzvolumina ist ebenso einfach.

Auf der positiven Seite gibt es Ihnen auch viel mehr Flexibilität als NFS. Es macht Striping, Relication, Georeplication, ist natürlich POSIX-konform und so weiter. Es gibt eine Erweiterung namens HekaFS, die auch SSL und erweiterte Authentifizierungsmechanismen hinzufügt, was wahrscheinlich für Cloud Computing interessant ist. Auch es skaliert! Es ist F / OSS und wird von RedHat entwickelt, die kürzlich Gluster gekauft haben.


1

Haben Sie sich jemals mogileFS angesehen? http://danga.com/mogilefs/

Es ist kein Dateisystem im herkömmlichen Sinne, aber es eignet sich gut zum Verteilen von Dateidaten über einen Cluster (unter Berücksichtigung von Replikation und Redundanz).

Wenn Sie Dateien für eine Webanwendung bereitstellen, benötigen Sie etwas, um die Dateien bereitzustellen. Ich würde ein PHP-Skript vorschlagen, das die HTTP-Anforderung als Suchschlüssel verwendet, um die gewünschte Datei im mogile FS zu finden. Sie können dann den Inhalt der Datei in einen Puffer einlesen und ihn wiedergeben / ausdrucken.

MogileFS ist bereits ziemlich schnell, aber Sie können mogileFS mit memcache kombinieren, um den Zugriff auf die am häufigsten verwendeten Dateien zu beschleunigen.


Ich erinnere mich, dass MogileFS im Fall des Metadatenknotens einen einzigen Fehlerpunkt hatte. HDFS hat ein ähnliches Problem.
David Pashley

MogileFS scheint ziemlich interessant zu sein und seine Replikation und Redundanz sind ideal. Es scheint jedoch für den allgemeinen Gebrauch ungeeignet zu sein, da die Anwendungen wissen müssen, dass sie darauf ausgeführt werden. Ein herkömmlicheres Dateisystem, bei dem Anwendungen FS-unabhängig sein können, wäre besser geeignet.
Jaunty

1
In MogileFS können mehrere Tracker ausgeführt werden, und im Backend kann Failover-MySQL vorhanden sein. Auf diese Weise können Sie alle einzelnen Fehlerquellen entfernen.
Davidsheldon

1

Mit Lustre muss man einen speziellen Kernel auf den Servern haben, und ich hätte nur die Server als Server und sonst nichts.

Seltsamerweise ist NFS die vernünftigste Antwort. Wir haben NFS in der Amazon-Cloud verwendet. Es ist möglicherweise nicht so gut skalierbar wie einige Dateisysteme, aber die Einfachheit sollte mich nicht übersehen. Ein einzelner Namensraum ist wahrscheinlich nicht die Mühe wert, die für die Implementierung erforderlich wäre.


1

Suchen Sie noch nach HDFS? Einer der Cloudera-Leute hielt dieses Jahr auf der VelocityConf einen Vortrag über Hadoop und HDFS, die sich auf die Verwaltung von Big-Data-Clustern konzentrierten, und sprach daher ziemlich viel über HDFS. Die Folien sind ziemlich informativ. Ich habe nicht persönlich mit HDFS gearbeitet, aber ich habe mit einigen zufälligen Leuten bei Velocity gesprochen, die es unter Ubuntu verwenden, um verschiedene Datenanalysen durchzuführen.


1

Es ist ziemlich üblich, eine Art gemeinsam genutztes Dateisystem hinter eine Virtualisierungsumgebung zu stellen. Sie haben viele Möglichkeiten, je nachdem, was Sie erreichen möchten.

Die einfachste Lösung ist wahrscheinlich NFS, da dies von jeder Distribution, die Sie ausführen, nativ unterstützt wird. NFS kann als Virtualzation-Backend-Dateisystem einigermaßen gut funktionieren, obwohl es nicht das schnellste auf dem Markt sein wird.

Wenn Sie einen RedHat-Cluster (oder einen abgeleiteten Cluster) ausführen, wird GFS2, das Cluster-Dateisystem von RedHat, sofort unterstützt. Dies lässt sich nicht auf Hunderte von Knoten skalieren, ist jedoch für kleinere Cluster in Ordnung.

Darüber hinaus beginnen Sie, in eine Reihe von Dingen wie Lustre, Glusterfs, GPFS usw. einzusteigen. Dies sind alles leistungsstarke parallele Dateisysteme, deren Einrichtung jedoch wesentlich mehr Arbeit erfordert als die anderen Optionen hier. Wenn Sie eine große Umgebung haben, sind sie möglicherweise einen Blick wert.


1

Ich würde @larsks darin zustimmen, dass NFS die beste Option ist. Richten Sie einige iSCSI-Ziele (NFS) ein. Dies wird auf ungefähr 5-10 Knoten skaliert. YMMV basierend auf E / A, Netzwerkfähigkeit usw. (alternativ können Sie iSCSI mit Multipath-E / A-Unterstützung einrichten).

Wenn Sie mehr als 20 Knoten benötigen, sollten Sie Ceph untersuchen . Lustre ist vielversprechend und stabil, aber es handelt sich um ein (F / OSS) Oracle-Produkt, und ich habe persönliche Abneigungen gegen Oracle. :) :)

Ceph ist auch ziemlich aktiv; Die letzte Veröffentlichung war vor 5 Tagen.


Lustre steht nicht mehr unter dem Dach von Oracle. Siehe whamcloud.com
utopiabound

1

XtreemFS könnte eine Lösung für Sie sein. Es ist ziemlich einfach zu installieren und zu konfigurieren, es gibt auch Pakete für Ubuntu.



0

Ich bin mir nicht sicher, was Sie tun, aber dies klingt nach einer potenziell interessanten Anwendung für CouchDB .


0

Sie könnten PVFS2 versuchen . Es ist viel einfacher einzurichten als Lustre und im Allgemeinen schneller als Gluster.


schneller als Gluster? Können Sie Daten zur Leistung austauschen?
John-ZFS

Ich habe keine aktuellen Benchmarks zur Hand. Im Jahr 2008 war Gluster viel langsamer als Lustre, während PVFS2 nur geringfügig langsamer war. Es mag heutzutage anders sein, vielleicht werde ich das vergleichen.
Wazoox

Danke, wenn Sie Benchmark machen, lassen Sie es mich bitte wissen. maruti.j@gmail.com oder Sie können einen Beitrag auf Serverfehler für jedermanns Nutzen machen
John-ZFS
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.