Features/Backup and Restore

< Features
Revision as of 04:03, 8 October 2010 by Bernie (talk | contribs)



1: Select USB stick
2: Confirm journal backup
3: Backup in progress
4: Backup completed

Summary

Easily back up and restore the Journal of a computer running Sugar (includes SoaS and SoLinux with top priority being SoaS). Also, easily back up and restore the full Sugar installation. Beyond the Journal, this includes the activities, any configuration of the OS and the everything needed to restore to its original state.

This feature is a top priority for Gardner Pilot Academy but also requests by essentially every XO deployment.

Owner

  • Email: gregsmithpm at gmail.com

Current status

  • Targeted release: ?
  • Last updated: July 7, 2009
  • Percentage of completion: ?

Detailed Description

For all the items listed below, implement solution with XS and if possible as a software solution on one or more standard Linux distributions.

Backup and Restore of the Journal

  • Provide a web based GUI to restore one or all backed up journal entries. The user would boot up any Sugar implementation (user name/password based security is also important) and point their Web browser at a URL on the server. Preferable to automatically take you to the right page (aka the page where your particular Sugar instance is backed up) but would also accept seeing a list of Sugar Journals by user name and picking the right one. Clicking on a single Journal entry or on a link for "full journal" would download those items back in to the journal of the Sugar computer.
  • Provide a user initiated backup of the journal. In this case a User would use their web browser to go to a page on the server and click the "backup" link. Then the server would check for changes since the last backup and copy everything from that journal to the server. Same case as above for restore.
  • Backup and restor of full sugar instance. Same as above (AKA user initiated and time based server/script) but for the full Sugar instance. This can be only the full instance and does not need to list individual files. For restoring SoaS should support booting up with a USB stick, going to the page, then removing the USB stick and inserting a new one, then clicking restore. This would copy the full Sugar instance to the new USB stick. This would now be a clone of the original USB stick. Also, implement a "clone" feature which allows the same work flow as above but without a server. That is, put a SoaS in a computer, copy it to the computer then restore it to a new USB stick with the full SoaS including configuration.
  • Implementing a standard Linux package to do this for Sugar would be fine.

Benefit to Sugar

Ensures that kids and teachers don't lose their work. Backup and restore over the WAN is a major growth technology in commercial SW. e.g. see: http://www.carbonite.com/

A Sugar implementation would be a big feature promotable publicly. Could also be used for a sneaker net type collaboration of last resort. i.e. "get my journal entry off this web page" to move something from one Xo to another.

Scope

Will need client side and server software. May need to move a Linux package to SoaS and may need to push new code upstream to support Journal/Datastore implementation.

How To Test

Create some entries in a journal. Then test with:

  • SoaS 8.6 or later and a single computer.
  • SoaS 8.6 or later with XS running 0.5 or later.
  • SoaS 8.6 or later with Linux distribution
  • Test backup and restore of a single journal entry
  • Test backup and restore of a full SoaS image. Make sure to use the SoaS so that it changes some files and configurations.
  • Test time based backup, preferably with several SoaS computers.

In all cases, ensure that the files are backed up on the server and can be restored on the SoaS. Make sure to open the files in the journal and run them. Also, make sure to cold boot any full images and confirm that changes were saved.

User Experience

Requires a new "web site" on the server for back up and restore. Requires a configuration option on SoaS to set the time and files to be backed up.

Dependencies

What other packages (RPMs) depend on this package? Are there changes outside the developers' control on which completion of this feature depends? In other words, completion of another feature owned by someone else and might cause you to not be able to finish on time or that you would need to coordinate? Other upstream projects like python?

  • See http://dev.sugarlabs.org/ticket/916 for changes to allow registering SoaS to a XS.
  • Also ds-backup-client package is required to backup to an XS along with a patch to allow it to work on SoaS in addition to an XO.

Unknown.

Contingency Plan

Plan B is to find a manual way to execute a script which does an "rcp" or other file transfer to a server. Then allows restore via script as well.

Documentation

See XS example above. Will need more documentation.

Release Notes

Comments and Discussion