Pojawiają się aktualizacje OpenZFS 2.1.14 i OpenZFS 2.2.2, które rozwiązują problem uszkodzenia danych

OpenZFS

Logo OpenZFS

Niedawno je ogłoszono wydanie poprawnych wersji OpenZFS 2.1.14 i 2.2.2, w którym zespół programistów OpenZFS rozwiązać problem w kodzie sprawdzającym spójność pamięci podręcznej co powoduje uszkodzenie danych w plikach które po skopiowaniu po dokonaniu zmian zawierają puste obszary.

I jedno uruchomienie nie wystarczyło, ale Należało dokonać dwóch nowych premier, które jako takie rozwiązały ten sam problem. Ze swojej strony OpenZFS 2.2.2 był przeznaczony zarówno dla FreeBSD 14, jak i kilku dystrybucji Linuksa, w tym Ubuntu 23.10, podczas gdy wersja OpenZFS dotyczy FreeBSD od wersji 12.

Warto zaznaczyć, że Wersja OpenZFS 2.2.0 ujawniła błąd związany z korupcją z nową funkcją klonowania bloków, która zastępuje dane zerami bez ostrzeżenia, bez wykrycia i bez wskazania jakichkolwiek nieprawidłowości, dopóki nie spróbujesz odczytać danych.

Początkowo sądził, że przyczyną problemu jest OpenZFS 2.2.0, ale tak nie było., ponieważ jak wspomniano, to wydanie ujawnił błąd, który istniał już wcześniej przez lata i po prostu znacznie zwiększyło prawdopodobieństwo wystąpienia istniejącego problemu.

Początkowo próbowano rozwiązać ten problem w wersji 2.2.1, ale poprawka nie przyniosła skutku. Błąd pozostawał niezauważony przez długi czas i zaczął się pojawiać po wprowadzeniu zmian w narzędziu „cp” w pakiecie coreutils 9.x. Problem nie powinien występować w systemie Red Hat Enterprise Linux i opartych na nim dystrybucjach, ponieważ RHEL 9 korzysta z pakietu coreutils 8.x z inną logiką dla narzędzia „cp”.

Problem występuje podczas korzystania z narzędzi do kopiowania plików który może identyfikować i optymalizować puste obszary w plikach. Podczas kopiowania pliku może wystąpić uszkodzenie załadowanych systemów plików, jeśli operacja zostanie wykonana niemal natychmiast po zmianie, a część danych pozostanie jedynie w brudnej pamięci podręcznej i nie została jeszcze przerzucona na dysk.

Aby zoptymalizować obsługę pustych obszarów w plikach, OpenZFS od wersji 0.6.2, obsługuje operacje SEEK_HOLE i SEEK_DATA, które pozwalają na pominięcie pustego obszaru pliku podczas jego odczytu z dysku. Puste obszary są rozpoznawane i informacje o nich zapisywane dopiero po zrzuceniu na dysk wszystkich pozostałych danych związanych z plikiem w pamięci podręcznej. Aby zainicjować opróżnianie, OpenZFS posiada kontrolę, która ocenia obecność niezapisanych w pamięci podręcznej danych i wymusza opróżnianie dysku wymagane do użycia SEEK_HOLE i SEEK_DATA.

Niestetyweryfikacja była niekompletna i W niektórych okolicznościach dane dotyczące stanu ponownego uruchomienia zostały błędnie określone, a na dysku znajdowały się stare informacje o zawartości pliku, jeśli żądanie wystąpiło w krótkim czasie pomiędzy operacjami opróżniania pamięci podręcznej.

Operacje odczytu optymalizujące ładowanie pustych obszarów mogłyby w tym momencie pominąć czytanie części danych, uznając je za puste, natomiast program pracujący z plikiem mógł wcześniej dokonać zmian w pustych obszarach. W rezultacie korzystanie z narzędzia „cp” może wygenerować kopię zawierającą puste obszary, których nie było w oryginalnym pliku.

Podczas przeprowadzonego dochodzenia ujawniono, że błąd został potwierdzony również w Illumos, rozwidleniu OpenSolaris o otwartym kodzie źródłowym, którego rozwój jest kontynuowany od czasu, gdy Oracle zabił projekt open source w 2010 roku.

Oprócz korekty Uszkodzenie danych, wydanie wersji Zawiera także inne poprawki i ulepszenia, wśród których wyróżnia się rozwiązanie ZFS polegające na tym, że migawki (zfs/snapshot) są widoczne w NFS na FreeBSD, rozwiązano problemy ze zgodnością z Linuksem 6.6 oraz poprawiono błędy kompilacji powłoki i uruchamiania na FreeBSD.

W końcu jeśli chcesz dowiedzieć się więcej na ten temat, możesz sprawdzić szczegóły w poniższy link.


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.