Czy NTFS jest bezpieczny w przypadku awarii zasilania?


13

Czy w przypadku awarii zasilania system plików NTFS może zostać uszkodzony? Np. Być zepsuty lub spowodować uszkodzenie pliku? I czy wbudowane dublowanie NTFS na dyskach dynamicznych gwarantuje utrzymanie plików w spójnym stanie w przypadku awarii zasilania?

Moim punktem widzenia jest to, że systemy plików kronikowania są specjalnie zaprojektowane, aby tolerować tego rodzaju problemy. System plików NTFS nie gwarantuje danych użytkownika, ale aplikacje takie jak system zarządzania bazą danych mają menedżerów transakcji, które chronią dane.

Kilka cytatów z doskonałej książki Microsoft Windows Internals :

NTFS

NTFS zawiera wiele zaawansowanych funkcji. Jedną z jego najważniejszych cech jest możliwość odzyskania. Jeśli system zostanie nieoczekiwanie zatrzymany, metadane woluminu FAT mogą pozostać w niespójnym stanie, co prowadzi do uszkodzenia dużych ilości danych plików i katalogów. NTFS rejestruje zmiany w metadanych w sposób transakcyjny, dzięki czemu struktury systemu plików można naprawić do spójnego stanu bez utraty informacji o strukturze pliku lub katalogu. (Dane pliku mogą jednak zostać utracone.)

Cele i funkcje projektu NTFS

Wymagania dotyczące systemu plików klasy wyższej

Od samego początku system plików NTFS zawiera funkcje wymagane od systemu plików klasy korporacyjnej. Aby zminimalizować utratę danych w przypadku nieoczekiwanego wyłączenia lub awarii systemu, system plików musi zapewniać integralność swoich metadanych przez cały czas. Wreszcie system plików musi zezwalać na redundancję danych opartą na oprogramowaniu jako tanią alternatywę dla sprzętowych rozwiązań do ochrony danych użytkownika.

Odzyskiwalność

NTFS wykorzystuje transakcje atomowe do wdrożenia funkcji odzyskiwania systemu plików. Jeśli program zainicjuje operację we / wy, która zmienia strukturę woluminu NTFS - to znaczy zmienia strukturę katalogów, rozszerza plik, przydziela miejsce na nowy plik itd. - NTFS traktuje tę operację jako transakcję atomową. Gwarantuje to, że transakcja zostanie zakończona lub, jeśli system zawiedzie podczas wykonywania transakcji, zostanie wycofana.

Ponadto system plików NTFS używa nadmiarowej pamięci do przechowywania ważnych informacji o systemie plików, dzięki czemu w przypadku awarii sektora na dysku system plików NTFS może nadal uzyskiwać dostęp do krytycznych danych systemu plików woluminu.

Nadmiarowość danych i tolerancja błędów

Oprócz możliwości odzyskania danych systemu plików niektórzy klienci wymagają, aby ich własne dane nie były zagrożone przez awarię zasilania lub katastrofalną awarię dysku. Funkcje odzyskiwania NTFS zapewniają, że system plików na woluminie pozostaje dostępny, ale nie dają gwarancji pełnego odzyskania plików użytkownika. Ochronę aplikacji, które nie mogą ryzykować utraty danych, zapewnia redundancja danych.

Nadmiarowość danych dla plików użytkownika jest realizowana za pomocą modelu warstwowego systemu Windows, który zapewnia obsługę dysków odpornych na uszkodzenia. Menedżer woluminów może kopiować lub duplikować dane z jednego dysku na inny, dzięki czemu zawsze można odzyskać nadmiarową kopię.

Wsparcie odzyskiwania NTFS

Obsługa odzyskiwania NTFS zapewnia, że ​​w przypadku awarii zasilania lub awarii systemu żadne operacje (transakcje) systemu plików nie zostaną pozostawione niekompletne, a struktura woluminu dyskowego pozostanie nienaruszona bez konieczności uruchamiania narzędzia do naprawy dysku. Narzędzie NTFS Chkdsk służy do naprawy katastrofalnego uszkodzenia dysku spowodowanego błędami we / wy (na przykład uszkodzonymi sektorami, anomaliami elektrycznymi lub awariami dysku) lub błędami oprogramowania. Ale dzięki możliwościom odzyskiwania NTFS Chkdsk jest rzadko potrzebny.

