Vraag Hoe maak ik thuis mijn eigen Dropbox / Ubuntu One-server?


Kent iemand bronnen die kunnen laten zien hoe ik mijn eigen "Dropbox, Ubuntu One" -server thuis kan maken?

Ik vind het idee van deze services heel goed, maar ik wil mijn 'spullen' niet in de wolken houden. Idealiter zou het een client moeten hebben die op Linux en Windows draait.

Ik heb geprobeerd iFolder in te stellen op mijn Ubuntu 10.04, maar zonder succes tot nu toe.


70
2017-09-05 17:08


oorsprong


Ik weet niet zeker of ik het probleem begrijp. Wat is er mis met dropbox? - Oli♦
Het heeft wat opslaglimieten en met veel bijdragers aan veel projecten, zijn degenen die 50 GiB betaalden vrij snel verloren. - Henrik
Er kunnen zich onvoorziene gevolgen voordoen om bedrijven zoals Dropbox toe te staan ​​onze persoonlijke gegevens op te slaan. Gelukkig is er een project aan de gang om een ​​besturingssysteem te maken dat je eigen persoonlijke cloud kan uitvoeren op een ARM-computer met plug-stijl. - daithib8
Ironisch dat dit niet zo eenvoudig is als een sudo apt-get install ubuntu-one-server. - Prateek


antwoorden:


Momenteel is er geen geweldig open-sourcealternatief dat uit de doos zal werken. Het beste om in de gaten te houden, is het Sparkleshare-project: http://www.sparkleshare.org/

Hopelijk zal dat uitgroeien tot een geweldig, doe het zelf, alternatief.


41
2017-09-05 17:13



Helaas gebruikt het git DVCS als backend niet geschikt voor ~ 1TB binaire data, omdat wijzigingen in binaire data het gebruik van de serverruimte doen verbleken. Maar daarnaast ziet het er veelbelovend uit. - math


Er zijn er echt veel.

  • SparkleShare (deps: git / subversion, mono, python) at github GUI-gebaseerde synchronisatiesoftware.

    een. Versiebeheer: via een broncontrolesysteem, vandaar dat het mutex-gebaseerd is op een centrale server via een versienummer.

    b. Staat: in ontwikkeling

    c. Voors: OSS, op mono gebaseerd, dus eenvoudig modbaar, nadelen: proces op gebruikersniveau, GC-afhankelijk, ineffectief protocol voor delen volgens orden van grootte, aangezien git voornamelijk voor kleine tekstbestanden is, redelijk moeilijk te compileren (ik heb het geprobeerd). Hoogwaardige tools gebruiken.

  • lipsynchronisatie (deps: Unison, rsync) Servicegebaseerde software gebaseerd op de opdrachtregel.

    een. Versiebeheer: via rsync delta algoritm. Ik neem aan dat de programmeur een conflictoplossing moet kiezen.

    b. Staat: Ik kan de broncode niet vinden, dus ik heb geen idee. De enige dingen in zijn git repo zijn binaire bestanden.

    c. Voors: mooie setup, met behulp van tools op het middenniveau.

  • iFolder - Novell's Dropbox. Ik heb de bron nog niet bestudeerd. Ik wil deze bewerking gewoon doornemen en als mensen geïnteresseerd zijn, voeg ik er meer aan toe.

    een. versiebeheer:

    b. Staat: Problematisch om het zelfs te compileren op Ubuntu, laat staan ​​pakketten. Hier is een gedetailleerde installatiehandleiding.

    c. Voors: Windows X64-client, volwassen, AD-integratie met ACL's, functies waarvoor geen enkel ander project is geïmplementeerd. Ik denk dat dit een goed uitgangspunt kan zijn. Nadelen: Novell gebruikt mogelijk niet de openbare svn-repo als primaire repository en voert alleen codedrops uit. Ik weet dit echter niet precies. Mogelijk te gekoppeld aan openSUSE om eenvoudig op Ubuntu te installeren. Om zijn algoritmen te bekijken.

  • scp / rcp - afgekeurd ten gunste van rsync

  • DRDB - blokkeer hulpmiddelen voor apparaatspiegeling voor gedistribueerde RAID-1, d.w.z. een servervariant van dropbox. Ik heb de broncode nog niet gecontroleerd, maar het is alleen linux. Het eigenlijke algoritme zou waarschijnlijk gemakkelijk te combineren zijn met de broncode in mijn mijmeringen onder deze softwarelijst.

    een. Versiebeheer: interne berichtindeling via LAN / WAN

    b. Staat: lijkt volwassen genoeg

    c. Pluspunten: stabiel genoeg voor linux, nadelen: geen andere besturingssystemen worden ondersteund


