Saya punya pertanyaan aneh untuk Anda.
Pernahkah sistem Linux Anda mengeluh bahwa Anda tidak memiliki ruang tersisa sementara Anda jelas masih memiliki lebih dari cukup?
Itu terjadi pada saya, bahwa saya memiliki banyak GB yang tersisa, tetapi sistem Linux saya mengeluh bahwa tidak ada ruang yang tersisa. Saat itulah saya belajar tentang inode .
inode singkat
Inode menyimpan metadata untuk setiap file di sistem Anda dalam struktur seperti tabel yang biasanya terletak di dekat awal partisi. Mereka menyimpan semua informasi kecuali nama file dan data.
Setiap file dalam direktori tertentu adalah entri dengan nama file dan nomor inode. Semua informasi lain tentang file diambil dari tabel inode dengan merujuk nomor inode.
Nomor inode unik pada tingkat partisi. Setiap partisi memiliki tabel inodenya sendiri.
Jika Anda kehabisan inode, Anda tidak dapat membuat file baru meskipun Anda memiliki ruang tersisa di partisi yang diberikan.
Apa itu inode di Linux?
Inode adalah singkatan dari Index Node. Meskipun sejarah tidak begitu yakin tentang itu, itu adalah tebakan paling logis dan terbaik yang mereka buat. Dulu ditulis I-node , tetapi tanda hubung hilang seiring waktu.
Seperti yang dijelaskan di linfo.org:
Sebuah inode adalah struktur data … … yang menyimpan semua informasi tentang file kecuali nama dan data sebenarnya.
Inode menyimpan metadata tentang file yang dirujuk. Metadata ini berisi semua informasi tentang file tersebut.
- Ukuran
- Izin
- Pemilik/Grup
- Lokasi hard drive
- Tanggal/waktu
- Informasi lainnya
Setiap inode yang digunakan mengacu pada 1 file. Setiap file memiliki 1 inode. Direktori, file karakter, dan perangkat blok semuanya adalah file. Masing-masing memiliki 1 inode.
Untuk setiap file dalam direktori, ada entri yang berisi nama file dan nomor inode yang terkait dengannya.
Inode unik pada level partisi. Anda dapat memiliki dua file dengan nomor inode yang sama mengingat mereka berada di partisi yang berbeda. Informasi inode disimpan dalam struktur seperti tabel di bagian strategis setiap partisi, sering ditemukan di dekat bagian awal.
Bagaimana cara memeriksa inode di Linux?
Anda dapat dengan mudah membuat daftar nomor inode dengan perintah berikut:
ls -i
Gambar berikut menunjukkan direktori root saya dengan nomor inode yang sesuai.
Jumlah inode yang dimiliki setiap sistem file ditentukan saat Anda membuat sistem file. Untuk sebagian besar pengguna, jumlah inode default lebih dari cukup.
Pengaturan default saat membuat sistem file akan membuat 1 inode per 2K byte ruang. Ini memberikan banyak inode untuk sebagian besar sistem. Anda kemungkinan besar akan kehabisan ruang sebelum Anda kehabisan inode. Jika perlu, Anda dapat menentukan berapa banyak inode yang harus dibuat saat membuat sistem file.
Jika Anda kehabisan inode, Anda tidak akan dapat membuat file baru. Sistem Anda juga tidak akan dapat melakukannya. Ini bukan situasi yang akan dihadapi sebagian besar pengguna tetapi mungkin saja.
Misalnya, server email akan menyimpan sejumlah besar file yang sangat kecil. Banyak dari file-file itu akan berada di bawah 2K byte. Hal ini juga diharapkan untuk tumbuh terus-menerus. Oleh karena itu, server email berisiko kehabisan inode sebelum kehabisan ruang.
Beberapa sistem file seperti Btrfs, JFS, XFS telah menerapkan inode dinamis. Mereka dapat meningkatkan jumlah inode yang tersedia jika diperlukan.
Bagaimana cara kerja inode?
Ketika file baru dibuat, itu diberi nomor inode dan nama file. Nomor inode adalah nomor unik dalam sistem file itu. Nama dan nomor inode disimpan sebagai entri dalam direktori.
Ketika saya menjalankan perintah ls “ls -li / ” nama file dan nomor inode adalah apa yang disimpan di direktori / . Pengguna informasi yang tersisa, grup, izin file, ukuran, dll diambil dari tabel inode menggunakan nomor inode.
Anda dapat membuat daftar informasi inode untuk setiap sistem file dengan perintah df di Linux:
df -hi
Inode &Tautan lunak/keras
Tautan lunak atau tautan simbolik adalah fitur Linux yang terkenal. Tapi apa yang terjadi dengan Inodes ketika Anda membuat tautan simbolis di Linux? Pada gambar berikutnya saya memiliki direktori bernama “dir1 “, sebuah file bernama “file1 ” dan di dalam “dir1 ” Saya memiliki tautan lunak bernama “slink1 ” yang menunjuk ke “../file1 “
Sekarang saya dapat membuat daftar secara rekursif dan menampilkan informasi inode.
Seperti yang diharapkan, dir1 dan file1 memiliki nomor inode yang berbeda. Tapi begitu juga tautan lunaknya. Saat Anda membuat tautan lunak, Anda membuat file baru. Dalam metadatanya, itu menunjuk ke target. Untuk setiap tautan lunak yang Anda buat, Anda menggunakan satu inode.
Setelah membuat tautan keras di dir1 dengan perintah ln:
ln ../file1 hlink1
Daftar nomor inode memberi saya informasi berikut:
Anda dapat melihat bahwa “file1″ dan “hlink1 ” memiliki nomor inode yang sama. Sejujurnya, tautan keras dimungkinkan karena inode. Tautan keras tidak membuat file baru. Ini hanya memberikan nama baru untuk data yang sama.
Di versi Linux yang lebih lama, dimungkinkan untuk menautkan direktori dengan keras. Bahkan dimungkinkan untuk memiliki direktori yang diberikan menjadi induknya sendiri. Ini dimungkinkan karena implementasi inode. Ini sekarang dibatasi untuk mencegah pengguna membuat struktur direktori yang sangat membingungkan.
Implikasi lain dari inode
Cara kerja inode juga menjadi alasan mengapa tidak mungkin membuat tautan keras di seluruh sistem file yang berbeda. Mengizinkan tugas seperti itu akan membuka kemungkinan memiliki nomor inode yang saling bertentangan. Tautan lunak di sisi lain dapat dibuat di berbagai sistem file.
Karena hard link memiliki nomor inode yang sama dengan file asli, Anda dapat menghapus file asli dan data masih tersedia melalui hard link. Yang Anda lakukan, dalam hal ini, adalah menghapus salah satu nama yang menunjuk ke nomor inode ini. Data yang ditautkan ke nomor inode ini akan tetap tersedia sampai semua nama yang terkait dengannya dihapus.
Inode juga merupakan alasan besar mengapa sistem Linux dapat memperbarui tanpa perlu reboot. Ini karena satu proses dapat menggunakan file perpustakaan sementara proses lain mengganti file itu dengan versi baru. Oleh karena itu, buat inode baru untuk file baru. Proses yang sudah berjalan akan tetap menggunakan file lama sementara setiap panggilan baru akan menghasilkan penggunaan versi baru.
Fitur menarik lainnya yang hadir dengan inode adalah kemampuan untuk menyimpan data di dalam inode itu sendiri. Ini disebut Menyejajarkan . Metode penyimpanan ini memiliki keuntungan menghemat ruang karena tidak diperlukan blok data. Ini juga meningkatkan waktu pencarian dengan menghindari lebih banyak akses disk untuk mendapatkan data.
Beberapa sistem file seperti ext4 memiliki opsi yang disebut inline_data. Saat diaktifkan, ini memungkinkan sistem operasi untuk menyimpan data dengan cara ini. Karena keterbatasan ukuran, inlining hanya berfungsi untuk file yang sangat kecil. Ext2 dan yang lebih baru akan sering menyimpan informasi tautan lunak dengan cara ini. Itu jika ukurannya tidak lebih dari 60 Bytes.
Kesimpulan
Inode bukanlah sesuatu yang berinteraksi langsung dengan Anda, tetapi mereka memainkan peran penting. Jika sebuah partisi berisi banyak file yang sangat kecil, seperti server email, mengetahui apa itu dan bagaimana mereka bekerja dapat menyelamatkan Anda dari banyak masalah.
Saya harap Anda menyukai artikel ini dan mempelajari sesuatu yang baru dan penting tentang inode di Linux. Berlangganan ke situs web kami untuk mempelajari lebih banyak informasi terkait Linux.