it-swarm-eu.dev

Wie erstelle ich meinen eigenen Dropbox / Ubuntu One-Server zu Hause?

Kennt jemand Ressourcen, die mir zeigen, wie ich meinen eigenen "Dropbox, Ubuntu One" -Server zu Hause erstellen kann?

Die Idee mit diesen Diensten gefällt mir sehr gut, aber ich möchte mein "Zeug" nicht in die Wolken stecken. Idealerweise sollte ein Client vorhanden sein, der unter Linux und Windows ausgeführt wird.

Ich habe versucht, iFolder auf meinem Ubuntu 10.04 einzurichten, aber bisher ohne Erfolg.

70
user1978

Derzeit gibt es keine großartige Open-Source-Alternative, die sofort funktioniert. Am besten ist das Sparkleshare-Projekt im Auge zu behalten: http://www.sparkleshare.org/

Hoffentlich wird das zu einer großartigen Alternative.

41
Rick

Es gibt tatsächlich viele von ihnen.

  • SparkleShare (abhängig von git/Subversion, mono, python) bei github GUI-basierter Synchronisationssoftware.

    ein. Versionierung: über ein Versionsverwaltungssystem, daher Mutex-basiert auf einem zentralen Server über eine Versionsnummer.

    b. Zustand: in Entwicklung

    c. Vorteile: OSS, monobasiert, so einfach zu ändern, Nachteile: Prozess auf Benutzerebene, GC-abhängiges, ineffektives Freigabeprotokoll in Größenordnungen, da Git hauptsächlich für kleine Textdateien gedacht ist, die ziemlich schwer zu kompilieren sind (ich habe es versucht). Verwenden von Tools auf hoher Ebene.

  • lipsync (abhängig von: Unison, rsync) Kommandozeilen-Service-basierte Software.

    ein. Versionierung: durch den Rsync-Delta-Algorithmus . Ich gehe davon aus, dass der Programmierer die Konfliktlösung wählen muss.

    b. Status: Ich kann den Quellcode nicht finden, daher habe ich keine Ahnung. Die einzigen Dinge in seinem Git Repo sind Binaries.

    c. Vorteile: Nettes Setup mit Tools der mittleren Ebene.

  • iFolder - Novells Dropbox. Ich habe die Quelle noch nicht untersucht. Ich möchte nur diese Bearbeitung hinter mich bringen und wenn die Leute interessiert sind, füge ich noch mehr hinzu.

    ein. Versionierung:

    b. Status: Problematisch, es sogar unter Ubuntu zu kompilieren, geschweige denn Pakete. Hier ist eine ausführliche Installationsanleitung .

    c. Vorteile: Windows X64-Client, ausgereift, AD-Integration mit ACLs, Funktionen, mit deren Implementierung kein anderes Projekt begonnen hat. Ich denke, das könnte ein guter Ausgangspunkt sein. Nachteile: Novell verwendet sein öffentliches SVN-Repo möglicherweise nicht als primäres Repo und löscht nur Code. Das weiß ich allerdings nicht genau. Könnte zu stark an openSUSE gekoppelt sein, um auf Ubuntu installiert zu werden. Um seine Algorithmen zu überprüfen.

  • scp/rcp - zugunsten von rsync veraltet

  • DRDB - Blockieren Sie Geräte-Spiegelungstools für verteiltes RAID-1, d. h. eine Server-Variante von Dropbox. Ich habe den Quellcode noch nicht ausgecheckt, aber es ist nur Linux. Der eigentliche Algorithmus wäre wahrscheinlich einfach mit dem Quellcode in meinen Überlegungen unterhalb dieser Softwareliste zu kombinieren.

    ein. Versionierung: Internes Nachrichtenformat über LAN/WAN

    b. Zustand: scheint reif genug zu sein

    c. Vorteile: Stabil genug für Linux, Nachteile: Es werden keine anderen Betriebssysteme unterstützt


Im Moment untersuche ich die Verbesserung der Kompilierungszeiten auf einem virtualisierten Windows 7, wobei die Kompilierungszeiten auf einem Windows 7 auf Metall 40 s betragen, aber ca. 3 m 20 s virtualisiert sind. Ich überlege, einen ioctl-Treiber zu schreiben, der ein Durchschreibecache ist, der wie eine RAM-Disk für ausgewählte Ordner in NTFS aussieht.

Unter Verwendung der oben genannten Software würde eine Woche im Wert von 2-3 Vollzeit-Entwicklungsmitarbeitern ein brauchbares Alpha erzeugen, das Ihre Dateien nicht durch die Kombination der oben genannten Software verliert.


