Filesystem yang sehat bukanlah kebetulan — dia dipantau. Episode ini membahas tool monitoring df, du, iostat, btrfs device stats, zpool status/iostat, SMART dengan smartctl, integrasi Prometheus dan node_exporter, serta jadwal scrub dan alerting untuk mendeteksi korupsi sebelum menjadi bencana.

Sebagian besar masalah storage terdeteksi lebih awal — tanda-tandanya ada di df, smartctl, dan zpool status jauh sebelum data benar-benar hilang. Episode 17 ini membahas bagaimana memantau filesystem secara menyeluruh: dari tool satu-liner hingga integrasi monitoring penuh dengan Prometheus.
Monitoring bukan sekadar melihat angka, melainkan membangun sistem peringatan: kapan harus bertindak, kapan menunggu, dan kapan mengganti disk. Kita juga membahas scrub dan resilver — dua proses yang menjaga integritas data aktif di filesystem COW.
Di akhir episode, kalian akan punya daftar lengkap metrik yang wajib dipantau beserta ambang batasnya.
df melaporkan kapasitas dan pemakaian filesystem; du menghitung pemakaian direktori:
df -hT
du -sh /var/lib/dockerPerhatikan perbedaan keduanya: df membaca metadata filesystem, sedangkan du menghitung dari isi direktori. Selisih besar antara keduanya menandakan file yang dihapus tapi masih terbuka proses (space not released), atau COW filesystem yang menyimpan blok lama.
Untuk mencari konsumen ruang terbesar:
du -xh --max-depth=1 /var 2>/dev/null | sort -rh | head -10iostat menampilkan performa per perangkat; vmstat membaca aktivitas sistem:
iostat -x 5
vmstat 5Kolom yang paling berarti: %util, await, r/s, w/s pada iostat, dan wa pada vmstat. %util mendekati 100 persen dengan await tinggi adalah tanda antrian penuh.
btrfs mencatat jumlah kesalahan per perangkat:
sudo btrfs device stats /mnt/lab
sudo btrfs filesystem usage /mnt/labOutput menampilkan penghitung seperti write_io_errs, read_io_errs, flush_io_errs, corruption_errs, dan generation_errs. Angka bukan nol yang bertambah adalah tanda kerusakan — periksa dengan btrfs scrub.
zpool status adalah dashboard kesehatan pool:
zpool status
zpool iostat -v 5Perhatikan kolom CKSUM dan REPAIR — keduanya harus nol. Status pool harus ONLINE; status DEGRADED berarti ada vdev yang gagal atau sedang resilver.
SMART (Self-Monitoring, Analysis and Reporting Technology) adalah telemetri bawaan disk. smartctl dari paket smartmontools membacanya:
sudo smartctl -a /dev/sda
sudo smartctl -H /dev/sdasmartctl -H menampilkan overall health; -a menampilkan atribut lengkap. Atribut yang paling penting untuk dipantau:
Lakukan tes offline untuk deteksi dini:
sudo smartctl -t offline /dev/sda
sudo smartctl -l selftest /dev/sdaBeberapa atribut hanya diperbarui saat disk sedang dipakai. Atur pemindaian terjadwal agar nilai terbaru selalu tersedia:
sudo smartctl -o on /dev/sda
sudo smartctl -S on /dev/sda-o on mengaktifkan self-test offline otomatis, -S on mengaktifkan attribute autosave.
Scrub membaca seluruh data dan memverifikasi checksum. Jadwalkan rutin di luar jam sibuk, karena scrub yang berjalan bersama beban produksi menurunkan performa:
30 2 * * 0 sudo btrfs scrub start /mnt/lab
30 3 * * 0 sudo zpool scrub labpoolResilver adalah proses memulihkan data saat disk diganti dalam vdev mirror/RAIDZ. Jalankan setelah mengganti disk, dan jangan menambah beban berat selama proses berjalan — resilver membaca seluruh data dari disk yang tersisa:
sudo zpool replace labpool /dev/sdb /dev/sdc
zpool statusStatus resilvering muncul saat proses berjalan.
node_exporter mengekspos metrik filesystem dan disk ke Prometheus:
node_exporter --collector.filesystem --collector.diskstats --collector.smartmonitorMetrik penting yang muncul di endpoint /metrics:
node_filesystem_avail_bytes dan node_filesystem_size_bytes: kapasitas.node_disk_read_bytes_total dan write_bytes_total: throughput.node_disk_io_time_seconds_total: waktu aktif perangkat.node_smartmon_reallocated_sector_s: sektor reallocated dari smartctl.Contoh aturan Prometheus untuk ambang batas:
groups:
- name: storage.rules
rules:
- alert: DiskAlmostFull
expr: node_filesystem_avail_bytes / node_filesystem_size_bytes < 0.1
for: 30m
labels:
severity: warning
- alert: ZpoolDegraded
expr: node_zfs_pool_health != 1
labels:
severity: criticalnode_zfs_pool_health mengekspos status health pool sebagai angka. Dengan aturan di atas, kalian diberi tahu lebih awal — jauh sebelum data hilang.
Info
Monitoring mengubah filesystem dari kotak hitam menjadi sistem yang bisa diprediksi. df, du, dan iostat memberi pandangan harian; btrfs device stats dan zpool status menjaga integritas; SMART memperingatkan kerusakan fisik; dan Prometheus mengotomatisasi semua pengawasan itu.
Inti yang harus dibawa pulang:
df dan pemakaian dengan du secara rutin.btrfs device stats dan zpool status menampilkan kesehatan filesystem COW.Di episode 18 selanjutnya kita membahas filesystem selection guide — panduan memilih ext4, XFS, btrfs, ZFS, dan tmpfs berdasarkan kebutuhan, lengkap dengan tradeoff fitur, overhead RAM, dan dukungan vendor. Kalian akan mendapat kerangka keputusan yang bisa dipakai di proyek nyata.