DarioDavi

Dario Davì

Contact information

Project

  • Project Name: One of our Ideas, or your own Ubuntu System Restore and Backup utility

  • Project Description: Your own description of the project This utility is based on rsync, so it is easy to integrate with other existing backup systems over the network. In this way the user can decide to use his preferred online backup service (the most available on the market are rsync-based), or just an external drive. To have a full disaster recovery tool, this utility should make use of dd to save MBR and partition table information. It will work with a GUI and with a CLI interface for servers. This tool can be used to do snapshots of the system if the destination drive filesystem supports hard links, with a great saving of space and time. Deleting older snapshots using hard links is very simple and doesn't require moving any file. With other filesystem it will be able to make normal backups, and in both cases there is the possibility to delete files on the destination drive that are been deleted in the source drive, or leave them in the destination drive even if they are been removed from the source. This utility can be used to clone an installation to an other hard drive with a different partition table and/or different partition size. In this case the tool will format the destination partition, will transfer all files and will use grub-install and other grub tools to install a bootloader. This can be useful when installing Ubuntu in a lot of production machines. Each snapshot can be used to create an iso or other image format that can be burnt in a DVD (in the future this tool could create a Ubuntu Live DVD based on a backup snapshot, and have a simple wizard that lets the user restore his system from the DVD. But this is an advanced feature that needs more time than GSoC gives, so it will not be present before summer ending). An interrupted backup can always be resumed. Its GUI should be as simple as possible (something like Apple Time Machine), and the most of options could be:

- Include/exclude paths;

- Include/exclude file types;

- Settings for network backup (ssh option, remote server login..);

- Special folder watchguard (if you are working in a production machine with very sensitive data, you may need to backup a folder every time a file is modified. Think about music production);

- Backups time schedule.

For the first version I prefer developing it using Qt framework, since I have already used it a lot. Future version may be ported to Gtk but QGtkStyle does a great work in my opinion.

  • Some major aspects of choosing rsync to do a network backup are:

- Incremental backup;

- Bandwidth management in case of remote backup server;

- Resume in case of network link loss;

- Exclude and include directory paths;

- Exclude and include file types;

- Native support for ssh protocol;

- Data compression during network transfer;

- Percentage of done work (stupid but useful..) ;

See http://sites.google.com/site/xplatformsoftware/home-1/projects/gsoc2010 for a simple graph.

  • If you would be willing and able to do other projects instead, which ones? Ubuntu One KDE client

  • Why did you like this idea? Because it is present in every professional OS

  • Please describe a tentative project architecture or an approach to it: Basically it will be a CLI and a GUI for rsync, but with options that fit a backup/restore utility. I think it is not good to reimplement from ground a tool already existing. See http://sites.google.com/site/xplatformsoftware/home-1/projects/gsoc2010 for a simple graph.

  • Give us details about the milestones for this project

Alpha 1: Creating a good looking GUI and a CLI without user options. In this phase the utility should simply work (this period is short);

Alpha 2: Implementing all options we need to have a good and complete software, and testing what paths have to be excluded by default (such as /tmp. This period should be not so long, but longer than alpha 1);

Beta 1: A long period of beta testing. Trying to reproduce various scenario of system fault and restore. Adding corrections and details that were invisible in alpha 1 and 2.

  • Why will your proposal benefit Ubuntu? Because this is a feature already present in other OS, and it is a sign of a well structured and robust OS

Open Source

  • Please describe any previous Open Source development experience I don't have any previous experience in official Open Source software. I'm developing a complete FFMPEG GUI (complete means that you will be able to use all FFMPEG features and advanced options) because we need more professional multimedia tools under Linux that can be used from people coming from Windows and Mac (and they, in general, are not fun of command line tools). It will be released under GPL or other Open Source license as soon as I implement basic audio options as beta. You can see some screenshots at http://sites.google.com/site/xplatformsoftware/

  • Why are you interested in Open Source? Because, after Ubuntu success (and closer to now Android success), I really believe it is the future.

Availability

  • How long will the project take? When can you begin? I think it will take at least 3 months to do good beta-testing. I can begin right now!

  • How much time do you expect to dedicate to this project? (weekly) 40 hours and more if needed

  • Where will you based during the summer? Home, Italy

  • Do you have any commitments for the summer? (holidays/work/summer courses) No

  • Please designate a back up student (in case you need to withdraw your application)

Other

  • Have you ever participated in a previous GSoC? (describe your project) Never

  • Have you applied for any other 2010 Summer of Code projects? If yes, which ones? None

  • Why did you apply for the Google Summer of Code ? To have a good entry in my CV. being paid is a good reason too

  • Why did you choose Ubuntu as a mentoring organisation? Because I like to think that Ubuntu is "of mine" and there is a great chance that even a little project developed by me could improve the community desktop experience

  • Why do you want to participate and why should Ubuntu choose you? I want to start developing for the community and for a distribution that I use every day. Being a user and a developer in the same time gives you the power to change what you don't like in a system. I think Ubuntu should choose me because I am young, motivated and proud to use Ubuntu..!

GSoC/2010/DarioDavi (last edited 2010-03-30 22:27:37 by 151)