Btrfs में बग-हunting

Btrfs बनाम ZFS/Bcachefs का भविष्य

  • कुछ लोग मानते हैं कि Btrfs का भविष्य लंबा होगा, खासकर ZFS की लाइसेंसिंग जटिलताओं और Bcachefs की erasure coding और scrub जैसी सुविधाओं की अपरिपक्वता को देखते हुए।
  • दूसरों का मानना है कि अंततः Bcachefs, Btrfs की जगह ले लेगा, लेकिन वे कहते हैं कि यह “कई साल दूर” है।
  • Bcachefs को ऐतिहासिक गलतियों के मामले में कम समस्या-ग्रस्त माना जाता है, लेकिन उसमें अभी भी महत्वपूर्ण कार्यक्षमता और वास्तविक-विश्व exposure की कमी है।

ZFS लाइसेंसिंग और कानूनी जोखिम

  • इस पर बहस कि क्या GPL/CDDL असंगति वास्तव में Linux के साथ ZFS ship करने से रोकती है; कुछ लोग OpenZFS के इस मत का हवाला देते हैं कि binary modules ठीक हैं।
  • विरोधी तर्क: कानूनी सिद्धांत से अधिक मायने Oracle की वह क्षमता रखती है जिससे वह महँगी परेशानी खड़ी कर सकता है; conservative distros के लिए इस जोखिम से बचना उचित हो सकता है।
  • Ubuntu में लंबे समय से मौजूद ZFS module पर Oracle की कोई कार्रवाई न होना इस बात का प्रमाण माना जाता है कि जोखिम कम है, लेकिन शून्य नहीं।

विश्वसनीयता और corruption के अनुभव

  • कई उपयोगकर्ता consumer hardware पर बार-बार, और कभी-कभी unrecoverable Btrfs corruption की रिपोर्ट करते हैं, और ext4 की तुलना में इसे कमज़ोर बताते हैं।
  • अन्य लोग दशक भर से अधिक स्थिर उपयोग की रिपोर्ट करते हैं, जिसमें multi-disk RAID1 और लंबे समय तक चलने वाले systems शामिल हैं, जो कभी-कभी manual repair के साथ hardware faults से भी बच गए।
  • निष्कर्ष: Btrfs में sharp edges हैं; कुछ workloads और गलत configurations (खराब RAM, RAID5/6, quotas) जोखिमभरे हैं।

प्रदर्शन, background work, और quotas

  • Btrfs के “cleaner” / background threads के low-end systems पर बहुत अधिक CPU लेने की रिपोर्टें हैं, जिससे वे unusable जैसे लगते हैं, खासकर openSUSE defaults (snapshots + quotas) के साथ।
  • Quotas disable करने से अक्सर समस्याएँ कम हो जाती हैं; quotas के साथ snapshot deletion को विशेष रूप से महँगा बताया गया है।

ज्ञात समस्या क्षेत्र और bugs

  • RAID5/6 को व्यापक रूप से unsafe माना जाता है; official docs और tools इसे हतोत्साहित करते हैं।
  • एक reproducible bug का वर्णन किया गया है जब लगभग-full ext3 को Btrfs में convert करके फिर compression के साथ defrag किया जाता है; इससे unfixable “out of space” स्थिति पैदा हो सकती है।
  • चर्चा कि filesystems critical infrastructure हैं; कुछ लोग production software के लिए “feature X का उपयोग न करें” को अस्वीकार्य मानते हैं।
  • linked article की race condition bug को व्यवहार में बहुत दुर्लभ माना जाता है, लेकिन यह इस बहस को जन्म देती है कि sample sizes (जैसे 100 machine-hours) वास्तव में क्या साबित करते हैं।

उपयोग के मामले और विकल्प

  • बहुत से लोग “rock solid” व्यवहार और database workloads के लिए ext4 या XFS चुनते हैं; कहा जाता है कि अधिकांश databases XFS को प्राथमिकता देते हैं।
  • कुछ लोग databases (PostgreSQL/MySQL replicas, RocksDB) को Btrfs या ZFS पर चलाते हैं, अक्सर compression और snapshotting के लिए, और CoW overhead स्वीकार करते हैं।
  • Synology जैसे NAS vendors Btrfs को मुख्यतः classic RAID के ऊपर उपयोग करते हैं, जिससे Btrfs की native RAID सुविधाओं से बचा जाता है।

Snapshots, backups, और tooling

  • Btrfs snapshots और snapper/btrbk जैसे tools आसान rollback और तेज backups के लिए सराहे जाते हैं, खासकर rolling distros पर।
  • कुछ लोग WSL2 में Btrfs-जैसी snapshotting चाहते हैं; वर्तमान workaround में LVM, dm-snapshot, या blksnap जैसी भविष्य की mechanisms शामिल हैं।

In-place conversion और अपेक्षाएँ

  • in-place ext→Btrfs conversion को कुछ लोग स्वभावतः जोखिमभरा मानते हैं; अन्य तर्क देते हैं कि यदि इसे documented और supported किया गया है, तो यह विश्वसनीय होना चाहिए।
  • व्यापक बिंदु: कई लोगों के लिए filesystems को “format, mount, forget” होना चाहिए, और bugs को application failures की तुलना में भी असहनीय माना जाता है।