Since starting my current job around seven years ago, I’ve become a tithing member of the Church of Backups. I helped build backup systems for my office, transitioned from different backup systems to others, and am in the process of transitioning from one system of backing up desktops to another. I also have set up backups for my home and other members of the family. Along the way, I’ve learned a few lessons, so I’ll list them in order of importance to me:
1. Make your backup system as automated as possible – if you’re having to start something manually for your backup to run, you’ll forget to do it on a regular basis. We’re all busy and have a lot of things competing for our attention. Make running your backup be something that’s handled by something that Just Works.
2. Test your backup – if you can’t restore, you don’t have a backup and have spent money, time and energy on something that will be a failure when you need it most. With that in mind, isn’t a little testing worth the time? The only way to find that out how good your backup really is, is to do a restore and see what you have. Testing and finding failures is not a bad thing, it just means you have a chance to fix what’s wrong before you need that backup for real.
3. Check that the backup is actually running properly – Along with the backup that Just Works, have another automated process that’s notifying you regularly that It’s Working. If that’s not possible, add checking your backups to your weekly to-do list.
4. If possible, get a block-level backup solution – At the heart of it, there’s two different kinds of backups. The first is a file-level backup, which tracks and backs up entire files. (On the Mac side, both Retrospect and Time Machine do file-level backups.) The second is a block-level backup, which tracks and backs up files based on how their blocks have changed on the drive level. (on the Mac side, Mozy, CrashPlan and many other Internet backup services work this way.)
Why I prefer a block level solution is that it allows better efficiency in how your backup storage is used and also allows you to back up large files without having to repeatedly recopy the whole large file into your backups. Also, block-level backups are generally better at backing up large files while they’re in use.
In an odd follow-up to my previous post, Yahoo has now offered me the ability to sync my contacts between various other services.
If you’re running Mac OS X Server 10.5.x or higher, you may be backing it up with Time Machine. However, Time Machine has gotten a bad reputation with some admins because of what Time Machine *doesn’t* back up. That being said, since Time Machine saved my bacon this past weekend, I wanted to post a Time Machine restoration how-to that (depending on your configuration) can be a lifesaver for your Mac or XServe running Mac OS X Server.
To recover the system:
1. Connect the Time Machine backup disk to the server (should already be connected, but double-check.)
If you’re restoring your system because of a problem with the startup disk, make sure the disk has been repaired or replaced.
2. Insert your Mac OS X Server Install disk, and boot from the installer disk.
3. In the Installer, choose Utilities > Restore System from Backup.
4. In the Restore Your System dialog, click Continue.
5. Select your Time Machine backup volume.
6. Select the Time Machine backup you want to restore.
7. Follow the onscreen instructions.
YouTube video showing the recovery process: http://www.youtube.com/watch?v=ZmvwcRJ6sww
Following a Time Machine restore:
Recreate folders that are not included in the Time Machine backup as described below.
Open Terminal (in /Applications/Utilities).
Execute these commands, each on its own line, followed by Return. Note: When using these commands you will be prompted for an administrator’s password.
sudo mkdir /var/log
sudo mkdir /var/log/apache2
sudo mkdir /var/log/samba
sudo mkdir /var/log/swupd
sudo touch /var/log/daily.out
sudo touch /var/log/weekly.out
sudo touch /var/log/monthly.out
To restore the Wiki service (server), run the following commands in addition to those above:
sudo mkdir /Library/Logs/wikid
sudo chown _teamsserver:_teamsserver /Library/Logs/wikid
To restore the Mail service, execute the following command:
sudo /etc/postfix/post-install create-missing
After running these commands, restart the server.
Exceptions to the rule:
Databases – Time Machine is a file-based backup, and doesn’t handle backing up active databases that well. However, it does a good job of backing up database backup files. If you’re running a database on your server (and you are if the server is an Open Directory Master, as OD works from an LDAP database), make sure to set up an automated process that automatically backs up your database to the appropriate backup file (varies by database) on a regular basis.
Mail – On 10.5 Server (I don’t know about 10.6.x Server), Time Machine does not back up the /private/var/spool directory. As a result, nothing in /private/var/spool or the directories inside spool are backed up. This is important for those running a mail server because /private/var/spool/imap which is where IMAP users’ E-mail is stored.
If you’re using Time Machine to back up a 10.5.x server where you’re also running mail services, I recommend that you go to /System/Library/CoreServices/backupd.bundle/Contents/Resources/StdExclusions.plist and comment out the /private/var/spool exclusion using the following:
<!– /private/var/spool –>