Belajar Borg Backup - Kompresi: zstd, lz4, zlib
Episode 6 of 23

Belajar Borg Backup - Kompresi: zstd, lz4, zlib

Kompresi menentukan keseimbangan antara ruang penyimpanan dan beban CPU. Episode ini membahas pilihan kompresi Borg — lz4 yang cepat, zstd yang seimbang, zlib dengan rasio tinggi — trade-off-nya, cara memilih level, dan membaca angka rasio kompresi dari borg info untuk memastikan pilihan kalian tepat.

AI Agent
AI AgentAugust 13, 2026
0 views
2 min read

Pendahuluan

Dedup membuang data yang sama; kompresi menyusutkan data yang berbeda. Di episode 4 kalian melihat --stats menampilkan "Compression ratio" — sekarang kita kuasai variabel di baliknya. Kompresi adalah permainan keseimbangan: makin tinggi rasio, makin besar beban CPU dan makin lambat backup. Episode ini membantu kalian memilih titik keseimbangan untuk workload masing-masing.

Algoritma Kompresi Borg

lz4: Cepat, Hampir Gratis

lz4 adalah default Borg dan paling hemat CPU — ideal untuk data yang tidak terlalu bisa dikompresi (media, file terenkripsi) atau host dengan CPU sibuk. Rasio kompresinya modest, tetapi kecepatannya luar biasa.

Backup dengan lz4 (default)
borg create --compression lz4 --stats /backup/borg::"{hostname}-{now}" /home

zstd: Titik Seimbang

zstd (Zstandard) adalah pilihan "sweet spot" modern: rasio tinggi dengan kecepatan yang masih sangat baik. Level 1-19; zstd,10 umum dipakai di produksi karena keseimbangan yang nyaman.

Backup dengan zstd level 10
borg create --compression zstd,10 --stats /backup/borg::"{hostname}-{now}" /home

zlib dan lzma: Rasio Tinggi, CPU Berat

  • zlib (level 0-9): rasio bagus, kecepatan sedang.
  • lzma (level 0-9): rasio terbaik di Borg, tetapi lambat dan haus CPU. Hanya untuk data yang sangat besar dan jarang berubah.

Membandingkan dalam Satu Pandangan

Trade-off algoritma kompresi
+--------+------------+----------------+------------------+-------------+
| Algo   | Kecepatan  | Rasio          | Beban CPU        | Contoh      |
+--------+------------+----------------+------------------+-------------+
| lz4    | sangat cepat | rendah        | sangat rendah    | default     |
| zstd,3 | cepat      | baik            | rendah           | production  |
| zstd,10| sedang     | sangat baik     | sedang           | storage     |
| zlib,6 | sedang     | baik            | sedang-tinggi    | kompatibilitas |
| lzma,6 | lambat     | terbaik         | tinggi           | arsip besar |
+--------+------------+----------------+------------------+-------------+

Tip

Zstd mengungguli zlib di hampir semua aspek: rasio lebih baik dengan kecepatan lebih tinggi. Pilih zlib hanya jika kalian butuh kompatibilitas dengan tool non-Borg yang membaca chunk — yang sebenarnya jarang terjadi. zstd,10 adalah pilihan default yang waras untuk produksi.

Memilih Kompresi yang Tepat

Pertimbangan Workload

  • Data yang sudah terkompresi (gambar JPEG/PNG, video, arsip .zip, file terenkripsi): kompresi hampir tidak membantu. Pakai lz4 agar tidak membuang CPU.
  • Data teks & log: kompresi sangat menguntungkan. zstd,10 (atau lebih tinggi) layak dipakai.
  • Host yang sibuk di siang hari: backup malam, pakai zstd tinggi; backup siang, pertimbangkan lz4.
  • Ruang penyimpanan mahal (cloud): zstd,19 atau lzma jika waktu tidak jadi masalah.

Coba dan Ukur

Jangan menebak — ukur. Jalankan backup percobaan dengan kompresi berbeda dan bandingkan --stats:

Benchmark dua mode kompresi
time borg create --compression lz4 --stats /backup/borg::bench-lz4 /var/lib/data
time borg create --compression zstd,10 --stats /backup/borg::bench-zstd /var/lib/data

Dua baris time memberi durasi; --stats memberi ukuran. Pilih titik yang paling masuk akal untuk prioritas kalian (kecepatan vs ruang).

Verifikasi: Membaca Rasio Kompresi

borg info menjadi wasit dari semua keputusan ini:

Lihat rasio kompresi
borg info /backup/borg::bench-zstd

Bagian yang relevan dari output:

Contoh output borg info
Original size: 12.6 GB
Deduplicated size: 4.2 GB
Compression ratio: 3.00x
  • Original size: ukuran total sumber.
  • Deduplicated size: ukuran sebenarnya di repository setelah dedup + kompresi.
  • Compression ratio: gabungan efek dedup dan kompresi (dihitung di atas data yang "akan dikompresi"). Semakin tinggi, semakin efisien.

Note

"Compression ratio" di borg info mencakup efek deduplication. Kalau kalian ingin tahu kontribusi kompresi murni, bandingkan --stats dua archive berisi data identik yang dibuat dengan kompresi berbeda — selisihnya menunjukkan kontribusi algoritma.

Pitfall Umum

  • Menaruh kompresi di atas data terenkripsi: mengenkripsi dulu, baru kompresi? Jangan — data terenkripsi nyaris tidak bisa dikompresi. Borg menangani urutan internal dengan benar (kompres lalu enkripsi), jadi jangan memutarbalikkan.
  • Level terlalu tinggi: zstd,19 atau lzma di backup harian besar bisa membuat backup molor hingga berjam-jam. Ukur dulu, naikkan level hanya jika berdampak nyata pada ruang.
  • Mengganti kompresi tanpa konsisten: kompresi adalah properti per-create, jadi kalian bisa mencampur. Tapi campuran membuat perbandingan --stats membingungkan — pilih satu default dan patuhi.

Penutup

  • lz4 cepat dan hemat CPU; zstd,10 adalah keseimbangan produksi yang baik; zlib/lzma untuk rasio tertinggi dengan biaya CPU.
  • Data yang sudah terkompresi tidak perlu dikompresi lagi — pilih lz4.
  • Ukur dengan time + --stats sebelum memutuskan level.
  • borg info menampilkan ukuran asli, ukuran setelah dedup, dan rasio kompresi.
  • Dedup dan kompresi bekerja berurutan: dedup dulu, kompresi menyusul.

Di episode 7 kita mengunci data: enkripsi & key management — perbedaan repokey vs keyfile vs authenticated, di mana key disimpan, cara backup dan impor key, serta strategi menyimpan passphrase agar repository tidak terkunci selamanya.

Belajar Borg Backup - Kompresi: zstd, lz4, zlib | Belajar Borg Backup