Table of Contents

Creating backups with Dirvish

I love Dirvish for one great reason - it does backup from disk to disk which is the fastest, cheapeast way to backup and restore your data. With the price of Hard Disk falling so much (I wonder if the tape solution is cheaper anymore), it makes perfect sense to backup disk to disk. Also, I usually throw in my backup hard disk side-by-side with my regular hard disk making backups and restore a breeze. I don't think you can make it any better by having your backup inside your system. Now Disaster recovery is another story!

Setup

Since there are no latest releases for a while now, the default prepackaged binaries are usually the latest releases available. In fact this might be a drawback of Dirvish as it does not seem to be actively managed. Anyway assuming you still want to use it since it does work, below is the rest of the setup. So install should be a breeze with apt-get or aptitude, etc.

Backup requirement

I plan on using dirvish to backup my Ubuntu box that has a main hard disk from which I boot, have o/s and everything else. The 2nd hard disk is my backup disk with mount point as /bak. I also want to use this 2nd harddisk to backup my windows 7 laptop. My Ubuntu machine name is ub2. My Windows 7 laptop name is senthil_lt.

Master configuration file

This file goes in /etc/dirvish/master.conf on ub2

# Master configuration file
# For OS backup

# Banks should be defined on different lines
bank:
        /bak

# Don.t cross FS mount points
xdev: 1

# Create index file and compress it
index: gzip

# Log
log: text

# Try to handle sparse files efficiently
sparse: 1

# Secure (meta)-data
image-perm: 700
meta-perm: 600

# Image name
image-default: %Y-%m-%d-%Hh

# Default expiration time, keep images for 30 days
expire-default: +60 days

# Expiration strategy
#expire-rule:
#        hr { 5-20 }                             +2 days
#        wd { 6 }                                +1 month
#        wd { 6 } md { 22-28 }                   +3 months
#        wd { 6 } md { 22-28 } mo { 6 }          +12 months
#        wd { 6 } md { 22-28 } mo { 12 }         never

Runall:
        ub2
        senthil_lt_cdrive
        senthil_lt_ddrive

Backing up local system - ub2

We would need to setup the Vault configuration file. Hence, the 1st vault is to back up the local system on a 2nd hard disk. The /bak is a 2nd hard disk partition. Going with the settings above create a directory /bak/ub2/dirvish.

Create a configuration file default.conf under default.conf as follows:

client: ub2
tree: /
xdev: true
exclude:
    /bak
    /cdrom
    /dev
    /lost+found
    /media
    /mnt
    /selinux
    /srv
    /sys
    /tmp

Then run the command to do the 1st backup and initialize the valut for ub2. Puttint ub2 in the client name (which is the actual hostname of the machine) helps to do a direct filesystem copy without invoking the network.

dirvish --vault ub2 --init

Backing up the windows laptop

The 1st requirment is to have a rsync deamon running on windows so dirvish can communicate and download the required files. Follow the link Setting up Windows as a Dirvish client to get that going. Once cwrsync is setup, you will need to configure the rsyncd.conf file. Below is the file I have setup:

use chroot = false
#gid = users
uid = 0
gid = 0
strict modes = false
#hosts allow = *
hosts allow = ub2
log file = rsyncd.log
log format = %h %o %f %l %b
pid file = rsyncd.pid
# Module definitions
# Remember cygwin naming conventions : c:\work becomes /cygwin/c/work
#
[testdrive]
path = /cygdrive/c/junk
read only = true
transfer logging = yes
#
[cdrive]
path = /cygdrive/c
read only = true
transfer logging = yes
#
[ddrive]
path = /cygdrive/d
read only = true
transfer logging = yes

The next step is to setup the vaults on ub2 for the corresponding C & D drive backups.

C Drive backup

Create directory: /bak/senthil_lt_cdrive/dirvish. Create a default.conf file inside that directory as follows:

client: senthil_lt
tree: :cdrive
xdev: true

Notice the : before cdrive. Without the : there will be an attempt to do rsynch over ssh and have a failure on port 22 if rsync over ssh is not configured.

Now run: dirvish –vault senthil_lt_cdrive –init

D Drive backup

Create directory: /bak/senthil_lt_ddrive/dirvish. Create a default.conf file inside that directory as follows:

client: senthil_lt
tree: :ddrive
xdev: true

Now run: dirvish –vault senthil_lt_ddrive –init

Resources

Below is the list of website links to help with installing, configuring and using Dirvish

Main Divish Official website
Dirvish Guide by Jason Boxman
Setting up Windows as a Dirvish client
Ubuntu Manpage dirvish.conf - dirvish configuration file

Other Resources

Backups Via Dirvish Morsi dot Org
dirvish - script and config
Backup Server with Ubuntu and Dirvish CBrown.us
Dirvish - A Blog