You should check if most of your time are being spent on CPU or in I/O. Either way, there are ways to improve it:
A: don't compress
You didn't mention "compression" in your list of requirements so try dropping the "z" from your arguments list: tar cf
. This might be speed up things a bit.
There are other techniques to speed-up the process, like using "-N " to skip files you already backed up before.
B: backup the whole partition with dd
Alternatively, if you're backing up an entire partition, take a copy of the whole disk image instead. This would save processing and a lot of disk head seek time. tar
and any other program working at a higher level have a overhead of having to read and process directory entries and inodes to find where the file content is and to do more head disk seeks, reading each file from a different place from the disk.
To backup the underlying data much faster, use:
dd bs=16M if=/dev/sda1 of=/another/filesystem
(This assumes you're not using RAID, which may change things a bit)
tar
introduces any significant overhead, reading the files is the expensive operation here. You should either modify the way your files are stored, or use a radically different approach (copy the filesystem as a whole). We can't help you much without knowing how your files are organized.