Czy kiedykolwiek słyszałeś o Cichym Uszkodzeniu Danych (SDC – Silent Data Corruption)? Jest wszędzie gdzie przechowywane są dane, trudno znaleźć producenta rozwiązań storage, który by nie słyszał o tym procederze.

Nikt nigdy nie robił żadnych badań, które potwierdziły by zjawisko cichego uszkodzenia danych. Wszystkie informacje jakie mieliśmy były czysto teoretyczne lub w żaden sposób nie potwierdzone. Jednak to się zmieniło, niestety wyniki badań są gorsze niż się tego spodziewałem.

Przeanalizowano Petabajty danych

W CERN, największym na świecie laboratorium, kilku naukowców przeanalizowało proces SDC. CERN wielki zderzacz – zbudowany pod Szwajcarią i Francją – generuje każdego roku setki tysięcy terabajtów danych.

Eksperymenty w CERN-ie – trwające kilka sekund generują wiele terabajtów danych – następnie dane te są bardzo dokładnie analizowane przez kilka następnych miesięcy. Błędy w danych mogłaby zniweczyć rezultaty, więc naukowcy CERN i inżynierowie wykonali systematyczną analizę w celu odnalezienia SDC.

Raport CERN

Sprawdzano uszkodzenie danych na 3 poziomach:

1. Błędy dysku

Zapisywano co 2 godziny specjalnie utworzony plik o wielkości 2 GB na więcej niż 3,000 serwerów. Następnie odczytywano go w celu sprawdzenia czy pojawiły się jakieś błędy. Operację tą wykonywano przez 5 tygodni. W sumie znaleziono 500 błędów na 100 serwerach.

  • Pojedyncze błędy bitu. 10% błędów dysku.
  • Błędy sektora wielkości 512 bajtów. 10% błędów dysku
  • Bloki 64 KB . 80% błędów dysku. Wynik ten okazał się błędem w oprogramowaniu dysków WD, który występował tylko przy współpracy dysku WD z kontrolerem 3Ware. Zostało to naprawione przez wgranie nowego oprogramowania na 3000 dysków.

2. Błędy RAID

Raz w tygodniu przez 4 tygodnie uruchamiano polecenia weryfikujące na 492 systemach RAID. Kontrolery RAID w specyfikacji mają Bit Error Rate na poziomie 10^14  przy odczycie/zapisie. Podczas testów zaobserwowany BER był o wiele mniejszy. Ale jednak przy odczycie/zapisie 2.4 petabajtów danych w sumie było 300 błędów.

3.Błędy pamięci

Przez trzy miesiące na 1300 macierzach wystąpiły tylko 3 podwójne błędy bitowe. Problem w tym, że zgodnie ze specyfikacją producenta nie powinno być żadnego. Ponieważ podwójne błędy bitowe nie mogą być naprawione.

Wszystkie powyższe błędy uszkadzają dane użytkownika. Po sprawdzeniu 8.7 TB danych – 33,700 plików – odnaleziono 22 uszkodzone pliki, czyli 1 plik na 1500 możliwych. W kolejnym teście sprawdzono 15,000TB danych i okazało się, że odnaleziono aż 38,000 uszkodzonych plików.

CERN obliczył, że całkowity współczynnik BER był na poziomie 3 * 10^7 i jest wyższy od tego zakładanego w specyfikacjach komponentów, z których zbudowane są macierze tj. 10^14 lub 10^12. Niby nie jest to duża różnica.

Problem w tym, że BER występuje w każdym ogniwie łańcucha przesyłania danych, z CPU na dysk i z powrotem, dodatkowo dla transmisji bajtów z sieci na dysk wymaganych jest 6 operacji r/w na pamięci. Co znacznie zwiększa prawdopodobieństwo wystąpienia błędu.

Na przykładzie CERN widać, że SDC istnieje i że nie jest to żadny wymysł.

SDC pod strzechami

Obecnie mam 1 TB danych, więc jeżeli liczby w raporcie CERN przełożyć na moje dane to okazuje się, że mam już uszkodzone 3 pliki. W dzisiejszych czasach dla większości ludzi nie jest to wielka sprawa. Jeżeli jednak nic się nie zrobi z SDC, to problem będzie coraz poważniejszy.

Jeżeli mój komputer przyszłości będzie miał 1 TB pamięci RAM i dysk twardy z 200TB  danych to będę miał 500 uszkodzonych plików. Wtedy już dla każdego SDC będzie sprawiało duże problemy.

Co to właściwie jest to SDC ?

Każdy element komputera, z którego korzystamy NIE jest perfekcyjny. Może być to pamięć RAM; karta sieciowa NIC; dysk twardy; szyna płyty głównej; system plików, struktura blokowa danych itp. Każdy z elementów komputera nie ważne czy jest to sprzęt czy oprogramowanie, jeżeli tyko ma kontakt z bitami danych to może być źródłem SDC.

