Bcachef'leri Linux Çekirdeğine Yükseltme

Linux çekirdeğinin bir parçası olan BCache SSD blok cihaz önbelleğe alma sisteminin yazarı Kent Overstreet, LSFMM 2023 konferansında (Linux Storage, Filesystem, Memory Management) yaptığı konuşmada Bcachefs dosya sisteminin tanıtılmasına yönelik çalışmaların sonuçlarını özetledi. & BPF Zirvesi), Linux çekirdeğinin ana bileşimine girdi ve bu FS'nin daha da geliştirilmesi için planlar hakkında konuştu. Mayıs ayında, gözden geçirilmek ve Linux çekirdeğinin ana bileşimine dahil edilmek üzere Bcachefs FS'nin uygulanmasıyla birlikte güncellenmiş bir dizi yama önerildi. FS Bcachefs yaklaşık 10 yıldır gelişmektedir. Çekirdeğe dahil edilmeden önce Bcachef'lerin uygulanmasının gözden geçirilmesi için hazır olma durumu 2020'nin sonunda duyuruldu ve yamaların mevcut sürümü, önceki inceleme sırasında belirlenen yorumları ve eksiklikleri dikkate alıyor.

Bcachefs'in geliştirme hedefi, Btrfs ve ZFS'de bulunan, bir bölüme birden çok aygıtı dahil etme, çok katmanlı depolama düzenleri, çoğaltma (RAID 1/10) gibi ek özellikler sağlarken, performans, güvenilirlik ve ölçeklenebilirlik açısından XFS düzeyine ulaşmaktır. önbelleğe alma, şeffaf veri sıkıştırma (LZ4, gzip ve ZSTD modları), durum dilimleri (anlık görüntüler), sağlama toplamlarıyla bütünlük doğrulaması, Reed-Solomon hata düzeltme kodlarını (RAID 5/6), şifreli bilgi depolaması (ChaCha20 ve Poly1305) kullanılmış). Performans açısından, Bcachefs Btrfs ve Copy-on-Write mekanizmasına dayalı diğer dosya sistemlerinin önündedir ve Ext4 ve XFS'ye yakın performans gösterir.

Bcachefs'in geliştirilmesindeki en son başarılardan biri, yazma için mevcut anlık görüntülerin uygulanmasının dengelenmesidir. Btrfs ile karşılaştırıldığında, Bcachefs'teki anlık görüntüler artık çok daha iyi ölçeklenebilir ve Btrfs'in doğasında olan sorunlardan muaftır. Uygulamada, MySQL yedeklerini düzenlerken anlık görüntülerin çalışması test edildi. Bcachefs ayrıca ölçeklenebilirliği iyileştirmek için çok çalıştı - dosya sistemi 100 TB depolamada testlerde iyi performans gösterdi ve Bcachefs'in yakın gelecekte 1 PB depolamada uygulanması bekleniyor. "Yazarken kopyala" (nocow) mekanizmasını devre dışı bırakmak için yeni bir nocow modu eklendi. Yaz boyunca, hata düzeltme kodlarının ve RAIDZ'in uygulanmasını kararlı bir duruma getirmenin yanı sıra fsck yardımcı programıyla dosya sistemlerini geri yüklerken ve kontrol ederken yüksek bellek tüketimiyle ilgili sorunları çözmeyi planlıyorlar.

Geleceğe yönelik planlardan, Rust dilini Bcachef'lerin geliştirilmesinde kullanma arzusundan bahsediliyor. Bcachefs'in yazarına göre, kod hatalarını ayıklamayı değil, kodlamayı seviyor ve şimdi daha iyi bir seçenek varken C'de kod yazmak çılgınlık. Rust, bazı kullanıcı alanı yardımcı programlarının uygulanmasında Bcachef'lerde zaten yer alıyor. Dahası, Rust'ta Bcachef'leri kademeli olarak tamamen yeniden yazma fikri ortaya çıkıyor, çünkü bu dili kullanmak hata ayıklama süresinden önemli ölçüde tasarruf sağlıyor.

Bcachef'leri Linux çekirdeğinin ana akımına taşımaya gelince, gözden geçirmesi zor olan değişikliklerin büyük boyutu (2500 yama ve yaklaşık 90 bin satır kod) nedeniyle benimseme süreci gecikebilir. İncelemeyi hızlandırmak için bazı geliştiriciler yama serisini daha küçük ve mantıksal olarak ayrılmış parçalara bölmeyi önerdiler. Tartışma sırasında bazı katılımcılar, projenin bir geliştirici tarafından geliştirildiğine ve geliştiricinin başına bir şey gelmesi durumunda kodun bakımsız kalma tehlikesine de dikkat çekti (iki Red Hat çalışanı projeyle ilgileniyor ancak çalışmaları hala devam ediyor). sınırlı hata düzeltmeleri).

Bcachefs, hızlı SSD'lerde (3.10 sürümünden beri çekirdeğe dahil edilmiştir) yavaş sabit sürücülere erişimi önbelleğe almak için tasarlanmış Bcache blok cihazının geliştirilmesinde zaten test edilmiş teknolojiler kullanılarak geliştirilmiştir. Bcachefs, değişikliklerin verilerin üzerine yazılmasına yol açmadığı Yazma Üzerine Kopyalama (COW) mekanizmasını kullanır - yeni durum yeni bir konuma yazılır ve ardından mevcut durum göstergesi değişir.

Bcachefs'in bir özelliği, depolamanın birkaç katmandan oluştuğu çok katmanlı sürücü bağlantısı desteğidir - en hızlı sürücüler (SSD'ler), sık kullanılan verileri önbelleğe almak için kullanılan alt katmana bağlanır ve üst katman formları oluşturur daha az talep edilen verileri depolayan daha geniş ve daha ucuz diskler. Geri yazma önbelleği, katmanlar arasında kullanılabilir. Sürücüler, dosya sisteminin kullanımını kesintiye uğratmadan bir bölüme dinamik olarak eklenebilir ve ayrılabilir (veriler otomatik olarak taşınır).

Kaynak: opennet.ru

Yorum ekle