Saat Anda menyimpan sebuah foto di komputer, Anda memberinya nama. Nama itulah yang Anda cari nanti, dan nama itu pula yang muncul di layar. Karena itu wajar kalau kita mengira nama adalah bagian dari berkas tersebut.

Di sistem operasi Linux, anggapan itu justru keliru. Sebuah berkas di sana terpecah menjadi tiga bagian yang disimpan di tiga tempat berbeda: namanya, keterangan tentangnya, dan isinya. Nama hanya sebuah label yang tercatat di direktori, sedangkan isinya tersebar di blok-blok penyimpanan.

Keterangan tentang berkas itu disimpan di sebuah struktur tersendiri bernama inode. Di sanalah tercatat siapa pemiliknya, siapa yang boleh membukanya, berapa ukurannya, dan kapan terakhir diubah.

Struktur inilah yang dihitung saat penyedia hosting memasang batas jumlah berkas di paket Anda. Angka File Usage yang tiba-tiba penuh di cPanel, padahal kapasitas penyimpanan masih longgar, sebenarnya melaporkan jumlah inode yang terpakai.

Inode Adalah Kartu Identitas Setiap Berkas

Inode adalah struktur data pada sistem berkas Linux dan Unix yang menyimpan seluruh keterangan tentang satu berkas. Ada dua hal yang justru tidak ia simpan: nama berkas dan isi berkas itu sendiri. Di panel hosting istilah ini lebih sering muncul dalam bentuk jamaknya. Kalau Anda menemukan tulisan inodes, artinya sama persis: inodes adalah sekadar penyebutan untuk lebih dari satu inode.

Setiap berkas mendapat tepat satu inode. Setiap direktori juga mendapat satu, karena bagi Linux direktori pun sebuah berkas — isinya kebetulan berupa daftar nama beserta nomor inode.

Setiap inode punya nomor unik dalam satu partisi, yang disebut inode number. Nomor inilah alamat sebenarnya sebuah berkas; nama yang Anda lihat di file manager hanya penunjuk ke nomor tersebut.

Bayangkan kartu stok di gudang: rak punya label nama barang, barangnya tergeletak di rak, dan kartu stok mencatat siapa yang menaruhnya serta kapan. Label bisa ditulis ulang tanpa menyentuh barang maupun kartu stoknya, persis seperti nama berkas terhadap inode.

Pada paket hosting, jumlah inode dibatasi karena satu server berbagi satu sistem berkas dengan banyak pelanggan. Batas ini menghitung jumlah berkas, bukan volume datanya. Konsekuensinya sering mengejutkan. Akun berisi satu juta berkas cache 2 KB, total hanya 2 GB, bisa lebih dulu mentok daripada akun berisi satu video 20 GB.

Mengapa Disebut Inode?

Jawabannya datang dari orang yang paling berhak memberikannya. Pada Juli 2002, Rob Landley menanyakan asal istilah tersebut kepada Dennis Ritchie, salah satu pencipta Unix. Ritchie mengakui dirinya tidak ingat persis, tetapi memberi tebakan terbaiknya: kata itu berasal dari index.

Alasannya ada pada rancangan sistem berkas Unix awal. Seluruh keterangan akses berkas disimpan sebagai larik datar di disk. Nomor yang menunjuk sebuah entri disebut i-number, dan elemen larik yang ditunjuk nomor itu disebut i-node. Tanda hubung pada "i-" perlahan menghilang dari dokumentasi, dan yang tersisa sampai hari ini adalah "inode".

Penamaan ini bukan sekadar catatan sejarah. Ia menjelaskan kenapa inode diakses lewat nomor dan bukan lewat nama: sejak awal inode memang dirancang sebagai elemen larik yang diindeks, bukan sebagai kartu bernama.

Apa Saja yang Disimpan di Dalam Sebuah Inode

Daftar isinya dibakukan di halaman manual inode(7). Berikut keterangan yang benar-benar tersimpan di dalam satu inode:

KeteranganIsi
Tipe dan izin aksesBerkas biasa, direktori, atau symlink, beserta bit rwx
Jumlah linkBerapa nama yang menunjuk ke inode ini
Pemilik dan grupID pengguna dan ID grup pemilik berkas
UkuranPanjang berkas dalam byte
Jumlah blokBerapa blok penyimpanan yang dialokasikan
Tiga stempel waktuTerakhir dibaca, terakhir diubah isinya, terakhir berubah keterangannya
Penunjuk blok dataAlamat blok tempat isi berkas sebenarnya berada

