Skip to content

Commit 96ec53d

Browse files
committed
Update kubernetes operations backup section
1 parent d2d846f commit 96ec53d

File tree

1 file changed

+34
-59
lines changed

1 file changed

+34
-59
lines changed

modules/ROOT/pages/kubernetes/operations/backup-restore.adoc

Lines changed: 34 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -8,64 +8,30 @@ For performing backups, Neo4j uses the _Admin Service_, which is only available
88
For more information, see xref:kubernetes/accessing-neo4j.adoc[Accessing Neo4j].
99
====
1010

11-
[[kubernetes-backup-modes]]
12-
== Backup modes
11+
[[kubernetes-backup-storage-options]]
12+
== Backup storage options
1313

14-
Neo4j's Helm chart supports two backup modes:
14+
Neo4j's Helm chart supports both full and differential backups and can be configured to use cloud providers or local storage.
1515

16-
=== Cloud provider mode
17-
Uses Neo4j's native cloud storage integration with direct upload to create immutable backup objects:
16+
=== Cloud storage
1817

19-
* **Supported providers**: AWS S3, Google Cloud Storage, Azure Blob Storage
20-
* **Benefits**: No persistent volume requirements, supports differential backups, immutable backup objects
21-
* **Configuration**: Set `cloudProvider` to `aws`, `gcp`, or `azure`
18+
Neo4j Helm chart uses Neo4j's native cloud storage integration with direct upload to create immutable backup objects.
19+
This allows you to back up your Neo4j databases directly to cloud storage without the need for persistent volumes.
20+
The chart can be configured to use cloud providers, such as AWS S3, Google Cloud Storage, and Azure Blob Storage, by setting the `cloudProvider` parameter to `aws`, `gcp`, or `azure` in the _backup-values.yaml_ file.
2221

23-
=== Local mode
24-
Creates local backups in `/backups` mount:
22+
The following features are supported:
2523

26-
* **Requirements**: Persistent storage for large databases (configured via `tempVolume`)
27-
* **Configuration**: Leave `cloudProvider` empty
24+
* *Direct cloud storage upload* - No intermediate local storage required.
25+
* *Differential backup chains* with `preferDiffAsParent: true`.
26+
* *Immutable backup objects* in cloud storage.
27+
* *Support for S3-compatible endpoints*.
28+
* *Enhanced S3 configuration* including custom CA certificates and endpoint settings.
2829

29-
[[kubernetes-cloud-native-features]]
30-
== Cloud-native backup features
30+
=== Local storage
3131

32-
When using cloud providers, Neo4j's native backup provides:
33-
34-
* **Direct cloud storage upload** - No intermediate local storage required
35-
* **Differential backup chains** with `preferDiffAsParent: true`
36-
* **Immutable backup objects** in cloud storage
37-
* **Support for S3-compatible endpoints**
38-
* **Enhanced S3 configuration** including custom CA certificates and endpoint settings
39-
40-
[[kubernetes-differential-backups]]
41-
== Differential backups
42-
43-
For cloud providers, differential backups eliminate the need for persistent volumes:
44-
45-
[source, yaml, subs="attributes+,+macros"]
46-
----
47-
backup:
48-
cloudProvider: "aws"
49-
bucketName: "my-backups"
50-
preferDiffAsParent: true
51-
type: "AUTO" # First backup will be FULL, subsequent ones DIFF
52-
fallbackToFull: true # Fallback to FULL if DIFF fails
53-
----
54-
55-
**How it works:**
56-
57-
1. First backup creates a FULL backup in cloud storage
58-
2. Subsequent backups create DIFF backups that reference the cloud-stored FULL backup
59-
3. No local storage of previous backups required
60-
61-
[NOTE]
62-
====
63-
**`preferDiffAsParent` is fully supported and eliminates the need for persistent volumes!**
64-
65-
* **Helm Value**: `backup.preferDiffAsParent: true`
66-
* **Cloud-Native**: DIFF backups reference cloud-stored FULL backups directly
67-
* **No PV Required**: Previous backups don't need to be stored locally
68-
====
32+
Local storage creates local backups in the `/backups` mount.
33+
This mount must be configured to use a persistent storage for large databases using `tempVolume`.
34+
The `cloudProvider` must be empty.
6935

7036
[[kubernetes-neo4j-backup-cloud]]
7137
== Prepare to back up a database(s) to a cloud provider (AWS, GCP, and Azure) bucket
@@ -91,6 +57,12 @@ For more information, see link:https://min.io/docs/minio/linux/integrations/aws-
9157
* The latest Neo4j Helm charts.
9258
You can update the repository to get the latest charts using `helm repo update`.
9359

60+
[NOTE]
61+
====
62+
When using cloud providers, differential backups do not require persistent volumes with previous backups.
63+
Instead, the chart will first create a full backup in the cloud storage, and then, the subsequent backups will be differential backups that reference this full backup.
64+
====
65+
9466
=== Create a Kubernetes secret
9567

9668
You can create a Kubernetes secret with the credentials that can access the cloud provider bucket using one of the following options:
@@ -366,7 +338,8 @@ tempVolume:
366338

367339
[NOTE]
368340
====
369-
You need to create the persistent volume and persistent volume claim before installing the _neo4j-admin_ Helm chart.
341+
You need to create the persistent volume and persistent volume claim before installing the _neo4j-admin_ Helm chart only when using local storage.
342+
When using cloud providers, persistent volumes are not required for differential backups.
370343
For more information, see xref:kubernetes/persistent-volumes.adoc[Volume mounts and persistent volumes].
371344
====
372345

@@ -508,7 +481,7 @@ When configuring the _backup-values.yaml_ file, keep the “cloudProvider” fie
508481

509482
[NOTE]
510483
====
511-
You need to create the persistent volume and persistent volume claim before installing the _neo4j-admin_ Helm chart.
484+
You need to create the persistent volume and persistent volume claim before installing the _neo4j-admin_ Helm chart only when using local storage.
512485
For more information, see xref:kubernetes/persistent-volumes.adoc[Volume mounts and persistent volumes].
513486
====
514487

@@ -1081,15 +1054,17 @@ To restore the `system` database, follow the steps described in xref:kubernetes/
10811054
====
10821055

10831056
[[kubernetes-backup-migration]]
1084-
== Migration from traditional to cloud-native backups
1057+
== Migrate from traditional to cloud-native backups
10851058

10861059
To migrate from persistent volume-based backups to cloud-native:
10871060

1088-
1. **Perform final traditional backup**
1089-
2. **Upload existing backups to cloud storage** (if needed)
1090-
3. **Update configuration** to use cloud provider
1091-
4. **Remove persistent volume configuration**
1092-
5. **Enable `preferDiffAsParent`** for future differential backups
1061+
1. **Perform a final traditional backup** to ensure you have the latest data.
1062+
For more information, see <<kubernetes-neo4j-backup-on-prem, Prepare to back up a database(s) to on-premises storage>> and <<kubernetes-neo4j-backup, Back up your databases>>.
1063+
2. **Upload existing backups to the cloud storage bucket** if needed.
1064+
You can use cloud provider CLI tools such as `aws s3 cp`, `gsutil cp`, or `az storage blob upload` to transfer your backup files.
1065+
3. **Update configuration** to use cloud provider by setting the `cloudProvider` parameter.
1066+
4. **Remove persistent volume configuration** from your _backup-values.yaml_ file.
1067+
5. **Enable `preferDiffAsParent`** for future differential backups.
10931068

10941069
.Example migration
10951070
[source, yaml]

0 commit comments

Comments
 (0)