Uszkodzenie danych ma miejsce cały czas. Zdarza się to gdy bit lub zestaw bitów zostaną zmienione w sposób nie zamierzony z różnych przyczyn. Poniżej pierwsza lista przyczyn mających wpływ na utratę danych, nie wszystkie przyczyny mają związek z SDC, te które mają zostały pogrubione:

Przyczyny Perception Reality
Problem ze sprzętem lub systemem 78% 56%
Błąd ludzki 11% 26%
Problem z oprogramowaniem 7% 9%
Wirusy 2% 4%
Katastrofy 1-2% 1-2%

Poniżej druga lista, która przedstawia tylko przyczyny związane z SDC

  • Błędy sprzętu
  • Szumy transferu danych
  • Zakłócenia elektromagnetyczne (EMI)
  • Błędy Firmwaru
  • Błędy Oprogramowania
  • Niestabilne zasilanie
  • Wiele więcej …

Dlatego właśnie są publikowane statystyki błędów dla niektórych sprzętowych komponentów takich jak pamięci RAM, kart sieciowych, dysków twardych czy nawet protokołów komunikacyjnych jak Fibre Channel. Statystyki mówią nam jak często przy przesyłaniu lub przetwarzaniu danych może pojawić się błędny bit, wyrażane jest to przy pomocy współczynnika BER.

Dlatego też występują mechanizmy, które mają na celu wykrycie uszkodzonych danych. Są to na przykład sumy kontrolne (CRC32, SHA1, MD5 …), parytety czy ECC (error correction code). Ponieważ możemy je wykryć, widzimy błędy i ostrzeżenia o ich istnieniu.

Jednak, CICHE uszkodzenie danych ma to do siebie, że nie pojawia się gdy WYSTĄPI, jako błąd czy ostrzeżenie w logach systemu!

Ten problem jest coraz bardziej powszechny w nowoczesnych dysk, w szczególności w dyskach SSD. Producenci dysków prezentują coraz to nowe modele w coraz to mniejszych obudowach, z większą pojemnością i większymi osiągami, a to wszystko przyczynia się do tego, że wielkość pojedynczej komórki SSD staje się mniejsza i mniejsza. Oznacza to, że każda komórka ma mniejszą powierzchnię do przechowywania elektrycznego ładunku niż dotychczas i to może mieć wpływ na problemy z utrzymaniem odpowiedniej wartości bitu na poziomie -0 lub -1. Dodatkowo mniejsze komórki są bardziej wrażliwe i podatne na szumy, elektryczny „wyciek” ładunku, czy interferencję z pobliskimi komórkami. Ostatni problem w szczególności występuje w dyskach SSD, które zaimplementowały dwa poziomy zasilania komórek, żeby sprostać wymaganiom ekologicznym.

Gdy takie rzeczy się zdarzają, wtedy 0 może wyglądać jak 1 lub vice versa i jeżeli ten błąd nie zostanie wykryty to mamy do czynienia  z cichym uszkodzeniem danych.

Podsumowanie

Większość dzisiejszych technologi jak RAID czy systemy plików zostały zaprezentowane na przełomie lat 80-tych i 90-tych. Były to czasy kiedy dyski miały pojemność 9GB, 18GB, a najszybszym standardem sieciowym był FastEthernet. Od tamtego czasu wiele rzeczy bardzo się zmieniło, dodatkowo mamy doczynienia z fenomenalny przyrostem ilości danych. Przy wyborze macierzy lub serwera NAS, należy wziąć pod uwagę czy producent zadbał o rozwiązanie problemu SDC.

SDC to bardzo realny problem, o którym otwarcie nie mówi wiele firm produkujących pamięci masowe czy macierzy, ponieważ nie mają narzędzia, które było by w stanie go rozwiązać.

Jednak są firmy, które potrafią sobie z tym radzić, dobrym przykładem są:

Firma QSAN, która w swoich rozwiązania montuje profesjonalne sprzętowe kontrolery RAID, które na każdym kroku sprawdzają dane składowane na macierzy co zapobiega występowaniu SDC.

Firma Infortrend postanowiła zaimplementować w swoich serwerach NAS z serii EonNAS system plików ZFS, który posiada system hierarchicznego sprawdzania sum kontrolnych plików, co jest jedną z najbardziej efektywnych dróg wykrycia uszkodzonego pliku i jego naprawy.

Natomiast firma CTERA w swoich Cloud NAS-ach wdrożyła „RAID data scrubbing”. Serwery okresowo zgodnie z harmonogramem odczytują dane z wszystkich dysków macierzy RAID, przed odczytem następuje sprawdzenie czy dany blok nie jest uszkodzony. Zmniejsza to prawdopodobieństwo cichego uszkodzenia danych i utratę danych z powodu błędów bitowych.