Upload
hertz
View
59
Download
0
Embed Size (px)
DESCRIPTION
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 - PowerPoint PPT Presentation
Citation preview
Nowoczesne systemy Nowoczesne systemy plikówplików
PORÓWNANIEPORÓWNANIE
Wymagania stawiane Wymagania stawiane systemom plikówsystemom plików
Bezpieczeństwo danychBezpieczeństwo danych Szybkość działaniaSzybkość działania Możliwość rozszerzania o Możliwość rozszerzania o
dodatkowe funkcjedodatkowe funkcje
WstępWstęp
W trakcie prezentacji skupimy się na W trakcie prezentacji skupimy się na porównaniu dwóch najpopularniejszych porównaniu dwóch najpopularniejszych obecnie systemów plików:obecnie systemów plików:
►ext3ext3►NTFSNTFS
Na wstępie omówimy ich historię.Na wstępie omówimy ich historię.
Historia Ext3Historia Ext3
► System plików w systemie operacyjnym System plików w systemie operacyjnym MinixMinix i i jego niedoskonałości (max rozmiar woluminu 64 jego niedoskonałości (max rozmiar woluminu 64 MB)MB)
► VFS (Virtual File System)VFS (Virtual File System)► System plików System plików extext (04.1992) likwiduje wady (04.1992) likwiduje wady
Miniksa, ale też ma wady (fragmentacja)Miniksa, ale też ma wady (fragmentacja)► XiaFSXiaFS - minimalistyczny następca ext - minimalistyczny następca ext► ext2ext2 – maksymalistyczny następca ext – maksymalistyczny następca ext► Zwycięstwo funkcjonalnego ext2Zwycięstwo funkcjonalnego ext2► ext3 (11.2001)ext3 (11.2001) – dziennikowy następca ext2 – dziennikowy następca ext2
Historia NTFSHistoria NTFS
► Systemy plików Systemy plików FAT (File Allocation Table)FAT (File Allocation Table)► FAT 12FAT 12 (dyskietki) (dyskietki)► FAT 16FAT 16 (MS-DOS, Windows przed 95 OSR2) (MS-DOS, Windows przed 95 OSR2)► FAT 32FAT 32 (Windows 95 OSR2, Windows 98, Windows (Windows 95 OSR2, Windows 98, Windows
ME)ME)► Budowa tablicy alokacji plików bardzo prostaBudowa tablicy alokacji plików bardzo prosta► NTFS w 1995NTFS w 1995 (Windows 2000, Windows XP, (Windows 2000, Windows XP,
Windows 2003 Server) Windows 2003 Server) ► NTFS – NTFS – znacznie znacznie polepszony system plików, polepszony system plików, MFT MFT
(Master File Table)(Master File Table) zamiast FAT zamiast FAT
OgraniczeniaOgraniczeniaSystem System plikówplików
NTFSNTFS ext3ext3
Nazwa plikuNazwa pliku 255 znaków255 znaków 255 znaków255 znaków
Znaki w Znaki w nazwie plikunazwie pliku
UnicodeUnicode UnicodeUnicode
Wielkość Wielkość plikupliku
16 EB16 EB 16 GB do 2 TB 16 GB do 2 TB
Wielkość Wielkość woluminuwoluminu
16 EB (256 16 EB (256 TB)TB)
2 TB do 32 TB2 TB do 32 TB
Liczba Liczba plikówplików
223232-1 -1 Zależy od Zależy od liczby i-liczby i-węzłówwęzłów
Poziomy Poziomy zagnieżdżenizagnieżdżeniaa
NieograniczonNieograniczonaa
NieograniczonNieograniczonaa
Blok/klasterBlok/klaster 512 B-64 kB 512 B-64 kB 1 kB-4 kB 1 kB-4 kB
Klastry w NTFSKlastry w NTFS
Rozmiar woluminuRozmiar woluminu Rozmiar klastraRozmiar klastra
512 MB i mniej512 MB i mniej 512 B512 B
513 MB-1024 MB513 MB-1024 MB 1 kB1 kB
1025 MB-2048 MB1025 MB-2048 MB 2 kB2 kB
Więcej niż 2048 MBWięcej niż 2048 MB 4 kB4 kB
Fizyczna Struktura NTFSFizyczna Struktura NTFS
Wolumin stawnowi Wolumin stawnowi (mniej więcej) (mniej więcej) całość.całość.
Metapliki Metapliki gdziekolwiek na gdziekolwiek na woluminiewoluminie
MFT zajmuje MFT zajmuje początek dyskupoczątek dysku
Fizyczna Struktura Fizyczna Struktura eext3xt3
Dysk podzielony na grupyDysk podzielony na grupy Metadane na początku każdego blokuMetadane na początku każdego bloku
NTFSNTFS
Wszystko jest plikiem – MFT, Boot, itd.Wszystko jest plikiem – MFT, Boot, itd. MasterFileTable jest relacyjną bazą danychMasterFileTable jest relacyjną bazą danych,, w w
ktktóórej wierszami są pliki, a kolumnami rej wierszami są pliki, a kolumnami atrybuty.atrybuty.
Wszystko w pliku jest atrybutem – łącznie z Wszystko w pliku jest atrybutem – łącznie z zawartością.zawartością.
Atrybuty to strumienie danych (ciągi bajtów).Atrybuty to strumienie danych (ciągi bajtów). WSZYSTKIE pliki mają swoje rekordy w MFT WSZYSTKIE pliki mają swoje rekordy w MFT
– tak MFT też ma rekord w MFT.– tak MFT też ma rekord w MFT.
Master File TableMaster File Table
MFT musi gdzieś przechowywać wszystkie MFT musi gdzieś przechowywać wszystkie informacje o systemie plików. Jak wszystko inne, informacje o systemie plików. Jak wszystko inne, są one w plikach. Te pliki zajmują pierwsze 16 są one w plikach. Te pliki zajmują pierwsze 16 rekordów MFT (ostatnie 4 z nich są wolne, ale rekordów MFT (ostatnie 4 z nich są wolne, ale zarezerwowane na przyszłość) i około 16KB. zarezerwowane na przyszłość) i około 16KB.
Metapliki w NTFSMetapliki w NTFS
00.. Master File TableMaster File Table1.1. Master File Table MirrorMaster File Table Mirror2.2. LogFile (dziennik)LogFile (dziennik)3.3. Volume (informacje o Volume (informacje o
woluminie)woluminie)4.4. Attribute definitions (lista Attribute definitions (lista
wszystkich dopuszczalnych wszystkich dopuszczalnych atrybutów plików)atrybutów plików)
5.5. Root file name index (katalog Root file name index (katalog główny)główny)
6.6. Cluster bitmap (bitmapa Cluster bitmap (bitmapa zajętości klastrów)zajętości klastrów)
7.7. Boot sector (zawiera BIOS Boot sector (zawiera BIOS parameter block czyli sprzętowe parameter block czyli sprzętowe informacje o woluminie i ew. informacje o woluminie i ew. kod startujący system kod startujący system operacyjny)operacyjny)
8.8. Bad cluster file (plik zawierający Bad cluster file (plik zawierający wszystkie uszkodzone klastry – wszystkie uszkodzone klastry – jeśli są zajęte przez jakiś plik to jeśli są zajęte przez jakiś plik to nikt inny nie będzie ich używał)nikt inny nie będzie ich używał)
9.9. Security fileSecurity file10.10. Upcase table (tablica do Upcase table (tablica do
tłumaczenia znaków na ich tłumaczenia znaków na ich wielkie odpowiedniki)wielkie odpowiedniki)
11.11. NTFS extension fileNTFS extension file12.12. 12-15 są wolne12-15 są wolne
Atrybuty plików w NTFSAtrybuty plików w NTFS1.1.Standard_InformationStandard_Information
Zawiera standardowe informacje takie jak czas stworzenia, ostatniej Zawiera standardowe informacje takie jak czas stworzenia, ostatniej modyfikacji, ostatniego dostępu, prawa dostępu itd.modyfikacji, ostatniego dostępu, prawa dostępu itd.
(St(Stememple czasowe na dysku są uaktualniane co godzinę – aktualne ple czasowe na dysku są uaktualniane co godzinę – aktualne informacje zawsze są dostępne w pamięci i są zrzucane na dysk tylko informacje zawsze są dostępne w pamięci i są zrzucane na dysk tylko wtedy jeśli zamkniemy wszystkie deskryptory pliku, albo czas ostatniego wtedy jeśli zamkniemy wszystkie deskryptory pliku, albo czas ostatniego dostępu w pamięci jest o godzinę późniejszy niż zapisany na dysku)dostępu w pamięci jest o godzinę późniejszy niż zapisany na dysku)
2.2.Attribute_ListAttribute_List Czasami zdarza się, że wszystkie rezydentne atrybuty pliku nie Czasami zdarza się, że wszystkie rezydentne atrybuty pliku nie
mieszczą się w jednym rekordzie MTF. W takim wypadku plikowi mieszczą się w jednym rekordzie MTF. W takim wypadku plikowi przydzielane są dodaktowe rekordy, a attribute_list jest listą przydzielane są dodaktowe rekordy, a attribute_list jest listą wskaźników do nich.wskaźników do nich.
Rzadko widywane, gdyż większość danych może być przechowywana poza Rzadko widywane, gdyż większość danych może być przechowywana poza MFT. Przykładem kiedy jest to potrzebne jest plik z dużMFT. Przykładem kiedy jest to potrzebne jest plik z dużąą liczbą twardych liczbą twardych dowiązań – kiedy wszystkie nazwy się nie mieszczą.dowiązań – kiedy wszystkie nazwy się nie mieszczą.
Atrybuty plików w NTFSAtrybuty plików w NTFS c.d. c.d.
3.3.File_NameFile_Name Zawiera dwie nazwy – długą (do 255 znaków) i krótką (do 8 znaków), Zawiera dwie nazwy – długą (do 255 znaków) i krótką (do 8 znaków),
oraz wielkość pliku.oraz wielkość pliku. Długa nazwa składa się z wielkich liter, krótka już nieDługa nazwa składa się z wielkich liter, krótka już nie konieczniekoniecznie Wielkość pliku jest wielkością podstawowego (nienazwanego) strumienia Wielkość pliku jest wielkością podstawowego (nienazwanego) strumienia
danychdanych
4.4.Object_IDObject_ID Zawiera unikalne numery pliku: obecny, urodzenia i Zawiera unikalne numery pliku: obecny, urodzenia i woluminwolumin na której na której
powstał plik.powstał plik.
5.5.Security_DescriptorSecurity_Descriptor TTutajutaj są są przechowywane uprawnienia dostępu do pliku dla własciciela, przechowywane uprawnienia dostępu do pliku dla własciciela,
grupy i reszy świata. Mówi też grupy i reszy świata. Mówi też którektóre akcje mają być logowane akcje mają być logowane..
Atrybuty plików w NTFSAtrybuty plików w NTFS c.d. c.d.
6.6.Volume_NameVolume_Name i i Volume_InformationVolume_Information Tylko pliki Tylko pliki $volume$volume posiada posiadająją te atrybuty – pierwszy zawiera nazwę, te atrybuty – pierwszy zawiera nazwę,
aa drugi m.in. bit drugi m.in. bit „„Dirty”, mówiący czy przy ponownym uruchomieniu Dirty”, mówiący czy przy ponownym uruchomieniu należy wykonać chkdsk /f (spróbować naprawić dysk)należy wykonać chkdsk /f (spróbować naprawić dysk)
7.7. DataData Atrybut będący zawartością pliku. Każdy plik musi mieć jeden 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 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ć też zawierać dowolnie dużo nazwanych atrybutów – każdy może mieć zupełnie inną zawartość.zupełnie inną zawartość.
Jako, że wielkością pliku jest wielkość jego nienazwanej zawartości może Jako, że wielkością pliku jest wielkość jego nienazwanej zawartości może istnieć plikistnieć plik,, którego wielkość system plików podaje jako 0, a na dysku którego wielkość system plików podaje jako 0, a na dysku zajmuje dowolnie dużo miejsca.zajmuje dowolnie dużo miejsca.
Atrybuty plików w NTFSAtrybuty plików w NTFS c.d. c.d.
8.8.Index_RootIndex_Root, , Index_AllocationIndex_Allocation, , BitmapBitmap Te atrybuty służą do implementacji BTe atrybuty służą do implementacji B++-drzew. Bitmapa jest mapą -drzew. Bitmapa jest mapą
zajętości dostępnych indeksów.zajętości dostępnych indeksów.
9.9.Reparse_PointReparse_Point Robi to co sugeruje nazwa – parsuje odwoRobi to co sugeruje nazwa – parsuje odwołałanie od nowa, konie od nowa, korzrzystając z ystając z
danych zapisanych w tym atrybucie. Służy do tworzenia dowiązań danych zapisanych w tym atrybucie. Służy do tworzenia dowiązań symbolicznych, czy montowania zewnętrznych symbolicznych, czy montowania zewnętrznych plików/katalogów/dysków.plików/katalogów/dysków.
Reparse_Point wyklucza się z Extentended Attributes – plik może mieć albo Reparse_Point wyklucza się z Extentended Attributes – plik może mieć albo jedno, albo drugiejedno, albo drugie
Atrybuty plików w NTFSAtrybuty plików w NTFS c.d. c.d.
10.10. EAEA i i EA_Information EA_Information (Extended Attribute)(Extended Attribute) Służą do przechowywania dodatkowych atrybutów z HPFS (High Służą do przechowywania dodatkowych atrybutów z HPFS (High
Performance File System) – używane np. w OS/2Performance File System) – używane np. w OS/2
11.11. Logged_Utility_StreamLogged_Utility_Stream Absolutnie cokolwiek co autor uzna za stosowne. Absolutnie cokolwiek co autor uzna za stosowne. MMa ograniczenie a ograniczenie
wielkości do 64kB. Wszystkie operacje na nim są zapisywane w wielkości do 64kB. Wszystkie operacje na nim są zapisywane w dzienniku.dzienniku.
Metadane w NTFS i Metadane w NTFS i eext3xt3
NTFSNTFS Około 16KB zarezerwowanych Około 16KB zarezerwowanych
na metapliki.na metapliki. Bardzo mała redundancja Bardzo mała redundancja
danych – 4 rekordy z MFT w danych – 4 rekordy z MFT w środku dysku.środku dysku.
MFT zmiennej wielkości.MFT zmiennej wielkości. Wpis w MFT od 1 do 4 KBWpis w MFT od 1 do 4 KB KlaKlastry małe (512B – 4KB)stry małe (512B – 4KB) Wielkość metadanych zależy od Wielkość metadanych zależy od
wykowykorzrzystania dysku.ystania dysku.
eext3xt3 Pierwsze kilka bloków (co Pierwsze kilka bloków (co
najmniej 5) w każdej grupie najmniej 5) w każdej grupie zarezerwowane na metadane.zarezerwowane na metadane.
Bardzo duża redundancja Bardzo duża redundancja danych (kopie w każdej grupie).danych (kopie w każdej grupie).
Stała wielkość tablicy i-nodów.Stała wielkość tablicy i-nodów. I-I-węzełwęzeł wielkości ok wielkości ok.. 128B 128B Bloki wielkości od 1 do 4KBBloki wielkości od 1 do 4KB Stała ilość miejsca przeznaczona Stała ilość miejsca przeznaczona
na metadanena metadane
Wzbogacanie systemu plikówWzbogacanie systemu plików
ACL (Access Control Lists)ACL (Access Control Lists) Możliwość przydzielania uprawnień Możliwość przydzielania uprawnień
poszczególnym użytkownikom / grupoposzczególnym użytkownikom / grupomm użytkownikówużytkowników
Sumy kontrolne plikówSumy kontrolne plików Lepsza kontrola uszkodzeń plikówLepsza kontrola uszkodzeń plików
MożliwośMożliwośćć stwierdzenia nieuprawnionego dostępu stwierdzenia nieuprawnionego dostępu Spowolnienie działania operacji plikowych.Spowolnienie działania operacji plikowych.
AtrybutyAtrybuty
RezydentneRezydentne – zawarte w 1-kilobajtowym wpisie w MFT, np. – zawarte w 1-kilobajtowym wpisie w MFT, np. Standard Information czy FilenameStandard Information czy Filename
NierezydentneNierezydentne – przechowywane na dysku, nie mieszczą – przechowywane na dysku, nie mieszczą się we wpisie do MFT, alokowane w ekstentach (np. czasami się we wpisie do MFT, alokowane w ekstentach (np. czasami DataData czy czy Index rootIndex root))
Typ atrybutu umieszczony w jego Typ atrybutu umieszczony w jego nagłówkunagłówku::
Atrybut Data (nierezydentny)Atrybut Data (nierezydentny)
Atrybuty indeksowe Atrybuty indeksowe (nierezydentne)(nierezydentne)
Atrybuty: Atrybuty: Index root, Index allocation, BitmapIndex root, Index allocation, Bitmap Ekstenty w tym przypadku nazywamy Ekstenty w tym przypadku nazywamy buforami indeksowymibuforami indeksowymi
Numery klastrówNumery klastrów
LCN (Logical Cluster Numbers)LCN (Logical Cluster Numbers) – numery fizycznych – numery fizycznych klastrów dyskowychklastrów dyskowych
VCN (Virtual Cluster Numbers)VCN (Virtual Cluster Numbers) – numery – numery przypisywane kolejnym klastrom, przypisywane kolejnym klastrom, przyporządkowywanym danemu plikowi lub katalogowiprzyporządkowywanym danemu plikowi lub katalogowi
Nagłówek atrybutu Nagłówek atrybutu nierezydentnegonierezydentnego
W ramach nagłówka atrybutu nierezydentnego są pamiętane W ramach nagłówka atrybutu nierezydentnego są pamiętane kolejne ekstenty, a dla każdego numer wirtualny i logiczny kolejne ekstenty, a dla każdego numer wirtualny i logiczny pierwszego klastra i liczba klastrów w ekstencie:pierwszego klastra i liczba klastrów w ekstencie:
Optymalizacje dostępu do Optymalizacje dostępu do zawartości katalogu - NTFSzawartości katalogu - NTFS
Katalog jako Katalog jako B+-drzewoB+-drzewo plików i podkatalogów (nazwy, plików i podkatalogów (nazwy, wielkości, stemple czasowe i położenia w MFT)wielkości, stemple czasowe i położenia w MFT)
Index rootIndex root to posortowana lista albo B+-drzewo, węzły w to posortowana lista albo B+-drzewo, węzły w buforach indeksowychbuforach indeksowych
Index allocationIndex allocation to mapowanie między numerami VCN a to mapowanie między numerami VCN a LCN buforów indeksowych LCN buforów indeksowych
BitmapBitmap to mapa zajętości buforów indeksowych po ich VCN- to mapa zajętości buforów indeksowych po ich VCN-achach
B+-drzewo szybciej rośnie na szerokość niż na wysokośćB+-drzewo szybciej rośnie na szerokość niż na wysokość
Optymalizacje dostępu do Optymalizacje dostępu do zawartości katalogu – ext3zawartości katalogu – ext3
Długo tylko Długo tylko proste listy łączoneproste listy łączone (do ext2): (do ext2):- dobre dzięki strukturom dcachedobre dzięki strukturom dcache- złe dla cache przeglądarek i niektórych systemów pocztowychzłe dla cache przeglądarek i niektórych systemów pocztowych Rozważania na temat użycia Rozważania na temat użycia B-drzewB-drzew::- trudna i długa implementacjatrudna i długa implementacja- mała odporność na zniszczenie węzłów wewnętrznychmała odporność na zniszczenie węzłów wewnętrznych
Decyzja: Decyzja: H-drzewa (Hash Trees)H-drzewa (Hash Trees)
H-drzewa w ext3H-drzewa w ext3
W wersjach rozwojowych ext2, na dobre w ext3W wersjach rozwojowych ext2, na dobre w ext3 32-bitowe hasze jako klucze32-bitowe hasze jako klucze Węzły wewnętrzne (bloki indeksowe) zajmują tylko 8 bajtówWęzły wewnętrzne (bloki indeksowe) zajmują tylko 8 bajtów Stała głębokość (1 lub 2)Stała głębokość (1 lub 2) Wsteczna kompatybilnośćWsteczna kompatybilność (+odporność na zniszczenia): (+odporność na zniszczenia):- bloki-liście identyczne z blokami starego typubloki-liście identyczne z blokami starego typu- bloki indeksowe widziane jako usunięte wpisy katalogowebloki indeksowe widziane jako usunięte wpisy katalogowe Dla dużych katalogów nawet Dla dużych katalogów nawet 50-100 razy szybsze50-100 razy szybsze!!
Kompresja plikówKompresja plików
ext3:ext3: Teoretycznie możliwa (pole Teoretycznie możliwa (pole i_flagsi_flags w i-węźle) w i-węźle) Dostępna w łatach zawartych w pakiecie Dostępna w łatach zawartych w pakiecie e2compre2compr (1997) w (1997) w
Ext2Ext2 Brak wsparcia dla kompresji w ext3 (nawet dla tych łatek)Brak wsparcia dla kompresji w ext3 (nawet dla tych łatek)
NTFS:NTFS: Kompresja rzadkich danychKompresja rzadkich danych Kompresja gęstych danychKompresja gęstych danych Rzadkie plikiRzadkie pliki
Rzadkie dane cz. 1Rzadkie dane cz. 1
Rzadkie daneRzadkie dane – znaczną część stanowią zera (np. rzadka macierz) – znaczną część stanowią zera (np. rzadka macierz) NTFS w ogóle nie pamięta zawartości zerowych ekstentów:NTFS w ogóle nie pamięta zawartości zerowych ekstentów:
Rzadkie dane cz. 2Rzadkie dane cz. 2
W MFT nieistniejące ekstenty nie są w ogóle zapisane (o ich W MFT nieistniejące ekstenty nie są w ogóle zapisane (o ich istnieniu świadczy tylko nieciągłość w numerach VCN istniejących istnieniu świadczy tylko nieciągłość w numerach VCN istniejących ekstentów)ekstentów)
Gęste dane cz. 1Gęste dane cz. 1
Plik dzielony na Plik dzielony na jednostki kompresyjnejednostki kompresyjne (16 klastrów) (16 klastrów) Kompresujemy tylko te jednostki, które wskutek tego zmniejszają się Kompresujemy tylko te jednostki, które wskutek tego zmniejszają się
co najmniej o 1 klaster:co najmniej o 1 klaster:
Gęste dane cz. 2Gęste dane cz. 2 NTFS wie, które jednostki są skompresowane (zna liczności)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
Rzadkie plikiRzadkie pliki
Podobne do skompresowanych metodą kompresji rzadkich Podobne do skompresowanych metodą kompresji rzadkich danychdanych
Proces wskazuje, które fragmenty pliku uznaje za pusteProces wskazuje, które fragmenty pliku uznaje za puste Przydatne w aplikacjach typu Przydatne w aplikacjach typu klient-serwer z buforemklient-serwer z buforem
(unikamy nieskończonego wzrostu bufora)(unikamy nieskończonego wzrostu bufora)
Distributed Link TrackingDistributed Link Tracking
• W systemie NTFS, tworząc twardy W systemie NTFS, tworząc twardy link do pliku zapamiętujemy link do pliku zapamiętujemy Object_Identifier pliku docelowego. Object_Identifier pliku docelowego. Ten identyfikator jest unikalny dla Ten identyfikator jest unikalny dla systemu i nie zmienia się przez cały systemu i nie zmienia się przez cały czas życia pliku. Dzięki temu po czas życia pliku. Dzięki temu po zmianie nazwy, przeniesieniu pliku zmianie nazwy, przeniesieniu pliku docelowego w inne miejsce itp. link docelowego w inne miejsce itp. link cały czas jest poprawny.cały czas jest poprawny.
LinkiLinki
• Ogólnie są 2 typy: Ogólnie są 2 typy: – Twarde (hardlinks)Twarde (hardlinks)
• Trzymane są wskaźniki do tego samego pliku.Trzymane są wskaźniki do tego samego pliku.• Plik jest usuwany gdy wszystkie wskaźniki Plik jest usuwany gdy wszystkie wskaźniki
zniknąznikną• Windows nie obsługuje hardlinka dla Windows nie obsługuje hardlinka dla
katalogów.katalogów.
– Miękkie (junctions)Miękkie (junctions)• Trzymana jest ścieżka do plikuTrzymana jest ścieżka do pliku• Gdy plik zostaje skasowany ścieżki są błędneGdy plik zostaje skasowany ścieżki są błędne• Windows obsługuje miękkie linki tylko do Windows obsługuje miękkie linki tylko do
systemu lokalnegosystemu lokalnego
Quota – kontyngenty Quota – kontyngenty dyskowedyskowe
• Umożliwiają kontrolę Umożliwiają kontrolę miejsca miejsca zajmowanego przez zajmowanego przez użytkownikaużytkownika
• Liczą całe pliki (czyli Liczą całe pliki (czyli pliki rzadkie mają pliki rzadkie mają pełną wielkość)pełną wielkość)
• Można kontrolować Można kontrolować poszczególnych poszczególnych użytkowników na użytkowników na różnych woluminachróżnych woluminach
Quota – kontyngenty Quota – kontyngenty dyskowedyskowe
• Dwie tabele Dwie tabele umożliwiające szybkie umożliwiające szybkie sprawdzanie czy sprawdzanie czy użytkownik nie użytkownik nie przekracza limitówprzekracza limitów
• W pierwszej tabeli W pierwszej tabeli można szybko znaleźć można szybko znaleźć do kogo należy dany do kogo należy dany SIDSID
• A w drugiej, ile ta A w drugiej, ile ta osoba ma jeszcze osoba ma jeszcze miejsca wolnegomiejsca wolnego
Sposoby zapisu danych na dyskSposoby zapisu danych na dysk
ostrożne – ostrożne – system stara się system stara się wykonywać operacje w kolejności wykonywać operacje w kolejności gwarantującej maksymalną gwarantującej maksymalną spójnośćspójność
leniwe – leniwe – system wykonuje system wykonuje operacje w kolejności operacje w kolejności optymalizującej ruchy głowicy optymalizującej ruchy głowicy dyskudysku
Przyczyny powstawania błędówPrzyczyny powstawania błędów fizycznefizyczne
wynikające z konstrukcji dysku, wynikające z konstrukcji dysku, bad blocksbad blocks
wynikające z działania czynników wynikające z działania czynników zewnętrznychzewnętrznych
logicznelogiczne wynikające z błędnego działania wynikające z błędnego działania
systemusystemu wynikające z błędów w wynikające z błędów w
implementacji systemu plikówimplementacji systemu plików wynikające z wynikające z
przerwania operacji na przerwania operacji na systemie plikówsystemie plików
Rodzaje błędów logicznychRodzaje błędów logicznych
skrzyżowane plikiskrzyżowane pliki zagubione klastry (bloki)zagubione klastry (bloki) nieprawidłowe wartości liczników nieprawidłowe wartości liczników
odwołańodwołań pliki do których nie ma dostępupliki do których nie ma dostępu błędne rozmiary plikówbłędne rozmiary plików wszelkie inne niespójności metadanychwszelkie inne niespójności metadanych
Atomowość operacjiAtomowość operacji
z czego składają się operacjez czego składają się operacje po co nam atomowość operacjipo co nam atomowość operacji właściwe operacje na przykładzie właściwe operacje na przykładzie
usuwania pliku w systemie UNIX:usuwania pliku w systemie UNIX: usunięcie wpisu odnośnie pliku w usunięcie wpisu odnośnie pliku w
katalogukatalogu ustawienie i-węzła pliku jako wolnego w ustawienie i-węzła pliku jako wolnego w
bitmapie.bitmapie. co złego może się wydarzyćco złego może się wydarzyć
KronikaKronika
Czym jest kronika?Czym jest kronika? Po co nam kronika?Po co nam kronika? ZaletyZalety
większe bezpieczeństwowiększe bezpieczeństwo krótszy czas przeładowania systemukrótszy czas przeładowania systemu często zaawansowane algorytmy i struktury często zaawansowane algorytmy i struktury
danych używane do obsługi plikówdanych używane do obsługi plików WadyWady
niektóre operacje mogą zajmować więcej czasuniektóre operacje mogą zajmować więcej czasu większe skomplikowanie systemu plikówwiększe skomplikowanie systemu plików
Rodzaje kronikowaniaRodzaje kronikowania
rejestrowanie rejestrowanie odtwarzające (redo odtwarzające (redo logging)logging)
rejestrowanie rejestrowanie odwołujące (undo odwołujące (undo logging)logging)
Tryby kronikowaniaTryby kronikowania
kronikowanie metadanych (write-kronikowanie metadanych (write-back)back)
kronikowanie wszelkich operacji kronikowanie wszelkich operacji (także danych) (journalling)(także danych) (journalling) zapisywanie do dziennika pełnych zapisywanie do dziennika pełnych
bloków (klastrów)bloków (klastrów) zapisywanie tylko zmian w danychzapisywanie tylko zmian w danych
tryb „uporządkowany” (ordered)tryb „uporządkowany” (ordered)
Typy kronikowania obsługiwane Typy kronikowania obsługiwane przez systemy plikówprzez systemy plików
metadanedane i
metadanetryb ordered
•NTFS ■ □
•ext3 ■ ■ ■•ReserFS ■ □
•Reiser4 □ ■
•JFS ■ □
•XFS ■ □
•WinFS ■ ■
Czas odtwarzania dzienników przez Czas odtwarzania dzienników przez systemy plikówsystemy plików
Podczas montowania systemu plikówPodczas montowania systemu plików Podczas sprawdzania spójności Podczas sprawdzania spójności
systemu plikówsystemu plików
Położenie dziennikówPołożenie dzienników
jako jeden z plików w systemie (ext3, jako jeden z plików w systemie (ext3, NTFS, NTFS,
w specjalnym wydzielonym obszarze w specjalnym wydzielonym obszarze (XFS)(XFS)
w dowolnym miejscu systemu plików w dowolnym miejscu systemu plików (Reiser4)(Reiser4)
ext3ext3
ext3 = ext2 + JBDext3 = ext2 + JBD
Co jeśli dziennik zawiedzieCo jeśli dziennik zawiedzie
kontrola spójności systemukontrola spójności systemu nicnic
Problemy związane z kronikąProblemy związane z kroniką
Istnieją operacje które mogą sprawić Istnieją operacje które mogą sprawić problem systemom z kroniką, np.:problem systemom z kroniką, np.: usuwanie pliku otwartego przez pewien usuwanie pliku otwartego przez pewien
procesproces przeplot operacji usuwania pliku i przeplot operacji usuwania pliku i
tworzenia nowegotworzenia nowego Specjalne wymagania odnośnie Specjalne wymagania odnośnie
poleceń ponawiania i wycofywaniapoleceń ponawiania i wycofywania
Kronika na przykładzie NTFSKronika na przykładzie NTFS
kopia systemów startowychkopia systemów startowych cykliczny zapis rekordówcykliczny zapis rekordów
Rekordy w kronice (na przykładzie NTFS)Rekordy w kronice (na przykładzie NTFS)
rekordy uaktualnieńrekordy uaktualnień
punkty kontrolnepunkty kontrolne
Przywracanie spójności systemu Przywracanie spójności systemu przy pomocy kroniki (na przy pomocy kroniki (na
przykładzie NTFS)przykładzie NTFS) Faza analizy kronikiFaza analizy kroniki
Faza ponawiania operacjiFaza ponawiania operacji
Faza wycofywania operacjiFaza wycofywania operacji
Sposoby na zabezpieczanie danychSposoby na zabezpieczanie danych
Zasilacze awaryjneZasilacze awaryjne Kopie bezpieczeństwaKopie bezpieczeństwa Macierze dysków twardychMacierze dysków twardych
WinFSWinFS
Czyli dokąd zmierzają systemy Czyli dokąd zmierzają systemy plikówplików
Podstawowe wymagania systemu Podstawowe wymagania systemu plikówplików
Przechowywanie informacjiPrzechowywanie informacji
Dostęp do danych na dyskuDostęp do danych na dysku
Szybki dostęp do danychSzybki dostęp do danych
Wyszukiwanie potrzebnych danychWyszukiwanie potrzebnych danych
Cechy aktualnych systemów plikówCechy aktualnych systemów plików
SzybkośćSzybkośćDobre zarządzanie miejscemDobre zarządzanie miejscemMałe straty miejsca na metadaneMałe straty miejsca na metadane
ALE :ALE :Struktura hierarchicznaStruktura hierarchicznaUtrudnione wyszukiwanieUtrudnione wyszukiwanieBrak możliwości tworzenia połączeń Brak możliwości tworzenia połączeń między plikamimiędzy plikami
Próby radzenia sobie z problemamiPróby radzenia sobie z problemami
ALE TO ZA MAŁOALE TO ZA MAŁO
Systemy operacyjneSystemy operacyjne
Tworzenie linkówTworzenie linków
Trzymanie dodatkowych Trzymanie dodatkowych informacji razem z plikamiinformacji razem z plikami
Indeksowanie częstych Indeksowanie częstych zapytańzapytań
Systemy plikówSystemy plików
Wykorzystanie silnika bazy danych Wykorzystanie silnika bazy danych
Pod spodem „zwykły” system plikówPod spodem „zwykły” system plików
Nowe podejścieNowe podejście
ZaletyZalety
Możliwość dodawanie wielu cech do Możliwość dodawanie wielu cech do plików i szybkiego ich wyszukiwaniaplików i szybkiego ich wyszukiwania
Brak katalogów – czyli brak sztywnego Brak katalogów – czyli brak sztywnego rozmieszczania plikówrozmieszczania plików
Łatwe szukanie i dodawanie nowych Łatwe szukanie i dodawanie nowych połączeń.połączeń.
WadyWady
Więcej miejsca zajmą metadaneWięcej miejsca zajmą metadane
Większy koszt niektórych operacjiWiększy koszt niektórych operacji
Trudności w dostępie z innych OSTrudności w dostępie z innych OS
Trzeba poczekać aż do 2007.Trzeba poczekać aż do 2007.
Windows Future StorageWindows Future Storage
Bazuje na NTFSBazuje na NTFS
Wsparcie dla Win32 ApiWsparcie dla Win32 Api
Nowy „engine” SQL-a Nowy „engine” SQL-a (Yukon)(Yukon)
Walka z fragmentacją – ext3Walka z fragmentacją – ext3
ext3 – metoda zapobiegania:ext3 – metoda zapobiegania: Zupełnie jak w ext2Zupełnie jak w ext2 Prealokacja bloków (przydzielanie w partiach po 8)Prealokacja bloków (przydzielanie w partiach po 8) Przydzielanie nowych bloków w pobliżu już istniejących, w Przydzielanie nowych bloków w pobliżu już istniejących, w
tej samej grupie bloków, co i-węzeł plikutej samej grupie bloków, co i-węzeł pliku Metody świetnie się spisują, długo nie rozważano tematu Metody świetnie się spisują, długo nie rozważano tematu
defragmentacjidefragmentacji W ext2 do defragmentacji jest W ext2 do defragmentacji jest e2defrage2defrag W ext3 się go nie da użyć (bez konwersji do ext2)W ext3 się go nie da użyć (bez konwersji do ext2)
Walka z fragmentacją - NTFSWalka z fragmentacją - NTFS
NTFS – metoda skutecznego leczenia:NTFS – metoda skutecznego leczenia: Zapobieganie ogranicza się do rezerwacji specjalnego obszaru Zapobieganie ogranicza się do rezerwacji specjalnego obszaru
na dysku dla MFTna dysku dla MFT Dobre Dobre API dla defragmentatorówAPI dla defragmentatorów::- FSCTL_GET_VOLUME_BITMAP,FSCTL_GET_VOLUME_BITMAP,- FSCTL_GET_RETRIEVAL_POINTERS,FSCTL_GET_RETRIEVAL_POINTERS,- FSCTL_MOVE_FILE.FSCTL_MOVE_FILE. Własne narzędzieWłasne narzędzie - \Windows\System32\Defrag.exe - \Windows\System32\Defrag.exe Wadliwe w Windows 2000, lepsze w XP i 2003 ServerWadliwe w Windows 2000, lepsze w XP i 2003 Server
Zarządzanie uprawnieniamiZarządzanie uprawnieniami
NTFS:NTFS: W początkowej wersji NTFS przechowywał deskryptor W początkowej wersji NTFS przechowywał deskryptor
bezpieczeństwa w każdym pliku (duże wykorzystanie miejsca bezpieczeństwa w każdym pliku (duże wykorzystanie miejsca dyskowego w systemach wieloużytkownikowych)dyskowego w systemach wieloużytkownikowych)
W aktualnej wersji plik W aktualnej wersji plik $Secure file$Secure file trzyma wszystkie trzyma wszystkie deskryptory bezpieczeństwa, a pliki mają tylko ich unikalne w deskryptory bezpieczeństwa, a pliki mają tylko ich unikalne w danym systemie numerydanym systemie numery
ext3:ext3: Prawa dostępu przechowuje i-węzeł dyskowy w polu Prawa dostępu przechowuje i-węzeł dyskowy w polu i_modei_mode
(małe wykorzystanie miejsca)(małe wykorzystanie miejsca)
Plik $Secure filePlik $Secure file Dwa sposoby indeksowania: Dwa sposoby indeksowania: SDHSDH i i SIISII, dane w atrybucie , dane w atrybucie SDSSDS Nadawanie deskryptora plikowi – wykorzystujemy SDHNadawanie deskryptora plikowi – wykorzystujemy SDH Przyzwalanie na dostęp – wykorzystujemy SII (pliki przechowują w Przyzwalanie na dostęp – wykorzystujemy SII (pliki przechowują w
$STANDARD_INFORMATION$STANDARD_INFORMATION numer systemowy deskryptora) numer systemowy deskryptora) Cache’owanieCache’owanie ostatnich 32 użytych deskryptorów przez NTFS ostatnich 32 użytych deskryptorów przez NTFS
Szyfrowanie w NTFSSzyfrowanie w NTFS PrzezroczystePrzezroczyste dla użytkownika dla użytkownika Wykorzystanie Wykorzystanie EFS (Encrypting File System)EFS (Encrypting File System), w , w
Windowsie 2000 osobny sterownik, a od Windowsa Windowsie 2000 osobny sterownik, a od Windowsa XP sterownik zintegrowany ze sterownikiem NTFSXP sterownik zintegrowany ze sterownikiem NTFS
Użycie:Użycie:- poziom aplikacjipoziom aplikacji: funkcje : funkcje EncryptFile i DecryptFileEncryptFile i DecryptFile, ,
a a FileEncryptionStatusFileEncryptionStatus zwraca atrybuty zwraca atrybuty zaszyfrowaniazaszyfrowania
- Eksplorator WindowsEksplorator Windows – menu „zaawansowane – menu „zaawansowane właściwości” pliku lub kataloguwłaściwości” pliku lub katalogu
- Linia komendLinia komend – polecenie – polecenie ciphercipher
Działanie EFSDziałanie EFS Pliki szyfrowane symetrycznym kluczem Pliki szyfrowane symetrycznym kluczem FEK FEK
(File Encryption Key)(File Encryption Key) W Windows 2000 i Windows XP używany do tego W Windows 2000 i Windows XP używany do tego
DESXDESX, a w Windowsie XP z Service Pack 1 i 2003 , a w Windowsie XP z Service Pack 1 i 2003 – – AESAES
Można też wybrać Można też wybrać 3DES3DES-a-a Szyfrowanie i deszyfrowanie Szyfrowanie i deszyfrowanie symetryczne symetryczne jest jest
szybkieszybkie Użytkownik ma swój klucz publiczny i prywatny Użytkownik ma swój klucz publiczny i prywatny
RSARSA, którym szyfruje się FEK, którym szyfruje się FEK Szyfrowanie Szyfrowanie niesymetryczneniesymetryczne jest jest wolnewolne, ale , ale
używamy go tylko do szyfrowania FEK-aużywamy go tylko do szyfrowania FEK-a
Bezpieczeństwo kluczy RSABezpieczeństwo kluczy RSA
Klucz prywatnyKlucz prywatny w katalogu: w katalogu: Documents and settings\Dane Documents and settings\Dane aplikacji\Microsoft\Crypto\RSAaplikacji\Microsoft\Crypto\RSA
Katalog ten zaszyfrowany jest za pomocą Katalog ten zaszyfrowany jest za pomocą master keymaster key danego danego użytkownika (64-bajtowy klucz symetryczny)użytkownika (64-bajtowy klucz symetryczny)
Master keyMaster key w katalogu w katalogu Documents and settings\Dane Documents and settings\Dane aplikacji\Microsoft\Protectaplikacji\Microsoft\Protect
Jest zaszyfrowany algorytmem 3DES z użyciem klucza, który Jest zaszyfrowany algorytmem 3DES z użyciem klucza, który jest częściowo oparty na jest częściowo oparty na haśle użytkownikahaśle użytkownika
Szczegóły działania EFS (skrót)Szczegóły działania EFS (skrót)
EFS działa w EFS działa w trybie jądratrybie jądra, pracę zleca mu NTFS, pracę zleca mu NTFS Do odszyfrowania FEK-a używa funkcji kryptograficznych z Do odszyfrowania FEK-a używa funkcji kryptograficznych z
trybu użytkownikatrybu użytkownika Sterownik KSecDD zleca pracę dla Sterownik KSecDD zleca pracę dla LSASS (Local Security LSASS (Local Security
Authority Subsystem)Authority Subsystem) Komponent LSASS-a – Komponent LSASS-a – LsarvLsarv – wysłuchuje żądania i – wysłuchuje żądania i
przekazuje do przekazuje do CSP (cryptographic service provider)CSP (cryptographic service provider) LsarvLsarv przekazuje wynik z powrotem do EFS przekazuje wynik z powrotem do EFS
InteroperacyjnośćInteroperacyjność
Obsługa systemów plików:Obsługa systemów plików: kernel based APIkernel based API driver based APIdriver based API mieszane kernel-driver based APImieszane kernel-driver based API userland based APIuserland based API
Dostęp do innych systemów plików Dostęp do innych systemów plików spod Linuksaspod Linuksa
obsługa większości systemu plików obsługa większości systemu plików występuje jako moduły jądrawystępuje jako moduły jądra
w przypadku NTFS programy open w przypadku NTFS programy open source nie oferują pełnej source nie oferują pełnej funkcjonalnościfunkcjonalności
istnieją komercyjne implementacje istnieją komercyjne implementacje obsługi NTFS spod Linuksa – Paragon obsługi NTFS spod Linuksa – Paragon NTFSNTFS
Dostęp do innych systemów plików Dostęp do innych systemów plików spod Windowsaspod Windowsa
Zwykle nie nastręcza problemów, ze Zwykle nie nastręcza problemów, ze względu na otwartą specyfikację tych względu na otwartą specyfikację tych systemów plikówsystemów plików
Wymaga zainstalowania pewnych Wymaga zainstalowania pewnych dodatkowych aplikacjidodatkowych aplikacji
Pytania i odpowiedziPytania i odpowiedzi
?!?!Brak!!Brak!!
BibliografiaBibliografia
WikipediaWikipedia Microsoft TechNet “How NTFS Microsoft TechNet “How NTFS
Works”Works” Linux-NTFS ProjectLinux-NTFS Project http://www.easeus.com/resourcehttp://www.easeus.com/resource „„Windows Internals”Windows Internals” Moshe Bar „Linux – systemy plików”Moshe Bar „Linux – systemy plików” William von Hagen „Systemy plików William von Hagen „Systemy plików
w Linuksie”w Linuksie” GoogleGoogle
Dziękujemy za UWAGĘ!Dziękujemy za UWAGĘ!