Odzyskiwalne systemy plików

Chociaż NTFS nie gwarantuje ochrony danych użytkownika w przypadku awarii systemu - niektóre zmiany mogą zostać utracone z pamięci podręcznej - aplikacje mogą korzystać z możliwości zapisu i kasowania NTFS, aby zapewnić rejestrowanie modyfikacji plików na dysk w odpowiednich odstępach czasu. Zarówno zapisywanie w pamięci podręcznej - wymuszające natychmiastowe zapisywanie operacji zapisu na dysku - jak i opróżnianie gotówki - wymuszające zapisywanie zawartości na dysku - są wydajnymi operacjami. Ponadto, w przeciwieństwie do systemu plików FAT, NTFS gwarantuje, że dane użytkownika będą spójne i dostępne natychmiast po operacji zapisu lub kasie pieniężnej, nawet jeśli system następnie ulegnie awarii.


Wygląda na to, że masz odpowiedź ...
r0ca

Odpowiedzi:


7

Pomijając teorię, na stronie znajduje się tyle problemów spowodowanych brakiem zasilania w systemie NTFS, że odpowiedź musi brzmieć: NIE .

Na tej stronie osobiście poradziłem sobie z problemami, które przeszły od nagle pojawiających się złych sektorów, aż do całkowicie zamkniętej instalacji systemu Windows.

Komputer jest niezwykle złożonym sprzętem, a współczesne dyski twarde stały się również małymi komputerami. Każdy ma swój procesor i pamięć, więc każdy jest podatny na usterki zasilania występujące w niewłaściwym momencie.

Nawet jeśli NTFS jest bezpieczny w razie awarii (w co tak naprawdę nie wierzę), komponenty, które obsługują zmiany na dysku twardym, z pewnością nie są bezpieczne w razie awarii. Całe pytanie jest więc dość akademickie i nie dotyczy realnego świata.

Odpowiedź musi być taka, że ​​NTFS jest bezpieczniejszy , ale nie bezpieczny.


7
+1 Nie ma substytutu dobrego UPS, który automatycznie wyłącza się w przypadku awarii zasilania i dobrych kopii zapasowych danych.
Dave M

Czy dublowanie dysku nie może być rozwiązaniem dla „nagle pojawiających się uszkodzonych sektorów”?
Jonas

Znalazłem interesujący artykuł na ten temat; Jak Microsoft naraża twoje dane na ryzyko
Jonas

Bardzo interesujące - pobrałem pracę magisterską.
harrymc

4
Złe sektory nie są problemem NTFS. Sprzeciwiam się także przedstawionym tutaj anegdotycznym dowodom. NTFS jest odporny na awarie przy założeniu, że sprzęt przestrzega typowych gwarancji dotyczących zapisu . Zostały one prawdopodobnie naruszone w twoim przypadku.
usr

4

NTFS tylko kronikuje metadane, co zapobiega uszkodzeniu systemu plików, ale niech Bóg ci pomoże z danymi, które nie są kronikowane. Jeśli nastąpi awaria zasilania podczas zapisu, dane zostaną utracone.


To prawda, ale np. System zarządzania bazą danych używa menedżera transakcji do danych użytkownika, więc jest trwały, gdy jest zatwierdzony. Dane, które nie są w 100% zapisane, nie są zgłaszane użytkownikowi jako „zapisane”.
Jonas

2
@Jas, tak, oczywiście, ale to cecha aplikacji, a nie systemu plików.
Mircea Chirea

3

Po napisaniu kodu, który czyta i zapisuje NTFS, doszedłem do wniosku, że funkcja odzyskiwania NTFS została zaprojektowana / wdrożona w sposób wadliwy.

Dziennik NTFS zawiera wpis dziennika dla operacji, która spowodowała zapis, zwykle zawiera tylko wystarczającą ilość informacji, aby cofnąć / powtórzyć tę operację, jednak jeśli sektor zostanie uszkodzony podczas zapisu (z powodu awarii zasilania), wpis dziennika nie jest koniecznie wystarczy, aby odzyskać wszystkie metadane w tym sektorze.

Wdrożyciele sterowników NTFS dla Windows zakładają, że każda operacja zapisu zakończy się powodzeniem lub w ogóle się nie wydarzy (dotyczy to tylko niektórych środowisk korporacyjnych).

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.