Btrfs

Btrfs ("better FS", "butter FS", "b-tree FS", veya basitçe yazılarak telaffuz edilir) bir birlikte geliştirilen mantıksal bir birim yöneticisiyle (Linux'un LVM'si ile karıştırılmamalıdır) copy-on-write (COW) ilkesine dayalı olan dosya sistemini birleştiren bir bilgisayar depolama biçimidir. Başlangıçta Oracle Corporation'da 2007'de Linux'ta kullanılmak üzere tasarlandı ve Kasım 2013'ten bu yana dosya sisteminin disk üzerindeki biçimi Linux çekirdeğinde kararlı olarak ilan edildi. Oracle'a göre, Btrfs "gerçek bir kısaltma değildir".
Btrfs, Linux dosya sistemlerinde havuz oluşturma, anlık görüntüler, sağlama toplamları ve tümleşik çoklu cihaz kapsamı eksikliğini gidermeyi amaçlamaktadır. Btrfs'in baş yazarı Chris Mason, amacının "Linux'un mevcut olacak depolama için ölçeklenmesine izin vermek olduğunu belirtti. Ölçekleme, yalnızca depolamayı ele almakla ilgili değildir, aynı zamanda, insanların ne kullanıldığını görmelerini sağlayan ve onu daha güvenilir hale getiren temiz bir arabirimle yönetebilmek ve yönetebilmek anlamına gelir." olduğunu dile getirmiştir
Tarihçe
Btrfs -the copy-on-write B-tree 'nin temel veri yapısı ilk olarak IBM araştırmacısı Ohad Rodeh tarafından USENIX 2007'deki bir sunumda önerildi. O zamanlar SUSE için ReiserFS üzerinde çalışan bir mühendis olan Chris Mason, o yıl Oracle'a katıldı ve B-trees'e dayalı yeni bir dosya sistemi üzerinde çalışmaya başladı.
2008 yılında, ext3 ve ext4 dosya sistemlerinin baş geliştiricisi Theodore Ts'o, ext4'ün gelişmiş özelliklere sahip olmasına rağmen bunun büyük bir ilerleme olmadığını eski teknolojiyi kullandığını ve bir durak noktası olduğunu belirtti; . Ts'o, Btrfs'nin "ölçeklenebilirlik, güvenilirlik ve yönetim kolaylığı konularında iyileştirmeler sunduğu" için daha iyi bir yönü olduğunu söyledi. Btrfs ayrıca " reiser3/4" sahip olduğu aynı tasarım fikirlerine" sahiptir.
Btrfs 1.0, son haline getirilmiş disk biçimi ile, ilk olarak 2008 sonlarında bir sürüm için planlanmıştı ve nihayet 2009'da Linux çekirdeği ana hattına kabul edildi. Birkaç Linux dağıtımı, kurulum sırasında kök dosya sisteminin deneysel bir seçimi olarak Btrfs'yi sunmaya başladı.
Temmuz 2011'de, Btrfs otomatik birleştirme ve temizleme özellikleri, Linux çekirdek ana hattının 3.0 sürümünde birleştirildi. Oracle'da Mason'ın yanı sıra Fujitsu'da Miao Xie performans iyileştirmelerine katkıda bulundu. Haziran 2012'de Chris Mason, bir yıl sonra Josef Bacik ile Facebook'a katılmak için ayrıldığı Fusion-io için Oracle'dan ayrıldı. Her iki şirkette de Mason, Btrfs üzerindeki çalışmalarına devam etti.
2012'de iki Linux dağıtımı, Btrfs'yi deneyselden üretime veya desteklenen duruma taşıdı: Mart'ta Oracle Linux, ardından Ağustos'ta SUSE Linux Enterprise geçiş yapmıştır.
2015 yılında Btrfs, SUSE Linux Enterprise Server 12 için varsayılan dosya sistemi olarak kabul edildi.
Ağustos 2017'de Red Hat, Red Hat Enterprise Linux (RHEL) 7.4 sürüm notlarında Btrfs'yi artık tam olarak desteklenen bir özelliğe taşımayı planlamadığını (RHEL 6 beta'dan bu yana bir "teknoloji önizlemesi" olarak dahil edilmiştir) duyurdu. RHEL 7 sürüm serisinde mevcut kalacaktır. Btrfs, Mayıs 2019'da RHEL 8'den kaldırıldı. RHEL, RHEL 6'daki ext4'ten RHEL 7'deki XFS'ye taşındı.
2020'de masaüstü varyantları için Fedora 33 için varsayılan dosya sistemi olarak Btrfs seçildi.
Özellikler
Özellikler listesi
Uygulanan
Linux çekirdeğinin 5.0 sürümünden itibaren Btrfs aşağıdaki özellikleri uygular:
Yazma üzerine kopyalamanın doğası gereği bazı konfigürasyonlarda çoğunlukla kendi kendini onaran
Çevrimiçi birleştirme ve otomatik birleştirme bağlama seçeneği
Çevrimiçi hacim büyümesi ve küçülmesi
Çevrimiçi blok cihaz ekleme ve kaldırma
Çevrimiçi dengeleme (yükü dengelemek için nesnelerin blok cihazlar arasında hareketi)
Çevrimdışı dosya sistemi kontrolü
Hataları bulmak ve gereksiz kopyaları olan dosyalar için bunları otomatik olarak düzeltmek için çevrimiçi veri temizleme
RAID 0, RAID 1 ve RAID 10
Alt hacimler (her disk bölümü içinde bir veya daha fazla ayrı olarak monte edilebilir dosya sistemi kökü )
zlib, LZO ve (4.14'ten beri) ZSTD aracılığıyla şeffaf sıkıştırma, dosya veya birim başına yapılandırılabilir
Atomik yazılabilir (yazma üzerine kopyalama yoluyla) veya salt okunur Alt hacimlerin anlık görüntüleri
cp --reflink < source file > < destination file > aracılığıyla dosya klonlama (reflink, yazma üzerine kopyalama)
Veriler ve meta veriler üzerinde sağlama toplamları (CRC-32C ). 5.5'ten beri yeni hash fonksiyonları uygulanmaktadır: xxHash, SHA256, BLAKE2B.
Ext3/4'ten Btrfs'ye yerinde dönüştürme (geri alma ile). Bu özellik, 4.6'da sıfırdan yeniden yazılan btrfs-progs sürüm 4.0 civarında geriledi.
Dosya sistemi tohumlama (yazılabilir bir Btrfs için yazma üzerine kopyalama desteği olarak kullanılan salt okunur depolama) olarak bilinen salt okunur depolamanın birleşik montajı
Atmayı engelle (bazı sanallaştırılmış kurulumlarda yer kaplar ve TRIM ile SSD'lerde aşınma düzeyini iyileştirir)
Gönder/al (anlık görüntüler arasındaki farkları ikili akışa kaydetme)
Artımlı yedekleme
Bant dışı veri tekilleştirme (kullanıcı alanı araçları gerektirir)
Takas dosyalarını işleme ve bölümleri takas etme yeteneği
Uygulananan, ancak üretim kullanımı için önerilmeyen
Alt hacim başına hiyerarşik kotalar
RAID 5, RAID 6
Planlandı ancak henüz uygulanmadı
Bant içi veri tekilleştirme
Çevrimiçi dosya sistemi kontrolü
RAID'in güvenilirliğini aşan altı eşlik aygıtına kadar RAID 5 ve RAID 6
Nesne düzeyinde RAID 0, RAID 1 ve RAID 10
Şifreleme
Kalıcı okuma ve yazma önbelleği (L2ARC + ZIL, lvmcache vb. )
2009'da Btrfs'in Sun Microsystems tarafından geliştirilen ZFS ile karşılaştırılabilir bir özellik seti sunması bekleniyordu. Oracle'ın 2009'da Sun'ı satın almasının ardından Mason ve Oracle, Btrfs geliştirmeye devam etmeye karar verdi.
Ticari destek
Desteklenen
Fedora Workstation'ın 33 sürümünden itibaren varsayılan dosya sistemi (2020-10-27)
Sürüm 7'den Oracle Linux
SUSE Linux Enterprise Server sürüm 12'den
Sürüm 6.0'dan Synology DiskStation Manager (DSM)
0.4.10 sürümünden ReactOS
Artık desteklenmiyor
Btrfs, Red Hat Enterprise Linux 6 ve 7'ye bir "teknoloji önizlemesi" olarak dahil edildi; 2018'de RHEL 8'de kaldırıldı.