Op dit moment ben ik bezig met het verbeteren van compileertijden op een gevirtualiseerde Windows 7, waarbij de compileertijden op een Windows 7 op metaal 40 seconden is, maar ongeveer 3 m 20's gevirtualiseerd. Ik denk aan het schrijven van een ioctl-stuurprogramma dat een doorschrijfcache is die eruitziet als een ram-disk voor geselecteerde mappen op NTFS.

Met behulp van de bovenstaande software denk ik dat een week full-time ontwikkeling van 2-3 personen een bruikbare Alpha zou opleveren die je bestanden niet verliest door de bovengenoemde software te combineren.


Op mijn systeem zou dan het algemene idee zijn;

  1. Monteer een virtueel station \? {GUID}, dat is de ram-disk en RW-cache. De software die deze virtuele schijf maakt, heeft twee invoerparameters nodig (die van vitaal belang zijn):

    een. De doelmap; dit is de SMB-map, dus ik zal de netwerkstapel van het besturingssysteem de feitelijke IO laten verwerken. In mijn geval is dit op zijn beurt de virtuele VMWare-map, die op zichzelf een doel op een ext4-schijf heeft, maar het kan gemakkelijk uw bestandsserver zijn met SAMBA / SMB.

    b. Het pad van de map die moet worden gemonteerd, b.v. C: \ ramdisk

    Deze code voor het maken van virtuele volumes kan worden overgenomen TrueCrypt's code, in /Driver/DriverFilter.c (naast andere bestanden)

  2. De schijf gebruikt SMB / het VMWare / netwerkprotocol om gegevens op te halen wanneer deze wordt gestart; het haalt met een lage taakprioriteit asynchroon van het netwerk en vult de cache. Het zou een eenvoudig verdichtingsalgoritme kunnen gebruiken en 1 thread hebben die continuïteit van het message-box-type gebruikt om geweldige prestaties te krijgen. In Windows zou het de normale async IO-oproepen kunnen gebruiken, en op Linux zou het de epoll/inotify implementatie en neem code van nginx.

  3. Mijn service die de ram-schijf is, koppelt het niet-benoemde ramdisk-station aan als een NTFS-map. Alle programma's kunnen blijven schrijven naar C: \ ramdisk, of hoe ik het ook noem.

  4. Async kopiëren vanuit netwerk nog steeds bezig. Met een leessnelheid van ongeveer 100 MiB / s en 2 GiB ramdisk zou het 20,5 s zijn om alle gegevens te lezen.

Elke aanroep om te lezen zou een in-CPU berekening van de index uitvoeren in een vaste n: ulg GiB max sized array. Het zou echter conflictoplossing vereisen, of lees- en schrijfsloten. Als we een algoritme voor conflictoplossing zouden implementeren, zoals het algoritme dat beschikbaar is via Microsoft Sync, kunnen we elk blok dat conflicteert als een bericht doorgeven aan een ander proces voor het oplossen van conflicten. Dropbox lost het op door een nieuw bestand te maken en het te noemen "PrevFileName Username Conflicted Copy (yyyy-MM-dd) .ext". Misschien kan dit worden gewijzigd via een kleine widget, als men tegen die ene bron compileert - de widget zou uitstaande veranderingen als berichten / gebeurtenissen detecteren en het protocol voor conflictoplossing kiezen. Als zodanig, bij het programmeren van een map in de exclusieve modus, zou de Windows VM de widget kunnen instellen op 'exclusief'.

Dit zou deze PRO's hebben

  • Het zou non-blocking / async zijn
  • Het zou de aanname maken, maar niet vereisen dat een computer voornamelijk naar de bestanden schrijft.
  • Het zou voor willekeurig grote bestanden werken
  • Het zou werken op * nix en Windows door de genoemde projecten met elkaar te verbinden.
  • Het zou werken wanneer hoge leesprestaties nodig zijn (dat wil zeggen de bestanden bevinden zich fysiek op de schijf)
  • Wanneer de conflicterende gebeurtenissen worden bereikt, zou men een gebruikersinterface-app kunnen bieden die de gebruiker toestaat om plug-ins te schrijven / downloaden die op een juiste manier voor verschillende soorten gebeurtenissen werken, d.w.z. verschillende soorten bestanden. Bijv. een tekstbestand zou met Kompare / WinDiff naar voren kunnen worden gebracht, terwijl een binair bestand zou worden gedupliceerd en als een ander bestand zou worden opgeslagen.

