NTFS
description
Transcript of NTFS
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 odzyskiwania1. Na początku procesu, LFS znajduje w pliku dziennika
ostatni rekord kontrolny oraz ostatnią kopię tablicy operacji i tablicy niekompletnych stron.
2. NTFS poszukuje pierwszego po kontrolnym rekordu poprawy dla weryfikacji zawartości obu tablic
3. 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ą
1. NTFS przeszukuje plik dziennika od rekordu znalezionego w fazie analizy w kierunku końca pliku
2. Poszukiwanie kończy się znalezieniem pierwszego rekordu „uaktualnienia strony” (page update, volume modification)
3. 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 utracone1. Znalezienie w tablicy operacji LSN rekordu
ostatniej dziennikowanej, a nie zakończonej operacji
2. Wykonanie operacji cofnięcia (usunięcia) rekordów operacji występujących w pliku dziennika po znalezionym rekordzie
3. 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