ZFS ile Btrfs Arasında Temel Mimari ve Güvenilirlik Karşılaştırması: Teknik Özellikler ve Gerçek Dünya Dağıtımında Dikkat Edilmesi Gerekenler
Modern depolama teknolojileri arenasında Btrfs ve ZFS / OpenZFS, şüphesiz en baskın iki güç olarak öne çıkıyor. Her ikisi de Copy-on-Write (CoW) temel felsefesi üzerine kurulu olup kendi kendini onarma ve anlık görüntü özellikleri sunsa da fiziksel depolama katmanı (ör. RAID5/RAID50) ve cihaz genişletme söz konusu olduğunda birbirinden belirgin şekilde farklı mühendislik DNA’larına sahiptir.

Bu iki dosya sistemi arasındaki farkları dört ana boyutta inceleyelim: yazma mekanizmaları, genişletme maliyeti, RAID yazma boşluğu (write hole) ve veri bütünlüğü.
1. Yazma Mekanizmalarındaki Felsefi Farklar: Esneklik mi, Verimlilik mi?
Btrfs ve ZFS, veri yazma işlemlerinde temelden farklı stratejiler benimser ve bu fark, her birinin kullanım alanlarını doğrudan belirler.
Btrfs: Tetris Benzeri Doldurma
Btrfs, fiziksel cihazları “chunk” (parça) adı verilen 1 GiB’lık mantıksal birimlere soyutlar. Bu tasarım, şerit (stripe) genişliğinin yazma anında o an kullanılabilir disk sayısına göre dinamik olarak belirlenmesine olanak tanır.
Bunun en önemli avantajı olağanüstü donanım esnekliğidir. Tek bir depolama havuzunda farklı kapasitelerdeki sürücüleri bir arada kullanabilirsiniz; Btrfs ise Tetris oynar gibi alan kullanımını en üst düzeye çıkarır.
Mimari açıdan bağımsız bir RAID50 profili yoktur; bunun yerine birden fazla RAID5 parçasını bir araya getirerek fiilen paralel bir RAID50 gibi çalışır.
ZFS: İşlem Tabanlı Performans Mantığı
ZFS ise performansı ön planda tutan bir strateji izler. Değişken şerit genişliği yaklaşımını benimser ve her yazma işlemi (transaction) için şerit düzenini dinamik olarak belirler.
ZFS’nin avantajı, geleneksel RAID Read-Modify-Write (RMW) döngüsünü tamamen ortadan kaldırarak G/Ç verimliliğini önemli ölçüde artırmasıdır. ZFS tam şerit yazmayı destekler. Eşlik (parity) bilgisini verinin boyutuna göre gerçek zamanlı olarak hesaplar ve tam şerit yazma gerçekleştirerek eşlik bilgisinin veri sınırlarını aşmamasını sağlar.
Ortamınızda çok sayıda yedek eski sürücü varsa Btrfs mimarisi, farklı yaş ve kapasitedeki sürücüleri bir arada kullanmak için oldukça uygundur. Ancak en yüksek G/Ç aktarım hızını ve kurumsal düzeyde tutarlılığı hedefliyorsanız ZFS’nin işlem akışı mimarisi belirgin bir avantaj sunar.
2. Genişletmenin Maliyeti: Yeniden Dengeleme mi, Dinamik Veri Akışı mı?
Depolama kapasitesi azaldığında ve yeni bir disk eklendiğinde ne olur? Bu, operasyon ekipleri arasında en sık yanlış anlaşılan konulardan biridir.
Btrfs’te Tam Yeniden Yazmanın Maliyeti
Btrfs’in yeni diski kullanabilmesi ve daha geniş bir şerit genişliğine ulaşabilmesi için btrfs balance işlemini gerçekleştirmesi gerekir. Bunun sonucu, tam bir yeniden yazma sürecidir. Birkaç terabaytlık dizilerde bu süreç birkaç gün sürebilir ve önemli bir G/Ç yükü oluşturabilir.
Sonuç olarak veri dağılımı ve RAID seviyesi ancak bu uzun yeniden yazma süreci tamamlandıktan sonra tam olarak dönüştürülmüş olur.
ZFS’nin Zarafeti ve Tuzakları: Mantıksal Yeniden Akış (Reflow)
ZFS, genişletme sırasında mevcut verilerin taşınmasını gerektirmez. Bu davranış “zorunlu yeniden yazma yok” olarak adlandırılır. Bu mekanizmada ZFS Storage Pool Allocator (SPA) boş kapasiteyi izler ve yeni yazmaları öncelikli olarak daha fazla boş alana sahip (yeni) cihazlara yönlendirir. Bu, kapasite odaklı bir ağırlıklı ayırma biçimidir.
Ancak genişletme konusunda yaygın bir yanılgı vardır: Pek çok kişi, genişletmeden sonra verilerin otomatik olarak yeniden dengeleneceğini düşünür. Bu doğru değildir. Mevcut veriler özgün disklerde kalır ve bu da okuma sıcak noktalarına (hotspot) yol açar. Yeni eklenen disklerin IOPS’u, söz konusu mevcut verilere erişirken sınırlı fayda sağlar.
Bu gibi durumlarda daha iyi bir çözüm, manuel olarak ZFS rewrite işlemi gerçekleştirerek veya yeni RAIDZ Expansion teknolojisini kullanarak gerçek bir denge sağlamaktır. Ancak anlık görüntüler varsa bunun alan kullanımının iki katına çıkmasına yol açabileceği unutulmamalıdır.
OpenZFS’nin en son sürümlerinde zpool remove gibi özellikler ve diğer cihaz değiştirme yeteneklerinin yanı sıra yeniden dengeleme için kullanılabilecek araçlar da bulunuyor. Kısacası ZFS’nin genişletme modeli Btrfs’in dinamik genişletmesinden farklıdır, ancak tamamen statik de değildir.
Pratik kullanımda, kapasite belirlendikten sonra yapılandırmayı buna göre yapmak ve sonradan genişletmekten kaçınmak daha uygun bir tercihtir. Kuruluşlar ileride sorun yaşamamak için ihtiyaç duyacakları özellikleri önceden tahmin edip satın alımı buna göre yapmalıdır. Ancak bu aynı zamanda ZFS’nin bir dezavantajıdır; çünkü RAID kümesinin tamamını genişletme esnekliği Btrfs’inki kadar iyi değildir.
3. Veri Bütünlüğünün Asıl Savaş Alanı: RAID Yazma Boşluğu (Write Hole)
“Yazma boşluğu” (write hole), yazma işlemi sırasında elektrik kesintisi yaşandığında ortaya çıkan ve veri ile eşlik bilgisi arasında tutarsızlığa yol açabilen kritik bir riski ifade eder.
ZFS: Yapısal Bağışıklık
ZFS, çeşitli teknolojiler sayesinde bu sorunu doğası gereği mimari düzeyde önler. Birincisi atomik güncellemelerdir: ZFS, İşlem Grupları (Transaction Groups, TXG) ve bir halka arabellek (ring buffer) kullanır. Sistem, “geçerli sağlama toplamına” (checksum) sahip en son TXG’yi bulmak için halka arabelleği tarar. Tamamlanmamış TXG’ler (elektrik kesintisi anında yazılmakta olanlar) doğrudan yok sayılır ve sistem hemen son tutarlı duruma geri döner.
İkincisi ise Merkle Ağacı’dır. Dosya sisteminin tamamı devasa bir karma (hash) ağacı olarak yapılandırılmıştır; alttaki verilerde meydana gelen herhangi bir bozulma üst düzey sağlama toplamı doğrulamasının başarısız olmasına neden olur ve böylece sessiz veri bozulmasının önüne geçilir. Uberblock bu ağacın tek güven çapası olarak görev yapar ve asla yerinde üzerine yazılmaz.
Btrfs: Deneysel Statüden RST ile Kurtuluşa
Btrfs RAID5/6, tam da bu ölümcül yazma boşluğu açığı nedeniyle uzun süre “deneysel” olarak etiketlendi.
Linux çekirdeği 6.2 ile RAID Stripe Tree (RST) tanıtıldı. Bu, fiziksel düzeni extent bazında yöneten yeni bir ağaç yapısıdır ve aslında yazma boşluğu açığını gidermek için tasarlanmıştır. Bundan önce Btrfs, sağlama toplamlarını doğrulamak için tam okuma-değiştirme-yazma (RMW) döngüsüne dayanıyordu ve bu da performans yüküne yol açıyordu.
Ancak resmî btrfs readthedocs Status sayfasına göre (Linux çekirdeği 6.17 itibarıyla) Btrfs özelliklerinin çoğu OK veya Mostly OK olarak işaretlenmiştir. RAID5/6 ise üretim kullanımı için hâlâ uygun değildir ve durum tablosunda OK olarak işaretlenmemiştir. Linux çekirdeği 6.12 itibarıyla deneysel özellikler CONFIG_BTRFS_EXPERIMENTAL seçeneğinin etkinleştirilmesini gerektirir ve bilinen sorunlar hâlâ mevcuttur. Ayrıca yazma boşluğunun temel nedenleri tamamen ortadan kaldırılmış değildir. Mevcut uygulama belirli yazma bozulması senaryolarını hafifletse de uzun vadeli etkilerinin daha fazla gözlemlenmesi gerekir.
Günümüzün yaygın Linux çekirdeklerinde (ör. 6.x serisi) Btrfs’in yerel RAID5/6 desteği kademeli olarak iyileşme göstermiştir. Son birkaç yılda Btrfs topluluğu ve geliştiricileri, yarış koşullarına (race condition) yönelik düzeltmeler ve scrub davranışındaki iyileştirmeler dahil olmak üzere RAID5/6 uygulamasındaki bilinen hataları yamalamıştır. Ancak RAID5/6’nın çekirdek uygulaması henüz tam olgunluğa ve kararlılığa ulaşmamıştır. Bazı uç durumlarda (edge case), örneğin cihaz arızası sonrasında veri kurtarmada, güvenilir kurtarmayla ilgili sorunlar hâlâ yaşanabilir.
Başka bir deyişle, modern çekirdeklerde RAID5/6’nın ele alınışı geçmişe göre daha olgun hâle gelmiş olsa da RAID1/10’un ya da ZFS’deki RAID-Z gibi olgun uygulamaların sunduğu sağlamlığın hâlâ gerisindedir. Bu nedenle teknik tartışmalarda, kritik üretim ortamlarında doğrudan Btrfs’in yerel RAID5/6 uygulamasına güvenmek yerine alternatif olarak daha kararlı RAID yapılandırmalarının (RAID1/10 veya mdadm ile oluşturulup üzerine Btrfs katmanı eklenen RAID5/6 gibi) kullanılması önerilmeye devam etmektedir.
Uygulamada, Linux çekirdeği 6.2 ve sonrası Btrfs’in yazma ve sağlama toplamı işlemlerinin bazı yönlerini iyileştirse de yazma boşluğunun özellikle elektrik kesintisi ve cihaz arızası içeren sınır durumlarda (corner case) hâlâ devam ettiği görülmüştür. Aynı zamanda scrub ve balance işlemleri de hâlâ yavaş olabilir. Büyük kapasiteli dizilerde bu işlemlerin tamamlanması günler, hatta haftalar sürebilir.
4. Anlık Görüntülerdeki Riskler: Btrfs’in Gizli Zaafları
Anlık görüntüler CoW dosya sistemlerinin en etkileyici özelliklerinden biridir; ancak dizi genişletme veya yeniden düzenleme sırasında bir yüke dönüşebilir. ZFS’de veri kümeleri (dataset) ve anlık görüntüler resmî olarak birbirinden ayrı varlıklardır. Buna karşılık Btrfs alt birimleri (subvolume) ve anlık görüntüler, aynı dahili ad alanını paylaşma esnekliğini korur.
Btrfs’teki risk, çok sayıda anlık görüntü varken balance işlemi gerçekleştirilmesinde yatar; çünkü bu anlık görüntülerin referans verdiği extent’lerin güncellenmesi bir delayed refs patlamasını tetikleyebilir. Bu durum performansın sıfıra düşmesine yol açabilir; hatta meta veri doğrulama hatalarının dosya sisteminin bağlanmasını engellediği yıkıcı olaylar bile yaşanmıştır. Bununla birlikte bu sorunların çoğu yeni Btrfs sürümlerinde ve güncel Linux çekirdeği sürümlerinde hafifletilmiştir.
ZFS’nin dayanıklılığı, blok işaretçilerinin (block pointer) değiştirilemez olmasından kaynaklanır. Reflow yalnızca RAID katmanındaki fiziksel düzeni ayarlar ve anlık görüntüler gibi dosya sistemi düzeyindeki özelliklerden bağımsızdır. Binlerce anlık görüntü olsa bile diziyi genişletmek meta veri bütünlüğünü tehdit etmez veya performans çöküşüne neden olmaz.
Kurumsal ve Ev Kullanıcıları Nasıl Seçim Yapmalı?
Btrfs’in kurumsal ortamlara uygunluğunu değerlendirirken asıl mesele gelişmiş özellikler sunup sunmadığı değil, en kötü senaryolara dayanabilecek bir depolama temeli olarak hizmet vermeye uygun olup olmadığıdır. Mühendislik açısından Btrfs; RAID1, RAID10 ya da tek diskli ve çok kopyalı yapılandırmalarda oldukça olgunlaşmıştır ve Linux dağıtımlarında sistem diskleri, imaj yönetimi ve anlık görüntüden geri dönüş senaryolarında yaygın olarak kullanılmaktadır.
Ancak depolama gereksinimleri, kuruluşların en çok önem verdiği kapasite verimliliği ve hata toleransı düzeylerine (ör. RAID5/6) doğru kaydığında Btrfs’in risk modeli, kuruluşların öngörülebilir arıza modları ve veri kurtarma güvenilirliği konusundaki beklentilerini tam olarak karşılamayabilir. Btrfs RAID5/6, günümüzün yaygın Linux çekirdeği 6.x serisinde bazı bilinen sorunları kademeli olarak gidermiş olsa da uygulaması kritik üretim ortamları için hâlâ açıkça önerilmeyen olarak işaretlenmektedir. Bu durum bazı kuruluşları, olay müdahalesi, sorumluluk paylaşımı ve uzun vadeli operasyon ve bakım konularında ek belirsizliği üstlenmeye istekli olup olmadıklarını sorgulamaya yöneltir.
Genel olarak Btrfs’in “kurumsal kullanıma uygun olmadığı” söylenemez; ancak sistem katmanında, platform katmanında veya üst katmanda koruma sağlayan depolama mimarileri içinde konumlandırılması daha doğrudur. Buna karşılık temel kurumsal verileri taşıyan, yıllarca kararlı çalışma gerektiren ve RAID5/6’nın kapasite verimliliğine büyük ölçüde bağımlı olan senaryolarda, mühendislik olgunluğu ve risk kontrol edilebilirliği daha güçlü olan çözümlere öncelik verilmelidir.
ZFS’nin ise kurumsal ortamlardaki rolü daha net tanımlanmıştır. Temel tasarımı, sistemin kritik verileri uzun vadede taşıması ve donanım arızası, elektrik anormallikleri veya aynı anda birden fazla diskin arızalanması gibi aşırı koşullarda bile veri tutarlılığını ve kurtarılabilirliği koruması gerektiği varsayımına dayanır.
ZFS, dosya sistemini ve disk yönetimini tek bir depolama yığınında birleştirir. Uçtan uca sağlama toplamları, Copy-on-Write ve RAID-Z’nin sıkı entegrasyonu sayesinde öngörülebilir arıza modları ve olgun kendi kendini onarma süreçleri oluşturur; bunlar da tam olarak kuruluşların en çok değer verdiği mühendislik özellikleridir.
Bu nedenle ZFS; görev açısından kritik kurumsal depolama, sanallaştırma arka uçları (ör. sanal makineler ve konteyner birimleri), büyük ölçekli NAS dağıtımları ve yedekleme depoları için özellikle uygundur. Bu durum, kapasite verimliliği ile veri bütünlüğünü dengelemek için RAID5/6 gibi eşlik tabanlı mimarilerin gerektiği ortamlarda daha da belirgindir; çünkü ZFS, çoğu genel amaçlı dosya sistemine kıyasla üstün kararlılık ve daha öngörülebilir arıza davranışı sunar.
Elbette ZFS’nin bedeli daha yüksek donanım gereksinimleri, daha yüksek toplam maliyet ve daha katı bir genişletme modelidir. Ancak kurumsal ölçekte, öngörülebilirlik uğruna kaynaklardan feragat eden bu tasarım felsefesi, uzun vadeli operasyonlar, mevzuata uyum ve risk yönetimi konusunda hassas olan kuruluşlar için genellikle daha kabul edilebilirdir.
Her İki Dosya Sisteminin de Kendine Özgü Güçlü Yanları Var
RAID-Z modeliyle bütünleştiğinde ZFS uçtan uca sağlama toplamı ve kendi kendini onarma mekanizmaları sunarken Btrfs doğrulama için öncelikle RAID yapılandırmasına ve scrub işlemlerine dayanır. Bununla birlikte Btrfs, meta veri ve RAID5/6 senaryolarında hâlâ belirgin sınırlamalar ve riskler taşır.
ZFS’nin RAM gereksinimleri, özellikle yinelenenleri kaldırma (deduplication) etkinleştirildiğinde nispeten yüksektir. Bu durum genel sistem maliyetlerini artırabileceğinden dağıtım sırasında dikkatle değerlendirilmelidir; özellikle bellek fiyatlarının yüksek olduğu bu dönemde önemli bir maliyet unsurudur. Buna karşılık daha iyi performans ve daha güçlü veri bütünlüğü de sağlar.
İki dosya sistemi arasındaki başlıca farkların karşılaştırması aşağıdadır:
| Dosya Sistemi | Btrfs | ZFS |
| Donanım Esnekliği | Farklı disklerin bir arada kullanılmasını destekler | Daha kısıtlayıcı (VDEV kısıtlamaları) |
| Genişletmenin Etkisi | Yüksek (balance ile tam yeniden yazma gerektirir) | Düşük (reflow, yeniden yazma gerekmez ancak okuma sıcak noktaları izlenmelidir) |
| Yazma Boşluğu Koruması | Linux çekirdeği sürümüne bağlıdır (6.2+ RST) | Mimari bağışıklık (Atomik TXG) |
| Anlık Görüntülerle Genişletme Kararlılığı | Riskli (Delayed Refs Patlaması) | Güvenli (Değiştirilemez BP) |
“Veri koruma” ve “uzun vadeli güvenilirliğin” vazgeçilmez öncelikler olduğu büyük ölçekli ortamlar için OpenZFS kesin tercihtir. Kararlılığı, Merkle Ağacı ve atomik güncellemelerle birlikte matematiksel olarak doğrulanabilir bir bütünlük sağlar.
Öte yandan esnek disk yönetimine ihtiyaç duyan (örneğin bir ev laboratuvarında farklı kapasitelerdeki eski sürücüleri bir arada kullanan) ve çekirdek sürümü uyumluluğunu ve operasyonel ayrıntıları yönetme konusunda kendine güvenen deneyimli Linux kullanıcıları için Btrfs önemli ölçüde esneklik sunar.
Hangisini seçerseniz seçin, NAS ortamında asla SMR sürücü kullanılmaması gerektiğini unutmayın. Mümkün olduğunda her zaman CMR sürücüleri tercih edin. Bunun nedeni, SMR sürücülerin rastgele yazma performansının nispeten zayıf olması ve bu yüzden sık yazma işlemlerine uygun olmamasıdır. Western Digital ve Seagate Technology dahil sabit disk üreticileri, kapasite darboğazlarını aşmak için Mikrodalga Destekli Manyetik Kayıt (MAMR) ve Isı Destekli Manyetik Kayıt (HAMR) gibi yeni nesil teknolojiler geliştiriyor ve yeni sürücü modelleri de bu teknolojileri benimseyecek.
CyberQ‘nun izniyle yeniden yayımlanmıştır
Yapay Zekâ Beyanı: Bu makaledeki bazı görseller ve metinler, yapay zekâ (YZ) desteğiyle oluşturulmuş veya iyileştirilmiş ve insan editörler tarafından gözden geçirilmiştir.