Non è un buon periodo per i filesystem Linux: anche OpenZFS ha avuto un problema di data corruption, già risolto

1

Sappiamo che molti lettori del blog sono utilizzatori ed estimatori di OpenZFS, l’implementazione open-source del filesystem ZFS creato da SUN per il sistema Solaris nel 2001, per questo non abbiamo mai lesinato in passato tutte le notizie possibili sul tema.

Purtroppo però l’uscita della versione 2.2.0 del filesystem ha portato con sé un problema particolarmente importante, come raccontato nel dettaglio da The Register nell’articolo dall’eloquente titolo Data-destroying defect found after OpenZFS 2.2.0 release.

E se sommiamo questa alla notizia che abbiamo raccontato ieri sul filesystem ext4 possiamo dire con certezza che no, non è un momento particolarmente fortunato per i filesystem in Linux…

La nota è arrivata direttamente alla mailing list del progetto FreeBSD, dove per primo il problema è emerso:

We want to bring your attention to a potential data corruption issue affecting multiple versions of OpenZFS. It was initially reported against OpenZFS 2.2.0 but also affects earlier and later versions. This issue can be reproduced with targeted effort but it has not been observed frequently in real-world scenarios. This issue is not related to block cloning, although it is possible that enabling block cloning increases the probability of encountering the issue.

Vogliamo portare all’attenzione di tutti un potenziale problema di corruzione dati che affligge diverse versioni di OpenZFS. Inizialmente è stato riportato per OpenZFS 2.2.0, ma affligge anche versioni precedenti e successive. Questa problematica può essere riprodotta con una sequenza specifica, ma non è stata osservata con frequenza in scenari realistici. Non è correlata al block cloning, anche se è probabile che l’abilitazione del block cloning aumenti le probabilità di incappare nel problema.

Per la cronaca, il block cloning di OpenZFS è una funzionalità che consente di creare copie istantanee di blocchi di dati condivisi tra più file o snapshot senza duplicare effettivamente i dati. Quando si clona un blocco, vengono create copie referenziate dello stesso blocco originale, consentendo un risparmio di spazio su disco e tempi di creazione più veloci delle copie.

Tutto questo succedeva una decina di giorni fa e nel frattempo, fortunatamente, sono stati applicati tutte le fix del caso, e viene raccomandato, come racconta Phoronix, l’aggiornamento alle versioni OpenZFS 2.1.14 oppure OpenZFS 2.2.2, nell’annuncio vengono riportati i dettagli della fix:

Note: This release contains an important fix for a data corruption bug. Full details are in the issue (#15526) and bug fix (#15571). There’s also a developer’s bug summary that gives a good overview. We recommend everyone either upgrade to 2.2.2 or 2.1.14 to get the fix. The bug can cause data corruption due to an incorrect dirty dnode check. This bug is very hard to hit, and really only came to light due to changes in cp in coreutils 9.x. It’s extremely unlikely that the bug was ever hit on EL7, EL8, or EL9 when running cp since they all use coreutils 8.x which performs file copies differently.

Nota: questa versione contiene un’importante correzione per un bug di danneggiamento dei dati. I dettagli completi si trovano nel problema (#15526) e nella correzione del bug (#15571). C’è anche un riepilogo dei bug per lo sviluppatore che offre una buona panoramica. Consigliamo a tutti di aggiornare alla versione 2.2.2 o 2.1.14 per ottenere la correzione. Il bug può causare il danneggiamento dei dati a causa di un controllo errato del dirty dnode. Questo bug è molto difficile da individuare ed è venuto alla luce solo a causa dei cambiamenti in cp in coreutils 9.x. È estremamente improbabile che il bug sia mai stato riscontrato su EL7, EL8 o EL9 durante l’esecuzione di cp poiché tutti utilizzano coreutils 8.x che esegue le copie dei file in modo diverso.

Quindi al netto della risoluzione della problematica in sé anche una sorta di rassicurazione, che serve però a poco nel momento in cui la legge di Murphy si verifica. Pertanto, come in precedenza, il consiglio principale è sempre quello di aggiornare e, ancora una volta, di sottolineare l’importanza di mantenere sempre dei validi backup quando si trattano dati sensibili, per non dimenticare mai uno dei nostri meme preferiti:

Da sempre appassionato del mondo open-source e di Linux nel 2009 ho fondato il portale Mia Mamma Usa Linux! per condividere articoli, notizie ed in generale tutto quello che riguarda il mondo del pinguino, con particolare attenzione alle tematiche di interoperabilità, HA e cloud.
E, sì, mia mamma usa Linux dal 2009.