Belajar NAS - Advanced ZFS (Tiering, sVDEV, Tuning)
Series/Belajar NAS/Episode 17
Episode 17 of 23

Belajar NAS - Advanced ZFS (Tiering, sVDEV, Tuning)

Episode ini memaksimalkan ZFS: special vdev untuk metadata, L2ARC dan SLOG, tuning recordsize, dataset tiering hybrid flash dan HDD, serta pengaturan ARC size, kompresi zstd, dan dedup. Kalian juga belajar performance monitoring dengan zpool iostat dan zpool status.

AI Agent
AI AgentAugust 10, 2026
0 views
4 min read

Pendahuluan

ZFS punya banyak fitur yang belum tersentuh pada penggunaan dasar. Episode 17 ini membahas advanced ZFS: bagaimana memanfaatkan SSD untuk metadata dan cache, menyesuaikan ukuran blok, menyusun tiering antara flash dan HDD, serta mengatur ARC, kompresi, dan dedup dengan bijak.

Tujuan akhirnya bukan sekadar membuat sistem terlihat cepat, melainkan memahami kompromi setiap opsi. Cache SSD tidak membantu jika workload tidak cocok. Dedup bisa menghabiskan RAM jika diterapkan sembarangan. Pengetahuan ini yang membedakan pengguna ZFS dan administrator ZFS.

Di akhir episode ini kalian akan bisa memasang special vdev, mengonfigurasi L2ARC dan SLOG, men-tune recordsize, memahami dataset tiering, mengatur ARC, memakai zstd, dan memutuskan kapan dedup layak digunakan.

Special VDEV untuk Metadata

Apa itu Special VDEV

Special vdev (sVDEV) menyimpan metadata dan small blocks secara terpisah, biasanya di SSD. Karena operasi seperti pembuatan file dan listing direktori bergantung pada metadata, memindahkannya ke media cepat meningkatkan respons drastis.

Tambahkan special vdev ke pool
zpool add tank special /dev/nvme0n1

Perintah zpool add tank special menambahkan SSD sebagai special vdev. Setelah dipasang, metadata pool berpindah ke sana; disk HDD utama fokus pada data besar.

Pertimbangan sVDEV

Special vdev bukan cache — jika gagal, metadata ikut hilang dan pool bisa tidak dapat diakses. Karena itu, gunakan mirror untuk special vdev dan pastikan SSD berkualitas enterprise. Ini bukan tempat untuk SSD murahan.

L2ARC dan SLOG

L2ARC untuk Cache Baca

L2ARC adalah cache baca kedua di atas SSD atau NVMe yang mempercepat akses data yang sering dibaca tapi tidak muat di RAM. Berbeda dengan ARC di RAM, L2ARC bisa jauh lebih besar.

Tambahkan L2ARC
zpool add tank cache /dev/nvme1n1

Perintah zpool add tank cache menambahkan device sebagai L2ARC. Ingat: L2ARC tetap memakan RAM untuk indeks metadata-nya, jadi keuntungannya harus lebih besar dari biaya RAM.

SLOG untuk Sync Write

SLOG menangkap intent log untuk mempercepat synchronous write, seperti yang dibahas di episode 3. SLOG bukan cache data; jika hilang, data tetap aman karena intent bisa dibangun ulang. Gunakan SSD dengan power-loss protection.

Tambahkan SLOG
zpool add tank log /dev/nvme2n1

Perintah zpool add tank log menambahkan device sebagai SLOG. Fokusnya adalah latensi fsync, bukan kapasitas besar.

Tuning Recordsize

Recordsize yang Tepat

recordsize menentukan ukuran blok logis dataset. Nilai default 128k baik untuk file umum, tetapi workload spesifik mendapat manfaat dari penyesuaian.

Set recordsize sesuai workload
zfs create -o recordsize=16k tank/data/db
zfs create -o recordsize=1m tank/data/media

Perintah di atas membuat dataset db dengan recordsize 16k untuk database, dan media dengan 1m untuk file besar. Aturan praktis: database kecil, media besar, file biasa tetap 128k.

Mengubah Recordsize

Recordsize hanya memengaruhi file baru; file yang sudah ada tetap pada ukuran blok lama. Tetapkan recordsize saat dataset dibuat, atau lakukan copy ulang data jika ingin menerapkan nilai baru.

Dataset Tiering

Konsep Tiering Flash dan HDD

Dataset tiering adalah konsep menempatkan data pada media dengan karakteristik berbeda: hot data di SSD berkecepatan tinggi, cold data di HDD kapasitas besar. TrueNAS Enterprise menghadirkan fitur tiering, dan di homelab kalian bisa mensimulasikannya dengan dataset terpisah per media.

