These are just some notes for right now since I just completed the installation on FreeBSD 11. I’ll flesh these out later in more detail.
rsbackup server on FreeBSD using ZFS file system
Build your server with minimal packages. I use pkg for most of my stuff, so the examples will be using that. This will also use zfs as the underlying file system.
Install some needed packages. I prefer the joe editor and postfix mail server, so those are included here, but are not necessary for the server. Also, subversion is not necessary if you want to get the rsbackup package a different way.
pkg install rsync joe postfix subversion
Set up zfs for the backup space. I named the pool storage, and have a storage area under it named backups (so, storage/backups). I can then set global values in storage and override at the client or machine level. The structure I use is:
storage/backups/CLIENT/MACHINENAME
zfs create storage/backups zfs set atime=off snapdir=visible dedup=off exec=off mountpoint=/srv storage/backups
The default properties for storage/backups are propagated throughout the underlying file system, so the properties set here are the default for all clients (but can be overridden for a particular client or machine).
- atime is useless in this case as we probably don’t care about the last time someone looked at the the file, so all it does is create more disk accesses
- dedup is a pig. Everything I’ve read says to simply use compress=on if we want to save space unless you have tons of memory (each block in the dedup table requires 320 bytes of memory, see http://www.oracle.com/technetwork/articles/servers-storage-admin/o11-113-size-zfs-dedup-1354231.html).
- exec – we may have scripts in here, but we probably don’t want to execute them, especially if the suid bit is checked. This is a simple storage space.
- snapdir – my personal preference to actually see the snap directories.
To create a new client, Acme, with a single machine, files.acme.com with a quota of 10G of space, I then do:
zfs create storage/backups/Acme zfs create -o quota=10G storage/backups/Acme/files.acme.com
Doing it this way allows us to set quotas for for each machine, and more importantly, to snapshot individual machines. The latter becomes important when a backup includes the action to create a snapshot.
Now, get rsbackup from our svn server
# NOTE: we are working on our subversion server, so this may change # the subversion repository is not set up well, so the only option at # this point is to get the working copy. Sorry. http://svn.dailydata.net/svn/rsbackup/rsbackup_server # I'll put a link in here for a tarball also mkdir -p /usr/local/opt/rsbackup cp rsbackupServer /usr/local/opt/rsbackup/ chmod 700 /usr/local/opt/rsbackup/rsbackupServer chown -R root:wheel /usr/local/opt/rsbackup/ cp -a etc/rsbackup /usr/local/etc/ chown -R root:wheel /usr/local/etc/rsbackup touch /root/.ssh/authorized_keys chmod 700 /root/.ssh/authorized_keys
System is installed. See Editing Configuration File in another article (when I get it written).