1 puan yazan GN⁺ 2025-01-15 | 1 yorum | WhatsApp'ta paylaş
  • OpenZFS 2.3.0, mevcut bir RAIDZ havuzuna yeni cihazlar ekleyerek kesinti olmadan kapasiteyi artıran RAIDZ Expansion özelliğini temel yenilik olarak içeriyor
  • Fast Dedup, mevcut tekilleştirme özelliğinin performansını önemli ölçüde iyileştiriyor; kod tabanının genelinde performans iyileştirmeleri de yer alıyor
  • Direct IO, okuma/yazma işlemlerinde ARC’nin atlanabilmesini sağlayarak, NVMe cihazlar gibi önbelleklemenin verimliliği düşürebileceği ortamları hedefliyor
  • Sık kullanılan komutlar için isteğe bağlı JSON çıktısı, en fazla 1023 karakterlik dosya ve dizin adı desteği ve önceki sürümlerdeki sorunları ele alan önemli hata düzeltmeleri eklendi
  • Destek kapsamı Linux çekirdeği 4.18~6.12 ile FreeBSD 13.3 ve 14.0~14.2; bu sürüm döngüsüne 134 kişi katkıda bulundu

OpenZFS 2.3.0’da değişenler

  • OpenZFS 2.3.0; depolama genişletme, tekilleştirme performansı, giriş/çıkış yolu, komut çıktı biçimi ve dosya adı uzunluğu desteği odağında güncellendi
  • Sürüm etiketi zfs-2.3.0 ve OpenZFS 2.2.0’dan sonraki değişiklikleri içeriyor

Depolama genişletme ve performans iyileştirmeleri

  • RAIDZ Expansion, mevcut bir RAIDZ havuzuna yeni cihazlar ekleyerek kesinti olmadan depolama kapasitesinin artırılmasını sağlıyor
  • Fast Dedup, mevcut OpenZFS tekilleştirme özelliği için önemli bir performans yükseltmesi
  • Direct IO, okuma/yazmada ARC’nin atlanmasına izin veriyor
    • NVMe cihazlar gibi önbelleklemenin verimliliği engelleyebileceği durumlarda performans iyileştirmeyi hedefliyor
  • Kod tabanının genelinde de çeşitli performans iyileştirmeleri bulunuyor

Komut çıktısı ve ad uzunluğu

  • JSON, en çok kullanılan komutlara isteğe bağlı JSON çıktısı ekliyor
  • Long names, dosya ve dizin adları için en fazla 1023 karakter desteği sağlıyor

Kararlılık, platformlar ve katkılar

  • Önceki sürümlerde bildirilen sorunları ele alan önemli hata düzeltmeleri içeriyor
  • Desteklenen platformlar:
    • Linux çekirdeği 4.18~6.12
    • FreeBSD 13.3, 14.0~14.2
  • Bu sürüm döngüsüne 134 katkıcı katıldı

Belgeler ve değişiklik günlüğü

Modül seçeneği değişiklikleri

  • Tüm seçenekler ve kontrol ettikleri alanlar module parameters belgesinde özetleniyor
  • Yeni modül seçenekleri RAIDZ genişletme, tekilleştirme günlüğü, Direct IO, allocator, scrub ve resilver ile ilgili öğeleri içeriyor
    • Örnek: raidz_expand_max_copy_bytes, raidz_expand_max_reflow_bytes, zfs_dio_enabled, zfs_dedup_log_mem_max, zfs_scrub_after_expand
  • Kaldırılan modül seçeneği:
    • zfetch_array_rd_sz
  • Değiştirilen modül seçenekleri:
    • zfs_arc_shrinker_limit
    • zfs_bclone_enabled
    • zfs_vdev_disk_classic
    • zio_taskq_write