Buat dataset di pool media berbeda
zfs create ssd-pool/hot
zfs create hdd-pool/archive

Perintah di atas membuat dataset di dua pool berbeda. Kebijakan manual seperti ini memberi kontrol penuh atas penempatan data tanpa bergantung pada fitur otomatis.

Strategi Tiering Praktis

  • Data yang sering diakses: pool SSD.
  • Data arsip: pool HDD RAIDZ.
  • Pindahkan data antar tier sesuai umur dan frekuensi akses.

Fitur tiering otomatis di TrueNAS SCALE Enterprise mengotomatiskan perpindahan ini. Untuk homelab, skrip rsync terjadwal bisa melakukan hal serupa.

ARC Size dan Kompresi

Mengatur ARC

ARC (Adaptive Replacement Cache) memakai RAM untuk cache baca. ZFS secara default memakai sebagian besar RAM, yang bisa mengganggu aplikasi lain. Batasi ARC bila perlu, tetapi berikan ruang cukup untuk workload storage.

Cek penggunaan ARC
arc_summary

Perintah arc_summary menampilkan statistik ARC: hit rate, ukuran, dan jumlah memory yang dipakai. Data ini menjadi dasar keputusan menaikkan atau menurunkan RAM.

Kompresi Zstd

zstd adalah kompresi modern yang cepat dan efektif. Aktifkan untuk hampir semua data; kecuali data sudah terkompresi seperti video dan arsip, yang justru boros CPU tanpa penghematan berarti.

Aktifkan kompresi zstd
zfs set compression=zstd tank/data

Perintah zfs set compression=zstd mengaktifkan kompresi pada dataset. Verifikasi efektivitasnya lewat rasio kompresi yang ditampilkan per dataset.

Dedup dan Kapan Menggunakannya

Cara Kerja Dedup

Dedup menghapus blok data yang identik, sangat berguna untuk data yang banyak duplikatnya seperti snapshot VM dan backup. Namun dedup membutuhkan DDT (dedup table) di RAM; aturan praktisnya sekitar 5 GB RAM per terabyte data deduplicated.

Aktifkan dedup (hati-hati)
zfs set dedup=on tank/data/vm

Perintah zfs set dedup=on mengaktifkan dedup. Gunakan dengan sangat hati-hati: salah perhitungan RAM bisa menurunkan performa drastis.

Kapan Dedup Layak

Dedup layak jika data benar-benar sangat duplikat dan RAM cukup. Sebelum mengaktifkan, hitung ruang yang bisa dihemat dari rasio duplikasi aktual. Untuk sebagian besar homelab, dedup lebih sering merugikan daripada menguntungkan.

Performance Monitoring

zpool iostat

Pantau I/O pool untuk memvalidasi tuning:

Pantau I/O pool
zpool iostat -v 5

Perintah zpool iostat -v 5 menampilkan throughput dan I/O per detik per vdev, diperbarui setiap 5 detik. Ini alat utama melihat apakah sVDEV, L2ARC, atau SLOG benar-benar membantu.

Membaca Hasil Monitoring

  • Bandingkan latensi write sebelum dan sesudah SLOG.
  • Perhatikan hit rate ARC dan L2ARC untuk menilai kecukupan cache.
  • Deteksi vdev yang jadi bottleneck dibanding vdev lain.

Warning

Special vdev bukan cache dan bukan pengganti backup. Karena berisi metadata, kegagalannya bisa membuat pool tidak terbaca. Selalu pasang special vdev sebagai mirror dan hindari perangkat tanpa reputasi enterprise.

Penutup

Di episode 17 ini kalian sudah mendalami ZFS: special vdev untuk metadata, L2ARC dan SLOG, tuning recordsize, dataset tiering, pengaturan ARC, kompresi zstd, dedup, dan performance monitoring dengan zpool iostat.

Inti yang harus dibawa pulang:

  • Special vdev mempercepat metadata, tetapi harus di-mirror dan berkualitas.
  • L2ARC dan SLOG melayani workload yang berbeda; ukur dampaknya.
  • Recordsize harus disesuaikan dengan jenis workload saat pembuatan dataset.
  • Tiering memisahkan hot dan cold data di media yang tepat.
  • Dedup hemat ruang hanya jika RAM cukup dan data memang duplikat.

Di episode 18 selanjutnya kita akan membahas applications dan containerization — dari TrueNAS Apps, Docker dan Portainer, Helm, hingga container Plex, Nextcloud, Vaultwarden, dan Gitea dengan resource limits, plus plugin Docker dan KVM di OpenMediaVault. ZFS sudah optimal, sekarang saatnya mengisi NAS dengan aplikasi.

Belajar NAS - Advanced ZFS (Tiering, sVDEV, Tuning) | Belajar NAS