MultipleComputersSynchronization

Revision 11 as of 2007-03-15 07:16:57

Clear message

Summary

This spec discuss the inclusion and integration of a remote synchronization/storage/sharing solution in Edgy. The proposed solution is currently based on unison.

Rationale

Having a multiple computers configuration is more and more common everyday : one desktop at work, one desktop at home, one laptop. Keeping tracks of a given file or synchronisation is often a real pain. Also, there's no easy way to share a file across the internet if you don't have webserver and the knowledge of ftp/sftp.

Use cases

  1. Emma will soon fly to a conference in America with her whole new laptop. She wants to be sure that she can access all the necessary files that are on her home computer.
  2. Joe wants to share a 6 MB file with Jack. Unfortunatly, his SMTP service will only allow mail messages that are less than 5 MB.
  3. William can never remember if a given file is on his laptop or desktop. Sometimes the file is on the desktop AND on the laptop, but he only wants the newest version.
  4. Sally has three computers, and wants a common home directory, including her firefox extensions, and mail setup.
  5. At work Anna has two computer (one laptop, one desktop) and a ssh account on the company's central server running a Unix-Like OS.The company sysadmin will not install any other software on the server. She wants to have it's application settings and documents synchronized (the newest version on each computer).

Scope

Design

General

Extended attributes could be used to mark folders for syncing/not syncing, instead of the clumsy and incomprehensible Unison configuration files.

A default set of sync targets would enable a user to easily configure home dir syncing of things like firefox bookmarks/extensions (whole profiles, extensions, without caches!!!).

A configuration dialogue could allow check box selection of what to sync between home folders (see above), and choose whether to sync video, music, or other large files. This could be bandwidth dependent, something which can be tested.

The application should work in 2 modes: Enterprise mode and Home mode. The usage of this mode is described below. In a first phase the Home mode implementation is desired, maybe the Enteprise mode should be moved in a separate topic.

Home mode

  • Decentralized model
  • 2 types of share public(no password)/private
    • A strong cryptography and security model - like SSH - for confidential data
    • A weak security model - like anonymous ftp - for use case 2
  • Instant setup
  • On-demand file sharing and file syncronization
  • Using special nautilus emblems to mark a file/folder as private syncronizable
  • Display a list of available shares and their type

Enterprise mode

  • Centralized model
  • Based on strong cryptography and security methods (ssh/rsync)
  • On login and on-demand file syncronization
  • Multiple server profiles
  • Notification of file modification
  • Using special nautilus emblems to mark a file/folder as syncronizable

Implementation

Existing solutions

  • ["iFolder"] , an opensource solution from Novell would fit quite nicely.
  • [http://www.cis.upenn.edu/~bcpierce/unison/ Unison] a command line program that can keep multiple directories in sync. (even if there are changes on both) Works great, but would need a good nautilus extension (with a real gtk/gnome frontend) to really make it amazing.

iFolder has disadvantages compared to Unison: it is less conservative in wiping data instead of adding new files. However, it is supported albeit semi-commercial, whereas Unison appears to be stagnant.

iFolder had a great disadvantages compared to Unison: you need the server part! In many use cases Ubuntu Linux is used just on the client side and the server side is some other GNU/Linux based distribution. Having a static build of Unison (for Linux, FreeBSD, Solaris) we will only need a valid ssh account on another computer.

Code

Data preservation and migration

Outstanding issues

BoF agenda and discussion

  • Added unison as existing solution
    • I use this program to keep my usb key in sync with a directory on my hard drive. This allows me to work on either and still sync the changes. The only minor issue is that if you change a non-text file on both directories you will have to decide which one to keep. It will not merge the differences. This program can keep complete backups if necessary and can merge more then two directories, in any order. Amazingly powerful it just needs a GUI and to be integrated into nautilus. -- PeterVanderKlippe DateTime(2006-04-24T13:23:53Z)

  • iFolder looks like a good product, but I think the enterprise mode server would be a bit much for Ubuntu's main purpose (though great for a server). The workgroup mode seems to be more appropriate, but it is not yet complete, according to Novell. It is also unclear how workgroup mode will work; to some extent it sounds like it will operate as extensions to chat clients and such. Also, a solution that can operate behind a firewall (and NAT) would be ideal, because, in my experience, many people are do not know how to modify the settings on their firewall/router (or can not because of their ISP). -- MatthewIsaacs DateTime(2006-04-27T01:16:14Z)

  • Unison seems like a good product. It currently works without the need for a central server, though it lacks a gui. A linux/Ubuntu gui could be modeled after gui for the windows version. The Unison FAQ points out some deficiencies that may arise in more complicated situations, such as sync loops and differences in timestamp granularity between different filesytems, and others. I'm not sure if iFolder has some of these problems or not. If Unison were used as a basis for the Ubuntu sync tool, some mechanism to handle this would probably have to be developed (though Unison does fail gracefully). -- MatthewIsaacs DateTime(2006-04-27T01:21:29Z)

  • Unison has a GUI, but not a great one. Unison is more ambivalent about filesystems than iFolder (which just takes charge in sometimes destructive ways).
  • Unison requires ssh login, and is relatively time consuming. iFolder syncs itself in the background with a saved login. Unison would need an unpriviledged account with only access to the sync folder on the remote machine. iFolder watches the filesystem for changes and can sync more cleverly. A Unison daemon could run which watches inotify.


CategorySpec