Auf meinem System wäre dann die allgemeine Idee;

  1. Mounten Sie ein virtuelles Laufwerk \? {GUID}, das ist die RAM-Disk und der RW-Cache. Die Software, die dieses virtuelle Laufwerk erstellt, verwendet zwei wichtige Eingabeparameter:

    ein. Den Zielordner; Dies ist der Ordner SMB, daher überlasse ich dem Netzwerkstapel des Betriebssystems die eigentliche E/A. In meinem Fall ist dies wiederum der virtuelle VMWare-Ordner, der selbst ein Ziel auf einem ext4-Laufwerk hat, aber es könnte leicht Ihr Dateiserver sein, der SAMBA/SMB verwendet.

    b. Der Pfad des Ordners, der eingehängt werden soll, z. C:\ramdisk

    Dieser Code zum Erstellen virtueller Volumes stammt aus TrueCrypt-Code in /Driver/DriverFilter.c (unter anderen Dateien).

  2. Das Laufwerk verwendet SMB/das VMWare/Netzwerk-Protokoll, um beim Start Daten abzurufen. Es ruft mit niedriger Task-Priorität asynchron vom Netzwerk ab und füllt den Cache. Es könnte einen einfachen Komprimierungsalgorithmus verwenden und einen Thread haben, der die Weitergabe von Nachrichtenboxtypen verwendet, um eine hervorragende Leistung zu erzielen. Unter Windows könnten die normalen asynchronen IO Aufrufe verwendet werden, und unter Linux könnte die epoll / inotify Implementierung verwendet werden und nimm Code von nginx .

  3. Mein Dienst, der die RAM-Disk ist, stellt das unbenannte RAM-Disk-Laufwerk als NTFS-Ordner bereit. Alle Programme können weiterhin auf C:\ramdisk schreiben oder wie auch immer ich es nenne.

  4. Die asynchrone Kopie aus dem Netzwerk ist noch nicht abgeschlossen. Bei einer Lesegeschwindigkeit von ca. 100 MiB/s und 2 GiB Ramdisk wären es 20,5 s, um alle Daten zu lesen.

Jeder Aufruf zum Lesen würde eine In-CPU-Berechnung des Index in einem festen Array mit einer maximalen Größe von n: ulong GiB durchführen. Es würde jedoch eine Konfliktlösung oder Schreib-/Lesesperren erfordern. Wenn wir einen Konfliktlösungsalgorithmus implementieren würden, wie er über Microsoft Sync verfügbar ist, könnten wir jeden Block, der Konflikte verursacht, als Nachricht an einen anderen Konfliktlösungsprozess übergeben. Dropbox löst das Problem, indem eine neue Datei erstellt und "PrevFileName Username's Conflicted Copy (jjjj-MM-tt) .ext" genannt wird. Möglicherweise könnte dies durch ein kleines Widget geändert werden, wenn eine Kompilierung mit dieser einzelnen Quelle durchgeführt wird. Das Widget würde ausstehende Änderungen als Nachrichten/Ereignisse erkennen und das Konfliktlösungsprotokoll auswählen. Daher könnte Windows VM beim Programmieren mit einem Ordner im exklusiven Modus das Widget auf "exklusiv" setzen.

Dies hätte diese PROs

  • Es wäre nicht blockierend/asynchron
  • Es würde die Annahme treffen, aber nicht erfordern, dass ein Computer hauptsächlich in die Dateien schreibt.
  • Es würde für beliebig große Dateien funktionieren
  • Es würde auf * nix und Windows funktionieren, indem die genannten Projekte zusammengefügt würden.
  • Dies funktioniert, wenn eine hohe Leseleistung erforderlich ist (d. H. Wenn sich die Dateien physisch auf der Festplatte befinden).
  • Wenn die widersprüchlichen Ereignisse erreicht sind, kann eine Benutzeroberflächen-App bereitgestellt werden, mit der der Benutzer Plug-ins schreiben/herunterladen kann, die für verschiedene Arten von Ereignissen - d. H. Verschiedene Arten von Dateien - geeignet sind. Z.B. Eine Textdatei könnte mit Kompare/WinDiff erstellt werden, während eine Binärdatei dupliziert und als eine andere Datei gespeichert würde.
44
Henrik

OwnCloud ! klingt wie etwas, das Sie suchen.

18
Dinesh

ich habe von Syncany auf dem buntu UK Podcast gehört, derzeit als Beta-Version, aber es scheint die Anforderungen zu erfüllen

5
deveneyi

Ich glaube nicht, dass dies genau das ist, wonach Sie suchen, aber es hängt von Ihrer beabsichtigten Verwendung ab.

CrashPlan ist ein Backup-Softwarepaket und ein zugehöriger Online-Backup-Hosting-Dienst. Der Unterschied besteht jedoch darin, dass die Software über einen Modus verfügt, mit dem Sie Ihre Daten über das Internet (oder LAN) auf einem anderen PC sichern können die Software.

Dies bedeutet, dass sich das Ziel nicht in der Cloud befinden muss. Es ist nicht ganz wie bei Dropbox, da es eher um das Sichern als um das Synchronisieren und Zugreifen auf Dateien von überall geht. Wenn Sie von einem anderen PC aus auf die gesicherten Dateien zugreifen möchten, können Sie zwar eine "lokale Wiederherstellung" durchführen, dies habe ich jedoch nicht versucht.

Das Basissoftwarepaket ist kostenlos und unterstützt den Modus "Sicherung auf einen anderen Computer". Es werden jedoch nur geplante Sicherungen durchgeführt. Es gibt jedoch eine "Pro" -Version der Software, die nicht nur die geplanten Sicherungen, sondern auch die Echtzeitsynchronisierung kostet und ausführt. (Cloud-Speicher ist auch eine optionale zusätzliche Zahlung pro Monat)

