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.
ubuntu
storage
cloud-computing
Jaunty
quelle
quelle
Antworten:
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.
quelle
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.
quelle
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.
quelle
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.
quelle
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.
quelle
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.
quelle
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.
quelle
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.
quelle
MooseFS (Distributed File System) entspricht Ihren Anforderungen. Es ist skalierbar und funktioniert gut unter Ubuntu. Es kann auch hilfreich sein, um zu sehen, wie Sie MooseFS aus dem offiziell unterstützten Repository unter Ubuntu installieren / aktualisieren .
quelle
Ich bin mir nicht sicher, was Sie tun, aber dies klingt nach einer potenziell interessanten Anwendung für CouchDB .
quelle
Sie könnten PVFS2 versuchen . Es ist viel einfacher einzurichten als Lustre und im Allgemeinen schneller als Gluster.
quelle