Veri Yönetimi: Sık Kullanılan Dosya Sistemleri

Temel olarak dosya sistemleri kullanımlar özelinde özelleştirilmiştir. Pek çok dosya sistemi özel kullanılmar veya bir işletim sistemi ile kullanım için tasarlanmıştır. Windows ve macOS gibi diğer işletim sistemleriyle karşılaştırıldığında, Linux, bu işletim sistemine katkıda bulunan, onu her yıl geliştiren ve tanıtan bir insan topluluğu tarafından geliştirilen bir projedir. Yeterince hevesli ve yetenekli olan herkes yeni bir Linux dosya sistemi oluşturabilir. Linux dosya sisteminin bu kadar çok varyasyonda bulunmasının nedeni budur. Bu da özellikle Unix-like işletim sistemi dağıtımlarında ve Linux dağıtımlarında farklı farklı dosya sistemleri görmemize sebep olmaktadır. Bir diğer yandan sektörü domine eden bazı şirket ve kuruluşlar kendi ürünleri için kendi dosya yönetim sistemlerini geliştirmiştir.

Şimdi bazı dosya yönetim sistemlerine bakalım ve karşılaştıralım.

FAT

FAT dosya sistemi, belirli bir bilgisayar dosya sistemi mimarisi türü ve onu kullanan endüstri standardı dosya sistemleri ailesidir. FAT, dosya sistemi’nin orijinali 1970’lerde ve 1980 yılları başında Microsoft MS-DOS işletim sistemi’nin desteklediği dosya sistemi olarak hayatına başladı. Windows XP ile dünyada pek çok cihazda kullanılmış ve endüstride en temel dosya sistemi FAT dosya sistemidir. Bunun sebebi ise, basit ve sağlam olan tablo yapısı onu kolay adapte edilebilir yaparken, eski bir dosya sistemi oluşu da sektörde onu bir alışkanlık gibi bir konuma getirmiştir.

FAT dosya sistemi oldukça basittir. Bu dosya sisteminde kaynak ve veri çatalları yerine tablolar bulunmakta. Ayrıca dosya izinleri FAT tarafından kontrol edilemez ve dosya yönetim sistemi içerisinde sembolik linkler oluşturulamamaktadır. FAT sadece verilerin temel olarak depolanmasını sağlar. Dosya geçmişi özelliği gibi bazı temel özellikler bile bu dosya yönetim sistemi için bulunmuyor. Hepsinden de kötüsü dosyalar için maksimum disk boyut sınırı 4 GB kadar. O kadar basit bir yapıya sahip.

Buna rağmen endüstride sıklıkla kullanmakta. En basiti SBC’ler (örneğin Raspberry Pi gibi) boot edilirken FAT dosya sisteminden çekirdek ve device tree blobları okunarak SBC’ler çalıştırılır.

NTFS

Windows XP sonrası sistemler için Windows tarafından geliştirilen yeni nesil dosya sistemidir. Microsoft’un önceki FAT dosya sisteminin yeniden yapılandırılmasıyla oluşmuştur. FAT sisteminde olduğu gibi NTFS de dosya konumlarını bir ana indeks olarak tablolar ile saklamaktadır. Ayrıca dosyanın yerleştiği konumlarıve diğer bilgileri (örneğin sembolik linkler veya dosya izinleri) her cluster’in içinde ayrıca saklayarak daha güvenilir bir yapı sunar. NTFS dosya ve dizinler hakkında bilgileri FAT dosya sistemindeki File Allocation Table’ın daha karmaşık bir formu olan Master File Table üzerinde depolanır. Bu tablolar dosyalara ek olarak izinleri ve bazı özellikleri de depolamakta. Bir nevi gelişmiş bir FAT tablosu gibi.

NTFS Günlük Yazma özelliğini destekler. Günlük dosya sistemleri dosya ve dizinlerdeki değişiklikleri yansıtacak şekilde güncellemek genellikle birçok ayrı yazma işlemi gerektirir. Günlüklü bir dosya sistemi, önceden yapacağı değişiklikleri kaydettiği özel bir alan (günlük) tahsis eder. Bir sistem çökmesi veya elektrik kesintisi durumunda, bu tür dosya sistemleri, daha düşük bir bozulma olasılığı ile daha hızlı bir şekilde yeniden çevrimiçi duruma getirilebilir.

