@Deprecated - Bu sitede artık teknik makalelere yer vermeyeceğim! Teknik yazilarımı netologist.org adresinden takip edebilirsiniz.

Linux Dosya Indeksleri (inode) ve Sistem Mimarisi

9 Ocak 2010 · netologist · 2 dakika, 336 kelime

Birkaç gündür http://kissa.be servisinin bulunduğu sunucu, diskte yer yok hatası nedeniyle düzgün bir şekilde hizmet veremiyordu. Durumu farkeder farketmez, diskteki yerimi kontrol ettiğimde gördüm ki; diskin %80’lik bir bölümü halen boş. Sorunun sunucu hizmeti aldığım firmayla görüşünce, anlaşıldı ki, diske format atarken varsayılan değerlerini aynen kabul ettiğim dosya indekslerimin (inode size) tükendiği için bu hatayı aldığım anlaşıldı.

Diskte mevcut inode sayısını görmek için;

root@localhost:~# df -ih
FilesystemInodesIUsedIFreeIUse%Mounted on
/dev/sda680K21K660K3%/
/dev/sdc1.3M25K1.2M2%/files

Diskteki mevcut boş alanı görmek için ise;

root@localhost:~# df -h
FilesystemSizeUsedAvailUse%Mounted on
/dev/sda11G741M9.5G8%/
/dev/sdc4.8G960M3.6G21%/files

http://kissa.be resim ve metin gibi dosyaları saklamanıza yarayan bir servis olduğu için çok küçük oranlarda çok fazla dosya bulundurabiliyor bünyesinde. Bu da dosya indeks limitimin hızlı bir şekilde tükenmesine neden olmuştu.

http://kissa.be’nin bulunduğu bir önceki sunucu da (Debian 4.0) bir dosya için ayrılması düşünülen dosya indeks boyutu (bytes-per-inode) 4096 ve dosya indeks alanı ise 128 idi. Şuan mevcut sunucumda (Ubuntu 9.10) ise varsayılan kurulum ayarları (8096 / 128) olarak geliyor.

Diskinize ait inode ve block gibi değerleri görmek için;

root@localhost:~# tune2fs -l /dev/sdc
Inode count:1280000
Free inodes:1255224
Inodes per group:32000
Inode blocks per group:1000
Inode size:128

Sorunu tespit ettikten sonra çözüm bulmak gerçekten çok kolay oluyor. Linux’ta kissa.be servisine özel bir disk alanı gerekiyordu. Sunucuda inode değerleri ihtiyacıma göre olan bir alan yaratınca sorun kökten çözüldü. Böylece sunucunun işletim sistemi bu durumdan hiç etkilenmedi.

Diski inode değerlerine göre yeniden biçimlendirirken;

root@localhost:~# mkfs.ext3 -i 4096 -I 128 /dev/sdc

Aslında bu konularda uzman biri olduğumu pek söyleyemem. Çok anlamam ama, linux sistemiyle uğraşmayı, sistem programlama konularını seviyorum.

Yazının ana fikrine gelecek olursak;

Eğer kissa.be heveskar bir gencin projesi değil de, bit.ly gibi planlı bir proje olsaydı, gereksinim analizini okuyan bir Sistem Mimari servise ait dosyaları barındıran diskin formatlanması konusunda inode detayını atlamazdı.

Yaşadığım bu olay, bugün öğrendiğim küçük bir ders oldu!…