Difference between revisions of "Features/Backup and Restore"
(22 intermediate revisions by 6 users not shown) | |||
Line 1: | Line 1: | ||
− | <noinclude> | + | <noinclude> |
− | + | [[Category:FeatureLanded|Back Up and Restore]] | |
− | + | [[Category:Features requested by Gardner Pilot Academy|Backup and Restore]] | |
− | + | </noinclude> | |
− | |||
− | |||
− | |||
− | |||
− | |||
== Summary == | == Summary == | ||
− | Easily | + | 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 == | ||
− | * | + | * Feature request: [[User:Gregorio|Greg Smith]] |
+ | * Implementation: [[User:tch|Martin Abente]] | ||
− | * | + | == Current status == |
+ | * Targeted release: 0.102 | ||
+ | * Last updated: March 30, 2014 | ||
+ | * Percentage of completion: 100% | ||
− | + | See also [[Features/Backup and Restore/Enhancements]]. | |
− | |||
− | |||
− | |||
== Detailed Description == | == Detailed Description == | ||
Line 30: | 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 | + | * Provide a GUI to restore all backed up journal entries |
− | * Provide | + | * '''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. |
+ | |||
+ | * See also this bug in Sugar: http://dev.sugarlabs.org/ticket/75 and http://dev.sugarlabs.org/ticket/916 | ||
== Benefit to Sugar == | == Benefit to Sugar == | ||
Line 44: | Line 42: | ||
== Scope == | == Scope == | ||
− | Will need client side and server software. May need to move a Linux package to | + | 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 == | == How To Test == | ||
Create some entries in a journal. Then test with: | 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 | |
− | * 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 | + | * Test time based backup, preferably with several computers. |
− | * Test time based backup, preferably with several | ||
− | In all cases, ensure that the files are backed up on the server and can be restored | + | 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 == | ||
− | + | ||
− | + | <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 == | ||
''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?'' | ''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 == | == Contingency Plan == | ||
− | + | None required. | |
== Documentation == | == Documentation == | ||
Line 76: | Line 92: | ||
== Comments and Discussion == | == Comments and Discussion == | ||
* See [[{{TALKPAGENAME}}|discussion tab for this feature]] <!-- This adds a link to the "discussion" tab associated with your page. This provides the ability to have ongoing comments or conversation without bogging down the main feature page --> | * See [[{{TALKPAGENAME}}|discussion tab for this feature]] <!-- This adds a link to the "discussion" tab associated with your page. This provides the ability to have ongoing comments or conversation without bogging down the main feature page --> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |
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
- Feature request: Greg Smith
- Implementation: Martin Abente
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
- 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 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.
- See also this bug in Sugar: http://dev.sugarlabs.org/ticket/75 and http://dev.sugarlabs.org/ticket/916
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
- Backup to removable device
Old implementation, only for reference.
- Backup to removable device
- Journal restore from Schoolserver
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.