Thin Provision di ZFS Proxmox: Kelalaian Kecil yang Bikin I/O Error

Minggu lalu saya ikut training Proxmox yang berlangsung Sabtu dan Minggu. Salah satu materinya membahas storage tipe ZFS. Di sela sesi saya lupa mencentang opsi Thin Provision saat membuat storage ZFS. Hasilnya, penggunaan disk cepat mencapai 100 persen dan VM langsung kena I/O error. Tulisan ini saya buat supaya kejadian ini tidak terulang, sekaligus jadi catatan untuk kalian yang baru belajar Proxmox.

Apa itu Thin Provision

Thin provision adalah metode alokasi storage di mana ruang disk hanya dipakai sesuai data yang benar benar ditulis, bukan sesuai ukuran disk yang didefinisikan di awal.

Di ZFS, istilah resminya adalah sparse volume. Menurut dokumentasi resmi Proxmox, sparse volume adalah volume yang reservation nya tidak sama dengan ukuran volume itu sendiri.

Gambarannya seperti ini:

ModeUkuran disk virtualRuang yang langsung dikunci di pool
Thin (sparse)100 GBSesuai data terpakai, misal 10 GB
Thick (non sparse)100 GB100 GB langsung dikunci dari pool

Kenapa Lupa Centang Bikin I/O Error

Kalau opsi Thin Provision tidak dicentang, Proxmox membuat zvol dengan refreservation penuh. Artinya seluruh ukuran disk yang didefinisikan langsung dikunci dari pool ZFS sejak awal, walau isinya masih kosong.

Kejadian saya waktu training kira kira begini:

  • Storage ZFS dibuat dengan ukuran pool yang terbatas.
  • Beberapa disk VM dibuat dengan ukuran cukup besar.
  • Karena Thin Provision tidak aktif, seluruh ukuran disk langsung teralokasi penuh di pool.
  • Pool ZFS cepat penuh walau data yang benar benar ditulis jauh lebih kecil.
  • Begitu pool mencapai 100 persen, VM langsung I/O error karena tidak ada ruang kosong untuk menulis data baru.

Hal ini juga dikonfirmasi di forum resmi Proxmox. Salah satu pengguna menjelaskan kalau opsi thin dicentang saat membuat storage, virtual disk akan benar benar thin provisioned dan ruang yang belum terpakai tidak akan memakan kapasitas pool.

Cara Mengaktifkan Thin Provision

Saat membuat storage baru

  1. Buka Datacenter > Storage > Add > ZFS.
  2. Isi ID dan pilih ZFS Pool yang dipakai.
  3. Centang opsi Thin provision.
  4. Klik OK.

Posisinya seperti di gambar yang saya lampirkan, opsi Thin provision ada di kolom kanan, sejajar dengan Enable dan Block Size.

Mengaktifkan di storage yang sudah ada

Kalau storage sudah dibuat seperti kasus saya, caranya:

  1. Datacenter > Storage > pilih storage ZFS yang dimaksud > Edit.
  2. Centang Thin provision.
  3. Klik OK.

Catatan penting, perubahan ini hanya berlaku untuk disk VM yang dibuat setelah opsi diaktifkan. Disk yang sudah ada sebelumnya tetap thick provision. Kalau mau disk lama jadi thin juga, ada dua cara:

  • Pindahkan disk ke storage lain lalu kembalikan lagi ke storage ZFS yang sama, proses ini akan membuat ulang zvol.
  • Set manual lewat CLI dengan zfs set refreservation=none nama-pool/nama-zvol.

Lewat file konfigurasi

Opsi ini juga bisa diatur langsung di /etc/pve/storage.cfg dengan menambahkan baris sparse:

zfspool: nama-storage
    pool nama-pool
    content images,rootdir
    sparse

Yang Perlu Diperhatikan

  • Thin provision butuh dukungan discard atau TRIM yang jalan penuh, dari sistem di dalam VM, lewat virtio, sampai ke pool ZFS. Kalau salah satu putus, ruang yang sudah dihapus di VM tidak akan balik kosong di pool.
  • Pakai controller Virtio SCSI single dan aktifkan opsi Discard di hardware disk VM.
  • Pantau penggunaan pool secara rutin dengan zfs list atau dari menu Datacenter > Storage, supaya tidak kejadian pool penuh tanpa disadari, sekalipun sudah thin provision.

Penutup

Satu centang kecil ternyata berdampak besar ke operasional. Sejak kejadian ini saya selalu cek ulang opsi Thin provision setiap kali membuat storage ZFS baru, baik di homelab maupun di environment client.

Referensi

  • Dokumentasi resmi Proxmox, Storage ZFS: https://pve.proxmox.com/wiki/Storage:_ZFS
  • Forum Proxmox, How to enable thin provisioning on ZFS: https://forum.proxmox.com/threads/how-to-enable-thin-provisioning-on-zfs.92801/
  • Forum Proxmox, Thin Provision after the fact: https://forum.proxmox.com/threads/thin-provision-after-the-fact.132568/

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *