HomeUserBackup

Differences between revisions 23 and 24
Revision 23 as of 2006-06-22 19:38:34
Size: 12085
Editor: ALagny-109-1-2-101
Comment:
Revision 24 as of 2006-06-23 07:22:20
Size: 9368
Editor: ALagny-109-1-9-136
Comment: ui and workflow
Deletions are marked like this. Additions are marked like this.
Line 57: Line 57:
== Rationale For UI and Workflow Re-design == The backup functions will be available in the menus:
Line 59: Line 59:
 * At first backups are - or should be - done regularly. This is why the steps and information required from the user per each backup process should be as less as possible.
 * Most users are not familiar with doing backups. It is often hard to know for them which directories and files are important.
 * Users that are more familiar with doing backups and own a large file collection need an advanced include and exclude function.
* Applications->Accessories->Backup to backup personal files
Line 63: Line 61:
All of these three needs could be satisfied by using profiles or backup types. The main window only contains a list of predefined backup profiles, e.g. "All personal files" or "All personal files excluding movies and music" and a combobox for all possible backup devices. So you only have to choose the backup type, the backup medium and click on the backup button.
If a user wants to more complex updates he can edit the profiles.
Since the settings of the profiles are in a separated dialog they don't disturb the regular backups.
The default backup profiles can also be fine grained: we could exclude .Trash, thumbnails and temporary files e.g. browser chaches.
* System->Administration->System Backup to backup all personal files and selected system files - so requires administrative privileges
Line 68: Line 63:
== Backup == The restore and incremental backup function is based on the mime-type and backup cd detection. Moving the incremental backups out of the main backup window allows to tighten the workflow and to slim down the main window.
Line 70: Line 65:
=== Main Window === Since a file inclusion/exclusion selector is out of scope for edgy we will provide a function to backup all files in home or to skip a predefined set of files: temporary files (browser caches, thumbnails), music (by file extension - mp3, ogg, etc.), videos (avi, wmv, wmf, etc) and perhaps trash. In a third option you can specify a folder that should be backed up only. we store the corresponding profile in the meta information of the backup file.
Line 72: Line 67:
attachment:main_window.jpg The user is notified after the backup is complete, that he or she has to insert the cd or double click on the file to add newly changed files or to restore the data.
Line 74: Line 69:
The proflie treeview shows a set of predefinded and custom profiles. If the user inserts the cd or double clicks on a backup, a dialog would be shown asking for a way to handle the archive: cancel, adding newly changed files, verifying the backup file or restoring its contents.
Line 76: Line 71:
Each profile is listed with its name and the last backup date. The restore window shows the content of the archive in a tree view. Furthermore it allows to select and unselect files and to restore to a defined root folder.
Line 78: Line 73:
By default we could deliver a profile "Personal files". It would include the users home directory and would exclude temporary files (browser caches, thumbnails, trash...). The system backup should be a low hanging fruit if the normal backup is complete: We provide an option to backup all home folders, files in /etc that are different from the ones that are in the corresponding package and a list of manual installed packages (this aptitude function will be hopefully in apt soon). For restore we extract the config files and try to reinstall the packages of the old system.
Line 80: Line 75:
The backup device combobox includes the devices provided by hal.

If there's only one backup device of each type, we should just name it CDRW Drive/DVDRW Drive etc..

if there more then one backup device of a certain type, we should add it's reported name/model by hal to make it easier for the user to distinguish between two or more such devices.

=== Edit Profile Dialog ===
attachment:edit_profile_1.jpg

==== Backup Types ====

 1. "Complete backup"

 2. "Only add new or changes files"

 3. "Ask"

attachment:edit_profile_2.jpg
attachment:edit_profile_3.jpg

=== Exclude Templates ===

