NTFS
Wymagania Przechowywanie danych NTFS stosuje model transaction-processing dla przechowywania i dostępu do danych Wszystkie operacje zapisu są traktowane jako atomowe Operacje mają właściwości ACID: Atomicity, Consistency, Isolation, Durability
Wymagania - cd Bezpieczeństwo Oparte o model bezpieczeństwa Windows NT Każdy otwarty plik jest traktowany jako obiekt z deskryptorem bezpieczeństwa zapisanym na dysku jako część pliku Windows NT sprawdza, czy proces ma prawo dostępu do pliku przed jego otwarciem
Wymagania - cd Redundantność danych i odporność na awarię Odporność na awarię zapewnia warstwowy model sterowników (HAL) Windows NT NTFS komunikuje się ze sterownikiem dysku sztywnego bezpośrednio poprzez sterownik tolerancji awarii (fault tolerant). Implementuje on kopie lustrzaną (mirroring, RAID 0) oraz przeplot z kontrolą parzystości (striping with parity, RAID 5)
Wymagania - cd Duże dyski, duże pliki NTFS wykorzystuje adresy 64-bitowe do adresowania klastrów, co zapewnia rozróżnienie 264 klastrów o rozmiarze do 64 kB każdy Każdy plik może zawierać do 264 bajtów danych
Wymagania - cd Dodatkowo Wielostrumieniowość Nazwy plików wykorzystujące symbole unikodu Spójna indeksacja atrybutów plików Dynamiczna realokacja danych z klastrów uszkodzonych (bad-cluster remapping, hot fix)
Budowa wewnętrzna NTFS (jak i inne systemy plików) składają się ze sterowników urządzeń (procedur obsługi) pracujących w trybie jądra
Budowa wewnętrzna-schemat
Sterownik NTFS Współpracuje z trzema innymi komponentami Windows NT Log file service – obsługuje dziennik zapisów na dysku Cache manager – obsługuje pamięć podręczną dla całego systemu plików Virtual memory manager – wykorzystywany przez sterownik dysku np.. wtedy, gdy dane dane z pliku nie znajdują się w pamięci podręcznej
NTFS i komponenty
Plik w NTFS Wykorzystując model obiektów Windows NT NTFS traktuje każdy plik jako obiekt Pozwala to zarządzać plikiem wykorzystując zarządcę obiektów (object manager)
Struktura NTFS
Struktura dyskowa Wolumen – logiczna partycja dysku, utworzona podczas formatowania dysku lub część dysku przeznaczona dla NTFS Dysk może zawierać jeden lub więcej wolumenów, wolumen może rozciągać się na wiele dysków Wolumen zawiera wszystkie dane systemu plików (pliki, katalogi, ...)
Struktura dyskowa-przykład
Klaster Podstawowa jednostka przechowująca dane alokowana przez system plików Rozmiar 0.5-4.0 kB Rozmiar klastra jest całkowitą wielokrotnością (zawsze potęga liczby 2) rozmiaru sektora
Klaster i sektor
Numeracja klastrów NTFS wykorzystuje logiczny numer klastra (LCN) oraz wirtualny numer klastra (VCN) LCN numeruje klastry wolumenu od jego początku do końca (0...m) VCN numeruje klastry przechowujące informacje danego pliku
Nadrzędna tablica plików Master file table(MFT) NTFS wszystkie dane, włącznie z metadanymi, przechowuje w plikach MFT jest zaimplementowana jako tablica rekordów. Każdy rekord opisuje dokładnie jeden plik z tablicą MFT włącznie Metaplik zawiera informacje wykorzystywane do implementacji struktury systemu plików
MFT NTFS znajduje fizyczny adres rekordu tablicy MFT z pliku rozruchowego podczas montowania wolumenu Z MFT odczytywane są rekordy opisujące metapliki
Plik metadanych NTFS MFT Kopia MFT Plik dziennika (odtwarzanie danych) Katalog główny Plik bitmapy (stan alokacji wolumenu) Plik rozruchowy (kod bootstrap) Plik klastrów uszkodzonych Plik wolumenu (nazwa wolumenu, wersja NTFS) Tablica definicji atrybutów
Odwołania do plików NTFS adresuje pliki odwołaniem o długości 64 bitów Odwołanie składa się z liczby sekwencji (16 bitów) i numeru pliku Numer pliku określa pozycję rekordu opisującego plik w MFT
Rekord MFT W NTFS plik jest parą atrybuty/wartość Plik atrybutów jest przechowywany jako oddzielny strumień bajtów wewnątrz właściwego pliku NTFS zapewnia podstawowe operacje dla strumienia atrybutów (tworzenie, usuwanie, zapis, odczyt)
Rekord MFT - cd
Atrybuty rezydentne i nierezydentne Wartości atrybutów rezydentnych przechowywane są w rekordzie MFT Wartości atrybutów nierezydentnych przechowywane są we wpisach poza tablicą MFT
Atrybuty nierezydentne Wpis – część obszaru przestrzeni dysku (2 lub 4kB) zarezerwowane przez NTFS do przechowywania atrybutów, których wartości są za duże do przechowywania w rekordzie MFT Tylko atrybuty o rosnącym rozmiarze mogą być nierezydentne (deskryptor bezpieczeństwa, lista atrybutów, ...)
Nagłówek atrybutu Każdy atrybut rozpoczyna nagłówek zawierający informacje o nim Nagłówek jest jednakowy dla obu typów atrybutów Nagłówek jest rezydentny Dla atrybutów rezydentnych nagłówek przechowuje odległość od nagłówka do wartości atrybutu oraz długość wartości atrybutu Nagłówek atrybutu nierezydentnego zawiera informacje o pozycji odpowiedniego wpisu na dysku
Nagłówek atrybutu rezydentnego
Nagłówek atrybutu nierezydentnego
Indeksowanie nazw plików NTFS wykorzystuje indeksowanie nazw schematem B-drzewa Atrybuty plików w katalogu indeksowane są schematem B-drzewa w celu zmniejszenia liczby dostępów W dużych katalogach nazwy plików są przechowywane w buforach o stałej długości (4 kB)
Atrybuty katalogów Atrybut indeksu głównego – zawiera pierwszy poziom B-drzewa oraz indeks do bufora zawierającego kolejny poziom Atrybut indeksu alokacji – zawiera mapowanie VCN-LCN dla indeksu buforów Atrybut bitmapy – przechowuje informacje o numerze wirtualnym klastra wolnego i zajętego w indeksie buforów
Atrybuty katalogu głównego
Kompresja danych NTFS umożliwia kompresję danych na poziomie Pliku Katalogu Wolumenu
„Kompresja” plików rzadkich Pliki rzadkie zawierają proporcjonalnie do ich rozmiaru niewielką ilość bajtów niezerowych (macierze rzadkie) Kompresja polega na alokowaniu przestrzeni adresowej dysku tylko dla obszarów zawierających bajty niezerowe NTFS przegląda rekordy MFT w poszukiwaniu ciągłych obszarów przestrzeni adresowej dla zapisania niezerowych danych
Obszary pliku rzadkiego
Rekord MFT pliku rzadkiego
Kompresja plików zwykłych Wykonywana algorytmicznie NTFS dzieli plik na jednostki kompresji o rozmiarze równym pojemności 16 klastrów i kompresuje je NTFS alokuje dla każdej jednostki kompresji odpowiednią liczbę klastrów (nie więcej niż 16) i zapisuje do nich skompresowane dane Rozmiar jednostki kompresji stanowi kompromis pomiędzy efektywnością kompresji i prędkością operacji dostępu do danych skompresowanego pliku
Obszary pliku zwykłego
Rekord MFT pliku zwykłego
Odzyskiwanie i spójność danych Spójność danych powinna zostać zachowana bez konieczności użycia dodatkowych programów narzędziowych Wykorzystuje metodę dziennikowania opartą na śledzeniu operacji Działanie procedur odzyskiwania ograniczono do plików systemowych
Dziennikowanie (log file services LFS) Ciąg procedur pracujących w trybie jądra wywoływanych przez sterownik NTFS podczas dostępu do danych NTFS nie zapisuje do- ani nie odczytuje z dziennika bezpośrednio lecz wykorzystuje w tym celu zarządcę pamięci podręcznej (Cache Manager)
LFS
Struktura pliku dziennika Obszar restartu – zawiera informacje o kontekście (stan zaawansowania operacji) Obszar dziennika – zawiera opis operacji
Operacje dziennika Otwarcie pliku dziennika Zapis rekordów operacji do dziennika Odczyt rekordów w dowolnej kolejności (wprost, wspak) z pliku dziennika Usunięcie rekordów z pliku dziennika Ustawienie początku pliku dziennika dla operacji o wyższym numerze sekwencji (Log Sequence Number LSN)
Rekordy dziennika Rekordy poprawy Rekordy testowe Rekordy identyfikowane są poprzez numer sekwencji (Log Sequence Number LSN)
Rekordy poprawy Zawierają dwa typy informacji Ponów – umożliwia ponowne wykonanie fragmentu rozpoczętej operacji Cofnij – umożliwia powrót do stanu sprzed rozpoczęcia wykonywania fragmentu operacji
Rekordy cofnij/ponów
Rekordy testowe Cyklicznie zapisywane do pliku dziennika przez NTFS Usuwanie zawartości pliku dziennika: Zarządca pamięci podręcznej zapisuje wszystkie nie zapisane dane i plik dziennika na dysk NTFS ustawi zapis dla bieżącej operacji na początek pliku Rekordy testowe służą określaniu odległości powrotu dla operacji odzyskiwania danych
Rekord testowy
Odzyskiwanie Przeprowadzane w oparciu o dwie tablice przechowywane w pamięci operacyjnej Tablicę operacji przechowującą informacje o niedokończonych operacjach w postaci numeru LSN ostatnio zapisanego rekordu ostatniej operacji
Odzyskiwanie - cd Tablicy niekompletnych stron przechowującej informację o numerach stron pamięci zmodyfikowanych w pamięci podręcznej, a nie zapisanych na dysku w postaci numerów LSN rekordów nie zapisanych do pliku Tuż przed zapisaniem rekordu testowego LFS zapisuje kopię obu tablic do pliku dziennika jako rekord i zapisuje jego numer LSN do rekordu testowego
Fazy odzyskiwania Analiza Ponów Cofnij
Faza analizy Znalezienie w pliku dziennika rekordu od którego rozpocznie się proces odzyskiwania Na początku procesu, LFS znajduje w pliku dziennika ostatni rekord kontrolny oraz ostatnią kopię tablicy operacji i tablicy niekompletnych stron. NTFS poszukuje pierwszego po kontrolnym rekordu poprawy dla weryfikacji zawartości obu tablic NTFS na podstawie zawartości tablic określa LSN najstarszego rekordu poprawy, którego operacje nie zostały wykonane i kończy operacje
Faza analizy - cd
Faza ponów Dla uaktualnienia zawartości pamięci podręcznej o dane zapisane na dysku przed awarią NTFS przeszukuje plik dziennika od rekordu znalezionego w fazie analizy w kierunku końca pliku Poszukiwanie kończy się znalezieniem pierwszego rekordu „uaktualnienia strony” (page update, volume modification) Na podstawie informacji w nim zawartych uaktualniana jest informacja w pamięci podręcznej buforów
Faza ponów – cd
Faza cofnij Wykonywana dla wycofania operacji, które zostały przerwane, a dane utracone Znalezienie w tablicy operacji LSN rekordu ostatniej dziennikowanej, a nie zakończonej operacji Wykonanie operacji cofnięcia (usunięcia) rekordów operacji występujących w pliku dziennika po znalezionym rekordzie Synchronizacja zawartości pamięci podręcznej i danych przechowywanych na dysku
Faza cofnij - cd
Odporność na awarię Zapewnia FtDisk (fault tolerant disk driver) pracujący pomiędzy sterownikiem systemy plików i sterownikiem dysku Umożliwia Zarządzanie wolumenami (odpowiednik LVM) Redundantność przechowywanych danych Dynamiczne odzyskiwanie danych z uszkodzonych sektorów dysków SCSI
Zbiór wolumenów Pojedynczy wolumen logiczny może składać się z max. 32 obszarów wolnej przestrzeni adresowej jednego lub kilku dysków Wykorzystywany do tworzenia wolumenu o dużej pojemności z wielu drobnych obszarów FtDisk zakrywa przed systemem plików fizyczną konfigurację dysków NTFS umożliwia bezproblemowe zwiększanie rozmiaru wolumenu
Zbiór wolumenów - przykład
Przeplot (paskowanie) Ciąg partycji (po jednej na dysku) tworzących jeden wolumen FtDisk dystrybuuje dane pomiędzy fizyczne dyski Wykorzystuje kolejne fizyczne sektory kolejnych pasków Dane na różnych dyskach są zapisywane jednocześnie W obciążonych systemach powoduje skrócenie czasu opóźnienia operacji I/O
Przeplot - przykład
Kopia lustrzana (RAID 1) Duplikuje dane z partycji jednego dysku do partycji o identycznym rozmiarze drugiego dysku W przypadku utraty danych z partycji podstawowej FtDisk automatycznie sięga do kopii
Równoważenie obciążenia dla operacji odczytu Dla operacji odczytu FtDisk stara się równomiernie obciążać obie partycje co zwiększa przepustowość systemu
Paskowanie z sumą kontrolną na jednym dysku (RAID 4) Jak w przypadku paskowania ale z dodatkowym dyskiem do przechowywania sumy kontrolnej (najczęściej różnica symetryczna XOR) danych z odpowiednich klastrów Sekwencyjny zapis sumy kontrolnej poważnie zmniejsza wydajność systemu
Paskowanie z sumą kontrolną na wielu dyskach (RAID 5) Jak RAID 4 ale suma kontrolna zapisywana jest na wszystkich dyskach
Zarządzanie sektorami Odzyskiwanie danych z sektorów wykazujących objawy uszkodzenia Wykorzystuje niektóre możliwości dysków do tworzenia zbiorów klastrów uszkodzonych (dyski SCSI) FtDisk po otrzymaniu informacji od dysku o uszkodzeniu sektora kopiuje z niego dane, a sektor dołącza do listy sektorów uszkodzonych W tym zakresie FtDisk działa autonomicznie bez interwencji sterownika systemu plików
Aktualizacja mapowania klastrów uszkodzonych Wykonywana gdy FtDisk nie jest w stanie odzyskać danych z klastra i wykonać jego kopii lub gdy FtDisk nie jest zainstalowany NTFS automatycznie alokuje nowy klaster i kopiuje dane z zawierającego uszkodzony sektor NTFS odzyskuje dane z pomocą FtDisk lub wolumenu nadmiarowego
Uszkodzony klaster
Aktualizacja mapowania
Atrybuty podstawowe - dysk
Atrybuty podstawowe - plik
Typy dostępu (plik, katalog) Brak dostępu – domyślnie przypisywany każdej grupie. Użytkownicy nim objęci nie mogą nawet zobaczyć nazwy pliku lub katalogu. Lista – pozwala zobaczyć nazwę katalogu i plików oraz uczynić katalog bieżącym.
Typy dostępu (plik, katalog) Odczyt – dla katalogów zawierających pliki wykonywalne. Dla katalogu jak typ lista. Pozwala uruchamiać pliki i je przeglądać ale nie modyfikować. Dodanie – pozwala dodać plik do katalogu, ale nie umożliwia jego modyfikacji.
Typy dostępu (plik, katalog) Dodanie i odczyt – użytkownik może dodać plik do katalogu, wykonać plik lub przeczytać jego zawartość. Zmiana – poziom przypisywany domyślnie każdemu użytkownikowi. Umożliwia operacje wynikające z poziomu Dodanie i odczyt oraz modyfikowanie i usuwanie plików z katalogu.
Typy dostępu (plik, katalog) Pełna kontrola – administratorzy i użytkownicy zaawansowani uzyskują pełną kontrolę nad plikami i katalogami lokalnego dysku. Uprawnienia jak zmiana oraz usunięcie całego katalogu, nadawanie dla niego uprawnień i przejęcie katalogu na własność.
Typy dostępu (plik, katalog) Specjalny dostęp do katalogów – umożliwia zdefiniowanie nietypowego zestawu uprawnień i przyznanie ich użytkownikom do danego katalogu. Specjalny dostęp do plików – umożliwia zdefiniowanie nietypowego zestawu uprawnień i przyznanie ich użytkownikom do danego pliku.
Szczegółowe prawa dostępu Odczyt (R) – użytkownik może odczytać zawartość pliku lub katalogu, bez możliwości modyfikacji. Zapis (W) – użytkownik może modyfikować zawartość pliku lub katalogu, ale nie może jej odczytać. Umożliwia tworzenie plików i katalogów.
Szczegółowe prawa dostępu Wykonanie (X) – użytkownik może wykonywać pliki (jeśli są wykonywalne). Jest również niezbędna dla otwarcia katalogu w celu przejrzenia jego zawartości. Usunięcie (D) – użytkownik może usunąć plik lub katalog.
Szczegółowe prawa dostępu Zmiana uprawnień (P) – prawo nadawane zazwyczaj administratorowi; umożliwia zmianę uprawnień innych użytkowników do pliku lub katalogu. Przejęcie na własność (O) – użytkownik może przejąć katalog na własność.
Wpis uprawnienia
Właściwości
Kontrola dostępu
Właściciel
Atrybuty zaawansowane
Wpis inspekcji
Podmiot inspekcji