Bit izin akses di baris pertama itulah yang Anda ubah setiap kali menjalankan perintah chmod. Perintah tersebut tidak menyentuh isi berkas sama sekali — ia hanya menulis ulang beberapa bit di dalam inode.

Isi inode: tipe, izin akses, jumlah link, pemilik, ukuran, blok, stempel waktu — tanpa nama dan isi berkas.Isi inode: tipe, izin akses, jumlah link, pemilik, ukuran, blok, stempel waktu — tanpa nama dan isi berkas.

Isi inode bisa dibaca langsung dengan perintah stat. Opsi -c mengatur keluarannya: stat -c '%i %h %n' catatan.txt menampilkan nomor inode, jumlah link, dan nama berkas dalam satu baris.

Dua hal yang disinggung di awal tadi memang tidak ada di dalam inode, dan keduanya paling sering disalahpahami:

  1. Nama berkas. Nama tinggal di direktori yang memuat berkas tersebut, berpasangan dengan nomor inode. Satu inode karena itu bisa punya lebih dari satu nama.
  2. Isi berkas. Inode hanya menyimpan alamat blok penyimpanan, bukan datanya. Isi berkas tetap berada di blok data yang terpisah.

Pada sistem berkas ext4 bawaan hampir semua distribusi Linux, satu inode berukuran 256 byte. Ukuran ini tetap, tidak peduli berkasnya kosong atau berisi 40 GB.

Bagaimana Cara Kerja Inode Saat Anda Membuka Sebuah Berkas

Ketika Anda menjalankan cat catatan.txt, sistem operasi tidak langsung mencari data bernama "catatan.txt" di disk. Ia menempuh tiga langkah berurutan.

Cara kerja inode di Linux: direktori mencocokkan nama dengan nomor inode, inode menyimpan alamat blok data.Cara kerja inode di Linux: direktori mencocokkan nama dengan nomor inode, inode menyimpan alamat blok data.

Pertama, sistem membaca direktori tempat berkas itu berada dan mencari baris yang namanya cocok. Baris tersebut hanya berisi dua hal: nama dan nomor inode. Kedua, nomor itu dipakai untuk mengambil inode yang bersangkutan, lalu izin aksesnya diperiksa. Ketiga, kalau izinnya lolos, sistem mengikuti penunjuk blok di dalam inode dan membaca isi berkas.

Seluruh inode dalam satu partisi tersimpan berurutan pada sebuah inode table. Nomor mana yang sudah dipakai ditandai lewat inode bitmap, peta bit yang isinya sekadar "terpakai" atau "kosong". Karena letaknya berurutan, mengambil inode nomor sekian hanyalah soal menghitung posisi.

Nomor inode sebuah berkas bisa Anda lihat dengan menambahkan opsi -i pada perintah ls:

Bash
ls -li catatan.txt

Kolom paling kiri pada keluarannya adalah nomor inode, disusul izin akses, jumlah link, pemilik, grup, ukuran, waktu modifikasi, dan barulah nama berkas.

Pemisahan ini menjelaskan satu perilaku yang sering dianggap ajaib: mengubah nama berkas berukuran 10 GB berlangsung seketika. Yang berubah hanya satu baris di direktori. Inode tidak disentuh, dan blok datanya tidak dipindahkan satu byte pun. Hal yang sama berlaku saat Anda memindahkan berkas ke direktori lain dalam partisi yang sama.

Karena nama tinggal di direktori dan bukan di inode, satu inode bisa punya beberapa nama sekaligus. Nama tambahan semacam ini disebut hard link.

Berikut hasil percobaan nyata: sebuah berkas asli.txt dibuat, lalu ditambahkan satu hard link dan satu symbolic link (symlink) yang menunjuk ke sana.

Bash
echo "isi berkas" > asli.txt
ln asli.txt hardlink.txt
ln -s asli.txt symlink.txt
ls -li

Keluarannya memperlihatkan perbedaan keduanya dengan jelas:

Code
31086948 -rw-r--r--  2  asli.txt
31086948 -rw-r--r--  2  hardlink.txt
31086951 lrwxr-xr-x  1  symlink.txt -> asli.txt

asli.txt dan hardlink.txt berbagi nomor inode yang sama persis, 31086948, dengan jumlah link tercatat 2. Keduanya bukan salinan — keduanya adalah nama yang setara untuk satu berkas yang sama. Menambah hard link memakan satu baris di direktori, tetapi tidak menambah inode baru.

