System plików JFS. 1 Najważniejsze informacje. Mateusz Zakrzewski. 18 stycznia JFS to skrót od Journalled File System.

Podobne dokumenty
System plików ReiserFs

Systemy plików FAT, FAT32, NTFS

dr inż. Jarosław Forenc

ang. file) Pojęcie pliku (ang( Typy plików Atrybuty pliku Fragmentacja wewnętrzna w systemie plików Struktura pliku

System plików warstwa fizyczna

System plików warstwa fizyczna

System plików warstwa fizyczna

System plików. Warstwowy model systemu plików

Wstęp BTRFS Podsumowanie. System plików BTRFS. Maciej Łaszcz

Podstawowe wiadomości o systemach plików.

Systemy plików ext3 i XFS

Sektor. Systemy Operacyjne

PODSTAWY BAZ DANYCH Wykład 6 4. Metody Implementacji Baz Danych

1. Pliki i ich organizacja

Zaawansowane funkcje systemów plików. Ewa Przybyłowicz

Ustawienia widoku ikon

System plików warstwa logiczna

System plików przykłady. implementacji

System plików przykłady implementacji

Zadanie 1. Suma silni (11 pkt)

Systemy plików i zarządzanie pamięcią pomocniczą. Struktura pliku. Koncepcja pliku. Atrybuty pliku

16MB - 2GB 2MB - 128MB

Steganograficzny system plików

dr inż. Jarosław Forenc

Języki i techniki programowania Ćwiczenia 2

e-podręcznik dla seniora... i nie tylko.

Tworzenie pliku Zapisywanie pliku Czytanie pliku Zmiana pozycji w pliku Usuwanie pliku Skracanie pliku

Pliki. Funkcje tworzące pliki i operujące na nich opisane są w części 2 pomocy systemowej. Tworzenie i otwieranie plików:

Lab 9 Podstawy Programowania

Moduł 1 Pliki i foldery


Techniki multimedialne

KONSPEKT FUNKCJE cz. 1.

Rys.1. Technika zestawiania części za pomocą polecenia WSTAWIAJĄCE (insert)

Laboratorium z systemów operacyjnych. System plików - funkcje systemowe. Anna Wojak

System plików Linuksa

System plików i zarządzanie pamięcią pomocniczą. Koncepcja pliku. Atrybuty pliku. Struktura pliku. Typ pliku nazwa, rozszerzenie (extension)

Wbudowane systemy operacyjne

Szkolenie dla nauczycieli SP10 w DG Operacje na plikach i folderach, obsługa edytora tekstu ABC. komputera dla nauczyciela. Materiały pomocnicze

Strumienie, pliki. Sortowanie. Wyjątki.

Architektura komputerów

PROJEKTOWANIE SYSTEMÓW KOMPUTEROWYCH

Programowanie obiektowe i C++ dla matematyków

2. Zmienne i stałe. Przykłady Napisz program, który wypisze na ekran wynik dzielenia 281 i 117 w postaci liczby mieszanej (tj. 2 47/117).

Metody numeryczne w przykładach

Wskaźniki i dynamiczna alokacja pamięci. Spotkanie 4. Wskaźniki. Dynamiczna alokacja pamięci. Przykłady

Szyfrowanie i kopie zapasowe PRZY UŻYCIU VERACRYPT I COMODO BACKUP KAMIL BREGUŁA

Obsługa plików. Systemy Operacyjne 2 laboratorium. Mateusz Hołenko. 25 września 2011

Zestaw 1 ZESTAWY A. a 1 a 2 + a 3 ± a n, gdzie skªadnik a n jest odejmowany, gdy n jest liczb parzyst oraz dodawany w przeciwnym.

INSTRUKCJA OBSŁUGI KREATORA SKŁADANIA WNIOSKÓW

ReiserFS i Reiser4 Dominik Klimczak Creative Commons License

Programowanie na poziomie sprzętu. Tryb chroniony cz. 1

Instrukcja obsługi programu altbackup

Podstawy programowania skrót z wykładów:

Bazy danych. Plan wykładu. Model logiczny i fizyczny. Operacje na pliku. Dyski. Mechanizmy składowania

Kopiowanie, przenoszenie plików i folderów

Wstęp do informatyki. Maszyna RAM. Schemat logiczny komputera. Maszyna RAM. RAM: szczegóły. Realizacja algorytmu przez komputer

Języki programowania imperatywnego

SPIS TREŚCI... 1 ROZPOCZĘCIE PRACY Z OPCJĄ CENNIKI... 2

Podstawy informatyki. Elektrotechnika I rok. Język C++ Operacje na danych - wskaźniki Instrukcja do ćwiczenia

Architektura komputerów

Pliki. Operacje na plikach w Pascalu

Strumienie, pliki. Sortowanie. Wyjątki.

OPERACJE NA PLIKACH I FOLDERACH

Def. Kod jednoznacznie definiowalny Def. Kod przedrostkowy Def. Kod optymalny. Przykłady kodów. Kody optymalne

Maciej Piotr Jankowski

Drzewa poszukiwań binarnych

========================= Zapisujemy naszą funkcję kwadratową w postaci kanonicznej: 2

Laboratorium nr 9. Temat: Wskaźniki, referencje, dynamiczny przydział pamięci, tablice dynamiczne. Zakres laboratorium:

znalezienia elementu w zbiorze, gdy w nim jest; dołączenia nowego elementu w odpowiednie miejsce, aby zbiór pozostał nadal uporządkowany.

Metoda eliminacji Gaussa

System plików. Atrybuty pliku. Typy plików. Pojęcie pliku (ang. file) Zadania systemu operacyjnego. Struktura pliku. Dariusz Wawrzyniak 1

Przykładowe B+ drzewo

System plików. Systemy operacyjne System plików 1. Pojęcie pliku (ang. file)

Haszowanie (adresowanie rozpraszające, mieszające)

Systemy operacyjne System plików

Sposoby zwiększania efektywności systemu Windows

System plików. - warstwa logiczna. - warstwa fizyczna. - przykłady implementacji. Systemy operacyjne Wykład 6 1

SYSTEMY OPERACYJNE ĆWICZENIE POLECENIA SYSTEMU MSDOS

Stałe, tablice dynamiczne i wielowymiarowe

CUDA Median Filter filtr medianowy wykorzystujący bibliotekę CUDA sprawozdanie z projektu

Obsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1. Kraków 2013

Laboratorium Systemów Operacyjnych. Ćwiczenie 4. Operacje na plikach

Streszczenie Komputery do przechowywania rysunków, zdjęć i innych obrazów używają tylko liczb. Te zajęcia mają ukazać w jaki sposób to robią.

Wykonać Ćwiczenie: Active Directory, konfiguracja Podstawowa

Zacznijmy więc pracę z repozytorium. Pierwsza konieczna rzecz do rozpoczęcia pracy z repozytorium, to zalogowanie się w serwisie:

-Próba otworzenia pliku bezpośrednio z płyty CD także kończy się niepowodzeniem, pojawia się komunikat System Windows nie może otworzyć tego pliku.

Programowanie dynamiczne

Poradnik obsługi systemu zarządzania treścią (CMS) Concrete5. Informacje podstawowe

Metody zawarte w klasie File: boolean createnewfile() tworzy nowy, pusty plik, ale tylko jeśli on wcześniej nie istniał. boolean delete() usuwa dany

Jarosław Kuchta. Administrowanie Systemami Komputerowymi. System plików

Opis programu Konwersja MPF Spis treści

Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Olimpiada O Diamentowy Indeks AGH 2017/18. Informatyka Etap III

Projekt z przedmiotu Systemy akwizycji i przesyłania informacji. Temat pracy: Licznik binarny zliczający do 10.

Peter W. Shor - Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer. 19 listopada 2004 roku

Zadanie 1. Potęgi (14 pkt)

SQL Server. Odtwarzanie baz danych.

Temat 8. Zrobić to szybciej Sieci sortujące

Schematy zarzadzania pamięcia

Transkrypt:

System plików JFS Mateusz Zakrzewski 18 stycznia 2004 1 Najważniejsze informacje. JFS to skrót od Journalled File System. Stworzony przez firmę IBM w 1990 roku. Jest niezawodny, dzięki księgowaniu. Zamiast partycji są agregaty i zestawy plików. Jest skalowalny tzn. można łatwo zmieniać rozmiar agregatu. Pod pojęciem partycja można rozumieć coś co można montować lub część dysku na której znajdują się dane zorganizowane w sposób niezależny od danych znajdujących się w innych częściach dysku. W przypadku innych systemów plików np. w ReiserFs to jest to samo tzn. dane, które tworzą pewien montowalny zbiór plików i katalogów są zapisane w pewnej części dysku i aby np. stworzyć nowy plik nie trzeba korzystać z danych zapisanych w innych częściach dysku. W przypadku JFS to nie jest to samo, ponieważ w jednym agregacie, czyli w pewnej części dysku mogą być zapisane dane dotyczące wielu różnych zestawów plików, czyli montowalnych zbiorów plików i katalogów. Ta różnica pomiędzy JFS a np. ReiserFs jest widoczna również z punktu widzenia użytkownika tzn. użytkownik może mieć dwie partycje z systemem plików ReiserFs. Kopiuje dane z zewnętrznego nośnika danych na pierwszą partycję. Jest możliwe, że nie będzie mógł skopiować wszystkich danych z powodu braku wolnego miejsca na pierwszej partycji, mając dużo wolnego miejsca na drugiej partycji. W systemie plików JFS, użytkownik może mieć dwa zestawy plików należące do jednego agregatu. Wtedy taka sytuacja nie będzie możliwa, ponieważ dane opisujące, które części dysku są zajęte, a które wolne są wspólne dla wszystkich zestawów plików należących do tego samego agregatu. 1

2 Sposób przechowywania informacji o pliku. Dane o pliku są przechowywane w i-węźle. I-węzeł jest korzeniem B+drzewa. W przypadku małych plików dane są trzymane bezpośrednio w i-węźle. W przypadku większych plików poszczególne części 2

pliku są trzymane w ekstentach. W i-węźle trzymane są wskaźniki do ekstentów lub, jeśli jest to konieczne tzn. gdy plik składa się z wielu ekstentów, wskaźniki do struktur zawierających wskaźniki do ekstentów lub wskaźniki do struktur zawierających wskaźniki do struktur zawierających wskaźniki do ekstentów itd... Można zauważyć, że w ten sposób można trzymać nie tylko plik, ale również np. tablicę wskaźników do dowolnych obiektów. B+drzewo w którym na najniższym poziomie są ekstenty nadaje się do przechowywania dowolnego obiektu, którego różne części znajdują się w różnych miejscach dysku i którego część możemy znaleźć podając offset w tym obiekcie. Struktura opisująca ekstent: Pole address, to adres pierwszego bloku ekstentu. Pole length, to długość ekstentu wyrażona w ilości bloków. Pole offset opisuje, którą część pliku zawiera dany ekstent tzn. zaczynającą się od jakiego offsetu, wyrażoną w ilości bloków agregatu. Pole offset jest kluczem w B+drzewie. 3

Pliki mogą być przechowywane w różny sposób: 1041377-bajtowy plik, przechowywany w jednym ekstencie: offset 0 length 1017 address xxxxx Ten sam plik w trzech kawałkach: offset 0 length 495 address xxxxx offset 495 length 22 address yyyyy offset 517 length 500 address zzzzz Plik powstały w wyniku wykonania operacji: fd = creat("nowy plik",...); write (fd, "ab", 2); lseek (fd, 1041374, 0); write (fd, "cde", 3); offset 0 length 1 address xxxxx offset 1016 length 1 address yyyyy Jak widać, powyższy plik zajmuje fizycznie mniej miejsca na dysku, niż wynosi jego logiczny rozmiar. Jeżeli wykonana zostanie próba odczytania bajtów ze środka pliku, to zwrócone zostaną bajty zerowe (tak powinno być), pomimo tego, że nie są one fizycznie przechowywane na dysku. Plik mający 16GB, zalokowany w sposób ciągły: offset 0 length 16777215 address 12345 offset 16777215 length 1 address 16789560 Powyższy plik musi być opisany przez dwie struktury, pomimo tego, że jest zaalokowany w sposób ciągły, ponieważ na pole length nie można przypisać wartości większej niż 2 24 1 = 16777215. 4

3 Ogólny układ danych w agregacie. 5

3.1 Zawartość agregatu: Dwa superbloki. Zawierają one informacje dotyczące całego agregatu takie jak: rozmiar agregatu, rozmiar grup alokacji, rozmiar bloku agregatu itd. Rozmiar bloku, to najmniejsza przydzialana lub zwalniana ilość miejsca na dysku. Grupa alokacji, to struktura opisująca pewną część agregatu, który jest podzielony na grupy alokacji. Jeżeli chcemy zaalokować wiele bloków leżących blisko siebie, to alokujemy bloki należące do tej samej grupy alokacji. Superbloki znajdują się zawsze w tych samych ustalonych pozycjach. Drugi superblok jest kopią pierwszego. Jest on używany, gdy pierwszy superblok jest uszkodzony. Tablica i-węzłów agregatu. W tej tablicy znajdują się i-węzły opisujące dane dotyczące całego agregatu. Druga tablica i-węzłów agregatu. Jest kopią pierwszej. Jest potrzebna, na wypadek, gdyby pierwsza została uszkodzona. Mapa alokacji bloków. Mapa alokacji bloków opisuje, które bloki są zajęte, a które wolne. Dziennik (nie pokazany na rysunku), czyli miejsce na dysku potrzebne do stosowania księgowania. 3.2 Zawartość tablicy i-węzłów agregatu: I-węzeł opisujący samą tablicę i-węzłów agregatu. Można go znaleźć, ponieważ znajduje się on w ustalonym miejscu. I-węzeł opisujący położenie mapy alokacji bloków. I-węzeł opisujący położenie dziennika. I-węzeł opisujący położenie uszkodzonych bloków agregatu. I-węzły opisujące położenie struktur opisujących poszczególne zestawy plików. Można zauważyć, że wiele struktur (np. mapa alokacji bloków lub mapa i-węzłów agregatu) jest opisanych tak samo, jak są opisane pliki tzn. poprzez i-węzły. Wynika z tego, że można łatwo zmieniać ich rozmiar, ponieważ można to robić w taki sam sposób w jaki się zmienia rozmiar pliku np. pisząc coś do niego. Dzięki takiej architekturze systemu plików JFS, można łatwo zmieniać rozmiar agregatu. 6

4 Sposób szukania dużego spójnego fragmentu wolnej pamięci. Trzeba umieć szybko znajdować spójne fragmenty dysku złożone z wolnych bloków, aby szybko alokować nowe ekstenty. Można wykorzystać do tego algorytm bliźniaków. Jest on pokazany na rysunku. W polu map, 0 oznacza blok wolny, a 1 oznacza blok zajęty. W polu buddies, jeżeli na n-tym poziomie (licząc od góry), na m-tej pozycji jest liczba k i k 1, i n 1, to znaczy, że rozmiar największego spójnego fragmentu wolnej pamięci w obszarze od pozycji m, do pozycji m + 2 n 1 1 jest większy lub równy 2 k. Liczba 1 oznacza, że odpowiedni blok jest w całości zajęty. Ten algorytm nie jest dokładny, ale jest szybki. 7

4.1 Struktura mapy alokacji bloków. Na rysunku widać strukturę mapy alokacji bloków. Mapa alokacji bloków to drzewo, które jest reprezentowane poprzez dane zapisane w tablicy w taki sposób, że gdybyśmy przechodzili to drzewo w porządku pre-order i wypisywali zawartość kolejnych węzłów, to otrzymalibyśmy zawartość tej tablicy. W strukturze dmap zapisane są informacje o tym, który blok jest zajęty, a który wolny, oraz informacje o spójnych fragmentach wolnego miejsca. W strukturach na wyższych poziomach zapisane są informacje o większych spójnych fragmentach (otrzymane przy pomocy tego samego algorytmu). Struktura dmap składa się z mapy trwałej i mapy roboczej. Mapa trwała opisuje zajętość bloków, która powinna zostać odtworzona w razie awarii. Jeżeli alokujemy nowy blok, to najpierw aktualizujemy mapę roboczą. Jeżeli zwalniamy blok, to najpierw aktualizujemy mapę trwałą. 8

4.2 Struktura dmap. Na rysunku widać dokładnie strukturę dmap, a właściwie strukturę struktury dmap. Struktura ta zawiera, poza mapą zajętości bloków, również informacje otrzymane poprzez algorytm bliźniaków, w taki sposób, jaki został przedstawiony na rysunku na stronie 7 tzn. najpierw na podstawie każdych 32 bitów obliczana jest liczba opisująca najdłuższy spójny fragment wolnego miejsca, a następnie na podstawie każdych czterech takich liczb na niższym poziomie obliczana jest liczba na wyższym poziomie. 5 Więcej informacji: http://www-106.ibm.com/developerworks/library/l-jfs.html http://www-106.ibm.com/developerworks/library/l-jfslayout/ 9