Sunday, July 1, 2012

Cara Kerja Sistem File pada Windows (NTFS)

Developer dari Windows telah mengembangkan sebuah sistem file baru, New Technology File System(NTFS), yang dimaksudkan untuk memenuhi kebutuhan yang tinggi untuk workstation dan server.  Contoh aplikasi dengan kebutuhan tinggi meliputi contoh berikut:
-    Aplikasi client server seperti file server, compute server, dan database server
-    Aplikasi ilmiah dan rekayasa yang intensif menggunakan resource
-    Aplikasi jaringan untuk sistem perusahaan besar
Fitur Kunci dari NTFS
NTFS bersifat fleksibel dan terbangun sistem berkas yang kuat, seperti yang akan kita lihat, pada model sistem file sederhana dan elegan. Fitur-fitur NTFS yang paling patut untuk diketahui antara lain:
-    Recoverability(pemulihan): pada daftar utama pada persyaratan untuk sistem file Windows yang baru adalah kemampuan untuk memulihkan diri dari crash(benturan) pada sistem dan failure(kegagalan) pada disk. Dalam kejadian failure tersebut, NTFS bisa membangun kembali volume disk dan mengembalikan volume tersebut pada kondisi yang konsisten. NTFS melakukan hal tersebut dengan menggunakan sebuah model pengolahan transaksi untuk perubahan pada siste file; tiap perubahan signifikan ditangani sebagai sebuah atomic action yaitu apakah sepenuhnya dilakukan atau tidak dilakukan sama sekali. Setiap transaksi yang ada dalam process pada saat terjadi failure langsung dikeluarkan atau diakhiri. Sebagai tambahan, NTFS menggunakan penyimpanan cadangan untuk data sistem file penting, sehingga failure pada disk sector tidak menyebabkan hilangnya data yang menjelaskan struktur dan status dari sistem file.
-    Security(keamanan): NTFS menggunakan model object pada Windows untuk menekankan security. Sebuah file yang terbuka diterapkan sebagai sebuah object file dengan sebuah descriptor(penjelasan) security yang menjelaskan atribut securitynya.  Descriptor security tersebut bertahan sebagai sebuah atribut dari tiap file dalam disk.
-    Disk dan file berukuran besar: NTFS menunjang disk dan file berukuran sangat besar lebih efisien dari pada sistem file lainnya termasuk FAT.
-    Multiple data Stream (Aliran data Jamak): isi dari sebuah file yang actual diperlakukan sebagai sebuah aliran byte. Dalam NTFS, dimungkinkan untuk mengguanakan multi aliran data untuk sebuah file tunggal. Sebuah contoh dari utilitas dari fitur ini adalah fitur ini memungkinkan Windows untuk digunakan secara remote oleh sistem Macintosh untuk menyimpan dan mengambil data. Pada Macintosh tiap file mempunyai dua komponen: data file dan sebuah cabang(fork) resource yang memuat informasi tentang file. NTFS memperlakukan dua komponen ini seperti dua aliran data.
-    Journaling(pencatatan) NTFS menyimpan sebuah catatan dari semua perubahan yang dibuat pada file pada Program volume, seperti pencarian desktop, bisa membaca jurnal untuk mengenali file apa yang telah berubah.
-    Kompresi dan enkripsi: seluruh direktori dan setiap file bisa dikompres dan atau dienkripsi secara transparan.
NTFS Volume and File Structure
NTFS  menggunakan konsep penyimpana disk berikut:
-    Sector : unit penyimpanan fisik terkecil pada disk. Ukuran data dalam byte berupa pangkat 2 dan paling besar selalu 512 byte.
-    Cluster: satu atau lebih sector yang bersambung (contiguous: bersebelahan satu sama lain pada track yang sama). Ukuran cluster dalam sector berupa pangkat 2.
-    Volume: sebuah partisi logic pada disk, yang terdiri atas satu atau lebih cluster dan digunakan oleh sebuah sistem file untuk mengalokasikan ruang. Pada saat kapanpu, sebuah volume terdiri atas sebuah informasi sistem file, sekumpulan file, dan tambahan ruang sisa yang tidak teralokasikan pada volume yang bisa dialokasikan pada file. Sebuah volume bisa menjadi semua atau bagian dari sebuah disk tunggal atau bisa dikembangkan lintas beberapa disk. Jika hardware atau software RAID 5 digunakan, sebuah volume  terdiri atas baris banyak disk terbentang. Ukuran maksimum untuk NTFS adalah 264 byte.
Cluster adalah unit dasar dari alokasi dalam NTFS, yang tidak mengenal sector. Sebagai contoh, misalkan tiap sector 512 byte dan sistem dikonfigurasi dengan dua sector per cluster (satu cluster = 1KB). Jika user memperbaharui file 1600 byte, dua cluster dialokasikan untuk file. Jika user kemudia memperbaharui file hingga 3200 byte, dua cluster lainnya dialokasikan. Cluster yang dialokasikan sebuah file tidak harus bersebelahan, diizinkan untuk membuat fragmen sebuah file pada disk. Saat ini, ukuran maksimum yang ditunjang NTFS adakah 232 cluster, yang setara dengan maximum 248 byte. Sebuah cluster bisa mempunyai paling banyak 216 byte.