Hard link di Linux: nama asli.txt dan hardlink.txt menunjuk ke inode 31086948 yang sama, satu blok data.Hard link di Linux: nama asli.txt dan hardlink.txt menunjuk ke inode 31086948 yang sama, satu blok data.

Symlink berperilaku sebaliknya. Ia mendapat inode sendiri bernomor 31086951 dengan jumlah link 1, dan ukurannya 8 byte — persis sepanjang teks asli.txt yang ia simpan. Symlink memang hanya berisi alamat tujuan dalam bentuk teks, sehingga ia memakan satu inode tambahan.

Perbedaan ini terasa saat berkas aslinya dihapus. Setelah rm asli.txt dijalankan, isi hardlink.txt tetap terbaca normal karena jumlah link inode baru turun dari 2 ke 1. Sementara symlink.txt langsung putus dan membalas No such file or directory.

Inode baru benar-benar dilepaskan ketika jumlah link-nya mencapai nol. Selama masih ada satu nama yang menunjuk ke sana, berkasnya tetap hidup.

Cara Mengecek Pemakaian Inode di Hosting dan Server

Jalurnya berbeda tergantung Anda memakai hosting bersama atau mengelola server sendiri.

Lewat cPanel

Masuk ke cPanel, lalu lihat kolom STATISTICS di sisi kanan halaman utama. Cari baris File Usage. Angka pertama adalah jumlah inode yang sedang Anda pakai, angka kedua adalah batas maksimum akun Anda.

Kalau baris tersebut tidak muncul, itu normal. File Usage tidak aktif secara bawaan. Administrator server menyalakannya lewat WHM, pada tweak "Display File Usage information in the cPanel stats bar (inode count)". Sebagian penyedia menamainya Inode Usage, tetapi angka yang dilaporkan sama saja. Kalau tetap tidak ada, tanyakan ke tim dukungan penyedia hosting Anda.

Lewat baris perintah

Pada VPS atau server yang bisa Anda akses lewat SSH, gunakan df dengan opsi -i. Opsi ini membuat df melaporkan jumlah inode, bukan pemakaian blok:

Bash
df -i

Keluarannya berupa enam kolom: nama partisi, Inodes (total inode di partisi), IUsed (yang terpakai), IFree (yang tersisa), IUse% (persentase pemakaian), dan titik mount-nya. Kolom IUse% inilah yang perlu Anda pantau. Angka di atas 85 persen sudah pantas ditindaklanjuti, jangan menunggu 100 persen.

Kalau angkanya sudah tinggi, langkah berikutnya adalah menemukan direktori mana yang paling banyak menyimpan berkas:

Bash
find /home -xdev -type f | sed 's|/[^/]*$||' | sort | uniq -c | sort -rn | head -20

Perintah ini mendaftar dua puluh direktori dengan jumlah berkas terbanyak, diurutkan menurun. Opsi -xdev menahan pencarian agar tidak melompat ke partisi lain. Yang muncul di puncak biasanya direktori cache atau folder email, bukan folder berisi berkas yang Anda kenali.

Mengapa Inode Penuh Padahal Disk Space Masih Longgar?

Kuota inode dan kuota disk space mengukur dua hal yang berbeda. Yang satu menghitung berapa banyak berkas, yang lain menghitung berapa besar datanya. Keduanya bisa habis di waktu yang sama sekali berbeda.

Instalasi WordPress 7.0.4 yang masih kosong, diunduh langsung dari wordpress.org dan dihitung pada 18 Agustus 2026, terdiri atas 3.945 berkas dan 456 direktori. Totalnya 4.401 inode, sementara ukurannya hanya 91 MB. Sebarannya pun tidak merata: folder wp-includes sendirian menghabiskan 3.276 inode, wp-admin 608, dan wp-content 500.

Artinya sebuah website yang belum berisi satu artikel pun sudah memakai 4.401 inode dari kuota Anda. Pemakaian penyimpanannya sendiri belum mencapai seperseratus paket hosting standar.

Kuota inode penuh padahal disk space longgar: batang penyimpanan terisi seperempat, batang jumlah berkas penuh.Kuota inode penuh padahal disk space longgar: batang penyimpanan terisi seperempat, batang jumlah berkas penuh.