3
Simon P Stevens

Ich benutze Unison für den Client und rsnapshot (rsync mit Perl-Skript) zum Sichern des Servers.

3
bassgey
2
guest442

Wenn Sie zwei (oder mehr) Computer mit einem replizierten Ordner einrichten möchten, schauen Sie sich glusterfs an.

Es ist einfach einzurichten, wenn Sie dem GlusterFS User Guide folgen.

2

Niemand erwähnt Bitorrent-Synchronisation ? Läuft auf allem - Ubuntu, Windows, vielen gängigen Smartphone-Betriebssystemen, Raspberry Pi ... Sie nennen es, es funktioniert wahrscheinlich und als normaler Benutzer. Verschlüsselte Übertragungen, Dateien werden nicht in der Cloud gespeichert (obwohl ich denke, dass Bittorrent den Tracker dafür ausführt), Sie können Ordner selektiv freigeben, und fast ohne Komplikationen müssen Sie nur einen Schlüssel kopieren und in den anderen einfügen System.

Sobald es eingerichtet ist, funktioniert es einfach.

2
Journeyman Geek

Ich verwende Apache mit mod_dav (webdav) für einen Apache-Webserver. Ich kann es als Laufwerk mounten und Dateien über das Web herunterladen. Dies ist ziemlich einfach, deckt aber möglicherweise Ihre Bedürfnisse ab.

1
JurjenB

Ich behalte AeroFS im Auge. Es könnte sich anscheinend um einen Dropbox-ähnlichen Dienst handeln, bei dem die Speicherung in der Cloud optional ist. Ich weiß nicht, ob/wann sie mobile Unterstützung implementieren, und ich vermute, dass Sie diese Dateien auch mit der Cloud synchronisieren müssen. Ich interessiere mich hauptsächlich für eine ziemlich schmerzlose Synchronisierungslösung zwischen Windows-, Mac- und Linux-Computern.

Sie befinden sich in der frühen Beta-Phase, aber Sie können Anmelden für eine Einladung, wenn Sie möchten.

1
dempa

Obwohl hier bereits interessante Alternativen aufgeführt sind und dies eine ältere Frage ist, bin ich überzeugt, dass dieses Thema eindeutig nicht veraltet ist und im Gegenteil aufgrund der letzten datenschutzverletzenden Ereignisse immer mehr an Bedeutung gewinnt.

Ich möchte daher meine eigenen Erfahrungen teilen. Meine aktuelle Lösung für eine eigene gehostete Cloud-ähnliche Umgebung ist Seafile .

Seafile-Funktionen:

  • Webbasierter Cloud-Zugriff
  • Clients für Linux, Windows, Mac, iOS (nicht kostenlos), Android
  • Benutzer-/Gruppenverwaltung
  • Dateiorganisation über verschiedene Bibliotheken
  • Automatische Dateisynchronisation über Client-Software
  • Möglichkeit zum Veröffentlichen von Dateien über das Erstellen von öffentlichen Links

Meine Seafile-Erfahrungen:

  • Die Installation war kinderleicht und schnell! (auf einem schlanken Debian-VM mit Dateien, die über die Freigabe auf dem physischen Host dmraid 5 gespeichert wurden)
  • Benutzeroberfläche sauber und funktional
  • Client-Software sauber und funktionsfähig
  • Bisher gab es keine funktionalen Probleme für mich! (benutze das jetzt seit ein paar Wochen)
  • Der Funktionsumfang ist grundlegend (im Vergleich zu z. B. einer eigenen Cloud), aber ich betone, dass hier alles funktioniert!
  • Keine direkte Proxy-Unterstützung (zumindest für den Linux-Client - und das Webinterface!). Hinweis: Das Webinterface funktioniert, aber das Herunterladen von Dateien über das Webinterface funktioniert nicht hinter einem Proxy - ich weiß nicht, ob dies irgendwie möglich ist

Da ich keinen Proxy-Support benötige, bin ich mit Seafile sehr zufrieden!

1
Nicolas

Ich verwende SSHFS, um Verzeichnisse auf meinem Server als lokale Verzeichnisse auf meinem Desktop und Laptop bereitzustellen. Alle Dateiänderungen werden direkt auf dem Server gespeichert. Im Gegensatz zu Dropbox werden die Dateien jedoch nicht lokal auf Ihren Client-Computern gespeichert. Ich finde das großartig, weil Sie sich nicht um die Synchronisierung und Versionierung kümmern müssen, aber es ist nicht ideal für die Offline-Verwendung oder sehr große Dateien.

Es ist sehr direkt und einfach und ich finde es die beste Lösung. Das einzige, wofür ich es nicht benutze, sind große Medien wie Bilder und Filme, da auf alle Dateien über das Netzwerk zugegriffen wird. Die synchronisiere ich mit Rsync.

Link zur SSHFS-Dokumentation -> http://Fuse.sourceforge.net/sshfs.html

0
Sam Swift