1 / 76

Nowoczesne systemy plików

Nowoczesne systemy plików. PORÓWNANIE. Wymagania stawiane systemom plików. Bezpieczeństwo danych Szybkość działania Możliwość rozszerzania o dodatkowe funkcje. Wstęp. W trakcie prezentacji skupimy się na porównaniu dwóch najpopularniejszych obecnie systemów plików: ext3 NTFS

hertz
Download Presentation

Nowoczesne systemy plików

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Nowoczesne systemy plików PORÓWNANIE

  2. Wymagania stawiane systemom plików • Bezpieczeństwo danych • Szybkość działania • Możliwość rozszerzania o dodatkowe funkcje

  3. Wstęp W trakcie prezentacji skupimy się na porównaniu dwóch najpopularniejszych obecnie systemów plików: • ext3 • NTFS Na wstępie omówimy ich historię.

  4. Historia Ext3 • System plików w systemie operacyjnym Minix i jego niedoskonałości (max rozmiar woluminu 64 MB) • VFS (Virtual File System) • System plików ext (04.1992) likwiduje wady Miniksa, ale też ma wady (fragmentacja) • XiaFS - minimalistyczny następca ext • ext2 – maksymalistyczny następca ext • Zwycięstwo funkcjonalnego ext2 • ext3 (11.2001) – dziennikowy następca ext2

  5. Historia NTFS • Systemy plików FAT (File Allocation Table) • FAT 12 (dyskietki) • FAT 16 (MS-DOS, Windows przed 95 OSR2) • FAT 32 (Windows 95 OSR2, Windows 98, Windows ME) • Budowa tablicy alokacji plików bardzo prosta • NTFS w 1995 (Windows 2000, Windows XP, Windows 2003 Server) • NTFS – znacznie polepszony system plików, MFT (Master File Table) zamiast FAT

  6. Ograniczenia

  7. Klastry w NTFS

  8. Fizyczna Struktura NTFS • Wolumin stawnowi (mniej więcej) całość. • Metapliki gdziekolwiek na woluminie • MFT zajmuje początek dysku

  9. Fizyczna Struktura ext3 • Dysk podzielony na grupy • Metadane na początku każdego bloku

  10. NTFS • Wszystko jest plikiem – MFT, Boot, itd. • MasterFileTable jest relacyjną bazą danych, w której wierszami są pliki, a kolumnami atrybuty. • Wszystko w pliku jest atrybutem – łącznie z zawartością. • Atrybuty to strumienie danych (ciągi bajtów). • WSZYSTKIE pliki mają swoje rekordy w MFT – tak MFT też ma rekord w MFT.

  11. Master File Table MFT musi gdzieś przechowywać wszystkie informacje o systemie plików. Jak wszystko inne, są one w plikach. Te pliki zajmują pierwsze 16 rekordów MFT (ostatnie 4 z nich są wolne, ale zarezerwowane na przyszłość) i około 16KB.

  12. 0. Master File Table Master File Table Mirror LogFile (dziennik) Volume (informacje o woluminie) Attribute definitions (lista wszystkich dopuszczalnych atrybutów plików) Root file name index (katalog główny) Cluster bitmap (bitmapa zajętości klastrów) Boot sector (zawiera BIOS parameter block czyli sprzętowe informacje o woluminie i ew. kod startujący system operacyjny) Bad cluster file (plik zawierający wszystkie uszkodzone klastry – jeśli są zajęte przez jakiś plik to nikt inny nie będzie ich używał) Security file Upcase table (tablica do tłumaczenia znaków na ich wielkie odpowiedniki) NTFS extension file 12-15 są wolne Metapliki w NTFS

  13. Atrybuty plików w NTFS • Standard_Information • Zawiera standardowe informacje takie jak czas stworzenia, ostatniej modyfikacji, ostatniego dostępu, prawa dostępu itd. • (Stemple czasowe na dysku są uaktualniane co godzinę – aktualne informacje zawsze są dostępne w pamięci i są zrzucane na dysk tylko wtedy jeśli zamkniemy wszystkie deskryptory pliku, albo czas ostatniego dostępu w pamięci jest o godzinę późniejszy niż zapisany na dysku) • Attribute_List • Czasami zdarza się, że wszystkie rezydentne atrybuty pliku nie mieszczą się w jednym rekordzie MTF. W takim wypadku plikowi przydzielane są dodaktowe rekordy, a attribute_list jest listą wskaźników do nich. • Rzadko widywane, gdyż większość danych może być przechowywana poza MFT. Przykładem kiedy jest to potrzebne jest plik z dużą liczbą twardych dowiązań – kiedy wszystkie nazwy się nie mieszczą.

  14. Atrybuty plików w NTFS c.d. • File_Name • Zawiera dwie nazwy – długą (do 255 znaków) i krótką (do 8 znaków), oraz wielkość pliku. • Długa nazwa składa się z wielkich liter, krótka już niekoniecznie • Wielkość pliku jest wielkością podstawowego (nienazwanego) strumienia danych • Object_ID • Zawiera unikalne numery pliku: obecny, urodzenia i wolumin na której powstał plik. • Security_Descriptor • Tutaj są przechowywane uprawnienia dostępu do pliku dla własciciela, grupy i reszy świata. Mówi też które akcje mają być logowane.

  15. Atrybuty plików w NTFS c.d. • Volume_Name i Volume_Information • Tylko pliki $volume posiadają te atrybuty – pierwszy zawiera nazwę, adrugi m.in. bit „Dirty”, mówiący czy przy ponownym uruchomieniu należy wykonać chkdsk /f (spróbować naprawić dysk) • Data • Atrybut będący zawartością pliku. Każdy plik musi mieć jeden nienazwany atrybut data będący jego standardową zawartością. Może też zawierać dowolnie dużo nazwanych atrybutów – każdy może mieć zupełnie inną zawartość. • Jako, że wielkością pliku jest wielkość jego nienazwanej zawartości może istnieć plik, którego wielkość system plików podaje jako 0, a na dysku zajmuje dowolnie dużo miejsca.

  16. Atrybuty plików w NTFS c.d. • Index_Root, Index_Allocation, Bitmap • Te atrybuty służą do implementacji B+-drzew. Bitmapa jest mapą zajętości dostępnych indeksów. • Reparse_Point • Robi to co sugeruje nazwa – parsuje odwołanie od nowa, korzystając z danych zapisanych w tym atrybucie. Służy do tworzenia dowiązań symbolicznych, czy montowania zewnętrznych plików/katalogów/dysków. • Reparse_Point wyklucza się z Extentended Attributes – plik może mieć albo jedno, albo drugie

  17. Atrybuty plików w NTFS c.d. • EA i EA_Information (Extended Attribute) • Służą do przechowywania dodatkowych atrybutów z HPFS (High Performance File System) – używane np. w OS/2 • Logged_Utility_Stream • Absolutnie cokolwiek co autor uzna za stosowne. Ma ograniczenie wielkości do 64kB. Wszystkie operacje na nim są zapisywane w dzienniku.

  18. ext3 Pierwsze kilka bloków (co najmniej 5) w każdej grupie zarezerwowane na metadane. Bardzo duża redundancja danych (kopie w każdej grupie). Stała wielkość tablicy i-nodów. I-węzeł wielkości ok. 128B Bloki wielkości od 1 do 4KB Stała ilość miejsca przeznaczona na metadane Metadane w NTFS i ext3 NTFS • Około 16KB zarezerwowanych na metapliki. • Bardzo mała redundancja danych – 4 rekordy z MFT w środku dysku. • MFT zmiennej wielkości. • Wpis w MFT od 1 do 4 KB • Klastry małe (512B – 4KB) • Wielkość metadanych zależy od wykorzystania dysku.

  19. Wzbogacanie systemu plików • ACL (Access Control Lists) • Możliwość przydzielania uprawnień poszczególnym użytkownikom / grupom użytkowników • Sumy kontrolne plików • Lepsza kontrola uszkodzeń plików Możliwość stwierdzenia nieuprawnionego dostępu • Spowolnienie działania operacji plikowych.

  20. Atrybuty • Rezydentne – zawarte w 1-kilobajtowym wpisie w MFT, np. Standard Information czy Filename • Nierezydentne – przechowywane na dysku, nie mieszczą się we wpisie do MFT, alokowane w ekstentach (np. czasami Data czy Index root) • Typ atrybutu umieszczony w jego nagłówku:

  21. Atrybut Data (nierezydentny)

  22. Atrybuty indeksowe (nierezydentne) • Atrybuty: Index root, Index allocation, Bitmap • Ekstenty w tym przypadku nazywamy buforami indeksowymi

  23. Numery klastrów • LCN (Logical Cluster Numbers) – numery fizycznych klastrów dyskowych • VCN (Virtual Cluster Numbers) – numery przypisywane kolejnym klastrom, przyporządkowywanym danemu plikowi lub katalogowi

  24. Nagłówek atrybutu nierezydentnego • W ramach nagłówka atrybutu nierezydentnego są pamiętane kolejne ekstenty, a dla każdego numer wirtualny i logiczny pierwszego klastra i liczba klastrów w ekstencie:

  25. Optymalizacje dostępu do zawartości katalogu - NTFS • Katalog jako B+-drzewo plików i podkatalogów (nazwy, wielkości, stemple czasowe i położenia w MFT) • Index root to posortowana lista albo B+-drzewo, węzły w buforach indeksowych • Index allocation to mapowanie między numerami VCN a LCN buforów indeksowych • Bitmap to mapa zajętości buforów indeksowych po ich VCN-ach • B+-drzewo szybciej rośnie na szerokość niż na wysokość

  26. Optymalizacje dostępu do zawartości katalogu – ext3 • Długo tylko proste listy łączone (do ext2): • dobre dzięki strukturom dcache • złe dla cache przeglądarek i niektórych systemów pocztowych • Rozważania na temat użycia B-drzew: • trudna i długa implementacja • mała odporność na zniszczenie węzłów wewnętrznych • Decyzja: H-drzewa (Hash Trees)

  27. H-drzewa w ext3 • W wersjach rozwojowych ext2, na dobre w ext3 • 32-bitowe hasze jako klucze • Węzły wewnętrzne (bloki indeksowe) zajmują tylko 8 bajtów • Stała głębokość (1 lub 2) • Wsteczna kompatybilność (+odporność na zniszczenia): • bloki-liście identyczne z blokami starego typu • bloki indeksowe widziane jako usunięte wpisy katalogowe • Dla dużych katalogów nawet 50-100 razy szybsze!

  28. Kompresja plików ext3: • Teoretycznie możliwa (pole i_flags w i-węźle) • Dostępna w łatach zawartych w pakiecie e2compr (1997) w Ext2 • Brak wsparcia dla kompresji w ext3 (nawet dla tych łatek) NTFS: • Kompresja rzadkich danych • Kompresja gęstych danych • Rzadkie pliki

  29. Rzadkie dane cz. 1 • Rzadkie dane – znaczną część stanowią zera (np. rzadka macierz) • NTFS w ogóle nie pamięta zawartości zerowych ekstentów:

  30. Rzadkie dane cz. 2 • W MFT nieistniejące ekstenty nie są w ogóle zapisane (o ich istnieniu świadczy tylko nieciągłość w numerach VCN istniejących ekstentów)

  31. Gęste dane cz. 1 • Plik dzielony na jednostki kompresyjne (16 klastrów) • Kompresujemy tylko te jednostki, które wskutek tego zmniejszają się co najmniej o 1 klaster:

  32. Gęste dane cz. 2 • NTFS wie, które jednostki są skompresowane (zna liczności) • Optymalizacje: • Kompresja i zapis na dysk zmienionych danych wykonywane są leniwie • Odczyt z wyprzedzeniem dzięki próbom alokacji kolejnych fizycznie ekstentów • 16 wybrana jako „trade-off” między pamięcią a czasem działania

  33. Rzadkie pliki • Podobne do skompresowanych metodą kompresji rzadkich danych • Proces wskazuje, które fragmenty pliku uznaje za puste • Przydatne w aplikacjach typu klient-serwer z buforem (unikamy nieskończonego wzrostu bufora)

  34. Distributed Link Tracking • W systemie NTFS, tworząc twardy link do pliku zapamiętujemy Object_Identifier pliku docelowego. Ten identyfikator jest unikalny dla systemu i nie zmienia się przez cały czas życia pliku. Dzięki temu po zmianie nazwy, przeniesieniu pliku docelowego w inne miejsce itp. link cały czas jest poprawny.

  35. Linki • Ogólnie są 2 typy: • Twarde (hardlinks) • Trzymane są wskaźniki do tego samego pliku. • Plik jest usuwany gdy wszystkie wskaźniki znikną • Windows nie obsługuje hardlinka dla katalogów. • Miękkie (junctions) • Trzymana jest ścieżka do pliku • Gdy plik zostaje skasowany ścieżki są błędne • Windows obsługuje miękkie linki tylko do systemu lokalnego

  36. Quota – kontyngenty dyskowe • Umożliwiają kontrolę miejsca zajmowanego przez użytkownika • Liczą całe pliki (czyli pliki rzadkie mają pełną wielkość) • Można kontrolować poszczególnych użytkowników na różnych woluminach

  37. Quota – kontyngenty dyskowe • Dwie tabele umożliwiające szybkie sprawdzanie czy użytkownik nie przekracza limitów • W pierwszej tabeli można szybko znaleźć do kogo należy dany SID • A w drugiej, ile ta osoba ma jeszcze miejsca wolnego

  38. Sposoby zapisu danych na dysk • ostrożne – system stara się wykonywać operacje w kolejności gwarantującej maksymalną spójność • leniwe – system wykonuje operacje w kolejności optymalizującej ruchy głowicy dysku

  39. Przyczyny powstawania błędów • fizyczne • wynikające z konstrukcji dysku, bad blocks • wynikające z działania czynników zewnętrznych • logiczne • wynikające z błędnego działania systemu • wynikające z błędów w implementacji systemu plików • wynikające z przerwania operacji na systemie plików

  40. Rodzaje błędów logicznych • skrzyżowane pliki • zagubione klastry (bloki) • nieprawidłowe wartości liczników odwołań • pliki do których nie ma dostępu • błędne rozmiary plików • wszelkie inne niespójności metadanych

  41. Atomowość operacji • z czego składają się operacje • po co nam atomowość operacji • właściwe operacje na przykładzie usuwania pliku w systemie UNIX: • usunięcie wpisu odnośnie pliku w katalogu • ustawienie i-węzła pliku jako wolnego w bitmapie. • co złego może się wydarzyć

  42. Kronika • Czym jest kronika? • Po co nam kronika? • Zalety • większe bezpieczeństwo • krótszy czas przeładowania systemu • często zaawansowane algorytmy i struktury danych używane do obsługi plików • Wady • niektóre operacje mogą zajmować więcej czasu • większe skomplikowanie systemu plików

  43. Rodzaje kronikowania • rejestrowanie odtwarzające (redo logging) • rejestrowanie odwołujące (undo logging)

  44. Tryby kronikowania • kronikowanie metadanych (write-back) • kronikowanie wszelkich operacji (także danych) (journalling) • zapisywanie do dziennika pełnych bloków (klastrów) • zapisywanie tylko zmian w danych • tryb „uporządkowany” (ordered)

  45. Typy kronikowania obsługiwane przez systemy plików

  46. Czas odtwarzania dzienników przez systemy plików • Podczas montowania systemu plików • Podczas sprawdzania spójności systemu plików

  47. Położenie dzienników • jako jeden z plików w systemie (ext3, NTFS, • w specjalnym wydzielonym obszarze (XFS) • w dowolnym miejscu systemu plików (Reiser4)

  48. ext3 • ext3 = ext2 + JBD

  49. Co jeśli dziennik zawiedzie • kontrola spójności systemu • nic

  50. Problemy związane z kroniką • Istnieją operacje które mogą sprawić problem systemom z kroniką, np.: • usuwanie pliku otwartego przez pewien proces • przeplot operacji usuwania pliku i tworzenia nowego • Specjalne wymagania odnośnie poleceń ponawiania i wycofywania

More Related