Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
1
File System Implementation
2
Materi File-System Structure File-System Implementation
Directory Implementation Allocation Methods Free-Space Management Efficiency and Performance Recovery NFS Example: WAFL File System
3
Overview
4
Overview File System Secara fisik, data disimpan pada sector-sector di secondary storage misalnya disk Agar efisien, I/O transfer dari disk ke memory dilakukan dalam satuan block Block = kumpulan sector berukuran byte, umumnya 512 byte Data fisik yang disimpan pada secondary storage perlu diabstraksikan menjadi file agar mudah diakses user File system memiliki peranan penting berkaitan dengan pengaksesan data pada secondary storage Menyediakan antarmuka/interface user ke storage dengan melakukan pemetaan dari logical file ke physical storage Menyediakan mekanisme akses yang mudah ke disk untuk menyimpan dan membaca data dari physical storage (disk)
5
Permasalahan Implementasi File System
Bagaimana struktur file system yang baik? Bagaimana mekanisme implementasi file system? Bagaimana mekanisme implementasi direktori pada file system? Bagaimana metode alokasi storage untuk sebuah file dilakukan? Bagaimana performa file system yang diimplementasikan?
6
File System Structure
7
File System Structure Dalam implementasinya sebuah file system dapat diorganisasikan menjadi beberapa layer/lapisan
8
Lapisan I/O Control Lapisan yang berfungsi melakukan akses I/O ke device Terdiri atas device driver dan interrupt handler Lapisan ini mentranslasikan perintah dari lapisan atasnya menjadi sebuah instruksi perangkat keras khusus Contoh input retreive block 23 Contoh output : instruksi hardware Dibahas detail di Bab I/O
9
Lapisan Basic File System
Lapisan yang berfungsi untuk memberikan perintah ke salah satu device driver Akses "Drive 1, Cylinder 73, Track 2, Sector 10" Juga bertugas mengelola memory buffer dan cache yag menyimpan informasi mengenai filesystem, struktur directory dan data
10
Lapisan File Organization Module
Lapisan ini punya informasi mengenai file beserta logical block dan physical block-nya Bertugas mentranslasikan nomor logical block menjadi nomor physical block Juga melakukan pengaturan free space dan alokasi disk
11
Lapisan Logical File System (1)
Lapisan yang mengelola metadata dari sebuah file system Metadata berisi semua informasi tentang struktur file system kecuali content file Contoh metadata : ukuran file, modified date, permission, struktur direktori Struktur file direpresentasikan dalam bentuk File Control Block (FCB) Di Unix/Linux disebut inode
12
Keuntungan dan Kerugian Struktur Layer
Implementasi lebih mudah karena sifatnya yang modular Perubahan di satu lapisan tidak perlu mengubah lapisan lain Satu lapisan dapat digunakan ulang beberapa file system berbeda Contoh : Lapisan I/O dan basic file system Kerugian Overhead translasi dan komunikasi antar lapisan
13
File System Implementation
14
File System Implementation
Untuk mengimplementasikan sebuah file system, dibutuhkan pengelolaan beberapa struktur data On-disk structure On-memory strcuture
15
On-disk Structure Informasi pada on-disk structure disimpan dalam disk
Beberapa informasi pada on-disk structure Boot control block (per volume) Volume control block Directory structure (per file system) File Control Block/FCB (per file)
16
On-disk Structure (1) Boot control block (per volume)
Berisi informasi yang dibutuhkan untuk booting sebuah OS dari volume tersebut Di Unix/Linux FS disebut boot block, di NTFS disebut partition boot sector Volume control block Berisi informasi detail mengenai sebuah partisi/volume Jumlah block dalam partisi, ukuran block, free-block count, free block pointer, free-FCB count dan FCB pointer Di Unix/Linux FS disebut superblock, di NTFS disebut master file table
17
On-disk Structure (2) Directory structure (per file system)
Berisi informasi mengenai struktur direktori pada sebuah partisi/volume Pada Unix/Linux FS termasuk nama file dan nomor inode Pada NTFS, struktur direktori disimpan pada master file table File Control Block/FCB (per file) Berisi informasi spesifik dari sebuah file Setiap FCB punya nomor identifier Pada NTFS, FCB disimpan pada master file table
18
On-disk Structure (3) : File Control Block
19
On-disk Structure pada ext3 FS
20
On-Memory Structure (1)
Informasi pada on-memory strcture disimpan pada main memory Main memory terutama digunakan untuk caching Dengan caching, akses informasi file system pada on-disk structure dapat dikurangi Beberapa informasi pada on-memory structure Mount table Directory structure cache System-wide open-file table Per-process open-file table Block buffer
21
On-Memory Structure (2)
Mount table Berisi informasi mengenai volume/partisi yang sudah di- mount Directory Structure Cache Cache dari struktur direktori yang baru saja diakses System-wide open-file table Berisi FCB dari file yang sedang dibuka. FCB dicopy dari disk. Terdapat counter untuk menghitung berapa process yang sedang membuka file tersebut
22
On-Memory Structure (3)
Per-process open-file table Berisi informasi spesifik mengenai file yang dibuka untuk tiap process berbeda Punya pointer ke entry pada system-wide open file table Block buffer Bertugas menyimpan sementara block yang sedang dibaca dari disk atau sedang ditulis ke disk
23
Open-File Table
24
Implementasi Operasi : Create File
Untuk membuat file baru, terdapat beberapa langkah yang harus dilakukan Program memanggil modul pada lapisan logical file system (LFS) LFS mengalokasikan FCB baru LFS melakukan pembacaan struktur direktori dari on- disk structure dan memindahkannya ke memory LFS kemudian meng-update struktur direktori dengan nama file baru dan FCB yang sudah dibuat Simpan kembali perubahan struktur direktori ke disk
25
Implementasi Operasi : Open File
Program memanggil modul pada lapisan logical file system (LFS) lewat system call open(nama file) LFS mengecek pada system-wide open-file table apakah file sudah dibuka oleh process lain Jika YA, buat per-process open-file table dengan pointer ke system-wide open-file table Jika TIDAK, LFS mencari FCB file tsb. pada struktur direktori di disk Ketika ditemukan, copy FCB dari file tersebut ke system-wide open-file table Lakukan langkah 3 Return pointer ke per-process open-file table untuk operasi read() dan write()
26
Skema Open File
27
Implementasi Operasi : Close File
Ketika sebuah file ditutup oleh sebuah process, terdapat beberapa hal yang dilakukan Hapus per-process open file table untuk process tsb. Decrement counter pada system-wide open file table Menunjukkan jika sebuah process tidak lagi membuka file tersebut Jika dalam sebuah OS tidak ada lagi process yang membuka file tersebut, hapus FCB-nya dari system- wide file open table
28
Implementasi Partisi dan Mounting
Sebuah disk dapat dibagi menjadi beberapa partisi Partisi dapat berupa raw juga diformat dengan sebuah file system partisi yang diformat disebut volume Boot block dipakai untuk menyimpan informasi yang dipakai untuk booting dan load kernel Partisi root yang berisi kernel OS di mount saat booting Partisi lain dapat di-mount saat booting maupun setelahnya
29
Virtual File System
30
Virtual File System Dalam satu OS, bisa terdapat lebih dari satu FS
Problem : Bagaimana mengintegrasikan berbagai FS dengan metode yang berbeda dalam satu OS? Virtual File System : representasi file system dengan konsep orientasi objek node dalam FS direpresentasikan sebagai objek yang sama Terjadi pemisahan antara detail implementasi dengan operasi
31
Skema VFS
32
Implementasi VFS VFS di Linux memiliki 4 objek
inode : representasi file file : representasi file yang dibuka superblock : representasi keseluruhan filesystem dentry : representasi directory entry Pada tiap objek dapat dilakukan beberapa operasi generik int open(. . .)—Open a file int close(. . .)—Close an already-open file ssize t read(. . .)—Read from a file ssize t write(. . .)—Write to a file int mmap(. . .)—Memory-map a file
33
Directory Implementation
34
Directory Implementation
Untuk mengimplementasikan struktur direktori, terdapat beberapa jenis struktur data yang bisa dipakai Linear List Hash Table Tree
35
Linear List / Linked List
Struktur direktori diimplementasikan dalam sebuah linear list Pembacaan data dilakukan secara linear dan sekuensial Performa tidak terlalu bagus Linear search time = O(n) Waktu yang dibutuhkan linear dengan jumlah node
36
Hash Table (1) Struktur direktori diimplementasikan dalam sebuah hash table Hash table : tabel dengan index yang di-generate dari fungsi hash Fungsi hash : fungsi yang dapat memetakan dari string misal nama file ke index angka
37
Hash Table (2) Hash table punya kompleksitas pencarian O(1)
Jauh lebih cepat dari linear list Namun, pada hash table memungkinkan terjadinya collision Collision : dua nama file yang berbeda punya representasi index angka yang sama
38
File Allocation Method
39
File Allocation Method
Metode yang mengatur bagaimana file dialokasikan pada block-block di disk Beberapa metode alokasi Contiguous Allocation Linked Allocation File Allocation Table Indexed Allocation Combined Scheme
40
Contigous Allocation File dialokasikan pada block- block yang berurutan di disk Sederhana, performa relatif baik Namun, mengalami fragmentasi external Lebih sulit mencari free space pada disk Bagaimana jika ukuran sebuah file bertambah terus?
41
Contigous Allocation : Extent-based File System
Modifikasi dari contiguous allocation Jenis FS ini mengalokasikan block tambahan (extent) di luar urutan block pokok Sebuah block punya link ke block extent berikutnya Block extent juga bersifat contiguous Sebuah file bisa terdiri atas lebih dari satu extent Contoh : Veritas FS
42
Linked Allocation Sebuah file dialokasikan sebagai sebuah linked list block Sebuah block punya link ke block berikutnya dan seterusnya Sebuah block tidak harus dialokasikan secara berurutan Tidak mengalami fragmentasi external Namun, performa seeking block jadi menurun
43
Linked Allocation : File Allocation Table (FAT) FS
FAT adalah FS yang memanfaatkan konsep linked alloc. Terdapat tabel yang menyimpan informasi mengenai block pertama dari setiap file Dari block pertama bisa ditelusuri block berikutnya Tabel tersebut disimpan pada bagian pertama dari sebuah volume Untuk meningkatkan performa, ada mekanisme cache
44
Indexed Allocation Pointer-pointer block dari sebuah file dikumpulkan pada block index khusus Pointer-pointer block ditempatkan pada sebuah array Entry ke-i menunjuk ke block ke-i dari sebuah file Directory entry menunjukkan lokasi block index Problem : jika jumlah file banyak, butuh alokasi block index besar
45
Index Allocation : Combined Scheme
Pada combined scheme terdapat dua jenis block index Block direct yang ada langsung pada FCB Block indirect yang disimpan pada block tersendiri Contoh : 15 block index awal adalah block direct Sisanya block indirect Umumnya digunakan pada file system di Unix
46
Free Space Management
47
Free Space Management Block-block yang masih free di disk perlu diketahui lokasinya oleh file system File yang baru dibuat ditempatkan pada block yang free Terdapat beberapa metode untuk menyimpan informasi mengenai block-block yang masih free Bit Vector Linked List Grouping Counting
48
Bit Vector Block terpakai dan free direpresentasikan dengan angka bit 1 dan 0 1 untuk block terpakai, 0 untuk block free Contoh Block free : 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 17, 18, 25, 26, and 27 Bit vector : Tidak efisien Jika jumlah block banyak, butuh semakin banyak bit
49
Linked List Free block direpresentasikan dalam bentuk linked list
Lebih sedikit informasi yang perlu disimpan Susah diterapkan jika alokasi disk menggunakan contiguous allocation
50
Grouping dan Counting Grouping Counting Modifikasi dari linked list
Free block pertama menyimpan alamat n free block Block ke-n menyimpan informasi n free block berikutnya Counting Digunakan jika alokasi bersifat contiguous Informasi yang disimpan hanya free block pertama dan jumlah block berikutnya yang free
51
Space Map Used in ZFS Consider meta-data I/O on very large file systems Full data structures like bit maps couldn’t fit in memory -> thousands of I/Os Divides device space into metaslab units and manages metaslabs Given volume can contain hundreds of metaslabs Each metaslab has associated space map Uses counting algorithm But records to log file rather than file system Log of all block activity, in time order, in counting format Metaslab activity -> load space map into memory in balanced-tree structure, indexed by offset Replay log into that structure Combine contiguous free blocks into single entry
52
Efficiency and Performance
53
Efficiency Efficiency dependent on:
Disk allocation and directory algorithms Types of data kept in file's directory entry Pre-allocation or as-needed allocation of metadata structures Fixed-size or varying-size data structures
54
Performance Keeping data and metadata close together
Buffer cache – separate section of main memory for frequently used blocks Synchronous writes sometimes requested by apps or needed by OS No buffering / caching – writes must hit disk before acknowledgement Asynchronous writes more common, buffer-able, faster Free-behind and read-ahead – techniques to optimize sequential access Reads frequently slower than writes
55
Page Cache A page cache caches pages rather than disk blocks using virtual memory techniques and addresses Memory-mapped I/O uses a page cache Routine I/O through the file system uses the buffer (disk) cache This leads to the following figure
56
I/O Without a Unified Buffer Cache
57
I/O Using a Unified Buffer Cache
58
Recovery
59
Recovery Consistency checking – compares data in directory structure with data blocks on disk, and tries to fix inconsistencies Can be slow and sometimes fails Use system programs to back up data from disk to another storage device (magnetic tape, other magnetic disk, optical) Recover lost file or disk by restoring data from backup
60
Log Structured File Systems
Log structured (or journaling) file systems record each metadata update to the file system as a transaction All transactions are written to a log A transaction is considered committed once it is written to the log (sequentially) Sometimes to a separate device or section of disk However, the file system may not yet be updated The transactions in the log are asynchronously written to the file system structures When the file system structures are modified, the transaction is removed from the log If the file system crashes, all remaining transactions in the log must still be performed Faster recovery from crash, removes chance of inconsistency of metadata
61
File System Example
62
File System Example NFS (12.8) WAFL (12.9)
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.