Menyetel BackupTarget Longhorn ke NFS atau S3, menjadwalkan recurring job untuk snapshot harian dan backup mingguan dengan retensi, memahami backup incremental berbasis change-block detection, serta menyiapkan autentikasi S3 yang aman.

Snapshot (episode 14) menyimpan data di cluster yang sama — berguna untuk rollback cepat, tapi tidak menyelamatkan kalau cluster musnah. Episode 15 membangun lapisan berikutnya: backup off-site ke NFS atau S3, dijalankan terjadwal lewat recurring job.
Mengapa penting? Backup adalah asuransi terakhir. Dengan recurring job + retensi otomatis, strategi cadangan berjalan sendiri tanpa campur tangan manusia — dan kalian tinggal menenangkan diri ketika malapetaka. Di episode 16 kita baru memulihkannya.
Buka dashboard → Setting → BackupTarget lalu isi salah satu format:
# NFS
nfs://10.0.0.10:/srv/longhorn-backups
# S3 (MinIO/AWS)
s3://my-bucket@us-east-1/backupsCatatan untuk S3: jika memakai endpoint kustom (MinIO), isi juga BackupTarget Secret (AWS key) di form yang sama serta endpoint URL di bagian target.
Buka volume data-postgres-0 → Create Backup. Longhorn mengunggah blok data ke target. Backup pertama berukuran penuh; berikutnya incremental — hanya blok yang berubah terkirim (change-block detection). Ini menghemat bandwidth & biaya S3 dramatically.
Recurring job memungkinkan backup otomatis: jadwal snapshot harian, backup mingguan, dan simpan N terbaru.
Di UI atau via manifest:
apiVersion: longhorn.io/v1beta2
kind: RecurringJob
metadata:
name: rj-backup-weekly
spec:
cron: "0 3 * * 0"
task: backup
retain: 4
concurrency: 2
labels:
backup-type: weeklyMapper tugas yang tersedia:
| Task | Keterangan |
|---|---|
snapshot | Buat snapshot lokal |
backup | Buat backup incremental ke target |
snapshot-force-create | Snapshot tanpa menunggu engine idle |
backup-mandatory | Backup penuh setiap kali |
restore | Restore backup terbaru |
Pasang ke volume tertentu:
volumeRecurringJob:
- name: rj-snapshot-daily
isGroup: false
isPaused: false
retain: 7atau tetapkan via label volume: longhorn.io/recurring-job: rj-snapshot-daily. Dengan begitu volume PostgreSQL otomatis di-snapshot tiap kron & di-backup mingguan, dengan retensi 7 (hari) dan 4 (minggu).
Saat setiap backup, Longhorn hanya mengunggah blok yang berubah sejak backup terakhir — bukan seluruh volume. Keuntungan:
Catatan: backup pertama selalu penuh (base). Backup berikutnya incremental dengan referensi ke base.
Backup Longhorn mendukung kompresi (parameter backupCompressionMethod) dan pengaturan bandwidth (setting: backupconcurrencylimit). Sesuaikan agar backup tidak memboroskan bandwidth production.
Untuk S3, secret disimpan di namespace longhorn-system (episode 12):
kubectl -n longhorn-system create secret generic aws-backup-secret \
--from-literal=AWS_ACCESS_KEY_ID=AKIA... \
--from-literal=AWS_SECRET_ACCESS_KEY=...Pastikan region & bucket sesuai yang dikonfigurasi di BackupTarget. Untuk MinIO, tambahkan AWS_ENDPOINT di secret/endpoint setting.
kubectl -n longhorn-system get settings longhorn-backup-target -o yaml
kubectl -n longhorn-system get backups.longhorn.ioSetiap backup yang berhasil tampil sebagai entitas backups.longhorn.io — bisa di-restore ke volume baru.
Warning
Backup terenkripsi (episode 13) aman off-site. Backup tanpa enkripsi ke S3 publik adalah kebocoran data tinggal tunggu waktu. Selalu kombinasi: enkripsi volume + kredensial S3 dengan IAM least-privilege, dan bucket pribadi.
Inti yang harus dibawa pulang:
nfs://...) atau S3 (s3://bucket@region/path).Di episode 16 selanjutnya kita akan membahas disaster recovery & restore flow — mengembalikan backup ke cluster baru, cross-cluster DR volume, jadwal test restore, dan menentukan target RPO/RTO. Sampai jumpa di episode 16!