Reasons to backup:
- Hardware Failure, hard drives and other computer components fail regularly.
- Destruction of your site, fire or flooding.
- Accidental data loss, somebody unintentionally deletes one or more files.
- Software error, a software error could corrupt one or more of your files.
The difference between backup and redundancy
Most modern servers use RAID for redundancy. This usually means that when you put something on the server, it gets written to two hard drives. In the event that one hard drive goes down, you can replace it with no disruption to service. This is an example of redundancy, and will help protect you against a very specific type of failure. Some systems, like Google, will have multiple servers, allowing an entire server to go down without disruption to service. It is important to have redundancy so that services to your company or to your clients are not disrupted, but it is not a replacement for backups.
Backups involve creating a second copy of your data. Often times, multiple backups from different points in time will be maintained. Restoring a backup takes time, and can result in disruption of service. Backups help protect from user errors like accidental deletion and software errors that could corrupt data. Having more than one copy of your files is very important for recovery from these errors.
What to backup
If you host your own email, this is probably one of the most important things to backup. If your email is hosted, see if you can backup your email, or see what your provider is doing to backup your email.
Document Management System
If you have a document management system or some other type of server that you store your files on, this is also a very important group of files to back up.
If you have a lot of people, it can be very difficult to back up each desktop that you have. A better solution is to make sure that all important files are stored on a server so you only need to back up a single server. You should have a plan in place for what happens when a desktop goes down in order to reduce the impact on the productivity of the person who was using it.
Web Application Data
If your website collects data, or if you have any web applications that collect data, make sure that you back up the databases and other information stores. SQL databases have backup programs that can be run. You can set your operating system to run the backup regularly. Also, if there is space where users can upload files, make sure to back up the files as well.
Custom software can be expensive to develop. Make sure that you have a backup of any custom software that you have had built so that you can easily deploy it again if you need to.
Information in “The Cloud”
You may have documents or other information that is hosted on the internet. If at all possible, you should take your own backups. If you cannot take your own backups, how reliable is the service provider? Think carefully about each of the services that you are subscribed to. These could be Salesforce, Google Docs, email providers, Online stores (do you need your amazon.
Any other products that are generated
Each company produces different types of products. Make sure that you go through the list of products that you have and ask yourself what would happen and how you would recover if you lost some data. Make sure to think about digital components that are created to support physical products.
The number of backup programs that exist and techniques that are available are too numerous to count, so I will only cover a few concepts.
Local and Offsite
It is a good idea to have a copy of your data locally and a copy of your data offsite. The offsite backup is important in the event that your office is destroyed. The location of the offsite backup could also be destroyed, so having an onsite backup will help protect you against that. Another reason to keep an onsite backup is that if you need to restore an item, the backup is immediately available.
Automated Vs. Manual
Human memory is flawed, people take vacations and sick time, and staffing changes. If your backup is automated, these events will have a smaller impact on your backup system. An automated backup system can grab all of your data every night, and push it to an offsite location over the internet or a T1 pipe. There may be parts of the backup that must be done manually, like changing media, or a few parts of the backup that are difficult to automate, but the more automatic it is, the better. Still, make sure to check it periodically to make sure that it is still taking the backup and you are not getting errors.
Depending on how much you need to back up, you may want different types of media. Tape drives are popular for large quantities of data. CD or DVD media is a cheap way to back up small amounts of data, but make sure that you get high quality media, and check it from time to time to make sure that it is not deteriorating. Hard drives are very convenient since they are rewritable. Keep in mind that hard drives fail. Using RAID for redundancy is a good way to help protect yourself from hard drive failure.
Ensure it works
After you have created your backup system and are making sure that it runs, make sure to test it by restoring data from the backup. If you cannot restore a backup, it is not really a backup.
If you are backing up confidential or sensitive data, make sure that the backup is at least as secure as the data that you are backing up. A compromised backup is just as bad as the data being compromised since you have a copy of everything. If the backup is encrypted, make sure that enough people have the key, and that the key is backed up somewhere. If you encrypt the data and lose the key, you lose the backup.
Make sure that you always know what backup is current, what backup is old, and when you’ve taken the backups. Your software may take care of this for you. If it does not, putting dates on the folders, or a file with the information within the folder can be good ways to keep organized. You also need to know where it is going and how to restore it. Make sure that this is documented in case the person who built the backup is not available when a restore is needed. You can also streamline the backup process by making sure that the files that need backing up are organized in as few places as possible.
Make sure that multiple people know where the backup is and how to restore it. It is a good idea to have some documentation on the backup system, how the backups are created, any manual steps and when they need to be performed, and how to restore each component of the backup, either fully or partially.
Virtual machines typically have a way to make a copy of the entire machine. This can be taken advantage of to backup an entire system from all of the software that is in stalled to the data files that are on the machine.
rsync and rdiff-backup
rsync is used to copy files from one place to another, optionally over the network or internet. All data transfers are encrypted. When files are copied, only the files that have changed are copied, reducing the amount of bandwidth required for most cases. rdiff-backup is similar, but it will keep incremental backups making it so that you can revert to a previous version of your backup. To save space, files are only saved twice if they have changed.
dd can make a copy of a hard drive. This can be used to make an image of your operating system hard drive from time to time. If you ever need to restore, you can reload the image to the drive, and all of your software will be ready to go.
There is enough backup software out there that I could not hope to cover all of it. Look at your needs and find the group of software that fills your needs.
Make sure you think carefully about why you are backing up your data. Your reasons for backing up your data will have an impact on how you back it up. What would happen to you or your business if you lost some or all of your files? Who is going to be able to restore your files?