Tabel Ukuran Partisi dan ClusterWindows NTFS


Penggunaan cluster untuk alokasi membuat NTFS terbebas dari ukuran sector fisik. Hal ini memungkinkan NTFS untuk menyokong dengan mudah disk yang tidak standar yang tidak mempunyai ukuran sector 512-byte dan menyokong secara efisien ukuran disk yang sangat besar dan ukuran file yang sangat besar dengan menggunakan sebuah ukuran cluster yang lebih besar. Tingka efisiensi tersebut muncul dari fakta bahwa sistem file harus menjaga jejak dari tiap cluster yang dialokasikan pada tiap file; denga ukuran cluster yang lebih besar, terdapat lebih sedikit item untuk dikelola. Tabel 12.5 menunjukkan ukuran cluster default untuk NTFS. Aturan Default tersebut tergantung pada ukuran volume. Ukuran cluster yang digunakan untuk sebuah volume tertentu dibangun dengan NTFS ketika Pengguna meminta sebuah volume untuk diformat.

Layout Volume NTFS
NTFS menggunakan sebuah pendekatan berpengaruh, sederhana namun kuat untuk mengatur informasi pada sebuah volume disk. Setiap unsur pada sebuah volume adalah sebuah file dan setiap file terdiri atas sekumpulan atribut. Bahkan , isi data dari sebuah file diperlakukan seperti sebuah atribut. Dengan struktur sederhana ini, beberapa fungsi general-purpose(tujuan umum) cukup untuk mengatur dan mengelola sebuah sistem file. Gambar 12.19 menunjukkan layout dari sebuah volume NTFS, yang terdiri atas empat daerah.
 
Gambar 12.19 Layout Volume NTFS
Beberapa sector awal pada volume apapun dipakai oleh partisi boot sector , walaupun disebut sebagai sebuah sector namun panjangnya bisa mencapai 16 sector, yang memuat informasi tentang layout volume dan struktur sistem file sebagaimana informasi startup boot dan code. Sector ini diikuti oleh Master File Table(MFT) yang mana berisi informasi tentang semua file dan folder(direktori) pada volume NTFS ini. Esensinya, MFT adala sebuah daftar semua file dan atributnya pada volume NTFS ini, yang diatur seperti sebuah kumpulan baris pada struktur database relasional.
Setelah MFT adalah sebuah daerah yang biasanya panjangnya sekitar 1 Mbyte, yang memuat file system. Diantara file dalam daerah ini terdiri atas beberapa bagian berikut:
-    MFT2 adalah sebuah mirror dari tiga baris pertama dari MFT, digunakan untuk menjamin akses pada MFT dalam kondisi failure terjadi pada sebuah sector.
-    Log file dalah Sebuah daftar langkah transaksi yang digunakan untuk pemulihan NTFS.
-    Cluster Bit Map adalah sebuah perwujudan dari volume tersebut, yang menunjukkan cluster mana yang sedang digunakan.
-    Attribute definition table menjelaskan jenis atribut yang disokong pada volume ini dan menunjukkan apakah jenis-jenis tersebut bisa dipulihkan selama sebuah operasi pemulihan sistem.
Master File Table
Jantung dari sistem file Windows adalah MFT. MFT diatur seperti sebuah tabel degan 1024 byte baris. Tiap baris menjelaskan sebuah file pada volume ini, termasuk MFT itu sendiri, yang mana bisa diperlakukan seperti sebuah file. Jika isi dari sebuah file cukup kecil maka seluruh file diletakkan dalam sebuah baris MFT. Jika tidak, baris untuk file tersebut akan berisi bagian informasi dan sisa dari file diletakkan pada cluster lain yang tersedia pada volume, dengan pointer yang menunjuk pada cluster tersebut dalam baris MFT untuk file tersebut.
Tiap baris dalam MFT terdiri atas sekumpulan atribut yang berjalan untuk menentukan karakteristik file atau folder dan isi file. Tabel 12.6 mendaftar atribut yang bisa ditemukan dalam sebuah baris dengan atribut yang disyaratkan ditandai dengan shading.