Setelah itu, empat sumber berikut yang biasanya menghabiskan sisanya:

  1. Turunan gambar. WordPress tidak menyimpan satu berkas per gambar yang Anda unggah. Berdasarkan pengaturan bawaannya, satu foto berukuran 4.000 piksel menghasilkan berkas asli ditambah satu salinan -scaled, karena ukurannya melewati ambang 2.560 piksel. Di atas itu masih ada enam ukuran turunan: 150x150, 300x300, 768 piksel, 1024x1024, 1536x1536, dan 2048x2048. Totalnya delapan berkas untuk satu foto. Galeri berisi 500 foto berarti 4.000 inode.
  2. Email. cPanel menyimpan email dengan format Maildir sejak 2005, dan format ini menaruh satu pesan dalam satu berkas di dalam folder new, cur, dan tmp. Kotak masuk berisi 30.000 email, termasuk yang mengendap di Spam dan Trash, berarti 30.000 inode terpakai.
  3. Cache. Plugin cache halaman menulis satu berkas HTML untuk setiap URL yang pernah diakses, lengkap dengan varian seluler dan versi terkompresi. Situs dengan 5.000 halaman bisa memunculkan belasan ribu berkas cache tanpa Anda sadari.
  4. Session PHP. Setiap pengunjung yang memicu session_start() menghasilkan satu berkas session. Tanpa pembersihan otomatis yang rutin, berkas ini menumpuk hingga ratusan ribu.

Begitu kuota inode tersentuh, akun tidak lagi bisa membuat berkas baru. Gejalanya beragam dan sering tidak terhubung di kepala pemilik website: unggahan gagal, email masuk ditolak, dan pembaruan plugin berhenti di tengah jalan. Beberapa penyedia bahkan menonaktifkan backup otomatis begitu batasnya tersentuh. Rumahweb, misalnya, membatasi 250.000 inode per akun unlimited hosting dan mematikan backup mingguan begitu pemakaian melewati 75.000.

Cara Mengurangi Pemakaian Inode

Urutan berikut disusun dari yang paling banyak membebaskan inode dengan risiko paling kecil.

  1. Kosongkan folder Spam dan Trash di semua akun email. Ini hampir selalu penyumbang terbesar dan paling aman dihapus. Satu kotak Spam yang tidak pernah disentuh setahun bisa menyimpan puluhan ribu berkas.
  2. Hapus isi folder cache, bukan pluginnya. Bersihkan lewat menu plugin cache Anda, lalu pastikan masa simpan cache diatur wajar — 24 jam sampai 7 hari cukup untuk hampir semua situs.
  3. Matikan ukuran gambar turunan yang tidak dipakai tema Anda. Menonaktifkan tiga dari enam ukuran bawaan menurunkan jumlah berkas per gambar dari delapan menjadi lima, hemat sekitar 37 persen inode di folder uploads.
  4. Bersihkan berkas session PHP yang kedaluwarsa. Berkas ini biasanya berada di folder tmp pada direktori home akun Anda, dan aman dihapus setelah beberapa hari.
  5. Buang plugin dan tema yang tidak aktif. Satu tema WordPress bawaan saja bisa membawa ratusan berkas. Menghapus tiga tema yang tidak dipakai sering membebaskan lebih dari seribu inode.
  6. Arsipkan berkas lama menjadi satu. Ribuan berkas log atau dokumen lama yang dibungkus menjadi satu arsip .zip menyusut dari ribuan inode menjadi satu.

Kalau setelah keenam langkah itu pemakaian tetap di atas 85 persen, kebutuhan Anda memang sudah melampaui paket yang sekarang. Naik ke paket yang lebih besar lebih masuk akal daripada terus menekan jumlah berkas. Sebagian penyedia bahkan tidak memasang kuota inode hosting per akun sejak awal, termasuk layanan web hosting Indowebsite.

Batasan Inode yang Perlu Anda Pertimbangkan

Tiga hal berikut menentukan seberapa jauh Anda bisa menekan pemakaian inode.

Jumlah inode ext4 dikunci saat partisi diformat. Perintah mke2fs membangun tabel inode (inode table) dengan satu inode untuk setiap 16.384 byte ruang partisi, sesuai nilai bawaan inode_ratio di berkas konfigurasinya. Partisi 100 GB karena itu mendapat sekitar 6,5 juta inode, dan angka tersebut permanen. Halaman manual mke2fs(8) menyatakannya tanpa basa-basi: rasio ini tidak bisa diubah setelah sistem berkas dibuat. Menambah inode berarti memformat ulang partisi, dan itu berarti memindahkan seluruh data lebih dulu. Kalau server memang akan menyimpan jutaan berkas kecil, tentukan rasio yang lebih rapat sejak awal lewat opsi -i.

