Difference between revisions of "Features/Backup and Restore"

From Sugar Labs
Jump to navigation Jump to search
 
(13 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<noinclude>{{GoogleTrans-en}}{{TOCright}}
+
<noinclude>
[[Category:Feature Page Incomplete]]
+
[[Category:FeatureLanded|Back Up and Restore]]
[[Category:Feature|Back Up and Restore]]
+
[[Category:Features requested by Gardner Pilot Academy|Backup and Restore]]
[[Category:Features requested by Gardner Pilot Academy|Back Up and Restore]]
 
 
</noinclude>
 
</noinclude>
 
<!-- All fields on this form are required to be accepted.
 
We also request that you maintain the same order of sections so that all of the feature pages are uniform.  -->
 
 
<!-- The actual name of your feature page should look something like: Features/Your Feature Name.  This keeps all features in the same namespace -->
 
 
[[File:Backup_usb_menu.png|320px]]
 
[[File:Backup_started.png|320px]]
 
[[File:Backup_in_progress.png|320px]]
 
  
 
== Summary ==
 
== 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.
+
Easily backup and restore the Journal of a computer running Sugar (includes SoaS). Also, easily backup 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.
 
This feature is a top priority for Gardner Pilot Academy but also requests by essentially every XO deployment.
  
 
== Owner ==
 
== Owner ==
* Name: [[User:Gregorio| Greg Smith]]
+
* Feature request: [[User:Gregorio|Greg Smith]]
 +
* Implementation: [[User:tch|Martin Abente]]
  
* Email: gregsmithpm at gmail.com
+
== Current status ==
 +
* Targeted release: 0.102
 +
* Last updated: March 30, 2014
 +
* Percentage of completion: 100%
  
== Current status ==
+
See also [[Features/Backup and Restore/Enhancements]].
* Targeted release: ?
 
* Last updated: July 7, 2009
 
* Percentage of completion: ?
 
  
 
== Detailed Description ==
 
== Detailed Description ==
Line 35: Line 26:
 
* Allow time based backup and restore of the journal. Check for Journal changes on the Sugar computer. Copy any changes to the server on a regular basis. Stagger the copies so that not all Sugar computers backup at the same time. See implementation of this with XO and XS at: http://wiki.laptop.org/go/XS_Blueprints:Datastore_Simple_Backup_and_Restore
 
* Allow time based backup and restore of the journal. Check for Journal changes on the Sugar computer. Copy any changes to the server on a regular basis. Stagger the copies so that not all Sugar computers backup at the same time. See implementation of this with XO and XS at: http://wiki.laptop.org/go/XS_Blueprints:Datastore_Simple_Backup_and_Restore
  
* 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 GUI to restore all backed up journal entries
  
* 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.
+
* '''TODO:''' Provide an interface to restore one backed up journal entry. 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.
  
* 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.
+
* Provide a user initiated backup of the journal. Same case as above for restore.
  
* Implementing a standard Linux package to do this for Sugar would be fine.
+
* '''TODO:''' Backup and restore 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.
  
 
* See also this bug in Sugar: http://dev.sugarlabs.org/ticket/75 and http://dev.sugarlabs.org/ticket/916
 
* See also this bug in Sugar: http://dev.sugarlabs.org/ticket/75 and http://dev.sugarlabs.org/ticket/916
Line 55: Line 46:
 
== How To Test ==
 
== How To Test ==
 
Create some entries in a journal. Then test with:
 
Create some entries in a journal. Then test with:
* SoaS 8.6 or later and a single computer.
+
* Dextrose 1 or later and a single computer
* SoaS 8.6 or later with XS running 0.5 or later.
+
* Dextrose 1 or later with XS running 0.5 or later
* SoaS 8.6 or later with Linux distribution
+
* '''TODO:''' Test backup and restore of a single journal entry
* Test backup and restore of a single journal entry
+
* '''TODO:''' Test backup and restore of a full SoaS image. Make sure to use the SoaS so that it changes some files and configurations.  
* 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 computers.
* 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.
+
In all cases, ensure that the files are backed up on the server and can be restored to the original computer. 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 ==
 
== 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.
+
<gallery perrow=2 widths=360px heights=270px caption="Backup to removable device">
 +
File:Backup_menu.png            | Menu to acces the backup/restore window
 +
File:Backup_initial_window.png  | Initial window
 +
File:Backup_progress.png        | Operations show the progress
 +
</gallery>
 +
 
 +
===Old implementation, only for reference.===
 +
 
 +
<gallery perrow=2 widths=360px heights=270px caption="Backup to removable device">
 +
File:Backup_usb_menu.png    | 1: Select USB stick
 +
File:Backup_before.png      | 2: Confirm journal backup
 +
File:Backup_in_progress.png | 3: Backup in progress
 +
File:Backup_done.png        | 4: Backup completed
 +
</gallery>
 +
 
 +
<gallery perrow=2 widths=360px heights=270px caption="Journal restore from Schoolserver">
 +
File:Backup_xs_menu.png    | 1: Select Schoolserver
 +
File:Restore_xs_before.png  | 2: Restore from Schoolserver
 +
</gallery>
  
 
== Dependencies ==
 
== Dependencies ==
Line 73: Line 81:
 
* See http://dev.sugarlabs.org/ticket/916 for changes to allow registering SoaS to a XS.
 
* 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.
 
* 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 ==
 
== 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.
+
None required.
  
 
== Documentation ==
 
== Documentation ==

Latest revision as of 07:58, 18 July 2014


Summary

Easily backup and restore the Journal of a computer running Sugar (includes SoaS). Also, easily backup 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

Current status

  • Targeted release: 0.102
  • Last updated: March 30, 2014
  • Percentage of completion: 100%

See also Features/Backup and Restore/Enhancements.

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 GUI to restore all backed up journal entries
  • TODO: Provide an interface to restore one backed up journal entry. 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. Same case as above for restore.
  • TODO: Backup and restore 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.

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:

  • Dextrose 1 or later and a single computer
  • Dextrose 1 or later with XS running 0.5 or later
  • TODO: Test backup and restore of a single journal entry
  • TODO: 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 computers.

In all cases, ensure that the files are backed up on the server and can be restored to the original computer. 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

Old implementation, only for reference.

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.

Contingency Plan

None required.

Documentation

See XS example above. Will need more documentation.

Release Notes

Comments and Discussion