wew3 - ext3
Deweloper(zy) | Stephen Tweedie |
---|---|
Pełne imię i nazwisko | Trzeci rozszerzony system plików |
Wprowadzono | Listopad 2001 z Linuksem 2.4.15 |
Identyfikator partycji | 0x83 ( MBR ) EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 ( GPT ) |
Struktury | |
Zawartość katalogu | Tabela, zaszyfrowane B-drzewo z włączonym dir_index |
Przydział plików | bitmapa (wolne miejsce), tabela (metadane) |
Złe bloki | Tabela |
Limity | |
Maks. wielkość woluminu | 4 TiB – 32 TiB |
Maks. rozmiar pliku | 16 GiB – 2 TiB |
Maks. liczba plików | Zmienna, przydzielona w czasie tworzenia |
Maks. długość nazwy pliku | 255 bajtów |
Dozwolone znaki w nazwach plików | Wszystkie bajty z wyjątkiem NUL ('\0') i '/' |
Cechy | |
Daty zarejestrowania | modyfikacja (mtime), modyfikacja atrybutu (ctime), dostęp (atime) |
Zakres dat | 14 grudnia 1901 – 18 stycznia 2038 |
Rozdzielczość daty | 1 s |
Atrybuty | allow-unelete, append-only, h-tree (katalog), niezmienny, dziennik, no-atime, no-dump, secure-delete, synchronous-write, top (katalog) |
Uprawnienia systemu plików | Uprawnienia Unix, listy ACL i dowolne atrybuty bezpieczeństwa (Linux 2.6 i nowsze) |
Przezroczysta kompresja | Nie |
Przejrzyste szyfrowanie | Nie (dostępne na poziomie urządzenia blokowego) |
Deduplikacja danych | Nie |
Inne | |
Obsługiwane systemy operacyjne | Linux , BSD , ReactOS , Windows (poprzez IFS ) |
ext3 lub trzeci rozszerzony system plików to system plików z dziennikiem , powszechnie używany przez jądro Linuksa . Kiedyś był to domyślny system plików dla wielu popularnych dystrybucji Linuksa . Stephen Tweedie po raz pierwszy ujawnił, że pracował nad rozszerzeniem ext2 w Journaling the Linux ext2fs Filesystem w artykule z 1998 r., a później w lutym 1999 r. na liście dyskusyjnej jądra. System plików został połączony z głównym jądrem Linuksa w listopadzie 2001, począwszy od 2.4.15. Jego główną przewagą nad ext2 jest kronikowanie , które poprawia niezawodność i eliminuje potrzebę sprawdzania systemu plików po nieczystym zamknięciu. Jego następcą jest ext4 .
Zalety
Wydajność (szybkość) ext3 jest mniej atrakcyjna niż konkurencyjnych linuksowych systemów plików, takich jak ext4, JFS , ReiserFS i XFS , ale ext3 ma znaczną przewagę, ponieważ umożliwia uaktualnianie na miejscu z ext2 bez konieczności tworzenia kopii zapasowych i przywracania danych . Benchmarki sugerują, że ext3 również zużywa mniej mocy procesora niż ReiserFS i XFS. Jest również uważany za bezpieczniejszy niż inne systemy plików Linux, ze względu na względną prostotę i szerszą bazę testową.
ext3 dodaje następujące funkcje do ext2:
- czasopismo
- Rozwój systemu plików online
- Indeksowanie Htree dla większych katalogów
Bez tych funkcji każdy system plików ext3 jest również prawidłowym systemem plików ext2. Ta sytuacja pozwoliła na używanie dobrze przetestowanych i dojrzałych narzędzi do obsługi systemu plików do konserwacji i naprawy systemów plików ext2 z ext3 bez większych zmian. Systemy plików ext2 i ext3 korzystają z tego samego standardowego zestawu narzędzi, e2fsprogs , który zawiera narzędzie fsck . Bliski związek sprawia również, że konwersja między dwoma systemami plików (zarówno naprzód na ext3, jak i wstecz na ext2) jest prosta.
ext3 nie ma "nowoczesnych" funkcji systemu plików, takich jak dynamiczna alokacja i- węzłów i ekstenty . Taka sytuacja może czasami być wadą, ale w przypadku możliwości odzyskania jest to znacząca zaleta. Metadane systemu plików znajdują się w stałych, dobrze znanych lokalizacjach, a struktury danych mają pewną nadmiarowość. W przypadku znacznego uszkodzenia danych, ext2 lub ext3 można odzyskać, podczas gdy system plików oparty na drzewie może nie.
Limity rozmiaru
Maksymalna liczba bloków dla ext3 to 2 32 . Rozmiar bloku może się różnić, wpływając na maksymalną liczbę plików i maksymalny rozmiar systemu plików:
Rozmiar bloku | Maksymalny rozmiar pliku |
Maksymalny rozmiar systemu plików |
---|---|---|
1 KiB | 16 GiB | 2 TiB |
2 KiB | 256 GiB | 8 TiB |
4 KiB | 2 TiB | 16 TiB |
8 KiB | 2 TiB | 32 TiB |
Poziomy księgowania
W linuksowej implementacji ext3 dostępne są trzy poziomy księgowania :
- Dziennik (najniższe ryzyko)
- Zarówno metadane, jak i zawartość pliku są zapisywane w dzienniku przed zatwierdzeniem w głównym systemie plików. Ponieważ dziennik jest względnie ciągły na dysku, może to poprawić wydajność, jeśli dziennik ma wystarczającą ilość miejsca. W innych przypadkach wydajność spada, ponieważ dane muszą być zapisywane dwukrotnie — raz do dziennika, a drugi raz do głównej części systemu plików.
- Zamówione (średnie ryzyko)
- Kronikowane są tylko metadane; zawartość pliku nie jest, ale gwarantuje się, że zawartość pliku zostanie zapisana na dysku, zanim skojarzone metadane zostaną oznaczone jako zatwierdzone w dzienniku. Jest to ustawienie domyślne w wielu dystrybucjach Linuksa. W przypadku przerwy w dostawie prądu lub paniki jądra podczas zapisywania lub dopisywania pliku, dziennik wskaże, że nowy plik lub dołączone dane nie zostały „zatwierdzone”, więc zostaną wyczyszczone przez proces czyszczenia. (Dlatego nowe pliki mają ten sam poziom ochrony integralności, co poziom „kronikowany”). Jednak nadpisywane pliki mogą zostać uszkodzone, ponieważ oryginalna wersja pliku nie jest przechowywana. W ten sposób można skończyć z plikiem w stanie pośrednim między nowym a starym, bez wystarczających informacji do przywrócenia jednego lub drugiego (nowe dane nigdy nie trafiły w całości na dysk, a stare dane nie są nigdzie przechowywane). Co gorsza, stan pośredni może przeplatać stare i nowe dane, ponieważ kolejność zapisu zależy od sprzętu dysku.
- Zwrot (najwyższe ryzyko)
- Kronikowane są tylko metadane; zawartość pliku nie jest. Treść może być napisana przed lub po aktualizacji czasopisma. W rezultacie pliki zmodyfikowane tuż przed awarią mogą ulec uszkodzeniu. Na przykład dodawany plik może zostać oznaczony w dzienniku jako większy niż w rzeczywistości, powodując śmieci na końcu. Starsze wersje plików mogą również pojawiać się nieoczekiwanie po odzyskaniu dziennika. Brak synchronizacji między danymi a dziennikiem jest w wielu przypadkach szybszy. JFS używa tego poziomu kronikowania, ale zapewnia, że wszelkie „śmieci” z powodu niezapisanych danych zostaną wyzerowane po ponownym uruchomieniu. XFS również używa tej formy kronikowania.
We wszystkich trzech trybach wewnętrzna struktura systemu plików jest spójna nawet po awarii. W każdym razie tylko zawartość danych plików lub katalogów, które były modyfikowane podczas awarii systemu, zostanie naruszona; reszta będzie nienaruszona po wyzdrowieniu.
Niedogodności
Funkcjonalność
Ponieważ ext3 ma być wstecznie kompatybilny z wcześniejszym ext2, wiele struktur na dysku jest podobnych do tych z ext2. W związku z tym ext3 nie posiada najnowszych funkcji, takich jak ekstenty , dynamiczna alokacja i- węzłów i podrzędna alokacja bloków . Katalog może mieć maksymalnie 31998 podkatalogów , ponieważ i-węzeł może mieć maksymalnie 32 000 łączy (każdy bezpośredni podkatalog zwiększa licznik łączy i-węzłów folderu nadrzędnego w odwołaniu „..”).
ext3, podobnie jak większość obecnych systemów plików Linuksa, nie powinien być -edowany fsck, gdy system plików jest montowany do zapisu. Próba sprawdzenia systemu plików, który jest już zamontowany w trybie odczytu/zapisu, (bardzo prawdopodobne) wykryje niespójności w metadanych systemu plików. Tam, gdzie metadane systemu plików ulegają zmianie, a fsck stosuje zmiany, próbując doprowadzić „niespójne” metadane do „spójnego” stanu, próba „naprawienia” niespójności spowoduje uszkodzenie systemu plików.
Defragmentacja
Nie ma narzędzia do defragmentacji ext3 online , które działałoby na poziomie systemu plików. Istnieje defragmentator ext2 w trybie offline, e2defrag
. Jednak e2defrag
może zniszczyć dane, w zależności od bitów funkcji włączonych w systemie plików; nie wie, jak obsłużyć wiele nowszych funkcji ext3.
Istnieją narzędzia do defragmentacji przestrzeni użytkownika, takie jak Shake i defrag. Shake działa, przydzielając miejsce dla całego pliku w ramach jednej operacji, co zwykle powoduje, że alokator znajdzie ciągłą przestrzeń dyskową. Jeśli istnieją pliki, które są używane w tym samym czasie, Shake spróbuje zapisać je obok siebie. Defrag działa poprzez kopiowanie każdego pliku nad sobą. Jednak ta strategia działa tylko wtedy, gdy system plików ma wystarczającą ilość wolnego miejsca. Prawdziwe narzędzie do defragmentacji nie istnieje dla ext3.
Jednak, jak stwierdza Przewodnik administratora systemu Linux: „Nowoczesne systemy plików Linux utrzymują fragmentację na minimalnym poziomie, utrzymując wszystkie bloki w pliku blisko siebie, nawet jeśli nie mogą być przechowywane w kolejnych sektorach. Niektóre systemy plików, takie jak ext3, efektywnie przydzielić wolny blok, który jest najbliższy innym blokom w pliku. Dlatego nie trzeba się martwić o fragmentację w systemie Linux."
Podczas gdy ext3 jest odporny na fragmentację plików, ext3 może z czasem ulec fragmentacji lub w przypadku określonych wzorców użytkowania, takich jak powolne pisanie dużych plików. W konsekwencji, ext4 (następca ext3) ma internetowy system plików do defragmentacji użytkową e4defrag i aktualnie obsługuje zakresów (regiony przyległe pliku).
Cofnij usunięcie
ext3 nie obsługuje odzyskiwania usuniętych plików. Sterownik ext3 aktywnie usuwa pliki, usuwając i-węzły plików ze względów bezpieczeństwa.
Wciąż istnieje kilka technik oraz darmowe i zastrzeżone oprogramowanie do odzyskiwania usuniętych lub utraconych plików przy użyciu analizy dziennika systemu plików; jednak nie gwarantują one żadnego konkretnego odzyskania plików.
Kompresja
e3compr to nieoficjalna łatka dla ext3, która wykonuje przezroczystą kompresję . Jest to bezpośredni port e2compr i nadal wymaga dalszego rozwoju. Dobrze się kompiluje i uruchamia z zewnętrznymi jądrami, ale księgowanie nie jest jeszcze zaimplementowane.
Brak obsługi migawek
W przeciwieństwie do wielu nowoczesnych systemów plików ext3 nie ma natywnej obsługi migawek , czyli możliwości szybkiego przechwytywania stanu systemu plików w dowolnym momencie. Zamiast tego opiera się na zajmujących mniej miejsca, migawkach na poziomie woluminów dostarczanych przez Linux LVM . System plików Next3 to zmodyfikowana wersja ext3, która oferuje obsługę migawek, ale zachowuje zgodność z formatem ext3 na dysku.
Brak sum kontrolnych w dzienniku
ext3 nie wykonuje sum kontrolnych podczas zapisywania do dziennika. Na urządzeniu pamięci masowej z dodatkową pamięcią podręczną, jeśli bariera=1 nie jest włączona jako opcja montowania (w /etc/fstab ) i jeśli sprzęt wykonuje buforowanie zapisu poza kolejnością, istnieje ryzyko poważnego uszkodzenia systemu plików podczas wypadek. Dzieje się tak, ponieważ urządzenia pamięci masowej z pamięciami podręcznymi zapisu zgłaszają systemowi, że dane zostały całkowicie zapisane, nawet jeśli zostały zapisane w (ulotnej) pamięci podręcznej.
Jeśli zapisy na dysku twardym są wykonywane poza kolejnością (ze względu na buforowanie zapisów w pamięci podręcznej nowoczesnych dysków twardych w celu amortyzacji prędkości zapisu), jest prawdopodobne, że zapisze się blok zatwierdzenia transakcji przed zapisaniem innych odpowiednich bloków. Jeśli awaria zasilania lub nieodwracalna awaria wystąpi przed zapisaniem innych bloków, system będzie musiał zostać ponownie uruchomiony. Po ponownym uruchomieniu system plików odtworzy dziennik w normalny sposób i odtworzy „zwycięzców” (transakcje z blokiem zatwierdzenia, w tym nieprawidłową transakcję powyżej, która została oznaczona prawidłowym blokiem zatwierdzenia). Powyższy zapis na niedokończony dysk będzie kontynuowany, ale z wykorzystaniem uszkodzonych danych dziennika. W ten sposób system plików omyłkowo nadpisze normalne dane uszkodzonymi danymi podczas odtwarzania dziennika. Gdyby użyto sum kontrolnych, w których bloki transakcji „fałszywego zwycięzcy” były oznaczone wzajemną sumą kontrolną, system plików mógłby wiedzieć lepiej i nie odtwarzać uszkodzonych danych na dysk. Suma kontrolna dziennika została dodana do ext4.
Systemy plików przechodzące przez interfejs mapowania urządzeń (w tym oprogramowanie RAID i implementacje LVM) mogą nie obsługiwać barier i będą wyświetlać ostrzeżenie, jeśli ta opcja montowania zostanie użyta. Istnieją również dyski, które nie implementują poprawnie rozszerzenia opróżniania pamięci podręcznej zapisu niezbędnego do działania barier, co powoduje podobne ostrzeżenie. W takich sytuacjach, w których bariery nie są obsługiwane lub praktyczne, niezawodna kolejność zapisu jest możliwa poprzez wyłączenie pamięci podręcznej zapisu dysku i użycie data=journal
opcji montowania. Wyłączenie pamięci podręcznej zapisu dysku może być wymagane, nawet jeśli dostępne są bariery.
Aplikacje takie jak bazy danych oczekują, że wywołanie fsync() spowoduje opróżnienie oczekujących zapisów na dysk, a implementacja bariery nie zawsze czyści pamięć podręczną zapisu dysku w odpowiedzi na to wywołanie. Istnieje również potencjalny problem z implementacją bariery związany z obsługą błędów podczas zdarzeń, takich jak awaria dysku. Wiadomo również, że czasami niektóre technologie wirtualizacji nie przekazują poprawnie poleceń fsync lub flush do urządzeń bazowych (plików, woluminów, dysków) z systemu operacyjnego gościa. Podobnie, niektóre dyski twarde lub kontrolery implementują opróżnianie pamięci podręcznej niepoprawnie lub wcale, ale nadal reklamują, że jest obsługiwane i nie zwracają żadnego błędu, gdy jest używane. Jest tak wiele sposobów nieprawidłowej obsługi fsync i zapisu pamięci podręcznej, że bezpieczniej jest założyć, że opróżnianie pamięci podręcznej nie działa, o ile nie jest jawnie testowane, niezależnie od tego, jak wiarygodne są poszczególne komponenty.
Wymieranie bliskie czasu z powodu ograniczenia datownika
Ext3 przechowuje daty jako czas uniksowy, używając czterech bajtów w nagłówku pliku. 32 bity nie zapewniają wystarczającego zakresu, aby kontynuować przetwarzanie plików po 18 stycznia 2038 r. – problem roku 2038 . Oczekuje się, że to „Millennium Geeka” spowoduje powszechne zakłócenia, jeśli nie zostanie rozwiązane w odpowiednim czasie.
wew4
28 czerwca 2006 Theodore Ts'o , główny twórca ext3, ogłosił ulepszoną wersję, nazwaną ext4. 11 października 2008 r. łatki oznaczające ext4 jako kod stabilny zostały włączone do repozytoriów kodu źródłowego Linuksa 2.6.28, oznaczając koniec fazy rozwoju i zalecając jego przyjęcie. W 2008 r. Ts'o stwierdził, że chociaż ext4 ma ulepszone funkcje, takie jak bycie znacznie szybszym niż ext3, nie jest to duży postęp, wykorzystuje starą technologię i jest tymczasowym rozwiązaniem; Ts'o uważa, że Btrfs jest lepszym kierunkiem, ponieważ „oferuje ulepszenia w zakresie skalowalności, niezawodności i łatwości zarządzania”. Btrfs ma również „wiele tych samych pomysłów projektowych, które miał reiser3 / 4 ”.
Zobacz też
- Lista systemów plików
- Porównanie systemów plików
- Rozszerzone atrybuty plików
- Ext2Fsd
- Next3 , zmodyfikowana wersja ext3 z migawkami
Bibliografia
Zewnętrzne linki
- "Linux ext3 FAQ" . od 2004-10-14.
- Przedstawiamy ext3 — podręcznik IBM developerWorks Advanced dla implementatorów systemów plików, część 7
- Paragon ExtBrowser Darmowy sterownik ext2/ext3 dla systemu Windows
- System plików Ext2 Dla Windows GPL sterownik systemu plików ext2/ext3 dla Windows 2000/XP/2003/VISTA/2008 (opensource, obsługuje odczyt i zapis, obsługuje i-węzeł maksymalnie 256 bajtów, aby uzyskać dostęp do większych dysków)
- Ext2 Installable File System Dla Windows sterownik systemu plików ext2/ext3 dla MS Windows NT4.0/2000/XP/Vista/7/8/8.1/Server 2003/2008/2008 R2/2012/2012 R2 (darmowy, zamknięty, obsługuje odczyt i zapis, obsługuje i-węzły o maksymalnej długości 256 bajtów, aby uzyskać dostęp do większych dysków)
- EXT2 IFS sterownik systemu plików ext2/ext3 (tylko do odczytu) dla MS Windows NT/2000/XP (opensource), najnowsza wersja w archiwum internetowym
- Explore2fs Narzędzie GUI podobne do eksploratora umożliwiające dostęp do systemów plików ext2/ext3 pod MS Windows
- "Ext2read" Aplikacja Windows do odczytu/kopiowania plików ext2/ext3/ext4 z rozszerzeniem i obsługą LVM2.
- UFS Explorer Standard Recovery wersja 4 Komercyjne oprogramowanie do odzyskiwania danych i przywracania plików dla systemów plików Ext2/Ext3.
- narzędzia do zmiany rozmiaru ext2/ext3
- Prezentacja na temat systemu plików dziennika EXT3 autorstwa dr Stephena Tweedie na sympozjum Linux w Ottawie, 20 lipca 2000 r.
- Stan techniki: Gdzie jesteśmy z systemem plików Ext3 autorstwa Mingming Cao, Theodore Y. Ts'o, Badari Pulavarty, Suparna Bhattacharya, IBM Linux Technology Center, 2005
- Samouczek – Określanie limitów rozmiaru EXT3
- fuse-ext2 Sterownik systemu plików ext2/ext3 o otwartym kodzie źródłowym dla FUSE . (Obsługuje Mac OS X 10.4 i nowsze ( Universal Binary ), używając MacFuse )
- Port Windows Ext2/Ext4 i inne FS w CROSSMETA
- Red Hat Enterprise Linux, [1] Rozdział 22. Bariery zapisu .
- Nadchodzi zegarpokalipsa Linuksa w 2038 roku i nie ma „poważnego planu”