Se il caso d'uso principale è l'archiviazione di immagini o database VM e non sei interessato ad accettare i potenziali problemi di prestazioni al fine di ottenere i vantaggi di integrità dei dati di btrfs, non riesco a pensare a nessun motivo per cui vorresti scegliere btrfs su xfs o ext4.
Disabilitare la copia su scrittura solo per la directory dell'immagine VM (utilizzando chattr + C) è per lo più rilevante quando l'archiviazione delle immagini VM è solo uno dei tanti usi che hai per il tuo file system. Quindi può essere molto comodo disabilitare il copy-on-write solo per quella singola directory, mantenendo comunque tutti i vantaggi di btrfs per il resto del file system.
BTRFS ha un diverso formato su disco che supererà gli altri file system su alcuni schemi di scrittura. In particolare, è stato speso un grande sforzo per migliorare il modo in cui i metadati vengono scritti su disco e supporta alcune funzionalità avanzate come il checksum dei dati, la compressione e le istantanee. Per i file di grandi dimensioni, il miglioramento delle prestazioni dei metadati in genere non è importante.
Rispetto a ZFS, BTRFS è una soluzione più semplice e meglio supportata su Linux. Il principale svantaggio è che non si ridimensiona altrettanto bene (quando si aggiunge un gran numero di dischi) e non ha lo stesso set di funzionalità.
Rispetto a XFS sarà una soluzione con prestazioni inferiori. Cioè. ci vorrà più tempo del processore per scrivere un blocco di dati su disco e sarà limitato nel throughput massimo. Questo può essere mitigato in una certa misura facendo cose come disabilitare la verifica del checksum, ma poi perdi il vantaggio principale di BTRFS rispetto a XFS che è il miglioramento delle informazioni sui metadati. Cioè. checksum e journaling diverso (che potrebbe essere migliore in alcune situazioni).
In termini di supporto Copy On Write (COW), XFS favorisce le prestazioni piuttosto che essere rigorosamente COW. Cioè. XFS ha ottime funzionalità di metadati e journaling in termini di scalabilità e generalmente non sovrascriverà i dati dei file durante la scrittura, con l'eccezione che consentirà la sovrascrittura dei blocchi del disco esistenti se l'applicazione richiede specificamente di sovrascrivere tali dati. Questo può essere utile nel caso di una VM poiché l'allocazione del disco inizialmente può essere contigua e in tal caso rimarrebbe contigua per tutta la durata della VM.
Usando BTRFS, anche con nodatacow
e allo stesso modo sei ancora in grado di creare istantanee di dati manualmente con CoW
comportamento, quindi è veloce e non consuma molta memoria. Inoltre, queste istantanee sono più flessibili rispetto all'utilizzo di LVM, poiché non è necessario riservare spazio sotto il file system di cui il file system non è a conoscenza e non può essere utilizzato se non necessario. Come con ZFS, le istantanee possono essere inviate e ricevute sulla rete, il che potrebbe aiutarti a migliorare la tua strategia di backup. Quindi anche con nodatacow
BTRFS sembra essere superiore rispetto all'utilizzo di LVM.