HomeUserBackupNg

Summary

This specification discusses implementing a simple and concise next-generation backup solution for the non technical users. This application will be shipped with edgy, and be ready for use after installation. This application will make sure that a user either backs up his data, or otherwise is aware of the consequences that may arise if he does not.

Ideas

Backup application

The backup application itself should be separated to 2 parts: 1)User part 2)Admin part

*User part* The user has access to "User part" and can backup and restore only files that are located in his /home directory.

*Admin part* This part of application is scaled so it serves as a Complete backup and disaster recovery solution. This part is started when application is run in super-user mode. The backup options exists in "Ranks":

1)Rank 1 - Solid backup 2)Rank 2 - Incremental backup

If backing up partitions which are active, the system must go in pre-boot state. Every option is selectable in "Boot state", but the operations itself are perfomed by ncurses application.

Backup ranks

1)Rank 1 - Solid backup

What is most important that the "Solid backup" must be invoked pre-boot first time after the system is rebooted. The solid backup serves as a foundation for building "Incremental backup" updates later on, and the first "Solid backup" called "Primary Solid Backup" is taken of the entire hard drive, while "manual" backups might be taken of just one or two partitions.

2)Rank 2 - Incremental backup

Basicly, incremental backup server as a support to "Solid backup" and should be executed at least every week by default on desktop machines for "Primary Solid backup", but can also be used to support "manual" "Solid backup" for individual partitions. The incremental backup itself is a "diff" beetween the system status at "Solid backup image" and it's current status.

Bindings

Python bindings that need to be written:

1)Dar

2)Partimage

3)Python-notify (existing)

4)Libparted (in work by some Redhat guy?)

C usage

C will be used only when needed (ie. running system pre-boot)

Burning support

While in "boot" status we can burn images to optical media, but what when in pre-boot status? Build our own "Hardware layer" and "Burning facility" in C?

Libparted use

Make use of available space on partitions to create a partition where we'll store the backup images if they are not burned on media.

GnomeVFS

1)Take advantage of GnomeVFS in "boot" mode

2)Port GnomeVFS pre-boot so we could take advantage of it (?!)

Architecture

The application itself should be two-parted (or three-parted?)

1)Backend

2)UI (KDE, Gnome, and Ncurses) Yes, even in "boot" status we need to have ncurses-based UI.

3)Plugins (?!)

Localization

All of this solutions should be made with localization as a top priority and a ground level consideration, so it would be possible to translate and localize it.

Disaster recovery system

A little application could be run pre-boot to assure the system is in "OK" status. If it's not, start a ncurses disaster recovery system.

HomeUserBackupNg (last edited 2008-08-06 16:34:53 by localhost)