HomeUserBackup

Revision 21 as of 2006-06-17 18:50:01

Clear message

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

Rationale For UI and Workflow Re-design

  • 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.

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.

Backup

Main Window

attachment:main_window.jpg

The proflie treeview shows a set of predefinded and custom profiles.

Each profile is listed with its name and the last backup date.

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 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

Implementation

Code

Data preservation and migration

Outstanding issues

BoF agenda and discussion


CategorySpec