Ayrıca NTFS dosya sistemi temelde 64 bitlik yapısı sayesinde 16 EB (Exabyte) depolama alanı desteği vermektedir. Ancak bu dosya sistemi Windows harici işletim sistemlerinde korumalı olarak bağlanması ve ntfsfix gibi bazı araçlar kullanılmadan veri yazılması mümkün değil. Bu da bu dosya sisteminin portabilitesini azaltmaktadır.

exFAT

exFAT yine Windows için USB aygıtları ve SD Kartlar üzerinde kullanılmak üzere 2006 yılında ortaya çıkarılmıştır. Pek çok özelliği ile NTFS’ye benzemektedir. exFAT dinamik bellekleme tablosu sayesinde kağıt üzerinde herhangi bir boyutsal sınırlamaya sahip değil.

Buna ek olarak exFAT, MacOS ve Linux için kısa sürede uyarlanmış olması sayesinde biraz daha taşınabilir aygıtlarda kullanılmaktadır. Ayrıca exFAT günlükleme sistemi getirmediği gibi NTFS gibi karmaşık olarak gösterilebilecek dosya geçmiş sistemi de içermemekte. Daha basit bir yapıda olması sistem kesintilerinde sadece aktarılan verinin kaybedilmesi ile sonuçlansa da diğer veriler korunabilir.

Ext

Ext, linux’un ilk sürümlerinden bu yana “Genişletilmiş dosya sistemi” oluşturma amacıyla ortaya atılmış bir dosya sistemdir. Linux için oluşturulan ilk sistem EXT dosya sistemidir. Ext, bunca zaman boyunca 4 ana revizyon gördü. Bunlardan ilki 1992’de ilk kararlı Linux çekirdeğinde sunuldu. İlk EXT dosya sistemi, Minix dosya sistemi MinixFS’ye yapılan büyük bir güncelleme olarak çıktı. Temel olarak MinixFS’nin veri kararsızlıklarını ve disk yönetim mantığını geliştirmek amacıyla oluşturulmuştu. Bu sebeple oldukça basit ve sadedir. Ancak FAT sistemi gibi pek çok dezavantaj ve Linux çekirdeğinin ilk sürümlerinde alelacele bir geliştirmeye uğramış olmasından dolayı oldukça kararsızdı.

Ext2

Ext2 ext’ye göre modern bir dosya yönetim sistemidir. Ext2 temel olarak günlükleme işlemez. Sunulduğunda Ext2 modernliği, genişletilmiş dosya özniteliklerini ve 2 terabayt sürücüyü desteklemesiydi. Ext2’nin günlükleme sisteminin olmaması, kolaylıkla verilerin yazılması ve silinmesine imkan sağlarken; taşınabilir flash sürücülerde kullanım kolaylığı sağlar. Ancak günümüzde exFAT veya FAT32 gibi daha evrensel gelişmiş dosya sistemleri taşınabilir sürücülerde kullanıldığı için o kadar popüler değildir. emmc aygırları gibi çeşitli donanımlarda kullanmaya oldukça elverişlidir. Ayrıca yavaş sistemlerde kullanmak için daha kullanışlıdırlar ve rahattır. Ancak deprecated olmuş yani eski olarak işaretlenmiş bir dosya sistemi olarak görüldüğü için kullanmanız pek önerilmez. Dolayısıyla, Ext2’yi özel bir amaçla kullanmıyprsanız veya böyle bir ihtiyacınız yoksa, Ext4 gibi daha modern dosya sistemlerini kullanmanız her zaman daha iyidir.

Ext3

Ext3, Ext2’ye çok benzer, ancak tek farkı günlükleme özelliğini içerir olmasıdır. Ext2 ile geriye doğru ilintili şekilde oluşturuldu, bu nedenle eski ext2 bölümleri biçimlendirmeye gerek olmadan ext3’e dönüştürülebiliyor. ext3 oldukça eski ancak kullanışlı bir versiyon. Ext4 daha yaygın ve kararlı oluşu sebebiyle ext3 ile karşılaştırıldığında ext4 kullanım için daha idealdir.

