BTRFS nemá oproti ZFS absolutně nic navíc, ba naopak, tunu funkcionality postrádá.
To záleží na kritériích. BTRFS používám kontinuálně od roku 2011 a za jednu z hlavních vlastností považuju flexibilitu a to na mnoha úrovních. Multidevice podle mých představ. Kdykoliv přidám, kdykoliv odeberu disk. Nejstarší FS, který už udržuju jen tak pro srandu, má devid přes 30. Tohle s ZFS neuděláte. Ano, už jde sice odstranit vdev (čistě formálně) ale existující vdev nepředěláte (snad krom single na mirror a zpět). ZFS tuhle flexibilitu prostě postrádá, základní jednotkou je vdev a pool se staví z vdevů.
Další flexibilita BTRFS je v tom, že snapshot je subvolume a především nezávislý. Takže udělám snapshot nějaké subvolume a tu původní smažu. Takto můžu udělat celý strom subvolume a libovolné z nich promazat.
U ZFS je snapshot datasetu pevně svázán s tím datasetem. Nemůžu smazat dataset a nechat si jen jeho snapshoty. Ano, můžu udělat clone nějakého snapshotu a získám nový dataset, ale ten je ale navázán na původní snapshot (a ten zase na původní dataset). Ano, můžu tento snapshot pomocí zfs promote
posunout na nový dataset a ten starý dataset smazat, ale zase nemůžu smazat ten snapshot, ze kterého jsem udělal clone. Prostě už tam bude navždy.
Tohle strašně komplikuje použití těch datasetů.
Na BTRFS mám postavené kontejnery (nspawn). Některé slouží jako template, a ty občas updatuju. Kdykoliv z těchto template udělám nový kontejner. Staré template subolume mohu kdykoliv promazat.
Tohle na ZFS prakticky neuděláte. Když z jednoho snapshotu naklonujete více datasetů (třeba pro jaily) , tak se těch původních snapshotů nezbavíte. Takže nové jaily nakonec řeším plnou kopií template přes zfs send / receive
.