1 yorum

 
GN⁺ 2025-01-15
Hacker News yorumları
  • Yıllardır hazırlanan ZFS RAIDZ genişletme sonunda dahil edildi
    Başlıca özellikler; mevcut bir RAIDZ havuzuna aygıt ekleyerek kesinti olmadan kapasiteyi artıran RAIDZ genişletme, OpenZFS tekilleştirme performansını büyük ölçüde artıran hızlı tekilleştirme, ARC’yi atlayarak NVMe gibi önbelleğin verimsiz olabileceği ortamlarda performansı iyileştiren doğrudan G/Ç, sık kullanılan komutlar için isteğe bağlı JSON çıktısı ve dosya/dizin adlarında en fazla 1023 karakter desteği

    • Daha doğrusu, mevcut bir RAIDZ vdev’ine yeni bir aygıt, yani disk eklenebileceği anlamına geliyor
    • Proxmox’u ZFS ve NVMe üzerinde çalıştırıyorsanız, 2.3 dağıtıldığında doğrudan G/Ç’yi açmanın daha iyi olup olmayacağını merak ediyorum
      Bu özelliğin hangi kullanım senaryolarına uygun olduğunu bilmek isterim
    • İlk dört madde gerçekten büyük değişiklikler gibi görünüyor
    • Yine de vdev kaldırma hâlâ mümkün değil diye düşünmek gerek
    • Bu özelliğin şifreleme ile birlikte ne kadar iyi test edildiğini merak ediyorum
      ZFS ekibinin şifrelemeyi gerçekten birinci sınıf öncelik olarak ele alıp almadığı da şüpheli
      Linux’taki ZFS, Solaris’teki ZFS’in itibarının büyük kısmını devraldı; ancak üretim ortamında kullananların gerçeği görmek için issue tracker’a epey ayrıntılı bakması gerekiyor
  • Kullanıcı sayısı bakımından açık ara en büyük PC platformu olan Windows tarafında hâlâ ZFS’e bir yanıt olmamasını anlayamıyorum
    Microsoft’un WinFS’i vardı, ardından ReFS de vardı ama geri plana itildiler; geliştirme sürüyor ve Win11’e ara sıra bazı parçalar girse de resmî bir sürüm görünmüyor
    Bazı bireyler ZFS uyumluluk katmanı oluşturmak gibi büyük bir işi deniyor, ancak henüz olgun ya da gerçek kullanım için uygun seviyeden uzak
    Windows’un hâlâ nasıl 32 yıllık bir dosya sistemi kullandığını bilmiyorum

    • Açıkçası Linux’un durumu da pek daha iyi değil
      ZFS’in Linux ile lisans sorunu var ve bu tam entegrasyonu engelliyor; Btrfs ise 15 yıldır geliştiriliyor olmasına rağmen özellik ve kararlılık açısından hâlâ ZFS’in gerisinde
      Çoğu Linux dağıtımı hâlâ varsayılan olarak 19 yıllık ext4 kullanıyor; ext4 de aslında NTFS ile aynı yaşta olan ext2’nin üzerine genişletmeler eklenmiş bir şeye daha yakın
      Adil olmak gerekirse, dosya sistemi kadar kritik işletim sistemi bileşeni azdır ve üretim ortamında 10 yıldan uzun süre doğrulanmamış bir dosya sistemine dokunmak istemeyen çok kişi var
    • Nedeni basit. Dosya sisteminin üstlenmesi gereken yükün çoğunu, o dosya sisteminin üzerinde bulunduğu kurumsal depolama donanımı üstleniyor
      Snapshot, blok düzeyinde tekilleştirme, nesne depolama teknolojisi, RAID/dayanıklılık, yeniden boyutlandırma gibi gerekli özellikleri depolama cihazları sağlıyor
      Modern depolama appliance’ları neredeyse kara büyü seviyesinde; bu yüzden NTFS’in mutlaka daha fazla özelliğe ihtiyacı yok
      NAS/SAN üzerinden şeffaf biçimde erişebilir ya da yetenekli bir disk kutusu üzerinde NTFS birimi depolayabilirsiniz
      Linux dünyasının üst seviye alanlarında Lustre ve GPFS var; ZFS ise çoğunlukla performansın ana konu olmadığı ama dayanıklılığın gerektiği kullanımlara uygun
    • Mainline Linux çekirdeğinde de ZFS’e karşılık gelen bir yanıt yok
      Zor ve riski yüksek; karşılığı ise çoğunlukla teknik saygıdan ibaret diye düşünüyorum
    • Windows ve Linux kullanan ama ZFS kullanmayan bir son kullanıcı olarak, neyi kaçırdığımı merak ediyorum
    • Windows için OpenZFS sürüm adayı durumuna (rc11) ulaştı ve birim bağlama çevresinde kalan birkaç hata var
      Ciddi değiller ama şimdilik şifrelemeden kaçınmak iyi olur; kalan sorunları düzeltmek için birkaç haftada bir yeni sürüm adayı çıkacak kadar geliştirme hızı yüksek
      Buna Storage Spaces’ı ekleyip farklı türde veya boyutta diskleri havuzlayarak konumu, yedekliliği ve katmanlamayı Space bazında tanımlarsanız Windows artık gelişmiş bir depolama platformu hâline geliyor
      Windows Server, örneğin uygun fiyatlı 2022/2025 Essentials kullanırsanız LAN ve sanal sabit disk .vhdx üzerinde 10 Gbyte/s’ye kadar performans sağlayan SMB Direct/RDMA da kullanabilirsiniz; bu da iSCSI’ye göre ayarsız ve hızlı bir alternatif olur
      Bu yüzden ZFS web GUI’si napp-it cs’yi Solaris’ten Windows’a port ederek Storage Spaces ve ZFS’i, ayrıca Proxmox gibi uzak OpenZFS sunucularını yönetebilir hâle getirdim; ticari olmayan kullanım ücretsiz
  • Genişletme özelliğinin oldukça muhafazakâr tasarlanmış olması hoşuma gidiyor
    Genişletme tamamen şeffaf ve sürdürülebilir/yeniden başlatılabilir olmakla kalmıyor, süreç boyunca yedeklilik de korunuyor
    Yalnız insanların bilmesi gereken küçük bir not var
    Genişletme bittikten sonra bile mevcut bloklar eski veri/parite oranını koruyor. Örneğin 5-wide RAIDZ2, 3 veri + 2 parite olarak daha büyük disk kümesine dağıtılıyor
    Yeni bloklar ise yeni veri/parite oranıyla yazılıyor. Örneğin 5-wide RAIDZ2 bir kez genişletilip 6-wide olursa 4 veri + 2 parite oluyor

    • Bunun gerçekten bir not sayılıp sayılmayacağından emin değilim. Sadece mevcut verinin ideal olmayan bir yerleşimde kalabileceği anlamına geliyor
      Yine de RAIDZ N’in avantajı aynen sürüyor; en fazla N disk tamamen arızalansa bile pool çalışmaya devam ediyor
    • Bu not gayet beklenen bir davranış. ZFS özelliklerinin genelde mevcut blokları yeniden yazmadığı varsayılmalı
      Örneğin yapılandırma değişiklikleri de yalnızca yeni verilere uygulanır
    • Açıkçası bu oldukça büyük bir not
      Da1 Db1 Dc1 Pa1 Pb1
      Da2 Db2 Dc2 Pa2 Pb2
      Da3 Db3 Dc3 Pa3 Pb3
      ___ ___ ___ Pa4 Pb4
      Burada ___ boş alan. Bir disk ekleyip genişlettiğinizde mantıksal olarak şunu bekleyebilirsiniz
      Da1 Db1 Dc1 Da2 Pa1 Pb1
      Db2 Dc2 Da3 Db3 Pa2 Pb2
      Dc3 ___ ___ ___ Pa3 Pb3
      ___ ___ ___ ___ Pa4 Pb4
      Ama anladığım kadarıyla gerçekte şöyle genişliyor
      Da1 Db1 Dc1 Dd1 Pa1 Pb1
      Da2 Db2 Dc2 Dd2 Pa2 Pb2
      Da3 Db3 Dc3 Dd3 Pa3 Pb3
      ___ ___ ___ ___ Pa4 Pb4
      Burada Dd1~3 blokları düpedüz boşa gidiyor. Yani diziye yeni bir disk ekleseniz bile boş depolama alanı yalnızca %25 artıyor demek
      Örneğin 8 TB disklerle başlangıçta toplam 24 TB kullanılabilir alanınız varsa ve genişletmeden önce 4 TB boş alan kalmışsa, genişletmeden sonra boş alan 5 TB oluyor
      Umarım yanlış anlamışımdır. Yanlış anlamadıysam epey işe yaramaz bir uygulama gibi görünüyor
  • ZFS kullanıcıları için büyük haber. Muhtemelen özellikle hobi/ev kullanıcıları için öyledir ama yine de büyük
    RAIDZ genişletme yıllardır en çok istenen özelliklerden biriydi

    • Henüz ZFS’e pek aşina değilim ve sürüm notlarında da bulamadım; genişletmenin yalnızca aynı boyuttaki disklerle mi çalıştığını merak ediyorum
      Daha büyük ya da daha küçük disk eklenebiliyor mu, yoksa tüm disk boyutlarının aynı mı olması gerekiyor, bunu bilmek istiyorum
  • Bu bir çevrimiçi genişletme. Genişletmenin kendisi eskiden de mümkündü ama diziyi kapatmak gerekiyordu
    Daha büyük sürücülere geçmek de mümkündü ama tek tek değiştirmek gerekiyordu ve doğal olarak yeni kapasiteyi ancak tüm sürücüler yükseltildikten sonra elde edebiliyordunuz
    Bildiğim kadarıyla pool küçültme hâlâ mümkün değil. Bu yüzden 5 sürücülü bir pool’a 6. sürücüyü eklerseniz, veri çok az olsa bile tekrar 5 sürücüye dönemiyorsunuz

  • Sonunda!
    Şu anda satın alınabilen en pahalı ve en yüksek yoğunluklu 4 sabit diskle RAID-Z3 gibi sınırda çılgın bir tek vdev yapılandırması bile mümkün hale geliyor
    Başta 3 disk kadar yedeklilik olduğu için etkin alan kullanım oranı yalnızca %25 olur, ama alan ihtiyacı arttıkça tek tek disk satın alıp yaklaşık 12 diske kadar genişletebilirsiniz
    Zamanla disk fiyatları düşer ve diskleri farklı zamanlarda eklediğiniz için arıza olasılığı da dağılır

    • Doğru, ama kardeş yoruma da bakmak gerek
      Diziyi genişletmek mevcut verinin daha verimli depolanmasını sağlamıyor
      Yeni parite/veri oranını elde etmek için veriyi zorla kopyalayıp eski verimsiz sürümü silmeniz gerekir. Örneğin bunun gibi bir araca ihtiyaç var [1]
      Kişisel olarak tek tek tamamlanmış RAID-Z yapılandırmaları satın alıp yeni yapılandırma eklemenin ya da eski yapılandırmayı disk disk değiştirmenin çok daha iyi olduğunu düşünüyorum
      [1] https://github.com/markusressel/zfs-inplace-rebalancing
  • ZFS’nin btrfs ile karşılaştırıldığında nasıl olduğunu merak ediyorum
    Şu anda ev sunucumda btrfs kullanıyorum ama birkaç kez garip sorunlar yaşadım
    ZFS’ye geçmeyi düşünüyorum, ama aynı duruma düşmek istemiyorum

    • 15 yıl önce, Linux 2.6.33-rc4 civarında btrfs’yi ilk kez denemiştim
      3 gün içinde silemediğim bir dosya oluştu, ben de kullanmayı bıraktım ve sonra ZFS’yi buldum
      ZFS’de de daha az ciddi birkaç sorun vardı, ama o zamanlar bilgisayar bilimi öğrencisiydim ve btrfs’de yaşadığım sorunla karşılaştırınca önemsiz göründükleri için düzeltebileceğimi düşündüm
      Sonraki 18 ay boyunca canımı sıkan tüm sorunları çözdüm ve o zamanki ZFSOnLinux deposuna yamalar gönderdim; bu çaba ZFS’nin Linux’ta üretim ortamında kullanılabilir hale gelmesine yardımcı oldu
      O zamandan beri ZFS kullanıyorum ve iyi çalışıyor
      btrfs’nin durumu daha iyi olsaydı btrfs katkıcısı olurdum. Ama o dönemde durumu kötü olmakla kalmıyordu; sonrasında da ciddi kullanım için her denediğimde, hâlâ yer olmasına rağmen sık sık ENOSPC almak gibi sorunlar yakamı bırakmadı
      Buna karşılık ZFS sadece çalışıyor. Ben ve birçok kişi düzgün çalışması için çok emek verdik
      En büyük fark, ZFS’nin çok sağlam bir temele sahip olmasıydı; bu da mükemmel regresyon testi altyapısı sayesindeydi
      Kullanıcı alanı sürümü kodu rastgele çalıştırarak üretim ortamında patlamadan önce hataları buluyor ve önerilen her değişiklik için test paketleri koşturup hataları yakalıyor
      ZFS’de önerilen değişiklikleri inceleyen kişi sayısı da diğer dosya sistemlerine göre daha fazla. Btrfs geliştiricileri de iki dosya sistemi arasında insan gücü farkının büyük olduğunu sıkça söyler; yanlış hatırlamıyorsam yaklaşık 6 kat demişlerdi
      Her hâlükârda ZFS kullanıp pişman olan azdır; muhtemelen hoşuna gider
    • ZFS neredeyse 20 yıldır üretim ortamlarında kullanılıyor
      BTRFS belgelerine göre BTRFS hâlâ tamamen üretim ortamına uygun değil: https://btrfs.readthedocs.io/en/latest/btrfs-man5.html#raid5...
      Basit kullanım senaryolarının bir kısmı için BTRFS üretim ortamına yeterince uygun sayılabilir, ama sonuç ortamdan ortama değişir
    • btrfs’nin ZFS’ye benzer hedefleri var ama çok daha az olgun
      DKMS gerektirmediği için kök bölümünde kullanmıştım, ama sorunları çoktu
      Oldukça basit şekilde yalnızca mirror olarak kullandım; bir gün dizideki disklerden biri sorun çıkarınca btrfs düzgün dayanamadı
      Hatırladığım kadarıyla her şeyi salt okunur olarak yeniden bağladı ve varsayılan ayarlarla degraded modda çalışmadı
      Checksum gibi özellikleri olmayan mdraid bile bundan daha iyi olurdu
      ZFS de benzer şekilde diziyi arızalı olarak işaretler ama doğal olarak kullanmaya devam etmenize izin verir
      Varsayılan davranışının RAID olmaması, yani veriyi yeniden okuma anlamındaki R kısmının fiilen eksik olması yüzünden güvenimi kaybettim
      ZFS’ye geçtikten sonra sorun yaşamadım; ayrıca topluluğu ve iyi araçları da çok daha fazla
    • Birkaç yıl Btrfs kullandım, birkaç yıl önce de bıraktım
      Btrfs’de de bir iki garip olay yaşadım ama sonunda hepsinden kurtarabildim
      Genel olarak Btrfs’nin esnekliği iyiydi, ancak çoğu durumda fazla yavaş hissettirdi
      Şimdi Arch Linux’ta ZFS kullanıyorum ve şimdiye kadar genel olarak sorunsuz
      Performansı optimize etmek için daha fazla özelleştirme ve yöntem de var
      Tek tavsiyem, ZFS’yi yeterince araştırıp test etmeniz olur. Biraz öğrenme eğrisi var, ama benim için geçmeye değdi
  • NVMe performansı için ARC bypass gelmesi sevindirici
    ZFS, NVMe’nin potansiyelinden tam olarak yararlanamama eğiliminde
    Çevrimiçi genişletme de ilginç olabilir
    Çok yoğun bir veritabanında ZFS kullanmayı denemiştim ve parçalanma hatası yüzünden fena darbe aldım
    Performansı geri getirmenin tek yolu, verileri volume dışına kopyalayıp volume’ü silmek ve sonra geri kopyalamak gibi görünüyordu
    Artık belki zpool’u genişlettikten sonra aynı volume içinde tablespace’i kopyalayarak parçalanmayı azaltmak mümkün olabilir

  • TrueNAS’in bu özelliği zaten destekliyor olması da dikkat çekici[0]
    Görünüşe göre muhtemelen 2.3.0rc3 kullanıyor; kararlılığından emin değilim ama çok heyecan verici
    https://www.truenas.com/blog/electric-eel-openzfs-23/

  • Ev kullanımı için neden ZFS gibi bir şey kullanıldığını açıklayabilir misin?

    • Benim için iyi olmasının nedenleri şöyle
      Sağlama toplamı: Ev kullanımında donanım kalitesi genelde düşük olduğundan bu aslında daha da önemli. Arızalı denetleyiciler, kötü kablolar, önerilenden yüksek sıcaklıklarda saklanan sabit diskler gibi hatalı verinin yazılmasına yol açabilecek çok neden var; ZFS, yedeklilik varsa bunu otomatik olarak iyi şekilde hallediyor
      Anlık görüntüler: Yedek oluşturmak ve hata yaptığında dosyanın eski bir sürümüne hızla dönmek için çok kullanışlı
      İç rahatlığı: Alternatiflerle karşılaştırınca ZFS'nin kullanımı kolay ve veri kaybına yol açacak hatalar yapmanın zor olduğunu hissediyorum. Örneğin bozuk bir diski değiştirirken yanlışlıkla başka bir diski çıkarıp havuzu kullanılamaz hâle getirsen bile, geri taktığında hiçbir şey olmamış gibi geri dönüyor
      Şimdilerde mdadm de farklı olabilir ama birkaç yıl önce kullandığımda yıkıcı bir hata yapacağım diye hep tedirgindim
    • Başkalarının vermediği bir yanıt verecek olursam, ZFS Steam oyunlarını depolamak için iyi
      recordsize=1M ve compression=zstd ayarlarsan çoğu durumda aynı alana yaklaşık %33 daha fazla oyun sığdırabiliyorsun
      Bir arkadaşım birkaç sabit diskte Steam oyunlarını depolamak için ZFS kullanıyor. Ayrıca ZFS'ye L2ARC olarak bir SSD vermiş
      ZFS, sık çalıştırdığı oyunları otomatik olarak SSD'de önbelleğe alıp hızlı yüklenmelerini sağlıyor
      Sevdiğin oyunlar değiştiğinde ZFS otomatik olarak uyum sağlayıp bu oyunları SSD'de önbelleğe alıyor
    • zrepl kullanarak tüm dosya sistemini her 10 dakikada bir yerel NAS'a çoğaltıyorum
      WD_BLACK SN850 aniden öldüğünde [1] bir kez büyük yardımı dokundu
      Klasik bir git hatasıyla uçurduğum kodu da geri getirdi
      Kullanıcı hatası veya tek bir cihaz arızası yüzünden veri kaybetmek artık mümkün olmamalı. Bunun için teknolojiye sahibiz
      [1]: https://chromakode.com/post/zfs-recovery-with-zrepl/
    • Birçok nedeni var ama benim için en büyük neden güvenilirlik ve taşınabilirlik
      Sağlama toplamı ve kendi kendini iyileştirme var; Linux, FreeBSD, Windows ve macOS'te okunup yazılabilen başka modern bir dosya sistemi yok
      Anlık görüntüleri, yani önyükleme ortamlarını Btrfs de destekliyor. Benim Linux kurulumum, kök dosya sistemini okumak için üçüncü taraf çekirdek modülleriyle uğraşmamak adına onu kullanıyor
      Performansı da harika değil; Linux açısından performans ana öncelikse XFS daha iyi bir seçenek
    • Nispeten kolay ama güçlü
      Ondan önce MDADM + LVM + dm-crypt + ext4 kullanıyordum; o da çalışıyordu ama katman sayısı çok fazla olduğundan baş ağrıtıyordu
      Otomatik anlık görüntüler çok kolay ve hızlı
      Bir dosyayı sildiğinde erişmesi de kolay; tüm anlık görüntüyü geri yüklemeye gerek kalmadan gizli .zfs/ klasöründen sadece cp yapmak yeterli
      Yıllardır 6 adet 8TB diskle çalıştırıyorum. RAIDZ2 olduğu için en fazla 2 diskin ölmesi sorun değil
      Masaüstündeki tek bir diskte kullanır mıyım diye sorarsan, muhtemelen kullanmam