ZFS di VPS: Manfaat dan Dampak Penggunaan RAM
ZFS menawarkan checksum, snapshot, replikasi send/receive, dan kompresi, tetapi ARC memakai RAM. Pelajari cara menilai trade-off ini pada VPS 2 GB atau 4 GB.
Apa yang diberikan ZFS dan konsekuensinya
ZFS di FreeBSD dan Linux kini menggunakan satu basis kode, yaitu OpenZFS, sehingga fiturnya sama pada kedua sistem. Server yang menjalankan ZFS mendapatkan data dengan checksum, snapshot yang tidak memerlukan ruang tambahan hingga data berubah, replikasi dengan zfs send, serta kompresi yang dapat diaktifkan dengan satu properti. Konsekuensinya adalah penggunaan memori: ARC (adaptive replacement cache) secara default menggunakan sebagian besar RAM, dan pada VPS (virtual private server) dengan RAM 2 GB atau 4 GB, memori tersebut justru dibutuhkan oleh aplikasi Anda.
Panduan ini menilai ZFS pada VPS sewaan dengan satu atau dua disk virtual, bukan pada storage box dengan empat puluh bay drive. Fitur yang tetap berguna dalam kondisi tersebut adalah fitur yang layak Anda gunakan. Anda perlu mengetahui bagian yang tidak lagi sesuai sebelum membuat pool.
OpenZFS di FreeBSD dan Linux: satu basis kode, dua model pengemasan
FreeBSD menyertakan ZFS dalam base system sejak FreeBSD 7.0 pada 2008, awalnya sebagai fitur eksperimental. Sejak OpenZFS 2.0 pada Desember 2020, FreeBSD dan Linux dibangun dari source tree yang sama. Karena itu, zfs dan zpool berperilaku sama pada keduanya, dan pool yang dibuat pada salah satunya dapat diimpor pada yang lain.
Alasan ZFS menjadi package di Linux dan bagian dari base system di FreeBSD adalah lisensi. OpenZFS menggunakan CDDL (common development and distribution license). Linux kernel menggunakan GPL (general public license) versi 2. Proyek kernel menganggap keduanya tidak kompatibel. Karena itu, kode ZFS tidak digabungkan ke mainline Linux, dan setiap distribusi menentukan cara menyertakannya. FreeBSD tidak memiliki konflik tersebut, sehingga ZFS langsung tersedia. Itulah keseluruhan dampak praktisnya: hanya ada satu perbedaan pengemasan, dan Anda tidak perlu memilih pihak.
SSD Nodes tidak menyediakan image FreeBSD. Jadi, pada server yang disewa dari sini, bagian panduan untuk Linux yang berlaku. Jika Anda menjalankan FreeBSD di tempat lain, server FreeBSD mendapatkan ZFS tanpa perlu membangun module dan tanpa perlu menyesuaikan diri dengan kernel upgrade.
Instal ZFS dan buat pool
Di Ubuntu, modul disertakan dalam paket kernel, sehingga Anda hanya perlu menginstal perintahnya.
sudo apt update
sudo apt install -y zfsutils-linux
zfs versionzfs version mencetak dua baris: versi userland dan versi modul kernel. Jika hanya ada satu baris, berarti modul tidak dimuat. Paket tersebut berada dalam komponen universe, yang diaktifkan secara default oleh image server Ubuntu. Jika apt tidak dapat menemukannya, jalankan sudo add-apt-repository universe terlebih dahulu.
Di Debian, paket tersebut berada dalam komponen contrib, dan modul dibuat pada mesin Anda oleh DKMS (dynamic kernel module support). Tambahkan contrib ke baris Components: dalam /etc/apt/sources.list.d/debian.sources, jalankan sudo apt update, lalu:
sudo apt install -y linux-headers-$(dpkg --print-architecture) zfs-dkms zfsutils-linuxProses instalasi mengompilasi modul dan mencetak Building initial module for 6.12.0-..., yang memerlukan beberapa menit. Ingat artinya: setiap pembaruan kernel akan membangun ulang modul tersebut, dan build yang gagal membuat pool tidak dapat diimpor sampai masalahnya diperbaiki.
Di FreeBSD, tidak ada yang perlu diinstal. Aktifkan service dan jalankan service tersebut.
sysrc zfs_enable=YES
service zfs startSekarang buat pool. Periksa path perangkat yang stabil terlebih dahulu, karena /dev/vdb diberikan berdasarkan urutan deteksi dan dapat berubah saat Anda memasang volume lain.
ls -l /dev/disk/by-id/
sudo zpool create -o ashift=12 tank /dev/disk/by-id/virtio-abc123def456
zpool status tankzpool status seharusnya mencetak state: ONLINE dengan perangkat Anda tercantum di bawah tank. ashift=12 menetapkan blok terkecil pool sebesar 4 KiB. Nilai ini sesuai dengan SSD saat ini dan tidak dapat diubah setelah pool dibuat.
Sebagian besar image sewaan melakukan boot dari root ext4. Karena itu, ZFS di sini merupakan pool data pada volume kedua, bukan filesystem root. Pastikan perangkat tersebut memang sesuai dengan yang Anda maksud sebelum menggunakannya, karena mengonfirmasi disk NVMe yang Anda beli hanya memerlukan satu menit, sedangkan build ulang memerlukan waktu sepanjang sore.
Checksum hanya dapat memperbaiki data jika pool memiliki redundansi
Setiap blok yang ditulis ZFS memiliki checksum, dan setiap pembacaan memverifikasinya. Deteksi selalu berfungsi. Perbaikan memerlukan salinan kedua.
Pada pool dengan satu disk, ZFS memberi tahu Anda kondisi yang sebenarnya, lalu berhenti di situ. zpool status -v melaporkannya seperti ini:
status: One or more devices has experienced an error resulting in data
corruption.
action: Restore the file in question if possible. Otherwise restore the
entire pool from backup.
errors: Permanent errors have been detected in the following files:
/tank/data/archive.tarNama file yang rusak ditampilkan. ext4 akan mengembalikan byte tersebut tanpa pesan apa pun, jadi informasi ini sudah bermanfaat. ZFS tetap tidak dapat memperbaikinya karena tidak ada salinan kedua dalam pool yang dapat digunakan untuk memperbaikinya.
Dengan mirror, pembacaan yang sama dilayani dari salinan yang baik, blok yang rusak ditulis ulang, dan peristiwa tersebut muncul pada kolom CKSUM di zpool status. Inilah self-healing, dan fitur ini memerlukan dua perangkat.
sudo zpool create -o ashift=12 tank mirror /dev/disk/by-id/DISK1 /dev/disk/by-id/DISK2Pada VPS, penyimpanan host biasanya sudah memiliki redundansi, sering kali RAID 10 di bawah hypervisor. Redundansi tersebut melindungi Anda dari kerusakan drive. Namun, redundansi tersebut tidak memberi tahu Anda ketika sebuah blok dikembalikan secara salah karena array tidak memiliki cara untuk mengetahui salinan mana yang benar. ZFS mengetahuinya karena membandingkan data dengan checksum yang ditulisnya sendiri.
Jika Anda memiliki satu disk virtual dan menginginkan kemampuan perbaikan, sudo zfs set copies=2 tank/important menyimpan dua salinan setiap blok dari dataset tersebut pada disk yang sama. Penggunaan ruang oleh dataset tersebut menjadi dua kali lipat, dataset tetap dapat bertahan terhadap blok yang rusak, tetapi fitur ini tidak membantu jika seluruh volume hilang.
Scrub membaca seluruh isi pool dan memverifikasinya.
sudo zpool scrub tank
zpool status tankPool yang sehat berakhir dengan baris seperti scan: scrub repaired 0B in 00:04:11 with 0 errors. Jadwalkan proses ini secara berkala; sebulan sekali sudah cukup untuk pool kecil.
systemctl list-unit-files 'zfs-scrub*'
sudo systemctl enable --now zfs-scrub-monthly@tank.timerDataset adalah unit kebijakan
Dataset adalah filesystem di dalam pool. Membuatnya tidak mahal, jadi buat satu dataset untuk setiap pekerjaan. Properti diwariskan dari pool, sehingga Anda cukup menetapkan nilai default sekali dan menggantinya pada dataset yang memerlukannya.
sudo zfs create tank/data
sudo zfs create tank/pg
sudo zfs set compression=lz4 tank
sudo zfs set atime=off tank
sudo zfs set quota=20G tank/data
sudo zfs set recordsize=16K tank/pg
zfs get -r compression,compressratio,quota tankKompresi adalah properti yang sering tidak diaktifkan karena kehati-hatian, padahal pendekatan itu keliru. lz4 hanya membutuhkan sedikit CPU dan mengurangi jumlah byte yang harus ditulis ke disk. Pada data yang dapat dikompresi, hal ini biasanya mempercepat pembacaan dan penulisan. zstd menghasilkan kompresi yang lebih tinggi dengan penggunaan CPU yang lebih besar, sehingga sesuai untuk log dan arsip yang jarang dibaca kembali. Periksa hasil sebenarnya dengan zfs get compressratio tank, dan ingat bahwa rasio tersebut hanya menghitung data yang ditulis setelah properti ditetapkan.
recordsize adalah ukuran blok terbesar yang ditulis oleh dataset, dengan nilai default 128K. Database yang menulis halaman berukuran 8 KiB ke dalam record berukuran 128 KiB akan mengubah satu penulisan kecil menjadi pembacaan seluruh record, perubahan, lalu penulisan ulang. Tetapkan recordsize=16K pada dataset database sebelum memuat data, karena properti ini hanya berlaku untuk blok yang baru ditulis.
quota mencegah satu dataset memenuhi seluruh pool. Pool ZFS yang hampir 100% penuh akan menjadi lambat dan sulit dibersihkan, jadi sisakan ruang cadangan dengan sengaja.
Snapshot tidak menggunakan ruang sampai data berubah
ZFS tidak pernah menimpa blok aktif. ZFS menulis blok baru lalu memperbarui pointer. Inilah yang dimaksud dengan copy-on-write. Snapshot adalah catatan yang menyatakan, "pertahankan blok yang ditunjuk dataset ini saat ini", sehingga pembuatannya berlangsung seketika dan tidak menggunakan ruang.
sudo zfs snapshot tank/data@2026-08-11
zfs list -t snapshot -o name,used,refer -r tank/dataKolom USED untuk snapshot menunjukkan ruang yang hanya digunakan oleh snapshot tersebut. Nilainya hampir nol pada awalnya dan bertambah saat Anda mengubah atau menghapus data, karena blok lama tidak dapat lagi dilepaskan.
Untuk memulihkan file, Anda tidak perlu menjalankan langkah restore.
ls /tank/data/.zfs/snapshot/
cp /tank/data/.zfs/snapshot/2026-08-11/notes.txt /tank/data/notes.txtDirektori .zfs tersembunyi, bahkan dari ls -a, sampai Anda menjalankan sudo zfs set snapdir=visible tank/data. Buat snapshot sebelum Anda membutuhkannya. Tanpa snapshot, satu rm -rf yang tidak disengaja akan membawa Anda ke proses pemulihan ext4, yang dimulai dengan unmount disk dan menjadi lebih rumit setelah itu.
Rollback membuang semua yang ditulis sejak snapshot dibuat.
sudo zfs rollback tank/data@2026-08-11Rollback gagal jika terdapat snapshot yang lebih baru. -r menghapus snapshot yang lebih baru tersebut agar proses dapat dilanjutkan. Periksa nama dataset dua kali sebelum menekan enter.
Snapshot bukan backup. Snapshot berada di pool yang sama, pada volume yang sama, dan di server yang sama. Kerusakan volume atau satu zpool destroy akan menghapus snapshot bersama datanya. Snapshot melindungi Anda dari rm sendiri dan dari upgrade yang bermasalah. Perlindungan ini mencakup banyak insiden nyata, tetapi tidak melindungi Anda dari apa pun yang terjadi pada pool itu sendiri. Penjelasan lengkap tersedia di sini: mengapa snapshot VPS bukan backup.
Kirim dan terima: replikasi dengan satu perintah
zfs send mengubah snapshot menjadi aliran byte pada standard output, sedangkan zfs receive mengubah aliran tersebut kembali menjadi dataset. Penyalinan pertama adalah pengiriman penuh.
sudo zfs snapshot tank/data@daily-2026-08-11
sudo zfs send tank/data@daily-2026-08-11 | ssh backup.example.com "sudo zfs recv -F backup/data"Setelah itu, kirim hanya perubahan antara dua snapshot.
sudo zfs snapshot tank/data@daily-2026-08-12
sudo zfs send -i tank/data@daily-2026-08-11 tank/data@daily-2026-08-12 | ssh backup.example.com "sudo zfs recv backup/data"Sisi penerima tetap harus memiliki snapshot yang menjadi sumber pengiriman. Jika tidak, proses penerimaan berhenti dengan cannot receive incremental stream: most recent snapshot of backup/data does not match incremental source karena ZFS tidak memiliki basis untuk menerapkan perbedaan tersebut. Kirim dari snapshot yang dimiliki oleh kedua sisi, atau mulai lagi dengan pengiriman penuh.
Berikan hak akses pada target, bukan menggunakan root jarak jauh: sudo zfs allow -u backupuser create,mount,receive backup/data.
Ini adalah pencadangan off-site yang sebenarnya, dengan satu syarat. Sisi tujuan harus berupa pool ZFS karena object storage tidak dapat menerima aliran tersebut. Jika target Anda adalah storage yang kompatibel dengan S3 atau host Linux biasa, gunakan alat yang mendukungnya, dan pencadangan restic dari VPS membahas jalur tersebut.
Mengapa ZFS menggunakan RAM begitu banyak? ARC
ARC (adaptive replacement cache) adalah cache baca ZFS. Cache ini berada di memori kernel, bukan di page cache Linux biasa, sehingga free -h tidak melaporkannya sebagai buff/cache. ARC terbaca sebagai memori yang sedang digunakan. Server ZFS yang terlihat hampir penuh biasanya memiliki cache yang sudah terisi, dan kondisi ini menjelaskan sebagian besar laporan “ZFS menghabiskan RAM”.
Batas default sengaja dibuat tinggi. OpenZFS 2.3 menetapkan ukuran maksimum ARC sebesar nilai yang lebih besar antara RAM dikurangi 1 GiB dan 5/8 RAM. OpenZFS 2.2 dan versi sebelumnya menggunakan setengah RAM di Linux, sedangkan FreeBSD sudah menggunakan aturan yang lebih baru. Jalankan zfs version untuk melihat aturan yang berlaku pada sistem Anda.
The data behind this chart
[
{
"label": "2 GB VPS",
"openzfs_2_2_linux_gib": 1,
"openzfs_2_3_gib": 1.25
},
{
"label": "4 GB VPS",
"openzfs_2_2_linux_gib": 2,
"openzfs_2_3_gib": 3
},
{
"label": "8 GB VPS",
"openzfs_2_2_linux_gib": 4,
"openzfs_2_3_gib": 7
},
{
"label": "16 GB VPS",
"openzfs_2_2_linux_gib": 8,
"openzfs_2_3_gib": 15
}
]Angka tersebut berasal dari aturan default yang terdokumentasi dan diterapkan pada ukuran instance umum, bukan dari pengukuran pada server yang sedang berjalan. Pada instance 4 GB, aturan 2.3 mengizinkan ARC sebesar 3 GiB. Pada server yang sama dengan 2.2, batasnya adalah 2 GiB. Instance 2 GB dengan aturan 2.3 masih dapat menggunakan ARC sebesar 1.25 GiB. Aplikasi Anda mendapatkan sisa memori yang tersedia.
Baca angka sebenarnya dari server Anda sendiri. Jangan hanya mengandalkan tabel:
grep -E '^(size|c_max) ' /proc/spl/kstat/zfs/arcstats
arc_summary | head -n 20Kolom ketiga berisi nilai dalam byte. c_max adalah batas maksimum yang berlaku saat ini, sedangkan size adalah jumlah memori yang sedang digunakan ARC.
ARC memang mengembalikan memori. Kernel memberi sinyal tekanan memori, lalu ARC menyusut. Masalahnya adalah waktu, karena penyusutan dipicu oleh tekanan tersebut. Akibatnya, proses yang meminta beberapa ratus MiB sekaligus dapat dihentikan oleh OOM (out of memory) killer saat ARC masih membebaskan memori. Pada server 2 GB yang menjalankan database dan web server, kondisi ini bukan kejadian yang jarang. Manual OpenZFS menjelaskan hal yang sama tentang perubahan manual: menurunkan batas “tidak akan menyebabkan ARC menyusut tanpa tekanan memori yang memicu penyusutan”.
Cara membatasi ARC pada VPS kecil
Tentukan kebutuhan memori beban kerja terlebih dahulu. Jumlahkan kebutuhan database dan aplikasi, sisakan cadangan untuk sistem operasi, lalu alokasikan sisanya untuk ARC. Pada instance 4 GB yang menjalankan Postgres dan satu aplikasi web, ARC sebesar 512 MiB hingga 1 GiB merupakan titik awal yang wajar.
Terapkan nilainya saat sistem berjalan, dalam satuan byte. Nilai berikut adalah 1 GiB.
echo 1073741824 | sudo tee /sys/module/zfs/parameters/zfs_arc_maxAgar tetap berlaku setelah reboot, lakukan langkah berikut.
echo 'options zfs zfs_arc_max=1073741824' | sudo tee /etc/modprobe.d/zfs.conf
sudo update-initramfs -uLangkah initramfs penting karena modul dapat dimuat dari initramfs sebelum filesystem root di-mount. Akibatnya, modul tidak akan membaca file yang baru saja Anda tulis. Setelah reboot, konfirmasikan nilai tersebut melalui baris c_max dari arcstats.
Ada dua catatan yang disebutkan dalam manual. Anda tidak dapat mengembalikan nilainya ke 0 saat sistem sedang berjalan. Untuk membatalkannya, edit file tersebut lalu lakukan reboot. Selain itu, menurunkan nilainya tidak langsung mengecilkan ARC yang sudah besar.
Di FreeBSD, batas yang sama tersedia sebagai sysctl di bawah vfs.zfs.arc. Jalankan sysctl vfs.zfs.arc untuk melihat nilai saat ini dan nama yang tepat yang digunakan oleh versi Anda, lalu tulis nilai maksimum ke /boot/loader.conf.
Ada dua aturan memori tambahan untuk server kecil. Biarkan deduplikasi tetap nonaktif karena tabel deduplikasi disimpan di memori, dan aturan praktis yang umum dipublikasikan adalah 1 hingga 3 GB RAM per TB data unik. Jangan menempatkan swap pada zvol (perangkat blok yang dibuat dari pool) karena proses swapping melalui filesystem yang sedang berusaha membebaskan memori dapat membuat mesin mengalami deadlock. Gunakan partisi biasa atau file swap di luar pool.
Kapan ext4 atau XFS ditambah restic menjadi pilihan yang lebih baik
ZFS bermanfaat pada server dengan memori yang cukup dan volume kedua. Di luar kondisi tersebut, filesystem biasa ditambah tool backup yang tepat biasanya lebih unggul. Pilih ext4 atau XFS jika:
- Instance memiliki RAM 2 GB atau 4 GB dan workload membutuhkan seluruh kapasitasnya.
- Hanya ada satu disk virtual dan tidak ada salinan kedua, sehingga ZFS hanya memberi deteksi tanpa perbaikan.
- Target backup Anda adalah object storage atau host Linux biasa, sehingga tidak ada komponen di sana yang dapat menerima stream
zfs send. - Anda menjalankan Debian dengan DKMS dan tidak dapat menanggung risiko upgrade kernel yang menyebabkan module tidak ter-build.
- Anda membutuhkan ZFS pada root filesystem, sedangkan image dari provider hanya menyediakan ext4.
Pertahankan ZFS jika Anda memiliki volume data terpisah, RAM yang cukup (8 GB atau lebih terasa nyaman), dan rencana yang benar-benar menggunakan snapshot serta zfs send, bukan sekadar mengaktifkannya. Untuk kondisi lainnya, ext4 dengan restic yang menulis backup terenkripsi dan terdeduplikasi ke storage yang tidak dikendalikan server mencakup sebagian besar kebutuhan yang sama tanpa menghabiskan memori.
Mode kegagalan dan string yang akan Anda lihat
Pool hilang setelah reboot. zpool status menampilkan no pools available. Service import membaca /etc/zfs/zpool.cache, sehingga pool yang tidak ada dalam file tersebut tidak pernah diimpor saat boot. sudo zpool import menampilkan pool yang dapat diimpor, sudo zpool import tank memulihkannya, dan sudo zpool set cachefile=/etc/zfs/zpool.cache tank membuatnya tetap terdaftar. Pool yang tidak diekspor dengan benar dari sistem lain akan menampilkan cannot import 'tank': pool may be in use from other system, dan sudo zpool import -f tank mengabaikannya setelah Anda memastikan tidak ada host lain yang memilikinya.
modprobe: FATAL: Module zfs not found in directory /lib/modules/6.12.0-... di Debian setelah upgrade kernel. DKMS tidak membangun modul untuk kernel baru, biasanya karena header yang sesuai belum diinstal. dkms status menampilkan modul yang telah dibangun untuk setiap kernel. sudo apt install -y linux-headers-$(uname -r) kemudian sudo dkms autoinstall membangunnya kembali, dan sudo zpool import tank memulihkan pool.
Pool penuh, tetapi file sudah Anda hapus. Data yang dihapus tetap berada di disk selama masih dirujuk oleh snapshot, sehingga du dan df menampilkan hasil yang berbeda. zfs list -o space -r tank memisahkan penggunaan menjadi USEDDS dan USEDSNAP, dan nilai USEDSNAP yang besar adalah penyebabnya. Hapus snapshot lama dengan sudo zfs destroy tank/data@2026-06-01, lalu ruang tersebut akan tersedia kembali.
Jumlah CKSUM terus meningkat di zpool status. Sesuatu di bawah ZFS mengembalikan data yang rusak. Pada mirror, jumlah tersebut merupakan peringatan dan blok telah diperbaiki. Pada pool dengan satu disk, file tersebut hilang. zpool status -v menunjukkan namanya, lalu pulihkan file tersebut dari backup yang tidak berada di pool ini.
Server lambat dan menggunakan swap. Batasi ARC seperti di atas, lalu jalankan arc_summary dan periksa rasio hit. ARC yang terlalu kecil untuk menampung working set menyebabkan setiap pembacaan diarahkan ke disk. Pada kondisi ini, filesystem biasa yang menggunakan page cache akan memberikan kinerja yang lebih baik.
FAQ
Berapa banyak RAM yang dibutuhkan ZFS pada VPS?
ZFS dapat berjalan pada instance 2 GB. Pertanyaan sebenarnya adalah berapa banyak RAM yang tersisa untuk aplikasi Anda. Tanpa penyesuaian, OpenZFS 2.3 memungkinkan ARC tumbuh hingga nilai yang lebih besar antara RAM dikurangi 1 GiB dan 5/8 RAM. Jadi, server dengan RAM 4 GB dapat memberikan 3 GiB untuk cache. Tetapkan zfs_arc_max ke angka yang dapat disediakan oleh beban kerja Anda, lalu konfirmasikan dengan membaca baris c_max dari /proc/spl/kstat/zfs/arcstats.
Apakah snapshot ZFS merupakan backup?
Tidak. Snapshot berada di pool yang sama dengan data. Snapshot tetap tersedia setelah rm yang buruk dan upgrade yang gagal, tetapi hilang jika pool atau instance hilang. Jadikan snapshot sebagai backup dengan mengirimkannya ke mesin lain menggunakan zfs send, atau dengan menjalankan alat backup yang menulis ke storage yang tidak dikendalikan oleh server ini.
Apakah ZFS bekerja dengan cara yang sama di FreeBSD dan Linux?
Sejak OpenZFS 2.0 pada Desember 2020, keduanya menggunakan codebase yang sama, perintah yang sama, dan format on-disk yang sama. Pool juga dapat dipindahkan di antara keduanya. Perbedaannya terletak pada packaging. FreeBSD menyertakan ZFS dalam base system. Di Linux, setiap distribusi menentukan caranya sendiri: Ubuntu membangun module ke dalam paket kernel-nya, sedangkan Debian membangunnya pada mesin Anda dengan DKMS. Akibatnya, upgrade kernel dapat membuat module tidak tersedia sampai proses build ulang berhasil.
Dapatkah ZFS memperbaiki corruption pada VPS dengan satu disk?
ZFS mendeteksi corruption dan menyebutkan nama file, tetapi tidak dapat memperbaikinya karena proses perbaikan memerlukan salinan kedua dari block tersebut. zfs set copies=2 pada dataset menyediakan salinan kedua dengan penggunaan ruang dua kali lipat. Cara ini menangani block yang rusak, tetapi tidak menangani volume yang hilang. Mirror pada dua volume adalah solusi yang benar-benar dapat melakukan perbaikan.
Apakah compression memperlambat server?
lz4 biasanya justru membuatnya lebih cepat. Block yang terkompresi berarti lebih sedikit byte yang ditulis dan dibaca, sedangkan biaya CPU per block kecil dibandingkan beban disk yang dihemat. Tetapkan compression=lz4 pada root pool agar setiap dataset mewarisi pengaturan tersebut, lalu periksa zfs get compressratio tank setelah data nyata ditulis.