The basics of data backup on a server
A simple description of the differences between backup types: full, incremental, and differential. Let's find out when each type of backup is best for you.
Backup basics
The backup approach depends on what data needs to be backed up and how often it needs to be backed up. There are three common backup approaches: full, incremental, and differential.
Full backup is a copy of all project files to an external storage device or another server. This is the simplest method, but it requires a large amount of disk space to store the information, and the copying process itself takes a lot of time. A variation of this method is the volume shadow copy idea: copies of files are created on the server at specific times. This method allows you to store multiple versions of data and restore them to the state they were in on a given date.
Incremental backup creates a copy of only the data that has changed since the last backup. Saving only changed files saves space on the hard drive, but in case of data loss, it requires sequential application of changes, which takes time.
Differential backup differs in that it creates copies of files that have changed since the last full backup, regardless of whether they were included in previous differential backups. This requires more data to be stored, but is also easier to restore - you only need to take a full backup and make changes relative to that. An incremental backup would require the entire chain of changes to accomplish the same task.
Server applications for data backup
In case of data loss on the server, the data recovery program accesses copies of the data on the remote server and restores it to the primary machine. Popular commercial backup systems include Veeam, Commvault, Veritas, Dell EMC and IBM.
In addition, there are a number of free server applications that can be used to back up your data on a remote server. For example, BackupPC , Amanda, Duplicati are used both on Linux servers and locally on Windows and macOS machines.
All of these programs have distinctive features, including data compression, encryption, and backup schedules. However, basic implementation of a simple backup can be generated even with the rsync
utility.
Rsync (short for "remote synchronization") is a utility for synchronizing files and directories between different computers or different directories on the same computer. To be more specific, let's look at its example to see how the backup process can be implemented.
In a full backup, we copy all data from the source server to the backup server. To do this, we use the -a
key which indicates that we need to copy all files and save their attributes.
rsync -a /path/to/source directory /path/to/backup directory
In a differential backup, we migrate only new files and those that have changed since the last full copy. To do this, we use the -a
and --delete
keys to exclude files that do not exist on the source server.
rsync -a --delete /path/to/source directory /path/to/backup directory
Finally, in incremental backup we use not only the original project but also the previous backup, if there is one. To do this, we use the --link-dest
key to specify where the previous copy is located.
rsync -a --link-dest /path/to/previous copy /path/to/source directory /path/to/backup directory
Let's note that for the sake of brevity we won't cover other aspects of rsync and other necessary keys - for full work with the utility it's better to familiarize yourself with the official documentation.
How to choose a backup method
The most popular backup applications usually support all of the backup methods listed above. The choice of method depends on your specific situation and data protection requirements.
Here are a few criteria to help you determine which backup method is best to choose:
- The data volume: full backup takes a lot of time to process and uses a lot of disk space. If you are working with a large amount of data that does not change frequently, it is better to choose incremental backup.
- The frequency of data changes: full backups may not be able to keep up with the rate of data changes. In this case, you should consider incremental or differential options.
- The recovery time/storage budget: If the data amount is relatively small and the recovery time is critical, full backup will allow you to recover data quickly enough in a single pass. If the recovery time is not as valuable as the cost of storing the data on the server, you may want to consider the incremental approach. A middle option in this comparison is differential backup: it stores more data than the incremental backup, but it is processed faster.
For those who want to simplify the backup and recovery process, in the ispmanager panel, we have made the process as easy as possible to master. For backup, you can use the popular Google Drive and Dropbox tools, Amazon S3 servers or S3-compatible storage, as well as just FTP/SFTP servers or a local directory. All necessary information is provided in the panel documentation.