==== 1. Trash: ====
 - */.Trash/*


==== 2. Temporary Files: ====
 * $HOME/.mozilla/firefox/*/Cache/*
 * $HOME/.gnome2/epiphany/mozilla/epiphany/Cache/*
 * $HOME/.gnome2/epiphany/favicon_cache/*
 * $HOME/.thumbnails/*
 * Konqeror and Opera caches (I don't know the exact path)
 * further caches...

==== 3. Media files: ====
 * *.ogg
 * *.avi
 * *.mp3
 * *.mpg
 * *.mov
 * *.asf
 * *.wmv
 * *.ram
 * *.rm

=== Default Profiles ===

==== Complete Home Backup ====
 1. Includes: ~

 2. Excludes: Trash, temp files

 3. Type: ask

==== Backup Only Documents and Configuration - but no large media files ====

 1. Include: ~

 2. Exlcude: *.mp3, *.ogg, *.avi ... Trash, temp files

 3. Type: ask

=== Workflow ===

==== Complete Home Backup ====

Use case: Jill wants to backup here data. It is the first time that she uses a backup programm.


 1. Jill opens hub

 2. Chooses to go with the default "complete home backup" profile

 3. Jill selects her cd writer in the backup device combo and clicks on backup

 4. Jill gets asked if she would like to start a new backup or contine an older one - she chooses new

 5. Jill inserts an empty cd and watches the progress bar

==== Continue a Regular Backup ====

Use case: Jill (from the above example) heard that it is wise to do regular backups. Since her last backup was a week ago. She decides to do another one.

 1. Jill open hub

 2. Chooses to go with the default "complete home backup" profile

 3. Jill selects her cd writer in the backup device combo and clicks on backup

 4. Jill gets asked if she would like to start a new backup or contine an older one - she chooses to continue an older one.

 5. A dialog prompts her to insert her old backup into the cdwriter

 6. Jill inserts the backup cd and watches the progress bar

or:

 1. Jill inserts her backup cd into the cdwriter

 2. A dialog asks here if she would like to update her backup or restore it

 3. She clicks on update and watches the progress bar

=== Further Dialogs ===

==== Ask For Backup Type ====
attachment:dialog_new_or_update.jpg

==== Include large files? ====

This dialog appears if media files should be excluded but a file larger than 100 MByte should be included.

Include large file 'X'?
Do you want to include the file X with a size of X MByte.

[x] Remember my answer for further large files

                     [Skip] [Include]


=== Desktop Notification Integration UI ===

In order to protect the unsuspecting users and encourage people to use the home user backup system, integration with the desktop by means of the desktop notifciation framework is required. The system will utilize this framework to alert to user to perform regular backups, update current ones, and regularly check the integrity of created backup sets.


If A user chose to have the home user backup system enabled whilst installing using Ubuiguity, there will be 2 major cases in which popup desktop notification will be presented to the user and demand his attention:

 * X days have passed since the system was installed.
 * Y days have passed since the last backup (full *or* differential) has been performed.


= Resources =

The glade file:

attachment:upbackup-mockup.glade

The current user interface:
attachment:current.jpg
Perhaps this can also be extended by a special backup profile for teachers in edubuntu.
Line 223: Line 79:
 * dar is used for the backup creation
 * cdrecord for burning the cdroms
 * add a mime type handler for your backup file - the extension is yet undecided
 * make use of hal hooks or eventually hermes for the cd autodetection (could be stolen from the install cd) - skipping this would not be a problem, since the cd is automounted and the user would have to click on the backup file that is on the cd
 * for the system backup the python we use the dpkg mechanism to detect modified config files and the coming automatically/manual installed package database of apt

attachment:backup.png

attachment:file.png

attachment:progress.png

attachment:complete.png

attachment:handler.png

attachment:restore.png

attachment:conflict.png

attachment:backup-system.png
Line 224: Line 102:

attachement:hub-glatzor-UDSParis.glade

Summary

This specification will discuss what's needed to take the the simple and concise backup application that was introduced in dapper, an make it a robust, finished solution that will be shipped in Edgy Eft. This solution will utilize desktop notifications to make sure a user either backs up his data, or otherwise is aware of the consequences that may arise if he does not. This solution shall form the foundation to more advanced and complete light dependency disaster recovery system.

Rationale

Providing an easy-to-use backup solution that's suitable for non-expert users is important. Expert users should install and/or use a more sophisticated backup system. Part of the rationale is to tell the user exactly what he has to do, rather than leave it for him to think up a backup schema, or take decisions about when/if to backup himself.

Use cases

  • John is a new Ubuntu user. He has been using his system for a week now, managed to sort everything out by means of getting his favorite theme set up and desktop behavior. He has also already got quite a few important email messages and some other bits of information currently stored on his Desktop. John however, is a newcomer to Ubuntu and is not aware of the fact he has to do periodic backups. After using his machine for a week, a pop up dialog appears telling him "It has been a week since you installed your computer. In order to be able to restore it to the current state if data loss occurs, it's recommended that you do a backup. Would you like to do that now". Upon confirmation, he is presentd with the home-user-backup tool GUI, and carry backup procedure from there.
  • Rob wants to refresh the backup set he had previously created. He opens the backup program, and is prompted to insert his old backup media if it's rewriteable (multi-sesion CD), or blank media (CDR) if not. Then, the backup program scans for changes and additions to Rob's home directory and backs up only the files that have changed.
  • Marilize is a concerned Ubuntu user. Using her machine for 3 days now, she wishes to backup her data in order to be able to restore it in case it goes bad. She goes to "System" --> "Administration" --> "Backup Now". She is then instructed to insert CD media for storing the data backup. After confirming that she has inserted a CD into the drive, all her personal data is backed up against it. When finished a pop up dialog instructs her "Please take out the CD, and label it 'Ubuntu Personal Backup data, dated 10-10-2006, 06:00am'".

  • Dan has been doing differential backups for some time now, and his multi session CD that is used for storing the differential snapshot is almost full. Today he wants to add yet another snapshot, for the changes he introduced to his home folder today. After he confirmed to do again a backup of his home folder, HomeUserBackup system calcualted the needed free space and noticed it won't go on the cd due to limited free space. HomeUserBackup suggest to Dan that it's probably a good time a make a new full backup, instead of a differential one.

  • Daniel installs a new computer system for his dad. Daniel knows his dad tends to have importat documents and content collected on his computer, but recalls his likely to forget to make backups of his data. Daniel takes an Edgy desktop-cd, and installs a new system for his dad. While installing, the GUI live-cd installer asks him if to enable the home user backup system on his dad newly installed system. He confirms this, and then never worries about his dad's computer backups. He knows the home user backup will make sure to remind and insturct his dad to do what is required to create backups of his important files and home data.
  • Norman just replaced his HD that has gone bad, and installed a new one. He wants to have his system settings and installed packages restored. After re-installing his system on the new hard drive, he fires up HomeUserBackup and chooses to restore his personal settings and environment. HomeUserBackup instructs him to put the first CD of the previously created backup , and in that way prompts you to use all the volumes, after applying the master backup, he can choose to apply the incremental backup snapshot, if he created any. At the end of the process his system is restored back with all of his personal settings, bookmarks, home folder content and any packages he had installed prior to the HD loss.

Scope

This specification covers only backing up all the home directories on a given machine (i.e. data and settings files). Audiovisual content will be also backed up, unless it exceeds a non optic medium's capacity. As HomeUserBackup already supports multi-volume backups over CDs , audio visual content will be backed up in that scenario by default.

These are in the scope of this specification:

  • Backup against custom selected path. (could cater for non local medium backup if those are exposed as file system entries)
  • Multi Volume Backups. (already working with CDROMs in HomeUserBackup. needs improvement and possibly generalization for other mediums)

Other systems changes this spec invovles:

  • Ubuiguity desktop-cd installer, to incorporate the question of enabling and installation of HomeUserBackup onto a newly installed system.

  • Desktop notification framework - there are newly created python bindings for libnotify, should be synced from debian once their packaging is done. see - http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=366863

These are out of the scope of this specification:

  • Data mirroring.
  • Doing backup against "native" non local medium. (i.e. http, sftp etc. Need to consider possibility of using gnome-vfs)
  • Backup scheduling algorithm. (possibly for the next version)
  • Backup list of installed packages. (ditto)
  • Encryption. (ditto)
  • Autorun capabilities (ditto).

Design

The backup functions will be available in the menus:

* Applications->Accessories->Backup to backup personal files

* System->Administration->System Backup to backup all personal files and selected system files - so requires administrative privileges

The restore and incremental backup function is based on the mime-type and backup cd detection. Moving the incremental backups out of the main backup window allows to tighten the workflow and to slim down the main window.

Since a file inclusion/exclusion selector is out of scope for edgy we will provide a function to backup all files in home or to skip a predefined set of files: temporary files (browser caches, thumbnails), music (by file extension - mp3, ogg, etc.), videos (avi, wmv, wmf, etc) and perhaps trash. In a third option you can specify a folder that should be backed up only. we store the corresponding profile in the meta information of the backup file.

The user is notified after the backup is complete, that he or she has to insert the cd or double click on the file to add newly changed files or to restore the data.

If the user inserts the cd or double clicks on a backup, a dialog would be shown asking for a way to handle the archive: cancel, adding newly changed files, verifying the backup file or restoring its contents.

The restore window shows the content of the archive in a tree view. Furthermore it allows to select and unselect files and to restore to a defined root folder.

The system backup should be a low hanging fruit if the normal backup is complete: We provide an option to backup all home folders, files in /etc that are different from the ones that are in the corresponding package and a list of manual installed packages (this aptitude function will be hopefully in apt soon). For restore we extract the config files and try to reinstall the packages of the old system.

Perhaps this can also be extended by a special backup profile for teachers in edubuntu.

Implementation

  • dar is used for the backup creation
  • cdrecord for burning the cdroms
  • add a mime type handler for your backup file - the extension is yet undecided
  • make use of hal hooks or eventually hermes for the cd autodetection (could be stolen from the install cd) - skipping this would not be a problem, since the cd is automounted and the user would have to click on the backup file that is on the cd
  • for the system backup the python we use the dpkg mechanism to detect modified config files and the coming automatically/manual installed package database of apt

attachment:backup.png

attachment:file.png

attachment:progress.png

attachment:complete.png

attachment:handler.png

attachment:restore.png

attachment:conflict.png

attachment:backup-system.png

Code

attachement:hub-glatzor-UDSParis.glade

Data preservation and migration

Outstanding issues

BoF agenda and discussion


CategorySpec

HomeUserBackup (last edited 2010-03-20 00:21:34 by d154-20-147-36)