Apa itu inode yatim piatu? [Tutup]


16

Saya mengerti apa itu inode tapi apa definisi yang tepat dari inode yatim? Saya tidak begitu mengerti apa artinya itu.

MEMPERBARUI

Ada waktu ketika server yang saya kelola kehabisan inode tetapi ketika saya akan melakukan df -h itu menunjukkan kepada saya bahwa server hanya memiliki 60% ruang yang digunakan. Saya menduga ini karena inode yatim. Bagaimana semua inode dapat digunakan tetapi masih ada "ruang" tersisa di server? Bisakah Anda menjawab ini dengan jawaban Anda?


1
Pembaruan Anda benar-benar merupakan pertanyaan terpisah, berkaitan dengan perbedaan antara kapasitas penyimpanan sistem file dan jumlah inode yang dapat dikandungnya; Anda harus menanyakannya sebagai pertanyaan terpisah.
Stephen Kitt

Menjalankan df -iakan menampilkan info yang sesuai untuk inode.
Kusalananda

Ruang bebas disk / bekas hanya sedikit berkorelasi dengan inode bebas / bekas. Disk dengan banyak file kecil akan kehabisan inode sebelum kehabisan ruang.
Kusalananda

Jawaban:


17

Inode yatim adalah inode yang tidak dilampirkan ke entri direktori di sistem file, yang berarti itu tidak dapat dijangkau.

Inode yatim dapat muncul karena sejumlah alasan:

  • file sementara yang dihapus tetapi tetap terbuka (praktik umum) menempati inode pada sistem file; jika sistem reboot tanpa mematikan dengan benar, inode ini tetap dan menjadi yatim piatu
  • korupsi filesystem dapat merusak direktori tanpa memengaruhi inode file yang berisi direktori; inode ini kemudian menjadi yatim piatu

fsckmembuat entri direktori baru untuk inati yatim di lost+found.


Terima kasih atas jawaban Anda @ stephen-kitt. Ada waktu ketika server yang saya kelola kehabisan inode tetapi ketika saya akan melakukannya df -hmenunjukkan kepada saya bahwa server hanya menggunakan 60% ruang yang digunakan. Saya menduga ini karena inode yatim. Bagaimana semua inode dapat digunakan tetapi masih ada "ruang" tersisa di server?
ninjacoder

3

Inode yatim piatu adalah file yang "semi-dihapus": ia tidak memiliki entri direktori lagi, tetapi masih terbuka dalam beberapa proses, sehingga data masih ada pada disk. Ketika proses terakhir yang membuka file ini menutupnya, file akan sepenuhnya dihapus dan inode yatim akan hilang.

Inode yatim menggunakan inode dan ruang disk untuk menyimpan file, jadi keduanya dfdan df -ihitung seperti yang digunakan. Dengan demikian, jika disk dilaporkan penuh tetapi dfmenunjukkan beberapa ruang yang tersisa, ini tidak dapat dikaitkan dengan inode yatim. Orphaned inode adalah salah satu alasan mengapa penggunaan sistem file yang dilaporkan oleh dfdan ukuran file total yang dilaporkan dudapat berbeda; lihat Mengapa ada begitu banyak cara berbeda untuk mengukur penggunaan disk? untuk detail lebih lanjut tentang topik ini.

Banyak sistem file mencadangkan sejumlah inode tetap ketika sistem file dibuat, artinya Anda dapat memiliki paling banyak file pada sistem file. Jumlah inode adalah kompromi antara ruang yang digunakan oleh inode dan kemampuan untuk membuat banyak file. Jika tidak ada lagi ruang pada sistem file, maka Anda tidak dapat menumbuhkan file yang ada atau membuat file baru (mungkin Anda masih dapat membuat beberapa file kosong di direktori yang ada, selama mereka hanya mengisi blok yang digunakan sebagian dan tidak membutuhkan blok baru untuk dialokasikan). Jika tidak ada lagi inode gratis, Anda dapat menumbuhkan file yang sudah ada tetapi Anda tidak dapat membuat file baru.

Kernel melaporkan kesalahan yang sama ke aplikasi apakah sistem file penuh karena kurangnya ruang data atau karena kurangnya inode. Jadi Anda bisa mendapatkan kesalahan "disk penuh" bahkan jika ada beberapa ruang data yang tersisa, jika operasi memerlukan inode baru dan tabel inode penuh. Jalankan df -iuntuk mengetahui berapa banyak inode yang digunakan dan berapa banyak yang tersisa.


1
  • Inode yatim piatu adalah yang telah dibatalkan tautannya tetapi masih terbuka dalam proses lain. Misalnya berjalan tail -f {file}dalam satu shell diikuti oleh yang rm {file}lain. Sistem file melacak ini sehingga mereka dapat dibersihkan ketika proses berhenti.

  • Itu sangat normal setiap kali Anda memiliki turun kotor. Mereka hanya file yang telah dihapus, tetapi masih terbuka ketika fs hanya dihapus baca saja. Mereka bukan penyebabnya, tetapi hanya gejala.


Untuk masalah inode, jalankan kueri ini untuk mendapatkan daftar berapa banyak inode yang digunakan di semua direktori

for i in `find . -type d `; do echo `ls -a $i | wc -l` $i; done | sort -n

Anda dapat merujuk ini dan ini untuk lebih banyak metode untuk memeriksa.


@ninjacoder Anda dapat memeriksa jawaban saya yang diperbarui untuk masalah inode Anda
Rahul
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.