diff --git a/cli/app.go b/cli/app.go index 4d883a3f1..66d560135 100644 --- a/cli/app.go +++ b/cli/app.go @@ -256,7 +256,7 @@ func advancedCommand(ctx context.Context) { log(ctx).Errorf(` This command could be dangerous or lead to repository corruption when used improperly. -Running this command is not needed for using Kopia. Instead, most users should rely on periodic repository maintenance. See https://kopia.io/docs/maintenance/ for more information. +Running this command is not needed for using Kopia. Instead, most users should rely on periodic repository maintenance. See https://kopia.io/docs/advanced/maintenance/ for more information. To run this command despite the warning, set KOPIA_ADVANCED_COMMANDS=enabled `) diff --git a/site/content/docs/Advanced/Maintenance/_index.md b/site/content/docs/Advanced/Maintenance/_index.md index 29e89d8dc..4432c9e46 100644 --- a/site/content/docs/Advanced/Maintenance/_index.md +++ b/site/content/docs/Advanced/Maintenance/_index.md @@ -77,6 +77,22 @@ $ kopia maintenance run --full The current user must be the maintenance owner. +## Maintenance Safety + +Kopia's maintenance routine follows certain safety rules which rely on passage of time to ensure correctness. This is needed in case other Kopia clients are currently operating on the repository. To guarantee correctness, certain length of time must pass to ensure all caches and transient state are properly synchronized with the repository. Kopia must also also account for eventual consistency delays intoduced by the blob storage provider. + +This means that effects of full maintenance are not immediate - it may take several hours and/or multiple maintenance cycles to remove blobs that are not in use. + +Kopia 0.8 adds new flag that can be used to speed up full maintenance if the user can guarantee no kopia snapshots are being created. + +>WARNING: As the name implies, the `--safety=none` flag disables all safety features, so the user must ensure that no concurrent operations are happening and repository storage is properly in sync before attempting it. Failure to do so can introduce repository corruption. + +Example of running full maintenance with safety disabled: + +```shell +$ kopia maintenance run --full --safety=none +``` + ## Viewing Maintenance History To view the history of maintenance operations use `kopia maintenance info`, which will display the history of last 5 maintenance runs. diff --git a/site/content/docs/Release Notes/v0.8.md b/site/content/docs/Release Notes/v0.8.md index 9c5be2440..60833e1aa 100644 --- a/site/content/docs/Release Notes/v0.8.md +++ b/site/content/docs/Release Notes/v0.8.md @@ -15,6 +15,8 @@ There were over 150 changes by 19 contributors which represents a big growth in ### New Features: * [Full Maintenance](https://kopia.io/docs/advanced/maintenance/) is now enabled by default with an interval of 24 hours. +* Added support for configurable [Maintenance Safety](http://localhost:1313/docs/advanced/maintenance/#maintenance-safety) to speed up cleanups in certain cases. +* Added support for `--json` flag to certain CLI commands which will produce machine-readable snasphot, policy, manifest, blob and content responses. * Added support for scanning only one filesystem via files policy * Major improvements to ignore logic to better follow [.gitignore rules](https://git-scm.com/docs/gitignore). * Added support for [Actions](https://kopia.io/docs/advanced/actions/) which allow running custom scripts before and after a directory is snapshotted with lots of useful applications. @@ -47,6 +49,7 @@ There were over 150 changes by 19 contributors which represents a big growth in * S3 client - upgraded minio to v7 * rclone - testing improvements * S3, GCS, Azure, B2 - rewrote retry logic to retry on all but known fatal errors. +* S3 - support for buckets configured with object locking ### Infrastructure: @@ -55,6 +58,8 @@ There were over 150 changes by 19 contributors which represents a big growth in * Switched CI/CD infrastructure to GitHub actions with two self-hosted runners for ARMHF and ARM64 * Makefile: various tricks to make PR builds faster * S3: run tests against private minio deployment in docker (#894) +* SFTP: fixed retry logic +* RClone: improved error handling logic ## Compatibility Information @@ -66,3 +71,5 @@ There were over 150 changes by 19 contributors which represents a big growth in * Added explicit `--insecure` flag to `kopia server start` to prevent accidentally starting non-secured servers for development. Starting the server without TLS or without authentication now requires this flag. + +* Several low-level maintenance tools have been changed to support individual parameters with `--safety=full|none` flag instead of specific parameters which were unsafe. \ No newline at end of file