Snapshots for DIY raid arrays

	I've been spoiled with NetApp&tm; file system snapshots. Snapshots of
	homedirectorys is a life saver. In my role as a SysAdmin having the 
	ability to recover lost files for users from disk is so far superior
	than having to go to tape. Even more of an advantage is showing a
	user that they have a .snapshot symlink to their snapshot homedir
	so bothering me with the request is not usually necessary.

	I've been running a poor-mans snapshot system under FreeBSD for
	a good while. With the recent release of 5.x this is all no
	longer necessary. I am going to present my original system for
	historical reference.

	FreeBSD 5.x series now supports a utility known as mksnap_ffs
	which appeared somewhere in the 5.0 tree but i'm not certain
	exactly when. It is definatly in 5.1-RELEASE and 5.2-RELEASE but
	if your tree pre-dates these it might not be available. I have
	no experience using it yet so I am currently sticking with my
	tried and true system.

	On my raid array I have a quick and dirty shell script installed
	called snapshot. This script is a much hacked version of 
	Mikes Snapshot Script located on the web here. I have
	made my script available also.

	Some notes are necessary though. I use rsync instead of Mikes cp command
	for several reasons. The version of cp on freebsd does not support the
	necessary options that GNU's cp does. Rsync does. Rsync also
	allows us to, if necessary, copy across via ssh to other systems
	for additional redundancy. It is a tool that offers multiple
	solutions depending on the situation. You might find it unnecessary.

	I run the following cronjob as user root:

		55 23 * * 0 ////snapshot weekly
		57 23 * * * ////snapshot daily
		0 0,4,8,12,16,20 * * * ////snapshot hourly

	Here I run our hourly snapshot every 4 hours starting at midnight.
	My script assumes 6 snapshot intervals a day so if you perform
	more or less a day the script will need updating. 
	Next I run a daily snapshot just before midnight which takes the
	oldest snapshot, in theory the one performed at midnight the
	day before and moves it to daily.0. The hourly snapshot deletes
	the oldest (hourly.5) snapshot every time it runs so we need to
	grab it before hand.

	Finally we run a weekly run on Sunday just before midnight.
	It takes the old daily snapshot and stores it as a weekly
	with the date. You can do what you wish with these.
	I gather a few and burn them to cd every month or so but
	Eventually I plan on burning the weekly to a cdrw disc.


Copyright © 2003,2004 - Steven St.Laurent -