Sistem berkas lain tidak berperilaku sama. XFS mengalokasikan inode secara dinamis sesuai kebutuhan. Batasnya imaxpct, persentase ruang partisi yang boleh dipakai inode. Bawaannya 25 persen di bawah 1 TB, 5 persen di bawah 50 TB, dan 1 persen di atasnya. Btrfs dan ZFS juga tidak mengenal kuota inode tetap.

Sistem berkasAlokasi inodeBisa "inode penuh"?
ext4Tetap sejak diformat, 1 per 16.384 byteYa
XFSDinamis, dibatasi imaxpctPraktis tidak
Btrfs dan ZFSDinamis, tanpa kuota tetapTidak
NTFS (Windows)Baris Master File Table, tumbuh sendiriTidak

Karena itu keluhan "inode penuh" praktis hanya muncul di server ext4 — dan ext4 pula yang dipakai mayoritas hosting cPanel.

Berkas yang sudah dihapus belum tentu melepaskan inode-nya. Selama masih ada proses yang membuka berkas tersebut, jumlah link-nya memang nol tetapi inode dan blok datanya belum dibebaskan. Inilah sebabnya pemakaian kadang tidak turun setelah Anda menghapus berkas besar. Pada server yang bisa Anda akses, lsof +L1 mendaftar berkas semacam itu, dan me-restart proses yang memegangnya akan melepaskan ruangnya seketika.

Terakhir, soal label "unlimited inode" yang lazim tertulis di halaman paket hosting. Label itu berarti penyedia tidak memasang kuota per akun, bukan berarti sistem berkas di bawahnya punya inode tak berhingga. Tabel inode partisi server tetap berukuran tertentu dan dibagi bersama seluruh pelanggan. Perbedaannya nyata dan menguntungkan Anda, tetapi kebiasaan membersihkan cache dan folder Spam tetap layak dipertahankan.

Pertanyaan yang Sering Muncul

Apa itu inodes pada hosting, dan apa bedanya dengan inode?

Tidak ada bedanya. "Inodes" hanya bentuk jamak dari "inode", dan panel hosting memang lazim menulisnya begitu karena yang dilaporkan adalah jumlah, bukan satu berkas tunggal.

Apa itu inode usage dan inode usage quota di panel hosting?

Inode usage adalah jumlah inode yang sedang terpakai akun Anda, sedangkan inode usage quota adalah batas maksimum yang boleh Anda pakai. Keduanya ditampilkan berdampingan pada baris File Usage di cPanel, dalam bentuk "terpakai dari total".

Apakah Windows punya inode?

Tidak dengan nama itu. Sistem berkas NTFS memakai Master File Table, sebuah tabel yang setiap barisnya menyimpan keterangan satu berkas. Perannya setara dengan inode Linux, tetapi strukturnya berbeda dan Windows tidak memberi pengguna nomor inode yang bisa dilihat langsung.

Apakah direktori kosong tetap memakan inode?

Ya. Direktori adalah berkas juga bagi Linux, jadi setiap direktori memakai satu inode meskipun isinya belum ada. Struktur folder yang terlalu bercabang karena itu ikut membebani kuota Anda.

Apa bedanya inode dengan blok data?

Inode menyimpan keterangan berkas dan alamat penyimpanannya, blok data menyimpan isinya. Keduanya dihitung terpisah dan bisa habis sendiri-sendiri.

Berapa nomor inode pertama yang bisa dipakai berkas biasa?

Pada ext4, sepuluh nomor pertama disediakan untuk keperluan sistem: nomor 1 untuk daftar blok rusak, nomor 2 untuk direktori root, dan nomor 8 untuk journal. Nomor 11 adalah inode bebas pertama, yang secara tradisi dipakai direktori lost+found.

Kesimpulan

Inode adalah struktur data yang menyimpan seluruh keterangan sebuah berkas: pemilik, izin akses, ukuran, stempel waktu, dan alamat blok datanya. Nama berkas maupun isinya justru tidak ada di dalamnya. Setiap berkas dan setiap direktori memakai satu inode, sehingga kuota inode pada hosting membatasi jumlah berkas dan bukan besarnya data.

Periksa angkanya secara berkala lewat File Usage di cPanel atau df -i di server Anda, dan mulai bertindak begitu pemakaian melewati 85 persen. Dua tempat yang paling pantas diperiksa lebih dulu selalu sama: folder Spam beserta Trash di akun email, dan folder cache. Semoga artikel ini membantu.