OpenZFS 2.1.14 and 2.2.2 update fixing the bug causing file corruption

Korrigerande versioner av OpenZFS 2.1.14 och 2.2.2 har skapats, vilket vidareutvecklar implementeringen av filsystemet ZFS för Linux och FreeBSD. I uppdateringarna ÄtgÀrdades ett problem i koden för konsistenskontroll av dnode-cache, vilket ledde till datakorruption i filer som innehöll tomma omrÄden nÀr de kopierades efter Àndringar.

Problemet försökte först ÄtgÀrdas i version 2.2.1, men fixen visade sig vara ineffektiv. Felet förblev lÀnge obemÀrkt och började uppstÄ efter Àndringar som infördes i "cp"-verktyget i coreutils 9.x. Det antas att problemet inte förekommer i Red Hat Enterprise Linux och dess basdistributioner, eftersom RHEL 9 anvÀnder coreutils 8.x-paketet med en annan logik för "cp"-verktyget.

Problemet uppstÄr vid anvÀndning av filkopieringsverktyg som kan identifiera och optimera tomma omrÄden i filer. Korruption kan intrÀffa i belastade FS nÀr en fil kopieras om operationen utförs nÀstan omedelbart efter en Àndring och en del data endast finns i dirty-cachen och Ànnu inte har skrivits till disken.

För att optimera hanteringen av tomma omrÄden i filer stöder OpenZFS, sedan version 0.6.2, operationer som SEEK_HOLE och SEEK_DATA, som möjliggör att hoppa över tomma omrÄden i en fil vid lÀsning frÄn disken. Identifiering av tomma omrÄden och lagring av information om dem görs först efter att alla kvarvarande data i cachen som Àr kopplade till filen har skrivits till disken. För att initiera skrivningen finns det en kontroll i OpenZFS som bedömer förekomsten av osparade data i cachen och utför en tvÄngsskrivning av informationen till disken, vilket Àr nödvÀndigt för anvÀndning av SEEK_HOLE och SEEK_DATA.

TyvÀrr var kontrollen ofullstÀndigt och vid vissa omstÀndigheter faststÀlldes ÄterstÀllningsstatusen felaktigt, och det fanns gammal information om filens innehÄll pÄ disken, om en begÀran kom in under ett litet tidsfönster mellan tvÄ databasÄterstÀllningsoperationer. LÀsoperationer för att optimera laddningen av tomma omrÄden kan dÀrför ha missat att lÀsa vissa data och trott att de var tomma, medan programmet som arbetade med filen tidigare kunde ha gjort Àndringar i tomma omrÄden. Som ett resultat kunde anvÀndningen av verktyget "cp" ha lett till att en kopia skapades som innehöll tomma omrÄden dÀr det inte fanns nÄgra i originalfilen.

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster