Kopia v0.7.0-rc1

We are excited to announce the release of Kopia v0.7. This release adds major usability, performance and supportability improvements and fixes bugs.

This release also adds support for RPM and APT repositories for Linux as well as Scoop package for Windows.

CLI Changes

  • Ensure advanced commands are not accidentally used (#611)
  • Fixed snapshot delete to support deleting file (not directory) snapshots by object ID (#613)
  • Remove maintenance lock file on disconnect (#616)
  • Fixed checkpointing to not restart the entire upload process (#594)
  • Plumbed through missing --server-cert-fingerprint option (#580)
  • Tools to help investigate repository structures safely (read-only mode and index inspect) (#553)
  • cli: ignore trailing / in repository server URL (#569)
  • Improvements to UX for mounting directories (#573)
  • Changed default file log level to debug
  • implemented Cache Directory Tagging Specification (#565)
  • added support for setting and changing repository client options (description, read-only, hostname, username) (#589)

Kopia UI Changes

  • Kopia UI improvements for creating repositories and connecting to repositories (#592)
  • Added ability to connect to kopia server and few other minor tweaks (#546)
  • Improvements to UX for mounting directories (#573)
  • Added license ID and description

Repository Improvements

  • Re-enables deletion of unused data blobs which was disabled in v0.6.3
  • content: allow objects marked for deletion to be read (addresses unavoidable race condition) (#601)
  • object: implemented fast concatenation of objects by merging their index entries (#607)
  • splitter throughput improvements (#606)
  • bugfix: fixed splitter reset on reuse (#596)
  • bugfix: fixed index compaction that would resurrect content entry during full maintenance (#563)
  • bugfix: upload: fixed ForceHashPercentage behavior to be non-deterministic (#579)
  • Set BuildVersion during repo initialization. (#572)

Server Improvements:

  • pre-read request body to fix HTTP/2 deadlock (#539)

Infrastructure Improvements

  • added RPM and APT repositories (#600)
  • build: publishing of scoop Windows packages via goreleaser
  • added endurance test which tests kopia over long time scale (#558)
  • upraded to Go 1.15 (#598)

Providers

  • Experimental rclone backend (#545)

Compatibility Information

  • v0.7 release is compatible with repositories created with v0.6 and v0.5.
  • Due to splitter bug in previous releases (#595) repositories created using previous releases may not provide perfect deduplication for large files across multiple machines. Migrating the repository to v0.7 is recommended and will help reclaim the disk space.
3 Likes

Just to make sure, as I can’t find a migrate command for repos but only for snapshots, you mean upgrade, right?

If so, here’s what I got:

$ kopia repository upgrade
16:57:21.917 [kopia/repo] nothing to do

Is this normal?

No, I meant migrate snapshots to a new repository.

Ho!
I wasn’t aware that was possible.
Now that I look a the doc, I have a few questions…

  1. Is the new repo created during the migration process or we have to create it first?

  2. If the latter, does the new repo need to have the same Hash, Encryption and Splitter algorithms as the old one? (I’m considering some minor tweaks there, but don’t feel like starting over…)

  3. Is the snapshot copied or moved? (in other words, do we need lots of free space on the drive?)

And ho! Thanks for that v0.7!

You need to create new repo manually and you can configure hash/encryption/splitter differently.

You need to source repository using different configuration file:

$ kopia repo connect --config-file=/tmp/old-repository.config <provider> <options>

Then:

$ kopia snapshot migrate --source-config /tmp/old-repository.config --all
`
Instead of `--all` you can pick which snapshots to copy.

n/b if you have cloud storage repository, it's best to use cloud instance that's nearby to minimize latency.

Snapshots are copied to a new repo. When you done, you need to delete old repository manually.
1 Like

Does this mean the full repository is rewritten with snap migrate?

Then what is repo upgrade for?