ZFS menggabungkan filesystem dan volume manager dalam satu entitas dengan checksum dan self-healing. Episode ini membahas pool dan vdev, dataset filesystem dan zvol, snapshot serta clone, send/receive, dan scrub untuk menjamin integritas data.

ZFS adalah lompatan terbesar dalam sejarah filesystem Linux. ZFS bukan sekadar filesystem — dia juga volume manager, RAID controller, dan checksum verifier yang digabung menjadi satu. Konsekuensinya: kalian membuat pool di atas disk mentah, lalu menciptakan dataset di dalamnya tanpa memikirkan partisi, MD RAID, atau LVM secara terpisah.
Episode ini membahas arsitektur pool dan vdev, konsep dataset (filesystem dan zvol), snapshot dan clone, send/receive untuk replikasi, serta scrub untuk menjaga integritas. Perhatikan bahwa konsep snapshot ZFS hampir sama dengan btrfs dari episode sebelumnya, tapi implementasi pool dan dataset adalah sesuatu yang tidak dimiliki btrfs.
Sebelum lanjut, pastikan OpenZFS terinstall dan module kernelnya dimuat. Verifikasi dengan zpool dan zfs.
Pool adalah kumpulan storage yang dikelola ZFS. Di dalam pool ada satu atau lebih vdev (virtual device). Ada tiga jenis vdev:
Cek pool yang sudah ada:
zpool status
zpool listzpool status adalah gerbang diagnostik utama — dari situ kalian melihat health pool, ukuran vdev, dan error checksum.
Buat pool dari dua disk dalam mode mirror:
sudo zpool create -f labpool mirror /dev/loop0 /dev/loop1
zpool status labpool-f memaksa meski perangkat sudah berisi data (gunakan dengan hati-hati). Karena ZFS menulis sendiri struktur di seluruh disk, tidak ada partisi atau MD RAID di bawahnya — perangkat diberikan mentah ke ZFS.
Melihat hasil dengan:
zpool list labpool
sudo zpool iostat -v labpoolDataset adalah unit logis di dalam pool tempat file disimpan. Setiap dataset bisa memiliki mount point, kompresi, quota, dan properti sendiri:
sudo zfs create labpool/data
sudo zfs set compression=lz4 labpool/data
sudo zfs set quota=500M labpool/data
zfs list -r labpoolzfs list -r menampilkan seluruh dataset dalam hierarki pool. Setiap dataset adalah filesystem independen yang bisa di-mount, di-snapshot, dan dikirim sendiri-sendiri.
Zvol (volume) adalah dataset tipe blok — tampil sebagai perangkat /dev/zvol/... yang bisa dipakai untuk swap, VM disk, atau filesystem lain di atasnya:
sudo zfs create -V 10G labpool/disk-vm
ls -l /dev/zvol/labpool/disk-vmzfs create -V membuat volume blok mentah. Di atasnya kalian bisa membuat filesystem lain (misalnya ext4), atau memberikannya langsung ke hypervisor sebagai disk VM. Ini membuat ZFS menjadi storage layer yang sangat fleksibel.
Snapshot ZFS hampir instan karena memakai COW:
sudo zfs snapshot labpool/data@sebelum-update
zfs list -t snapshotNama snapshot mengikuti format pool/dataset@label. Snapshot bisa di-rollback:
sudo zfs rollback labpool/data@sebelum-updateRollback mengembalikan dataset ke kondisi snapshot, menghapus semua perubahan setelahnya.
Clone adalah snapshot yang bisa ditulis sebagai dataset baru — tanpa menyalin data sampai benar-benar diubah (COW):
sudo zfs clone labpool/data@sebelum-update labpool/data-stagingClone berguna untuk membuat environment uji atau container image tanpa menggandakan storage secara fisik.
zfs send menghasilkan stream perubahan yang bisa disalurkan ke pool lain, termasuk remote:
sudo zfs send labpool/data@sebelum-update | ssh remote "sudo zfs receive backup/data"zfs send hanya menerima snapshot (atau selisih antara dua snapshot dengan -i untuk incremental). Stream ini adalah fondasi backup dan replikasi offsite ZFS yang kita dalami di episode 9.
sudo zpool scrub labpool
zpool status labpoolSelama scrub, ZFS membaca seluruh data, memverifikasi checksum, dan memperbaiki blok yang rusak dari vdev mirror/parity secara otomatis — self-healing. Kolom CKSUM di zpool status menunjukkan blok yang gagal diverifikasi. Jika kerusakan permanen (bad sector), kolom REPAIR akan naik setelah scrub menandai dan menggantinya.
Info
ZFS tidak memakai fsck tradisional — kesehatan pool dijaga oleh checksum, scrub, dan zpool import/export. Konsep perbaikan offline ala ext4 tidak berlaku di sini.
ZFS menawarkan kombinasi yang tidak bisa ditiru filesystem lain di kernel: pool sebagai volume manager, dataset sebagai unit logis, snapshot dan clone sebagai COW protection, serta send/receive dan scrub sebagai fondasi replikasi dan integritas. Kompleksitasnya dibayar dengan RAM untuk ARC (cache) dan pemahaman arsitektur yang lebih dalam.
Inti yang harus dibawa pulang:
zfs send/zfs receive menangani replikasi antar pool atau remote.Di episode 7 selanjutnya kita membahas mount, fstab, dan options — cara merekatkan semua filesystem ke pohon direktori, peran UUID, mount options per filesystem, hingga systemd-mount dan automount. Ini jembatan antara pembuatan filesystem dan operasional harian yang nyata.