]> Sergey Matveev's repositories - syncer.git/blob - README
Raise copyright years
[syncer.git] / README
1 syncer -- fast stateful file/disk data syncer.
2
3 WARNING: I advise you to use ZFS and its native send/recv commands.
4 I abandoned that project because of that.
5
6 The main purpose of this utility is fast data synchronization between
7 two hard drives: one is fast (SSD, SATA HDD), another is connected
8 through slow USB interface. Target is to lower data amounts needed to
9 be transferred.
10
11 This utility is stateful: it keeps precomputed data hashes in separate
12 statefile and uses it to determine if we need to update block of data.
13
14     # sync from very fast SSD to slow USB connected HDD
15     $ syncer -src /dev/ada0 -dst /dev/da0 -state state.bin
16     [%%%%%%]
17     # all blocks were transferred to da0
18
19 Now we have statefile containing cryptographic hashes of the blocks from
20 source and copy of all read data in destination. Now if we run it again:
21
22     $ syncer -src /dev/ada0 -dst /dev/da0 -state state.bin
23     [....%.]
24     # only one block was transferred to da0
25
26 Only one modified block was transferred during this session. We read all
27 data from source again, compute hashes and understand what was updated
28 since the last run. Statefile is updated at the end.
29
30 Utility parallelize hash computations among all found CPUs. It updates
31 statefile atomically (saves data in temporary file and then renames it).
32 You can configure the blocksize: shorter transfers but bigger statefile
33 (it is kept in memory), or larger transfer and smaller statefile. All
34 writes are sequential.
35
36 syncer is free software: see the file COPYING for copying conditions.