NTFS - PLD Linux Distribution
Download
Report
Transcript NTFS - PLD Linux Distribution
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
1.
2.
3.
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
1.
2.
3.
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
1.
2.
3.
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