Jenis Atribut pada Direktori dan File NTFS Windows(Baris tebal, wajib ada)
  • Standard information (Informasi Standar)   adalah  informasi yang Memuat atribut akses (read-only, read/write, dan lain-lain); time stamp(waktu) termasuk kapan file dibuat atau terakhir diubah dan berapa banya direktori yang merujuk pada file (jumlah link)
  • Attribute list (daftar atribut)   adalah Sebuah daftar atribut yang membuat file dan rujukan file dari record file MFT yang mana tiap atribut diletakkan. Digunakan ketika semua atribut tidak muat pada sebuah record file MFT tunggal.
  • File name (Nama File)  adalah   Sebuah file atau direktori harus mempunyai satu atau lebih nama.
  • Security descriptor (Penjelasan Keamanan)  adalah descriptor yang  Menentukan siapa yang memiliki file dan siapa yang bisa mengaksesnya.
  • Data   adalah  Isi dari file. Sebuah file mempunyai satu default atribut data yang tidak bernama dan mungkin mempunyai satu atau lebih atribut data yang bernama.
  • Index root  adalah  digunakan untuk mengimplementasikan folder.
  • Index allocation   adalah Digunakan untuk mengimplementasikan folder.
  • Volume information   adalah informasi yang berkaitan dengan volume, seperti versi dan nama volume.
  • Bitmap    Menyediakan sebuah pemetaan yang menunjukkan record yang digunakan pada MFT atau folder.

Recoverability(Pemulihan)
NTFS membuat sistem mungkin untuk memulihkan sistem file pada sebuah kondisi yang konsisten termasuk sebuah sistem crash atau failure pada disk. Elemen kunci yang menyokong recoverability adalah berikut:
-    I/O Manager, termasuk NTFS driver, yang menangani fungsi dasar open, close, read, write pada NTFS. Sebagai tambahan, software RAID modul FTDISK bisa dikonfigurasi untuk penggunaan.
-    Servis Log file bertugas menjaga sebuah log(catatan) dari perbahan metadata sistem file pada disk. Log file digunakan untuk memulihkan sebuah volume yang terformat NTFS dalam kasus terjadi failure pada sistem. (misalkan tanpa harus menjalankan utilitas pengecekan sistem file).
-    Cache Manager: bertanggung jawab untuk menyimpan sebagian data(caching) pembacaan dan penulisan file untuk meningkatkan unjuk kerja. Cache manager mengoptimalkan I/O disk.
-    Virtual memory manager: NTFS mengakses file-file yang ter-cached dengan memetakan rujukan file pada rujukan memori virtual dan pembacaan dan penulisan virtual memory.
Sangatlah penting untuk dicatat bahwa prosedur pemulihan yang digunakan oleh NTFS dirancang untuk memulihkan metadata sistem file bukan isi file. Oleh karena itu, pengguna tidak seharusnya menghilangkan sebuah volume atau struktur file atau direktori dari sebuah aplikasi karena crash. Namun, data pengguna tidak dijain oleh sistem file. Pernyediaan pemulihan secara penuh, termasuk data pengguna, akan membuat lebih banyak kerjasama dan fasilitas pemulihan  penggunaan resource.

Gambar 12.20 Komponen NTFS Windows
Esensi dari kemampuan pemulihan NTFS adalah logging(pencatatan). Tiap operasi yang mengubah sistem file diperlakukan sebagai sebuah transaksi. Setiap sub-operasi dari sebuah transaksi yang mengubah struktur data sistem file yang penting disimpan dalam sebuah log file sebelum disimpan dalam volume disk. Dengan menggunakan log, sebuah transaksi yang diselesaikan sebagian pada saat terjadi crash bisa kemudia dilakukan kembali atau dibatalkan ketika sistem pulih kembali.
Dalam istilah umum, ini adalah langkah-langkah yang diambil untuk menjamin kemampuan pemulihan seperti yang dijelaskan dalam beberapa publikasi:
1.    NTFS pertama kali memanggil sistem file log untuk menyimpan logfile dalam cache Transaksi apapun yang apapun yang akan mengubah struktur volume.
2.    NTFS mengubah volume (di dalam cache).
3.    Cache manager memanggil sistem log file untuk mengarahkan cache manager untuk menyimpan log file di disk.
4.    Setelah perbaharuan pada log file disimpan dengan aman pada disk, cache manager menyimpan perubahan volume pada disk.

sumber : Operating System. W. Stallings

No comments:

Post a Comment