On 2017-03-04 13:12, Craig Barratt wrote:
> BackupPC community,
>
> I'm happy to announce that BackupPC 4.0.0 has been released on Github [1] and
> SourceForge [2].
>
> BackupPC 4.0.0 is a significant improvement over 3.x in terms of performance
> and storage efficiency. It is backward compatible with 3.x storage, so it can
> be used to upgrade an existing V3 installation as well as for brand new
> installs.
>
> BackupPC 4.0.0 requires the perl module BackupPC::XS [3] (>= 0.50) and
> rsync-bpc [4] (>= 3.0.9.5).
>
> After installing those two packages, BackupPC 4.0.0 can be installed from the
> tar ball with:
>
> tar zxf BackupPC-4.0.0.tar.gz
> cd BackupPC-4.0.0
> perl configure.pl [5]
>
> See the README.md, ChangeLog and doc/BackupPC.html [6] files for more
> information. An overview of the major changes is below.
>
> Thanks for to everyone who provided fixes and reported issues with the alpha
> and github versions.
>
> Enjoy!!
>
> Craig
>
> Here's a summary of the most significant changes in V4:
>
> * No use of hardlinks (except temporarily to do atomic renames). Reference
> counting is handled at the application level in a batch manner (hardlinks
> will still remain for any legacy V3 backups).
> * Backups are stored as "reverse deltas" - the most recent backup is always
> filled and older backups are reconstituted by merging all the deltas starting
> with the nearest future filled backup and working backwards.
> * This is the opposite of V3 where incrementals are stored as "forward
> deltas" to a prior backup (typically the last full backup or prior
> lower-level incremental backup, or the last full in the case of rsync).
> * Since the most recent backup is filled, viewing/restoring that backup
> (which is the most common backup used) doesn't require merging any deltas
> from other backups.
> * The concepts of incr/full backups and unfilled/filled storage are
> decoupled. The most recent backup is always filled. By default, for the
> remaining backups, full backups are filled and incremental backups are
> unfilled, but that is configurable.
> * Uses full-file MD5 digests, which are stored in the directory attrib files.
> Each backup directory only contains an empty attrib file whose name includes
> its own MD5 digest, which is used to look up the attrib file's contents in
> the pool. In turn, that file contains the metadata for every file in that
> directory, including each files's MD5 digest.
> * The Pool layout still supports chains to handle md5 collisions. While
> collisions can be constructed and are now well-known, they are highly
> unlikely in the wild. Pool files are never renamed or moved, unlike V3.
> * Any backup can be deleted (deltas are merged into next older backup if it
> is not filled).
> * The reverse deltas allow "infinite incrementals" - no need for a full
> backup if you are willing to trade speed for the risk that a file change will
> not be detected if the metadata (eg, mtime or size) doesn't change.
> * An rsync "full" backup now uses --checksum (instead of --ignore-times),
> which is much more efficient on the server side - the server just needs to
> check the full-file checksum computed by the client, together with the mtime,
> nlinks, size attributes, to see if the file has changed. If you want a more
> conservative approach, you can change it back to --ignore-times, which
> requires the server to send block checksums to the client.
> * The use of rsync --checksum allows BackupPC to guess a potential match
> anywhere in the pool, even on a first-time backup. In that case, the usual
> rsync block checksums are still exchanged to make sure the complete file is
> identical.
> * Uses a modified rsync called rsync_bpc (currently based on rsync-3.0.9) on
> the server side (in place of File::RsyncP), with a C code interface to the
> BackupPC storage. So the whole data path for rsync is now in compiled C code,
> which is much faster than perl.
> * Due to the use of rsync-3.X, acls and xattrs are supported, and many other
> useful options (but not all) are supported. Rsync protocol 30 supports the
> efficient incremental file list, which significantly improves memory usage
> and startup time. It also supports MD5 full-file checksums, which match
> BackupPC's new digest. That allows a full-file digest to be checked as easily
> as an mtime on the server side.
> * Significant portions of the BackupPC code are now compiled C code in a new
> module called BackupPC::XS that is dynamically linked to perl.
>
> * V3 migration: nothing specific is needed. V4 can browse/view/restore V3
> backups. When you install V4, no changes are made to any V3 backups. If you
> are upgrading from V3, be sure to set $Conf{PoolV3Enabled} to 1 so the old V3
> pool is searched for matching files.
>
> * When you install V4, it will notice that the V3 pool exists. Running
> configure.pl [5] should set $Conf{PoolV3Enabled} to 1 in that case, but you
> should be sure to check that.
> * When a V4 backup is first done, BackupPC_backupDuplicate is run to
> duplicate the most recent V3 backup to create a new V4 backup. A "filled"
> view of the most recent V3 backup is used to create a "filled" V4 backup tree.
> * This step could be time consuming, since every file needs to be read (as a
> V3 file) and written as a V4 file. However, the V4 pooling code knows about
> the V3 pool, so it will move the V3 pool file into the V4 pool. So this
> duplication process doesn't burn a lot of pool storage space, but every file
> still needs to be read (to compute the MD5 digest) and "written" (really just
> matching/linking).
> * Expiry: all the V3 + V4 backups are considered on a combined basis for
> expiry checking.
> * On a clean new V4 install, the steps of computing and checking V3 digests
> is eliminated.
>
> ------------------------------------------------------------------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, SlashDot.org! http://sdm.link/slashdot
> _______________________________________________
> BackupPC-users mailing list
> BackupPC-users@lists.sourceforge.net
> List: https://lists.sourceforge.net/lists/listinfo/backuppc-users
> Wiki: http://backuppc.wiki.sourceforge.net
> Project: http://backuppc.sourceforge.net/
Congratulations on this significant milestone.
--
_______________________________
Bob Wooden of Donelson Trophy
Links:
------
[1] https://github.com/backuppc/backuppc/releases
[2] https://sourceforge.net/projects/backuppc/files/backuppc/4.0.0/
[3] https://github.com/backuppc/backuppc-xs/releases
[4] https://github.com/backuppc/rsync-bpc/releases
[5] http://configure.pl
[6] http://backuppc.sourceforge.net/BackupPC-4.0.0.html
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
BackupPC-users mailing list
BackupPC-users@lists.sourceforge.net
List: https://lists.sourceforge.net/lists/listinfo/backuppc-users
Wiki: http://backuppc.wiki.sourceforge.net
Project: http://backuppc.sourceforge.net/