44
2018-01-31 19:22



De bin-map van lipsync bevat shell-scripts, geen binaire bestanden. - haggai_e


ownCloud! klinkt als iets waarnaar je op zoek bent.


18
2017-10-22 09:18





ik heb gehoord over Syncany op de Ubuntu UK Podcast, momenteel bèta, maar het lijkt erop dat het voldoet aan de vereisten


5
2018-06-24 16:57



Leuk idee om gratis webruimte te gebruiken, ongeacht welk protocol oorspronkelijk was bedoeld :) - math


Ik denk niet dat dit behoorlijk is wat je zoekt, maar het hangt af van je beoogde gebruik.

CrashPlan is een back-upsoftwarepakket en een bijbehorende online back-uphostingservice, maar wat anders is, is dat hun software een modus heeft waarmee u uw gegevens via internet (of LAN) kunt laten back-uppen naar een andere pc waarop de software draait.

Dit betekent dat de bestemming niet in de cloud hoeft te zijn. Het is niet zoiets als dropbox omdat het meer een back-up dan een synchronisatie en toegang tot bestanden van overal is, maar als het alleen maar back-ups zijn die je wilt, dan werkt het goed. Als je toegang wilt krijgen tot de back-upbestanden van de andere pc, denk ik dat je een "lokaal herstel" kunt doen, maar het is niet iets dat ik heb geprobeerd.

Het basissoftwarepakket is gratis en ondersteunt de "back-up naar een andere computer" -modus, maar voert alleen een geplande back-up uit, maar er is een "pro" -versie van de software die ook kost en real-time synchroniseert in plaats van alleen de geplande back-ups. (Cloudopslag is ook een optionele pay-per-maand extra)


3
2017-09-05 18:12





Ik gebruik Unison voor de klant en rsnapshot (rsync met perl-script) voor back-up van de server.


3
2017-10-21 12:20





Kijk of dit helpt:

http://fak3r.com/2009/09/14/howto-build-your-own-open-source-dropbox-clone/


2
2017-09-05 20:21



-1 Ik denk niet dat dit de beste oplossing is en daarom niet het antwoord. - Henrik
-1 dit is een rsync-server en geen dropbox-achtige oplossing ... - Arman
Deze oplossing is beperkt in behulpzaamheid omdat het eenvoudigweg naar een ander artikel linkt, waardoor een risico op linkrot ontstaat. Dit antwoord moet worden bewerkt om substantieel te zijn, terwijl u eenvoudigweg de gegeven link als bron vermeldt. - Christopher Kyle Horton
Hoewel dit theoretisch de vraag kan beantwoorden, het zou de voorkeur hebben om de essentiële delen van het antwoord hier op te nemen, en geef de link voor referentie. - Tim


Als u twee (of meer) machines met een gerepliceerde map wilt instellen, kijk dan eens naar glusterfs.

Het is gemakkelijk om in te stellen als u de GlusterFS gebruikershandleiding.


2
2017-09-06 22:34



Zeg je dat in een GlusterFS-cluster bestanden worden gesynchroniseerd terwijl de clients met anderen zijn verbonden, maar het bestandssysteem nog steeds lokaal beschikbaar is voor een client die is losgekoppeld van de andere? Ik denk eraan dit te gebruiken om te synchroniseren tussen mijn laptop en server. - Ryan Thompson
Ja. Ik ben nog niet klaar met testen maar het lijkt probleemloos te werken. - Richard Holloway
Dit werkt niet op Windows, dus het is niet "dropbox compliant". - Henrik


Niemand wordt genoemd bitorrent-synchronisatie? Draait op alles - Ubuntu, Windows, veel gemeenschappelijke smartphonepoorten, raspberry pi ... noem maar op, het werkt waarschijnlijk, en als een gewone gebruiker. Versleutelde overdrachten, bestanden worden niet opgeslagen in de cloud (hoewel ik denk dat bittorrent de tracker hiervoor gebruikt), redelijk snel, je kunt selectief mappen delen, en bijna geen complicaties, je hoeft alleen maar een sleutel naar de andere te kopiëren en plakken systeem.

Als het eenmaal is ingesteld, werkt het gewoon.


2
2018-02-08 04:33