DapperHomeUserBackup

Revision 16 as of 2005-11-01 18:25:21

Clear message

Summary

This specification discusses implementing a very simple and concise solution to backup a predecided set the most essential components that a simple user can use. Emphasis should be on making it dead easy for the user to undertake, whilst still providing a reliable solution.

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.

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, desktop behavior. He has also already got quite a few important email messages and some other bits of information currently stored on his Desktop (firefox links). After a week, the backup system pops up a notification dialog "You should backup your current personal data. Would you like to do that now?"
  • Bob has been using Ubuntu for a month now. He already created a backup set of his data as suggested by the backup system. He accidentally deletes one of his important meeting files. Not worried, he fires up the backup program, and chooses "Find files to restore". This pops out a window after some processing of the backup media, offering to restore the meeting file.
  • 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 rewriteable / appendable (multi-sesion CD), or blank media if not. All the data that was previously backed up is backed up again, with its current state.

Scope

The goal is to back up either the current user's or all users' personal data, i.e. $HOME.

This spec is not concerned with backing up a whole system (/etc), except possibly to alert the user that some packages (which have been installed when a backup is made) are not present when the restore is performed.

Archiving data (use case: "Jim has downloaded a lot of music, now his drive is full and he needs to save some of the files to off-line storage") is out of scope of this spec.

The UI should not provide options like "mirror data onto a different disk" or "create different backup sets".

Multi-volume backup would be nice, but probably not in the first version. Likewise, encryption would be nice but probably not in the first version.

Backup to a network filesystem is not supported. If this is required, then the server administrator should install, configure and use a more sophisticated network backup system.

UI

First trigger for launching the backup system: at install+1 week, pop up a notification (much like update manager) which prompts the user about backups. When selected, the user gets a wizard where the first options are:

  • Never bother me again
  • I want daily/weekly/monthly backups
  • Postpone decision

On a multiuser system, if the user is an admin, ask whether to backup

If the user asks for backups, we check for available hardware and ask the user to choose. Pick a default based on the available hardware, usually CDRW or USB removeable. If there is no suitable hardware, tell the user about suitable options (help page with USB / CDRW / whatever choices)

Then, every selected interval, bother user again to actually make the backup. Options include yes, back up now', nag me later' and `no, skip this backup, nothing important has changed'.

At all points the system will be in charge; it will plan the backup schedule and tell the user what media to insert and what to label the media and so forth.

If the data doesn't fit: First, try excluding media content; if that would work, prompt user that we will do this and ask them to buy bigger media (eg, removeable USB hard drive or writeable DVD); failing that, say we can't do a backup.

Menu options in various menus:

  • System / Administration / Configure backup - reruns the wizard
  • System / Administration / Backup now
  • System / Administration / Restore from a backup

Autorun: If the user just inserts a backup disk, ask whether to do an incremental backup or to restore data.

Design

  • Backup applet: Small panel applet responsible for presenting alerts to the user based on data collected from the backend.
  • Backup Policy:
    • Focused : Only backup $HOME(s).
    • Permissions: Allow only sudo enabled user to do a backup.
    • Exclude problematic content by means of storage space and/or system breakage:
      • Audio files.


suggest larger media

  • Visual files. --- suggest larger media
  • Media handling:
    • Suggest media for backup based on sotrage device detection.
    • Split up files according to the chosen media capacity.
  • UI:
    • Wizard based UI, less is more.
    • Integrate enough help per each option.
    • Provide consitent and accurate progress indication per each processing job.
    • Allow for declining operation and break in the middle.

Implementation

  • No intention to write an incremental backup solution; use dar instead as a backend:
    • choose among already available command line tools, and wrap around it.
  • Wizard process shall menifest in a suggested invocation command line for that command line tool.

Code

Data preservation and migration

Not applicable to this project.

Outstanding issues

Choice of underlying tools (in particular, differential/incremental archiving tool).

How to decide rotation policy etc. based on user's choice, data volume, etc: algorithms need to be specified.

Open issues with sbackup:

sbackup is a proof of concept of the general kind of thing but is somewhat orthogonal to the required functionality. It may serve as a base for what we want.

* missing backup to CD-RW * need to alert people that they need to do backups before they need it because their network dies :-/ * don't backup /etc :-/ * no multi-volume backup

BOF

User Interaction:

with answers from last bof

  • Backup the whole system vs. just the user's $HOME
    • whole system
  • Having an exclusion wizard for scenarios when data doesn't fit or exceeds an amount of time, focusing on excluding media (audio, video) content for now
  • Backup the list of installed packages, perhaps start synaptic with those packages checked when restoring
  • If there are several users on the same machine, the admin (main user) should be able to backup selected users profiles
    • Nice and simple: back up /home (ie, all users)
  • Show a warning to non-sudo users if backups have not been scheduled for their accounts.
  • option to disable the complete feature if we're on big installations.
    • this via configuration file