17 2018 Aralık

Kategori: Linux
17 Aralık 2018 tarihinde yazıldı.

Bugün DirectAdmin Hosting Kontrol Paneli’ni açtığımda sağ tarafta yer alan istatistikleri kontrol ettiğim zaman “Inodes” diye bir kullanım istatistiği gözü çarptı. Dahası diğer kullanım istastiklerine göre daha fazla idi ve yine hızlı bir artış eğiliminde idi. Biraz araştırdığımda ise bu hızlı artışın sorun edilmemesi gerektiğini gördüm.

Dosya ve veriler

Linux Dergisi’nin elektronik sayfalarında, dosya sistemleri yaygın olarak tartışılmaktadır. Bu bir gerçek! Bu tartışmalarda, bir dosya sistemine referans olarak kullanılan “inode” teriminin çokça geçtiğini fark ettim. Hosting panelinde görene kadar açıkçası çok da dikkatimi çekmemişti. Oralarda da insanların genellikle, “Inode nedir?” ve benzeri soruları sıkça sörduklarını gördüm.

Inode nedir sorusu depolama makalelerini okuyan birçok kişi için temel bir soru gibi görünebilir, fakat Linux’ta yeni başlayan birçok kişi için bu kavram anlaşılmayabilir. Ayrıca bir kavramı sürekli gözden geçirmek ve irdelemek her zaman iyidir. Tabi bazen özellikle yazara karşı kırıcı, incitici yorumların yapılmış olduğunu görmek insanı üzüyor. Öyle ya soruyu beğenmiyorsan okumazsın, okumuşsan cevaplamazsın olur biter. Keza herkesin dosya sistemleri konusunda uzman olduğunu beklemek de pekala yanlıştır.

Genelde dosya sistemleri iki bölümden oluşur: Birinci bölüm, verilerle ilgili meta veriler veya veri hakkındaki veriler, ikincisi ise verilerin bizzat kendisi. İlk bölüm, meta veriler komik gelebilir, çünkü veriler hakkındaki verilerdir. Ancak bu dosya sistemleri için çok önemli bir bileşendir. Veriler hakkındaki bilgilerden oluşur. Daha doğrusu, dosyanın adı, dosyanın değiştirildiği tarih, dosya sahibi, dosya izinleri, vb. Gibi bilgileri içerir. Bu tür bir bilgi, bir dosya sisteminin anahtarıdır, aksi takdirde sadece depolama ortamında bir miktar bit vardır. bu pek bir şey ifade etmiyor. Inodes, bu meta veri bilgilerini depolar ve genellikle verilerin depolama ortamında nerede bulunduğuyla ilgili bilgileri de depolar. Bu açıdan bakıldığında aslında veriler ile ilgili verilerin aslında hiç de komik olmadığı ve ne kadar gerekli olduğu ortadadır. Zira en basitinden elimizde bir Word belgesi var ve biz bu Word belgesinin, oluşturma tarihi, son güncelleme tarihini, hangi bilgisayarda yazıldığını ve en önemlisi adını biliyoruz. Bu, gerçekten güzeldir.

Inode

Genel olarak *nix dosya sistemleri için, her dosya veya dizinde, ilişkili bir inode vardır. Daha önce de belirttiğimiz gibi, bu meta verinin depolandığı ve inode’un tipik olarak bir tamsayı numarası olarak temsil edildiği yerdir. İnode teriminin kökeni kesin olarak bilinmemektedir. Unix’in orijinal geliştiricilerinden Dennis Ritchie, Wikipedia sayfasından inode teriminin kökeni hakkında şunları söyler:

Aslında ben de bilmiyorum. Kullanmaya başladığımız bir terimdi. Dosya erişim bilgilerini diskte düz bir dizi olarak depolayan ve hiyerarşik dizin bilgilerinin bir kenara bırakıldığı, sıra dışı dosya sistemi yapısı nedeniyle “Index” adının verilmiş olabileceği en iyi tahminimdir. Böylece, “i” sayısı bu dizideki bir dizindir, “i” düğümü dizinin seçilen öğesidir. (1. sürümde “i-” notasyonu kullanıldı, kısa çizgi bırakıldı.)

Yani özenle çevirmeme rağmen, rahmetli Dennis’in sözlerini açıklama gereği duyuyorum: Der ki index (dizin) dediğimiz şey, oluşturma, son değiştirme, son okuma gibi dosya erişim bilgilerini diskte düz bir dizi (array) olarak depolayan, hiyerarşik dizin bilgilerinin göz ardı edildiği dosya sistemidir. Hiyararşik dizin bilgileri konusunda ilave bilgilere bu sayfa aracılığı ile Wikipedia’dan erişebilirsiniz. Tabi erişebilirseniz!

Inode’ların oluşturulmuşlarsa nasıl oluşturuldukları belirli dosya sistemine bağlıdır. Birkaç dosya sistemi, dosya sistemi oluşturulduğunda sabit sayıda düğümlerin (nodes) hepsini oluşturur. Örneğin, ext3 bunu yapan bir dosya sistemidir. Sonuç olarak, dosya sisteminde saklanabilecek sabit sayıda dosya vardır. Daha fazla düğüme ihtiyacınız varsa, dosya sistemindeki tüm verileri kaybederek yeniden dosyalamanız gerekir.

Sonuç

Wikipedia’dan bir kısmını çevirdiğim ve sonra ne olduğunu anlayınca aslında sıkıldığım Inode (i-node) (index-node) (düğüm), Unix benzeri dosyalama sisteminin üzerinde bulunan bir veri yapısıdır. Inode, disk tablosunda bir kayıttır. Bu kayıtta dosyanın/dizinin sahibi, sahibinin ait olduğu grup, oluşturulma tarihi, dosya/dizin boyutu, link sayısı, tipi, erişim hakları, en son erişim tarihi, en son değişikliklerin yapıldığı tarih gibi bilgiler yer alır. Yani inode dosyaların, dizinlerin, ve diğer dosyalama sistemi objelerinin genel bilgilerini depolar. Özetle inode dosyanın ismi haricindeki bütün bilgileri depolar. Inode, web içeriğini kontrol ve takip etmede kullanılır. Hesapta bulunan tüm içerik tiplerinin toplamı, hesaptaki node sayısını belirler.

Inode, cache kullanıldığı zaman, zamanla cache’te tutulan dosyalar arttığı için daha hızlı artmaktadır. Cache’i, Temp klasörünü boşalttığınızda, gereksiz dosya ve e-postaları sildiğinde inode düşer.

Inode’un artması sistemde herhangi bir sıkıntıya neden olmaz. Ancak webte yer alan bazı kaynaklara göre, inode’un izin verilen aralıktan daha fazla olması durumunda hosting firması tarafından yapılan günlük, haftalık yedeklemelerde fazlaya ilişkin kısım yedeklenmez.

Linux ile yeterince ilgilemediğimin farkındayım. Biraz da vicdanımı rahatlatmak için belki de “Linux” başlığı ile bir yazı kategorisi oluşturduğum doğrudur. Birgün şayet Linux üzerine yazılar yazarsam bu konuyu da detaylandırmayı umuyorum. Şimdilik inode hakkında söyleyebileceklerim bunlardı.

Sağlıcakla kalın.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir