File Service
1. File adalah kumpulan informasi yang berhubungan dan tersimpan dalam secondary storage.
Tipe File :
• Data (character, numeric,
binary)
•
Program
Atribut File
• Nama yaitu menentukan nama file yang dimaksud
• Tipe
• Lokasi, yaitu merupakan pointer atau penunjuk ke device dan lokasi
file pada device tersebut berada
• Ukuran, yaitu ukuran file pada saat itu, baik dalam byte, huruf
ataupun blok
• Waktu pembuatan dan identitas pembuat, yaitu menentukan kapan file
terakhir dimodifikasi
• Proteksi, berisi informasi mengenai kontrol akses, misalnya siapa
saja yang boleh membaca, menulis dan mengeksekusi file
Operasi pada File
• Membuat ( Create )
• Menulis ( Write )
• Membaca ( Read )
• Menghapus
• Reposition dalam file
• Menghapus dengan menyisakan atribut ( Truncate )
Contoh Tipe File
2. Layanan File (File Service)
File service adalah suatu
perincian atau pelayanan dari file sistem yang ditawarkan pada komputer
client.
File System merupakan struktur logika yang digunakan untuk mengendalikan
akses terhadap data yang ada pada disk. File System terdiri dari dua bagian:
• Kumpulan file yang masing-masingnya
menyimpan data-data yang
berhubungan
• Struktur direktori yang mengorganisasi dan menyediakan informasi
mengenai seluruh file dalam system
File
System merupakan interface yang menghubungkan sistem operasi dengan disk.
Ketika program aplikasi yang sedang dijalankan memerlukan pembacaan file dari
hard disk, sistem operasi meminta file system untuk membuka file yang
diinginkan. File system harus mengetahui lokasi penyimpanan file yang dibaca.
Setelah menemukan lokasinya, file system membaca data yang ada dan mengirimkan
data tersebut pada sistem operasi.
Karakteristik File System
File system bertugas dalam organisasi, storage, retrieval
(memperbaiki), penamaan, sharing, dan proteksi terhadap files. File dikirim ke
dalam disk atau non-volatile storage media lainnya. File meliputi data dan
atribut. File system didesain untuk
menyimpan dan mengatur banyak dan besar file dengan fasilitas untuk membuat, memberi nama dan menghapus file. File system juga bertanggung
jawab untuk pengontrolan dari akses file, akses terbatas ke file oleh user yang
berhak dan tipe-tipe dari akses yang diminta.
Struktur File System
Kebutuhan File System Terdistribusi
1. Transparency
Keseimbangan antara flesibilitas
dan skalabilitas terhadap kompleksitas dan performansi dalam desainnya. Client
tidak menyadari adanya lingkungan terdistribusi. Transparency dalam File System
Terdistribusi:
-Access Transparency
-Location Transparency
-Concurrency Transparency
-Failure Transparency
-Heterogenity
-Scalability
-Replication Transparency
-Migration Transparency
2. Concurrent File Updates
Perbaruan file serentak bersamaan
antara file server dan client.
3. File Replication
Replikasi dapat untuk share load,
untuk mempertinggi fault tolerance, dan untuk mempertinggi scalability.
4. Hardware dan Operating Systems
Heterogenitas atau kesamaan adalah
kebutuhan yang sangat penting dalam melayani keterbukaan.
5. Fault Tolerance
Service harus terus menerus
beroperasi walaupun terjadi kesalahan atau error pada client ataupun server
6. Consistency 7. Security
Semua sistem melayani mekanisme
akses kontrol berbasiskan daftar akses kontrol (access control lists)
8. Efficiency
Sistem harus dapat melayani
perbandingan performance apakah lebih baik atau tidak.
Pilihan Desain dalam File Service
1. Stateful
–
server
menyimpan informasi tentang file yang terbuka, dan posisi file sekarang
(current position).
–
Open (dibuka)
sebelum access dan kemudian ditutup
–
Menyediakan
file locks
2. Stateless
–
server tidak
menyimpan state informasi
–
operasi file
harus mengandung semua yang diperlukan (memuat pesan yang lengkap).
–
Dapat dengan
mudah di-recovery apabila terjadi client ataupun server crach
–
Membutuhkan
extra lock server untuk mempertahankan state
Arsitektur File Service
•
Layanan Flat
File (Flat file service)
–
Beroperasi
pada isi file
–
Unique File
Identifier (UFID)
•
Layanan
Directori (Directory Service)
–
Menyediakan
pemetaan antara nama sebagai teks ke UFIDs
•
Modul
Client
–
Menyediakan
aplikasi untuk mengakses layanan file jarak jauh secara transparan
–
Menyimpan
status (state): open files, positions
–
Mengetahui
lokasi jaringan dari flat file dan directory server
Contoh File System NFS (Network File System)
Network File
System (NFS) merupakan sebuah protokol yang dikembangkan oleh Sun Microsystem
pada tahun 1984 dan NFS didefinisikan dalam RFC 1094, 1813 dan 3530 sebagai
“DFS” yang mengijikan sebuah komputer untuk mengakses file melalui network
serasa akses file di disk local. NFS merupakan protokol yang sangat mendukung
dalam pengaplikasian suatu file system yang terdistribusi.
Tujuan dari NFS adalah untuk
memungkinkan terjadinya pertukaran sistem berkas secara transparan antara
mesin-mesin bebas tersebut.
NFS didesain agar dapat beroperasi
di lingkungan ataupun jaringan yang heterogen yang meliputi mesin, platform,
sistem operasi, dan arsitektur jaringan. Ketidaktergantungan ini didapat dari
penggunaan RPC primitif yang dibangun diatas protokol External Data Representation (XDR).
Protokol NFS
NFS umumnya menggunakan protokol Remote Procedure Call (RPC) yang
berjalan di atas UDP dan membuka port
UDP dengan port number 2049 untuk
komunikasi antara client dan server di dalam jaringan. Client NFS selanjutnya akan mengimpor
sistem berkas remote dari server NFS, sementara server NFS mengekspor sistem berkas
lokal kepada client.
Mesin-mesin yang menjalankan
perangkat lunak NFS client dapat
saling berhubungan dengan perangkat lunak NFS server untuk melakukan perintah operasi tertentu dengan menggunakan
request RPC. Adapun operasi-operasi
yang didukung oleh NFS adalah sebagai berikut:
a. Mencari berkas di dalam direktori.
b. Membaca kumpulan direktori.
c. Memanipulasi link dan direktori.
d. Mengakses atribut berkas.
e. Membaca dan menulis berkas.
Perlu diketahui bahwa server NFS
bersifat stateless , yang artinya
setiap request harus mengandung
argumen yang penuh dan jelas sebab server NFS tidak menyimpan sejarah informasi
request . Data yang dimodifikasi
harus di commit ke server sebelum hasilnya di kembalikan ke
client . NFS protokol tidak
menyediakan mekanisme concurrency-control.
Beberapa manfaat NFS diantaranya ialah
–
Lokal
workstations menggunakan ruang disk lebih kecil
–
Pemakai tidak
harus membagi direktori home pada setiap mesin di jaringan
–
Direktori
home dapat di set up pada NFS server dan tersedia melalui jaringan
–
Device
penyimpanan seperti floppy disk, CDROM drives, dll dapat digunakan oleh mesin
lainnya
Kerugian /Kelemahan NFS
–
Desain awal
hanya untuk jaringan yang lokal dan tertutup
–
Security
–
Congestion
(Traffic yang tinggi bisa menyebabkan akses lambat)
AFS (Andrew File System)
Ada
persamaan dan perbedaan antara AFS dan NFS.
Persamaan:
AFS sama seperti NFS menyediakan
akses menuju shared files secara transaparant. Akses menuju ke file AFS adalah
melalui normal unix file primitives (tanpa modifikasi atau rekompilasi). AFS
kompatibel dengan NFS.
Perbedaan:
Secara desain dan implementasi,
AFS berbeda dengan NFS, perbedaan utama, NFS didesain untuk dapat menangani
active users dengan jumlah yang lebih banyak daripada distributed file systems
yang lain. Kunci AFS untuk menangani jumlah active users yang besar terletak
pada kemampuan caching seluruh files pada client node.
Karakter AFS
AFS
mempunyai dua karakter desain yang unik :
•Whole file serving
Seluruh konten dari direktori dan
file dikirim kepada komputer client oleh AFS servers (di AFS3, file yang
ukurannya lebih dari 64kbytes ditransfer dalam 64kbyte chunks).
•Whole file caching
Copy dari sebuah file chunk yang
telah ditransfer di komputer client disimpan dalam cache pada local disk.Cache
disini mengandung ratusan file yang sering dipakai di dalam sebuah komputer.
3. Access Control
ƒ Dalam sistem file UNIX
–
hak akses
diperiksa berdasarkan mode akses (read,write,execute)
ketika membuka file
–
identitas
user diperiksa ketika login
ƒ Dalam sistem file terdistribusi
–
hak akses
harus diperiksa pada server
–RPC unprotected
–
dimungkinkan melakukan
pemalsuan identitas, tapi ini merupakan resiko keamanan
–
user ID
biasanya dikirim dengan setiap request
–
stateless
4. Layanan Direktori
Tugas utama dari layanan direktori adalah memetakan nama teks ke
UFIDs Operasi pada layanan direktori

Lookup(Dir, Name) -> FileId
|
Locates
the text name in the directory and returns the
|
—
throw NotFound
|
relevant
UFID. If Name is not in the
directory, throws an exception
|
AddName(Dir, Name, File)
|
If
Name is not in the directory, adds
(Name, File) to the
|
— throw NameDuplicate
|
directory
and updates the file’s attribute record.
If Name is already in the directory:
throws an exception.
|
UnName(Dir, Name)
|
If Name is in the directory: the entry
containing Name is
|
— throw NotFound
|
removed
from the directory.
If
Name is not in the directory:
throws an exception.
|
GetNames(Dir, Pattern) ->
NameSeq
|
Returns all
the text names in the directory that match the
|
regular
expression Pattern.
