Sunucularda inode dolması, özellikle Linux tabanlı sistemlerde sık karşılaşılan bir sorundur.
Sunucularda inode dolması, özellikle Linux tabanlı sistemlerde sık karşılaşılan bir sorundur. Disk alanı yeterli görünse bile, dosya sistemi inode limitine ulaştığında yeni dosya oluşturma işlemleri başarısız olur. Bu durum, web uygulamaları, veritabanı sunucuları ve yüksek trafikli sitelerde kritik kesintilere yol açabilir. Inode’lar, her dosya ve dizin için meta veri tutan yapılar olup, dosya sisteminin temel bileşenlerindendir. Sorunun erken tespiti ve proaktif çözümleri, sistem performansını korumanın anahtarıdır. Bu makalede, inode dolmasının nedenlerini, teşhis yöntemlerini ve pratik çözüm yollarını adım adım ele alacağız.
Inode dolması, genellikle küçük boyutlu ancak yüksek sayıdaki dosyaların birikmesiyle meydana gelir. Örneğin, web sunucularında session dosyaları, cache dizinleri, log kayıtları veya e-posta sunucularındaki spam filtre dosyaları bu sorunu tetikler. Maildir formatındaki e-posta kutuları veya WordPress gibi CMS’lerin upload dizinleri de inode tüketimini hızlandırır. Disk kotası uygulanmayan paylaşımlı hosting ortamlarında bu risk daha yüksektir.
Belirtiler arasında, “No space left on device” hatası yer alır; ancak df -h komutu disk alanının boş olduğunu gösterir. Sunucu yanıt süreleri uzar, cron işleri başarısız olur ve yeni log dosyaları yazılamaz. Erken teşhis için düzenli izleme şarttır; bu sayede veri kaybı önlenir ve sistem stabilitesi sağlanır. Pratik olarak, yüksek trafik dönemlerinde log dosyalarının hızlı çoğalmasını izleyin ve otomatik temizlik script’leri entegre edin.
Sunucunuzdaki inode kullanımını değerlendirmek için standart Linux komutlarını kullanın. Öncelikle df -i komutu ile genel inode doluluk oranını görüntüleyin; yüzde 90’ı aşan değerler acil müdahale gerektirir. Bu komut, her dosya sistemi için inode sayısı, kullanılan ve boş olan miktarını tablo halinde sunar. Daha detaylı analiz için du --inodes -s /path/* | sort -n ile dizin bazında tüketimi sıralayın.
df -i: Tüm mount point’lerde inode durumunu hızlıca kontrol eder.find / -type f | wc -l: Toplam dosya sayısını hesaplar ve inode tahminine yardımcı olur.ncdu aracı: İnteraktif dosya tarayıcısı olarak büyük dizinleri görselleştirir; yüklemek için apt install ncdu veya yum install ncdu kullanın.Bu teknikler, sorunu kökünden teşhis etmenizi sağlar. Örneğin, /tmp dizininde biriken geçici dosyalar inode’nun %20’sini kaplıyorsa, öncelikli temizlik hedefi belirleyin. Düzenli cron job’larla bu kontrolleri otomatikleştirerek proaktif yönetim uygulayın; haftalık raporlar e-posta ile gönderilebilir.
Inode tüketimini azaltmanın en hızlı yolu, gereksiz dosyaları silmektir. Önce find /var/log -type f -mtime +30 -delete ile 30 günden eski logları temizleyin; bu komut, cron ile haftalık çalıştırılabilir. Cache dizinleri için rm -rf /var/cache/* uygular, ancak kritik verileri yedekleyin. Mail dizinlerinde find /home/*/Maildir -type f -size -1k -delete ile küçük spam dosyalarını hedefleyin. Bu adımlar, inode kullanımını %30-50 oranında düşürebilir ve anında rahatlama sağlar.
XFS veya ext4 dosya sistemlerinde inode limitini artırmak için partition yeniden boyutlandırma şarttır. Önce resize2fs /dev/sda1 ile mevcut partition’ı büyütün; LVM kullanıyorsanız lvextend -L +10G /dev/vg/lv ardından resize uygular. Yeni partition oluşturmak için mkfs.ext4 -N 20000000 /dev/sda2 ile yüksek inode sayısı belirtin (-N parametresiyle). Bu işlem downtime gerektirebilir, bu yüzden off-peak saatlerde planlayın ve snapshot alın. Uygulama sonrası df -i ile doğrulanır.
Logrotate konfigürasyonu ile log dosyalarını sıkıştırıp rotasyon yapın; /etc/logrotate.conf’ta daily rotation ve maxsize 100M ayarlayın. Quota sistemini etkinleştirerek kullanıcı başına inode limiti koyun: quotacheck -avugm ve edquota ile limit belirleyin. Uygulamalarda cache’i Redis gibi bellek tabanlı sisteme taşıyın; bu, disk inode’sunu bypass eder. Monitoring araçları gibi Prometheus ile inode metriğini izleyin ve threshold aşıldığında alert kurun. Bu stratejiler, sorunun tekrarını minimize eder.
Sonuç olarak, inode dolması sunucu yönetiminde öngörülebilir bir risk olup, düzenli izleme ve bakım ile kolayca yönetilebilir. Yukarıdaki adımları uygulayarak sistem güvenilirliğinizi artırın, veri bütünlüğünü koruyun ve operasyonel verimliliği yükseltin. Profesyonel destek için sistem yöneticilerinizle yakın çalışın; proaktif yaklaşımlar uzun vadeli başarı getirir.