lørdag 27. juli 2013

Førsteinntrykk: BitTorrent Sync

Webgrensesnitt.
BitTorrent Sync, eller btsync, er ett synkroniseringsprogram som minner om Dropbox. Men den store forskjellen er at btsync er peer-to-peer og lagrer ikke noe på tredjepartsservere.

Btsync er i utgangspunktet enkelt å sette opp på Linux. Man laster bare ned en komprimert fil som inneholder btsync og kjører denne som en bakgrunnprosess. Deretter går man inn på webgrensesnittet og legger til foldere man ønsker å dele. Ingenting blir tilgjengelig for andre før man deler en hemmelig nøkkel. Uten denne kan ingen synkronisere innholdet i mappen, og slik ivaretas sikkerheten. Nøkkelen kan man hente ut fra web grensesnittet og legge til på en annen btsync instans på en annen maskin.

Som første og foreløbig eneste eksperiment, delte jeg en virtuell VMware maskin mellom en stasjonær PC og en netbook, slik at jeg har tilgang til den virtuelle maskinen fra begge PC'ene. Det gikk ganske fort å dele filene. Men det var litt problemer underveis. Standardoppsettet til btsync sitt webgrensesnitt gir tilgang til din lokale btsync instans fra lokalnettet. Dette gjør btsync til en svært usikker applikasjon på en bærbar PC som du gjerne tar med deg utenfor hjemmet. Løsningen på dette var å lage min egen konfigurasjonsfil som sørger for at btsync bare lytter på tilkoblinger fra lokal maskin.

Så langt så bra, men etter en dag oppdaget jeg at disken til netbooken var gått full. I mappen jeg delte med min stasjonære maskin fant jeg en skjult mappe med 98 GB med data. Mappen .SyncArchive lagrer kopier av alle filer som var endret på den stasjonære maskinen. Etter nærmere undersøkelse oppdaget jeg at btsync som standardinnstilling lagrer alle endrede filer opp til 1000 MB i 30 dager. Nok en gang måtte jeg gå gjennom dokumentasjonen og finne ut hvordan jeg kunne endre standardinnstillingene.

Etter noen timer endte jeg med følgende mal for sync.conf filen:
{
  "device_name": "maskinnavn",
  "listening_port" : 0,
  "sync_trash_ttl" : 0,
  "max_file_size_for_versioning" : 50,
  "check_for_updates" : true,
  "use_upnp" : true,
  "download_limit" : 0,
  "upload_limit" : 0,
  "webui" :
  {
    "listen" : "127.0.0.1:8888"
  }
}
Sync.conf legger jeg i samme folder som btsync applikasjonen, og så starter jeg btsync med følgende kommando:
$ btsync --config sync.conf
For å avslutte btsync, bruker jeg "killall btsync".

Førsteinntrykket mitt av btsync er at det virker veldig lovende og at det kan bli veldig lett å bruke med tiden. Det minner meg om en annen løsning jeg brukte for mange år siden: Unison. Det synkroniserte også innhold mellom to eller flere maskiner uten en mellommann. Nå er det en stund siden jeg brukte Unison, men den umiddelbare fordelen er nok at btsync ikke ser ut til å kreve kunnskap om nettverket for å settes opp. Btsync er mer brukervennlig i og med at det "bare virker", så fremt man kjenner den delte nøkkelen.

Btsync er på den andre siden ikke fri programvare. Det er synd, for det er mye potensiale i ett slikt produkt. Det kunne jo for eksempel implementeres som standard i filutforskeren i Ubuntu for kjapp og enkel fildeling.

[Oppdatering]

Å synkronisere virtuelle maskiner med btsync er ikke helt problemfritt, som bildet under illustrerer. Har bare kjørt virtuell maskin på en PC om gangen, så jeg er usikker på hva som kan ha forårsaket dette. Kan hende dette oppstod når disken gikk full på netbook'en. Den virtuelle maskinen har i alle fall gått i stykker så jeg må laste inn en kopi fra tidligere i dag.

Virtuell maskin oppdaget feil på disk.
Jeg antar det er tryggere med en-veis kopiering med btsync når man håndterer virtuelle maskiner, det er også en mulighet.