Thursday, May 26, 2011

Ubuntu ZFS backup server with dedup

----- Ubuntu 10.04 Backup Server ZFS install -----
Get ZFS on Linux from Lawrence Livermore National Laboratory thanks! :)

# apt-get install build-essential gawk alien fakeroot linux-headers-$(uname -r) zlib1g-dev uuid-dev libblkid-dev libselinux-dev parted lsscsi
# echo "deb http://ppa.launchpad.net/dajhorn/zfs/ubuntu lucid main" > /etc/apt/sources.list.d/zfs.list
# apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 0D18601A1EE8660B
# apt-get update && apt-get install zfs spl

----- Backup Server ZFS setup -----
# zpool create backup raidz1 sdc sdf sdg sdh spare sdi
# zfs create backup/admin-mac-mini
# zfs set dedup=on backup

------ Backup Server /etc/rsyncd.conf ------
numeric ids = true
read only = false
secrets file = /etc/rsyncd.secrets
uid = root

[admin-mac-mini]
# Owner: Christian Nygaard
path = /backup/admin-mac-mini
log file = /backup/admin-mac-mini/backup.log
auth users = admin-mac-mini
post-xfer exec = /usr/local/bin/zfs-snapshot $RSYNC_MODULE_PATH

---- Backup Server /etc/rsyncd.secrets ----
admin-mac-mini:secretpassword

---- Backup Server /usr/local/bin/zfs-snapshot ----
#!/bin/bash
#
# Usage: /usr/local/bin/zfs-snapshot /backup/zfsfilesystem
#
ZFSVOL=`echo $1 | sed -e 's+^/++g'`
zfs snapshot $ZFSVOL@`date "+%F_%R"`

----- Backup client backup -----
RSYNC_PASSWORD=secretpassword rsync -a --delete /Users/chris admin-mac-mini@backup.example.org::admin-mac-mini

----- Backup client restore -----
rsync admin-mac-mini@backup.example.org::admin-mac-mini /Users/chris/restore

----- Backup Server list backups ----
# zfs list -t snapshot
NAME USED AVAIL REFER MOUNTPOINT
backup/admin-mac-mini@2011-05-26_13:16 0 - 91.4G -
backup/admin-mac-mini@2011-05-26_13:31 43.4K - 91.4G -