First pass at documentation for maintenance (#3830)
Assumes the addition of `--user` and `--hostname` flags Also unhides the maintenance command and mode flag --- #### Does this PR need a docs update or release note? - [ ] ✅ Yes, it's included - [ ] 🕐 Yes, but in a later PR - [x] ⛔ No #### Type of change - [ ] 🌻 Feature - [ ] 🐛 Bugfix - [x] 🗺️ Documentation - [ ] 🤖 Supportability/Tests - [ ] 💻 CI/Deployment - [ ] 🧹 Tech Debt/Cleanup #### Issue(s) * #3569 #### Test Plan - [x] 💪 Manual - [ ] ⚡ Unit test - [ ] 💚 E2E
This commit is contained in:
parent
140381fb80
commit
3efb67e110
@ -26,12 +26,9 @@ func AddMaintenanceModeFlag(cmd *cobra.Command) {
|
|||||||
&MaintenanceModeFV,
|
&MaintenanceModeFV,
|
||||||
MaintenanceModeFN,
|
MaintenanceModeFN,
|
||||||
repository.CompleteMaintenance.String(),
|
repository.CompleteMaintenance.String(),
|
||||||
"Type of maintenance operation to run. Pass '"+
|
"Type of maintenance operation to run ('"+
|
||||||
repository.MetadataMaintenance.String()+"' to run a faster maintenance "+
|
repository.MetadataMaintenance.String()+"' | '"+
|
||||||
"that does minimal clean-up and optimization. Pass '"+
|
repository.CompleteMaintenance.String()+"' )")
|
||||||
repository.CompleteMaintenance.String()+"' to fully compact existing "+
|
|
||||||
"data and delete unused data.")
|
|
||||||
cobra.CheckErr(fs.MarkHidden(MaintenanceModeFN))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func AddForceMaintenanceFlag(cmd *cobra.Command) {
|
func AddForceMaintenanceFlag(cmd *cobra.Command) {
|
||||||
|
|||||||
@ -38,12 +38,8 @@ func AddCommands(cmd *cobra.Command) {
|
|||||||
cmd.AddCommand(repoCmd)
|
cmd.AddCommand(repoCmd)
|
||||||
repoCmd.AddCommand(initCmd)
|
repoCmd.AddCommand(initCmd)
|
||||||
repoCmd.AddCommand(connectCmd)
|
repoCmd.AddCommand(connectCmd)
|
||||||
|
repoCmd.AddCommand(maintenanceCmd)
|
||||||
|
|
||||||
utils.AddCommand(
|
|
||||||
repoCmd,
|
|
||||||
maintenanceCmd,
|
|
||||||
utils.HideCommand(),
|
|
||||||
utils.MarkPreReleaseCommand())
|
|
||||||
flags.AddMaintenanceModeFlag(maintenanceCmd)
|
flags.AddMaintenanceModeFlag(maintenanceCmd)
|
||||||
flags.AddForceMaintenanceFlag(maintenanceCmd)
|
flags.AddForceMaintenanceFlag(maintenanceCmd)
|
||||||
flags.AddMaintenanceUserFlag(maintenanceCmd)
|
flags.AddMaintenanceUserFlag(maintenanceCmd)
|
||||||
|
|||||||
41
website/docs/setup/maintenance.md
Normal file
41
website/docs/setup/maintenance.md
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
---
|
||||||
|
description: "Repository maintenance."
|
||||||
|
---
|
||||||
|
|
||||||
|
# Repository maintenance
|
||||||
|
|
||||||
|
Repository maintenance helps optimize the Corso repository as backups are created and possibly deleted by the user.
|
||||||
|
Maintenance can also free up space by removing data no longer referenced by any backups from the repository.
|
||||||
|
|
||||||
|
It's safe to run maintenance concurrently with backup, restore, and backup deletion operations. However, it's not safe
|
||||||
|
to run maintenance operations concurrently on the same repository. Corso uses file locks and the idea of a repository
|
||||||
|
owner to try to detect concurrent maintenance operations.
|
||||||
|
|
||||||
|
## Repository owner
|
||||||
|
|
||||||
|
The repository owner is set to the user and hostname of the machine that runs maintenance on the repo the first time.
|
||||||
|
|
||||||
|
If the user and hostname of the machine running maintenance can change, use either the `--force` flag or the `--user`
|
||||||
|
and `--host` flags.
|
||||||
|
|
||||||
|
The `--force` flag updates the repository owner and runs maintenance.
|
||||||
|
|
||||||
|
The `--user` and `--host` flags act as if the given user/hostname owns the repository for the maintenance operation
|
||||||
|
but doesn't update repo owner info.
|
||||||
|
|
||||||
|
*If any of these flags are passed the user must make sure no concurrent maintenance operations run on the same
|
||||||
|
repository. Concurrent maintenance operations a repository may result in data loss.*
|
||||||
|
|
||||||
|
## Maintenance types
|
||||||
|
|
||||||
|
Corso allows for two different types of maintenance: `metadata` and `complete`.
|
||||||
|
|
||||||
|
Metadata maintenance runs quickly and optimizes indexing data. Complete maintenance takes more time but compacts data
|
||||||
|
in backups and removes unreferenced data from the repository.
|
||||||
|
|
||||||
|
As Corso allows concurrent backups during maintenance, running complete maintenance immediately after deleting a
|
||||||
|
backup may not result in a reduction of objects in the storage service Corso is backing up to.
|
||||||
|
|
||||||
|
Deletion of old objects in the storage service depends on both wall-clock time and running maintenance.
|
||||||
|
|
||||||
|
Later maintenance runs on the repository will remove the data.
|
||||||
@ -27,7 +27,8 @@ const sidebars = {
|
|||||||
'setup/configuration',
|
'setup/configuration',
|
||||||
'setup/repos',
|
'setup/repos',
|
||||||
'setup/fault-tolerance',
|
'setup/fault-tolerance',
|
||||||
'setup/restore-options'
|
'setup/restore-options',
|
||||||
|
'setup/maintenance'
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@ -58,3 +58,5 @@ deduplicating
|
|||||||
subtree
|
subtree
|
||||||
subtrees
|
subtrees
|
||||||
anonymized
|
anonymized
|
||||||
|
unreferenced
|
||||||
|
hostname
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user