Author: George Wenzel
Date: 23-08-01 21:47
I have used this method in the past with great success.
But there are some performance issues with this method. When you use NFS to move a lot of data, performance is asymetrical with regard to writing to NFS as opposed to reading from NFS.
When you write a block to a NFS server, the next write operation is stalled by waiting for an ack from the server telling you that the previous block was successfully written. When you read from NFS, there is no wait for an ack, so things go much faster. The speed difference between writing and reading is 2 to 10 times.
As this applies to producing a backup, if you have the recipient machine mount the drives of the machine to be backed up, you then run the commands on the recipient. This has an added advantage that you are not consuming as much CPU on the machine being backed up, so if it is a production server, for example, the impact of the backup is reduced. If you compress the backup, keeping the compression process off of the server makes a huge difference under load.
An added advantage of pulling the files rather than pushing them is that you can now build a "backup server" that keeps the backup scripts on a single central machine, so that maintence and scheduling are simplified.
Also, NFS is how I used to do this.... A more secure method would be to move the data with ssh, and not run NFS at all. This has the disadvantage of running processes on the machine being backed up, but if you compress on the backup server, you can still keep most of the workload off of the machine being archived.
A useful set of tools to do ssh based backups (to disk or to files) is contained in the ports/sysutils/flexbackup package. Flexbackup is not the end-all backup script, but it is very useful in reducing the time needed to automate a backup server. An interesting feature of flexbackup is it uses "levels" in a similar manner to dump, but it supports dump, tar, afio, cpio and zip. So you can have your dump level advantages and still use tar if that is what you prefer.
Also, be looking for snapshot support to add some new ways of backing up your data. Hopefully snapshot support will find its way into a release soon...