mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2024-11-23 12:31:07 +01:00
135 lines
3.8 KiB
Plaintext
135 lines
3.8 KiB
Plaintext
|
---
|
||
|
sort: 5
|
||
|
---
|
||
|
|
||
|
# vmbackupmanager
|
||
|
|
||
|
## vmbackupmanager is proprietary software.
|
||
|
|
||
|
Before using it, you must have signed contract and accept EULA https://victoriametrics.com/assets/VM_EULA.pdf
|
||
|
|
||
|
## Usage examples
|
||
|
|
||
|
`VMSingle` and `VMCluster` has built-in backup configuration, it uses `vmbackupmanager` - proprietary tool for backups.
|
||
|
It supports incremental backups (hours, daily, etc) with popular object storages (aws s3, google cloud storage).
|
||
|
|
||
|
You can enable it with the simple configuration, define secret
|
||
|
|
||
|
```yaml
|
||
|
---
|
||
|
apiVersion: v1
|
||
|
kind: Secret
|
||
|
metadata:
|
||
|
name: remote-storage-keys
|
||
|
type: Opaque
|
||
|
stringData:
|
||
|
credentials: |-
|
||
|
[default]
|
||
|
aws_access_key_id = your_access_key_id
|
||
|
aws_secret_access_key = your_secret_access_key
|
||
|
---
|
||
|
apiVersion: operator.victoriametrics.com/v1beta1
|
||
|
kind: VMSingle
|
||
|
metadata:
|
||
|
name: example-vmsingle
|
||
|
spec:
|
||
|
# Add fields here
|
||
|
retentionPeriod: "1"
|
||
|
vmBackup:
|
||
|
# This is Enterprise Package feature you need to have signed contract to use it
|
||
|
# and accept the EULA https://victoriametrics.com/assets/VM_EULA.pdf
|
||
|
acceptEULA: true
|
||
|
destination: "s3://your_bucket/folder"
|
||
|
credentialsSecret:
|
||
|
name: remote-storage-keys
|
||
|
key: credentials
|
||
|
---
|
||
|
apiVersion: operator.victoriametrics.com/v1beta1
|
||
|
kind: VMCluster
|
||
|
metadata:
|
||
|
name: example-vmcluster-persistent
|
||
|
spec:
|
||
|
retentionPeriod: "4"
|
||
|
replicationFactor: 2
|
||
|
vmstorage:
|
||
|
replicaCount: 2
|
||
|
vmBackup:
|
||
|
# This is Enterprise Package feature you need to have signed contract to use it
|
||
|
# and accept the EULA https://victoriametrics.com/assets/VM_EULA.pdf
|
||
|
acceptEULA: true
|
||
|
destination: "s3://your_bucket/folder"
|
||
|
credentialsSecret:
|
||
|
name: remote-storage-keys
|
||
|
key: credentials
|
||
|
|
||
|
```
|
||
|
|
||
|
NOTE: for cluster version operator adds suffix for `destination: "s3://your_bucket/folder"`, it becomes `"s3://your_bucket/folder/$(POD_NAME)"`.
|
||
|
It's needed to make consistent backups for each storage node.
|
||
|
|
||
|
You can read more about backup configuration options and mechanics [here](https://github.com/VictoriaMetrics/VictoriaMetrics/tree/master/app/vmbackup)
|
||
|
|
||
|
Possible configuration options for backup crd can be found at [link](/docs/api.html#vmbackup)
|
||
|
|
||
|
|
||
|
## Restoring backups
|
||
|
|
||
|
|
||
|
It can be done with [vmrestore](https://github.com/VictoriaMetrics/VictoriaMetrics/tree/master/app/vmrestore)
|
||
|
|
||
|
There two ways:
|
||
|
|
||
|
First:
|
||
|
You have to stop `VMSingle` by scaling it replicas to zero and manually restore data to the database directory.
|
||
|
|
||
|
Steps:
|
||
|
1) edit `VMSingle` CRD, set replicaCount: 0
|
||
|
2) wait until database stops
|
||
|
3) ssh to some server, where you can mount `VMSingle` disk and mount it manually
|
||
|
4) restore files with `vmrestore`
|
||
|
5) umount disk
|
||
|
6) edit `VMSingle` CRD, set replicaCount: 1
|
||
|
7) wait database start
|
||
|
|
||
|
Second:
|
||
|
|
||
|
1) add init container with vmrestore command to `VMSingle` CRD, example:
|
||
|
```yaml
|
||
|
apiVersion: operator.victoriametrics.com/v1beta1
|
||
|
kind: VMSingle
|
||
|
metadata:
|
||
|
name: vmsingle-restored
|
||
|
namespace: monitoring-system
|
||
|
spec:
|
||
|
initContainers:
|
||
|
- name: vmrestore
|
||
|
image: victoriametrics/vmrestore:latest
|
||
|
volumeMounts:
|
||
|
- mountPath: /victoria-metrics-data
|
||
|
name: data
|
||
|
- mountPath: /etc/vm/creds
|
||
|
name: secret-remote-storage-keys
|
||
|
readOnly: true
|
||
|
args:
|
||
|
- -storageDataPath=/victoria-metrics-data
|
||
|
- -src=s3://your_bucket/folder/latest
|
||
|
- -credsFilePath=/etc/vm/creds/credentials
|
||
|
vmBackup:
|
||
|
# This is Enterprise Package feature you need to have signed contract to use it
|
||
|
# and accept the EULA https://victoriametrics.com/assets/VM_EULA.pdf
|
||
|
acceptEULA: true
|
||
|
destination: "s3://your_bucket/folder"
|
||
|
extraArgs:
|
||
|
runOnStart: "true"
|
||
|
image:
|
||
|
repository: victoriametrics/vmbackupmanager
|
||
|
tag: v1.67.0-enterprise
|
||
|
credentialsSecret:
|
||
|
name: remote-storage-keys
|
||
|
key: credentials
|
||
|
|
||
|
```
|
||
|
2) apply it, and db will be restored from s3
|
||
|
|
||
|
3) remove initContainers and apply crd.
|