2 - Make a release that packages up various long-existing patches.
3 - Add FTP and SFTP storage backends (from Ralf Schlatterbeck and
8 - Rework storage layer, to make it easier to support local files,
9 S3, and in the future more storage backends. cumulus-util now
10 permits URLS for specifying storage locations, including s3:// for
12 - The script-level interface between the main cumulus binary and
13 remote storage has changed. It should not yet be considered
15 - Add a tool (cumulus-sync) for copying snapshots between storage
17 - Add a (mostly proof-of-concept) FUSE interface for accessing
19 - Implement a basic garbage-collection command for deleting unused
20 segments. There still needs to be a way to select snapshots to
21 delete (perhaps based on some type of schedule).
22 - Assorted minor bugfixes.
25 - SNAPSHOT FORMAT CHANGE: The snapshot format has been extended to
26 allow the local database to be partially rebuilt from the contents
27 of the metadata log. This may be useful for disaster recovery and
28 other scenarios. The changes are small, but old tools will not
30 - Add the --rebuild-statcache option which will re-read all files
31 instead of depending on the statcache file to be correct. This
32 will additionally print warnings if a file has changed but would
33 not have been detected as changed based on the statcache, and will
34 add subfile incremental signatures for existing files that do not
38 - LOCAL DATABASE CHANGE: The addition of subfile incrementals has
39 requires an extension to the local database. The upgrade script
40 contrib/upgrade0.7-localdb.sql should be run prior to running
41 backups with this version.
42 - Name change: the system is now known as Cumulus (replacing the old
43 name of "LBS"). Some traces of the old name still remain.
44 - Initial support for direct backups to remote storage. A sample
45 script is provided for backing up to Amazon S3. Other scripts
46 should be simple to write. The interface should not yet be
47 considered stable, and may change in a future release.
48 - Support for efficient subfile incremental backups. Changes to a
49 small portion of a file do not require re-uploading substantially
50 all of the file, even in cases where there is an insertion or
51 deletion that shifts most of the file contents.
52 - Allow selected files/directories to be restored, not simply an
53 entire snapshot. Additionally, restore files in an order that
54 should optimize performance (restore files based on how they are
55 grouped into segments, instead of lexicographic order).
56 Currently, the implementation of these changes requires that all
57 metadata be loaded into memory when the restore tool runs, so it
58 is more memory-intensive than the old version. This may be fixed
59 in a future version; in the meantime, if the current restore tool
60 requires too much memory, try the old restore tool or the
62 - Add a verbose ("-v") flag. By default, files will not be listed
63 as they are backed up. The old behavior can be turned back on
67 - SNAPSHOT FORMAT CHANGE: A few minor tweaks have been made to the
68 snapshot format. There is nothing substantial--this is primarily
69 a cleaning up of the format before use becomes more widespread.
70 An efficient and explicit means for representing sparse files has
71 been added to the format. Updated tools will be needed to
72 properly understand the new snapshots. Tools will continue to be
73 able to read the old snapshot format.
74 - LOCAL DATABASE CHANGE: The local database has been changed so that
75 segment utilization data for past snapshots is stored more
76 efficiently. The script in contrib/upgrade0.6-localdb.sql must be
77 run on a database to upgrade it prior to running backups with the
79 - The statcache implementation has been reworked, and the format
80 changed. The first backup will run more slowly since the old
81 statcache data will be ignored. New statcache data will be
82 written to statcache2. The old statcache file can be deleted.
83 - Metadata is shared between snapshots where possible. The
84 --full-metadata option can be used to disable this (completely
85 writing out all metadata with the new snapshot).
86 - Add an "intent" field to snapshots, which specifies informally how
87 long a snapshot is intended to be kept. For example, 1 can be
88 used for daily snapshots, and 7 for weekly snapshots. Segment
89 cleaning is now partly guided by intent values, but tuning of the
90 cleaning algorithms is not yet finished.
93 - Have the lbs-util tool check the version number when reading a
94 snapshot, and signal an error if the format is not recognized.
95 - Include a sample script, contrib/parity-gen, for creating
96 RAID-like parity sets to recover from some segment corruption.
97 The par2 command (http://parchive.sourceforge.net/) is used to
98 actually generate the parity sets; the parity-gen script simply
99 automates maintaining the parity sets.
102 - Much improved Python interface for accessing and manipulating LBS
103 archives and local database information. The interface should not
104 yet be considered completely stable.
105 - Python implementation of lbs-util now includes most of the
106 features of the Perl implementation, plus some other new features.
107 The Perl library and utility are deprecated and have been removed
109 - Preliminary snapshot restore support in lbs-util. This is still
110 not yet extensively tested.
113 - Documentation improvements: a getting started README, and a
114 description of some of the implementation details.
115 - Include an example filter script, lbs-filter-gpg, for encrypting
116 segment data as it is written.
117 - Add support for signed snapshot descriptor files (via the
118 --signature-filter option). Due to the checksums contained in the
119 snapshot descriptor, the signature covers the entire contents of
121 - Preview release of lbs-util.py, a Python-based program for
122 managing LBS snapshots. It currently implements a very simple
123 form of automatic segment cleaning, though this isn't much tested.
124 - Improved segment repacking support; after cleaning segments,
125 objects can be written out in different groups based on age. This
126 may help with long-term segment cleaning efficiency, but probably
130 - LOCAL DATABASE CHANGE: A checksums file is now written out along
131 with the snapshot descriptor that contains checksums of segments
132 used in a snapshot. This will allow quick integrity checks of a
133 snapshot, without needing to decompress or decrypt the segment
134 files. The local database schema was modified to store the
135 checksums for segments.
136 - Build dependence on libtar has been dropped. All necessary
137 support for writing TAR files is now directly included with the
139 - The snapshot format is now documented, at least in part. See
141 - Snapshots now include link count and inode number for files with
142 multiple hard links, so that a restore program could determine
143 which files should be hard linked on restore. The reference
144 restore.pl script does not use this.
145 - Bugfix: Print a help message instead of crashing if no files are
147 - Bugfix: File descriptors of files being backed up were closed
148 twice. In some cases this might have led to an unrelated file
149 being closed (if the file descriptor was quickly re-used).
150 - Preview of a new lbs-util command for maintaining snapshots.
151 Functionality is currently limited.
154 - Update reference restore.pl script to handle octal/hexadecimal
155 (format change introduced in 0.2).
156 - Better support for mixing multiple backup schemes: the statcache
157 file is now per-scheme, so performance should be better in cases
158 where multiple different backups (of different source directories)
159 are made, all sharing the same local database directory.
162 - Bugfix: Do not print an error when only one directory is specified
166 - SNAPSHOT FORMAT CHANGE: Metadata logs in backups can now contain
167 octal and hexadecimal values. Old restore programs may not be
168 able to read these new backups. The reference restore.pl script
169 has not yet been updated.
170 - LOCAL DATABASE CHANGE: Backups may be assigned a name with the
171 --scheme= command-line option, to allow different backup sets to
172 be mixed in the same directory. The database schema for the local
174 - Improved selection (inclusion/exclusion) of files to be included
176 - Device major/minor numbers are dumped for block and character