Backup & Restore Homelab: Panduan Agar Data Tidak Hilang
Panduan lengkap backup dan restore homelab. Strategi 3-2-1, backup VM/LXC dengan Proxmox, backup Docker volume, dan cara memastikan backup bisa dipulihkan.
Backup adalah bagian terlambat yang paling sering dilewatkan orang yang baru memulai homelab. Server makin lama makin banyak isinya: foto, dokumen, konfigurasi, data aplikasi. Kalau disk rusak atau salah setting, semua itu hilang dalam hitungan detik.
Part ini membahas cara membuat backup yang benar-benar bisa dipulihkan, bukan sekadar menyalin file ke satu tempat.
Strategi 3-2-1
Aturan yang paling banyak dipakai administrator adalah 3-2-1:
- 3 salinan data
- 2 di media yang berbeda
- 1 di lokasi yang terpisah secara fisik
Contoh penerapannya: data asli di server, backup di NAS di rumah, dan satu salinan lagi di hard drive eksternal atau penyimpanan cloud.
Homelab pemula bisa mulai dari 2-1-1 (dua salinan, satu lokasi terpisah) dan naik bertahap. Yang penting bukan jumlahnya, tapi disiplin jadwalnya.
Apa Saja yang Perlu Dibackup
Sebelum mengatur tool, buat daftar aset yang nilainya tidak bisa diganti:
| Aset | Contoh | Cara backup |
|---|---|---|
| File pribadi | Foto, dokumen, project code | Rsync/Borg/Restic ke NAS |
| Database | PostgreSQL, MySQL | Dump SQL lalu backup file dump |
| Container state | Docker volume | Snapshot volume / vzdump |
| VM & LXC | Proxmox container | vzdump |
| Konfigurasi | Nginx, Cloudflare Tunnel, systemd | Rsync /etc + folder config di Git |
Backup Docker Volume
Container Docker menyimpan data di volume. Menyalin folder container tidak cukup karena strukturnya beda tergantung image.
Cara paling sederhana: berhentikan container dulu, lalu salin volume.
# Lihat daftar volume
docker volume ls
# Backup satu volume ke folder host
docker run --rm -v namavolume:/data -v /srv/backup:/backup alpine \
tar czf /backup/namavolume-$(date +%Y%m%d).tar.gz /data
Untuk service yang datanya di database, backup lewat dump lebih aman daripada menyalin file database langsung.
# Backup database PostgreSQL yang jalan di container
docker exec -t postgres pg_dump -U user dbname -F c -f /tmp/db.dump
# Tarik keluar file dump dari container
docker cp postgres:/tmp/db.dump /srv/backup/db-$(date +%Y%m%d).dump
Backup VM dan LXC di Proxmox
Kalau homelab kamu berjalan di Proxmox, tool bawaan bernama vzdump menangani backup VM dan LXC. Format vzdump mendukung mode stop (cool dan paling konsisten) dan mode snapshot (server tetap jalan saat backup).
# Backup semua container/VM ke storage backup
vzdump 101,102,103 --storage backup --mode snapshot \
--compress zstd --notes-template "Backup bulanan"
# Backup satu container saja
vzdump 103 --storage backup --mode snapshot --compress zstd
Kamu juga bisa menjadwalkannya lewat web UI: Datacenter > Backup, lalu tambah Backup Job dengan jadwal jam tertentu. Pilih retention supaya backup lama otomatis dihapus, misalnya simpan 7 hari harian dan 4 minggu mingguan.
Backup Konfigurasi dengan Restic
Untuk backup file dan folder ke NAS atau layanan cloud, Restic adalah pilihan yang solid: terenkripsi, deduplikasi, dan punya banyak backend (lokal, SFTP, S3, B2).
# Inisialisasi repository
restic -r /mnt/nas/restic init
# Backup folder penting
restic -r /mnt/nas/restic backup \
/etc \
/srv \
--exclude '*.log' \
--tag server1
# Cek snapshot yang sudah ada
restic -r /mnt/nas/restic snapshots
# Restore snapshot tertentu
restic -r /mnt/nas/restic restore latest --target /restore
Kunci dari Restic adalah tersimpan di luar server. Tulis passphrase-nya di tempat yang tidak ikut hilang jika server mati.
Otomasi Jadwal Backup
Manusia lupa. Jadwalkan backup dengan cron atau systemd timer agar berjalan tanpa perlu diingat.
# /etc/cron.d/backup-homelab
# Backup restic setiap hari pukul 02:00
0 2 * * * root /usr/local/bin/backup-daily.sh >> /var/log/backup.log 2>&1
Isi backup-daily.sh:
#!/bin/bash
set -euo pipefail
restic -r /mnt/nas/restic backup \
--tag home \
--exclude-caches \
/srv /opt /etc/nginx
Setelah itu, beri exec bit: chmod +x /usr/local/bin/backup-daily.sh.
Verifikasi: Backup Harus Bisa Dipulihkan
Backup yang tidak pernah diuji sama saja dengan tidak punya backup. Lakukan uji restore minimal sekali dalam satu atau dua bulan.
Cara murah untuk menguji: restore ke folder terpisah dan bandingkan checksum, atau jalankan container uji dari volume backup.
# Bandingkan checksum antara file asli dan hasil restore
find /srv -type f -exec sha256sum {} + > /tmp/asli.sha256
find /restore -type f -exec sha256sum {} + > /tmp/restore.sha256
# Diff dua list, outputnya harus kosong
diff /tmp/asli.sha256 /tmp/restore.sha256
Kalau isinya beda, artinya ada yang salah di proses backup. Perbaiki sebelum menunggu kejadian yang membutuhkannya.
Gunakan Alarm Jika Backup Gagal
Backup yang gagal diam-diam lebih buruk daripada tidak ada backup. Backup management bisa terintegrasi dengan dashboard monitoring, atau minimal kirim notifikasi ke aplikasi chat:
#!/bin/bash
if restic -r /mnt/nas/restic backup /srv; then
curl -fsS -X POST "https://ntfy.sh/homelab-alert" \
-H "Title: Backup OK" -d "Backup berhasil $(date)"
else
curl -fsS -X POST "https://ntfy.sh/homelab-alert" \
-H "Title: Backup GAGAL" -d "Periksa log: $(date)"
fi
Dengan begitu kegagalan langsung terlihat, bukan baru ketahuan pas data sudah hilang.
Apa yang Harus Dihindari
- Hanya satu lokasi penyimpanan. Kalau disk tersebut ikut hilang, backup tidak menolong.
- Skip verifikasi restore. File ada tapi corrupt di banyak titik, sama saja.
- Backup tanpa enkripsi ke cloud. Data pribadi kamu tersimpan apa adanya di server orang lain.
- Jadwal manual tanpa pengingat. Konsistensi lebih penting daripada tool yang canggih.
Ringkasan
Urutan kerja yang benar: inventarisasi data, pilih 2-3 lokasi penyimpanan, jadwalkan backup otomatis, dan uji restore secara berkala. Tool bisa datang belakangan; kebiasaannya yang harus lebih dulu.
Di part berikutnya kita akan masuk ke arah lain dari homelab yang siap produksi: melihat kondisi server dengan Grafana dan Prometheus, supaya masalah seperti disk penuh terdeteksi sebelum mengganggu service. Lanjut ke Part 10: Monitoring Server dengan Grafana & Prometheus.
Artikel Terkait
Monitoring Server dengan Grafana & Prometheus
Panduan monitoring homelab dengan Grafana dan Prometheus. Install node_exporter, scrape metrics, buat dashboard, dan pasang alert supaya masalah ketahuan lebih awal.
HomelabBeli Server Kantor atau Barebone Murah? Panduan Lengkap untuk Homelab dan Tempat Usaha
Panduan lengkap beli server bekas kantor atau barebone murah untuk homelab dan tempat usaha. Perbandingan harga, spesifikasi, dan tips memilih yang tepat.
HomelabCloudflare Tunnel: Akses Homelab dari Mana Aja Tanpa Port Forwarding
Panduan lengkap setup Cloudflare Tunnel untuk mengakses homelab dari mana saja. Aman, gratis, dan tidak butuh port forwarding.
Ide kamu layak dibaca ribuan orang.
ByteNesia dibangun untuk semua orang. Kalau kamu punya pengalaman, tutorial, atau opini tentang teknologi, tulis dan bagikan lewat sini. Nama kamu akan tercantum sebagai kontributor.
Tulis apa saja: review tools, tutorial homelab, tips security, atau cerita pengalaman tech kamu.