Birkaç gündür 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
Filesystem Inodes IUsed IFree IUse% Mounted on /dev/sda 680K 21K 660K 3% / /dev/sdc 1.3M 25K 1.2M 2% /files
Diskteki mevcut boş alanı görmek için ise;
root@localhost:~# df -h
Filesystem Size Used Avail Use% Mounted on /dev/sda 11G 741M 9.5G 8% / /dev/sdc 4.8G 960M 3.6G 21% /files
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.
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!...