Ext4

  1. jenerasyon EXT dosya yönetim sistemidir ve ext2 ile ext3 arasında olduğugibi uyumluluğı bulunmaktadır.Ext4 dosya parçalanmasını azaltan, daha büyük dosyalara ve boyutlara sahip olmayı mümkün kılan ve flash bellekler için işleme sürelerini azaltarak performans artışı sağlayan bazı temel güncellemeler ile geldi. Günümüzde pek çok Linux dağıtımında temel veya varsayılan dosya sistemi olarak gelmekte. Hala üzerine çok sayıda güncelleme gelmekte ve performans ile karalılığa yönelik çalışmalar devam etmektedir, bu yüzden oldukça popülerdir.

ZFS

Zettabyte file system, başta Sun Microsystems tarafından 1990ların sonunda yüksek miktarda veri depolama desteği ve sanal RAID yönetim sistemi oluşturmak amacıyla oluşturulmuştur. İlk olarak SunOS ve Solaris için geliştirilen bu dosya yönetim sistemi Oracle’ın Sun Microsystems’i satın alıp bütün kodlarını kapatması üzerine OpenSolaris ve IllumOS toplulukları tarafından FreeBSD ve Linux çekirdeğine port edildi. FreeBSD 9.0 sonrasında UDF’ye ek olarak geldiği gibi 10.0 ile beraber öntanımlı ikidosya sisteminden birisi olarak gelmiştir.

ZFS oldukça karmaşık bir havuz yönetim sistemi getirmektedir. Bütün bunlara ek olarak 2^64 adet cihazın birlikte kullanımı ve 2^64 Gigabyte dosya depolamaya destek vermektedir. Tabi ki bu rakamlar tamamiyle kağıt üzeri olsa da gerçek hayatta da çok büyük sunucu ve depolama sistemlerinde kullanılmıştır.

ZFS pek çok farklı yaklaşımı da dosya yönetimine getirmiştir. Bunlardan en önemlisi zRAID isimli sanal RAID sistemi ve COW (kopyalama üzerine yazma) sistemini getirmektedir. ZFS havuz oluşturma, anlık görüntüler, sağlama toplamları ve tümleşik çok aygıtlı yayılma gibi özellikleri sağlamaktadır.

BTRFS

BTRFS, 2007 yılında Oracle tarafından Linux üzerinde kullanılmak amacıyla tasarlandı. Kasım 2013’ten beri dosya sisteminin disk üzerindeki formatı Linux çekirdeğinde kararlı ilan edildi. Btrfs, ZFS tarafından sağlanan bazı özellikleri Linux dosya sistemlerinde sağlamak amacıyla oluşturulmuştur. Btrfs’nin yazarı Chris Mason, amacının “Linux’un yüksek depolama için ölçeklendirmesine izin vermek” olarak belirtiyor. Btrfs’nin temel amacı bu şekilde dosya yönetimi için ZFS’nin sağladığından daha temiz bir arayüz sağlamaktadır.

HFS+

MacOS için özel olarak oluşturulmuş bir dosya yönetim sistemidir. Temel olarak günlüklemeye sahip olan bir HFS üstü sistem olarak karşımıza çıkmaktadır.

XFS

XFS, 2001 yılında Silicon Graphics tarafından Linux için oluşturuldu. XFS, SGI IRX OS için yapıldı. XFS takılı anlık görüntüleri desteklemez ve dosya parçalanmasını geliştirmek için geciktirilmiş ayırmaya sahiptir ve bu tür özelliklerle Ext4’e benzer. XFS, büyük dosyalar için oldukça etkili bir dosya yönetim sistemidir, ancak küçük dosyalarla iyi çalışmaz ve performans diğer birçok dosya sisteminden daha kötüdür. Bu nedenle, hizmetleri için büyük dosyalarla çalışan bir şey bulmaya çalışanlar, XFS’yi bir seçenek olarak düşünebilirler.