Adoc - Pub Sistem File Terdistribusi
Adoc - Pub Sistem File Terdistribusi
Riski Permana (33275)
Eko Suripto Pasinggi` (33301)
SISTEM FILE TERDISTRIBUSI
1. Pendahuluan
Pada bab ini akan digambarkan arsitektur dan implementasi dari dasar sistem file terdistribusi.
Tujuan utama dari sistem file terdistribusi yaitu mencontoh fungsi dari sistem file non‐terdistribusi
pada program klien yang berjalan di komputer‐komputer dalam suatu jaringan. Dimulai dengan
pembahasan mengenai sistem storage terdistribusi dan non‐terdistribusi. Sistem file awalnya
dikembangkan untuk sistem komputer terpusat dan komputer desktop sebagai fasilitas sistem
operasi yang menyediakan antarmuka pemrograman yang bagus dalam storage disk. Setelah itu,
mereka menambahkan fasilitas seperti kontrol akses dan mekanisme file‐locking yang membuatnya
menjadi lebih berguna dalam pengiriman data dan program. Sistem file terdistribusi mendukung
pengiriman informasi dalam bentuk file dan sesumber hardware dalam bentuk storage lewat
intranet. File service yang telah dirancang dengan baik menyediakan akses ke file yang disimpan
pada server dengan performance yang sama atau bahkan lebih baik dari file yang disimpan pada
local disk. Desainnya disesuaikan dengan performance dari jaringan lokal dan oleh karena itulah
menjadi yang paling efektif dalam menyediakan pengiriman storage untuk digunakan di intranet.
Tabel 1. Sistem Storage dan Propertinya
Distributed Consistency
Sharing Persistence Contoh
Cache / replica maintenance
Main memory X X X 1 RAM
File system X √ X 1 UNIX file system
Distributed file system √ √ √ √ Sun NFS
Web √ √ √ X Web server
Distributed shared
√ X √ √ Ivy (Ch. 16)
memory
Remote objects
√ X X 1 CORBA
(RMI/ORB)
CORBA
Persistent object store √ √ X 1 Persistent Object
Service
Persistent distributed
√ √ √ √ PerDiS, Khazana
object store
Tabel 2. Modul Sistem File
Modul direktori Menghubungkan nama file dengan nama ID
Modul file Menghubungkan file ID dengan file yang dimaksud
Modul kontrol akses Meminta ijin atas operasi yang diminta
Modul akses file Membaca atau menulis data atau atribut file
Modul blok Mengakses dan mengalokasikan blok disk
Modul piranti Disk I/O dan buffering
Nanda Riski Permana (33275)
Eko Suripto Pasinggi` (33301)
Tabel 3. Struktur Record Atribut File
Panjang file
Membuat timestamp
Membaca timestamp
Menulis timestamp
Atribut timestamp
Jumlah reference
Pemilik
Tipe file
Daftar kontrol akses
1.1 Karakteristik sistem file
Sistem file bertanggung jawab pada pengorganisasian, penyimpanan, permintaan kembali,
penamaan, sharing, dan proteksi terhadap file. Sistem file menyediakan antarmuka
pemrograman yang mengkarakterisasikan abstraksi file, membebaskan pemrogram dari
kefokusannya pada detail alokasi storage dan layout. File disimpan dalam disk atau media
penyimpanan non‐volatile lain.
Tabel 4. Sistem Operasi File UNIX
filedes = open(name,mode) Membuka file terdahulu menggunakan nama yang diberikan.
Membuat file baru menggunakan nama yang diberikan.
filedes = creat(name,mode) Kedua operasi mengirimkan deskriptor file yang menunjuk pada
file yang telah dibuka. Modenya read, write, atau keduanya.
status = close(filedes) Menutup file filedes yang terbuka.
count = read(filedes,buffer,n) Transfer n byte dari file yang ditunjuk oleh filedes ke buffer.
Transfer n byte dari buffer ke file yang ditunjuk oleh filedes.
count = write(filedes,buffer,n) Kedua operasi mengirimkan jumlah byte yang baru saja
ditransfer dan mengembangkan pointer read‐write.
pos = Memindahkan pointer read‐write ke offset (relatif atau absolut,
1seek(filedes,offset,whence) tergantung pada whence).
Menghapus nama file dari struktur direktori. Jika file tidak
status = unlink(name)
memiliki nama lain, maka akan dihapus.
status = link(name1,name2) Menambah nama baru (nama2) untuk file (nama1)
status = stat(name,buffer) Memasukkan atribut file untuk nama file ke buffer
Nanda Riski Permana (33275)
Eko Suripto Pasinggi` (33301)
1.2 Keperluan sistem file terdistribusi
9 Transpansi
File service biasanya merupakan service yang harus di‐load paling berat dalam sebuah
intranet, sehingga fungsionalitas dan performance‐nya sangat penting.
o Transparansi akses
o Transparansi lokasi
o Transparansi mobilitas
o Transparansi performance
o Transparansi pengukuran
9 Update file konkuren
Perubahan pada sebuah file oleh seorang klien seharusnya tidak menganggu operasi dari
klien lain yang pada saat bersamaan mengakses atau mengubah file yang sama.
9 Replikasi file
Beberapa file service mendukung penuh replikasi, tetapi kebanyakan mendukung
caching file atau portion file secara lokal, bentuk replikasi yang terbatas.
9 Ke‐heterogen‐an sistem operasi dan hardware
Antarmuka service sebaiknya didefinisikan sehingga software klien dan server dapat
diimplementasikan untuk sistem operasi dan komputer yang berbeda.
9 Toleransi kesalahan
Server bisa menjadi stateless, sehingga dapat di‐restart dan service di‐restore kembali
setelah mengalami failure tanpa perlu me‐recover state sebelumnya.
9 Konsistensi
Ketika file‐file direplikasi atau di‐cache pada site yang berbeda, ada delay yang tak bisa
dihindari pada propagasi modifikasi dari satu site ke set lain yang membawa copy, dan
ini bisa menghasilkan beberapa deviasi dari one‐copy semantic.
9 Keamanan
Secara virtual, semua sistem file menyediakan mekanisme kontrol akses berdasarkan
kegunaan dari daftar kontrol akses.
9 Efisiensi
File service terdistribusi sebaiknya menawarkan fasilitas yang paling tidak, sama
bagusnya dengan yang ditemukan pada sistem file konvensional, dan sebaiknya
mendapat level performance yang dapat diperhitungkan.
2. File Service Architecture
Pembagian tanggung jawab antar modul didefinisikan sebagai berikut ini :
• Layanan file flat
Layanan file flat berkonsentrasi pada pengimplementasian operasi dari konten suatu
file.
• Layanan direktori
Layanan direktori menyediakan pemetaan antara nama teks untuk file dan UFID‐nya.
• Modul klien
Modul klien berjalan pada tiap komputer klien, mengintegrasi dan meng‐extend operasi
dari layanan file flat dan layanan direktori dibawah antarmuka pemrograman aplikasi
tunggal yang bisa digunakan oleh program tingkat pengguna di komputer klien.
Nanda Riski Permana (33275)
Eko Suripto Pasinggi` (33301)
• Antarmuka layanan file flat
Merupakan antarmuka RPC yang digunakan oleh modul klien. Tidak digunakan secara
langsung oleh program tingkat pengguna.
Tabel 5. Operasi pelayanan file flat
Read(FileId, i, n) ‐> Data Jika 1 ≤ i ≤ Length(File): membaca sequence sebanyak n item
‐Throws BadPosition dari file yang dimulai dari item i dan memasukkannya ke Data
Write(FileId, i) ‐> Data Jika 1 ≤ i ≤ Length(File)+1: menulis sequence Data ke file, dimulai
‐Throws BadPosition dari item i, meng‐extend file jika diperlukan
Create() ‐> FileId Membuat file baru dengan panjang 0 dan mengirimkan UFID
untuknya
Delete(FileId) Menghapus file dari tempat penyimpanan file
GetAttributes(FileId) ‐> Attr Mengembalikan atribut file untuk file tersebut
SetAttributes(FileId, Attr) Men‐set atribut file (hanya atribut yang berwarna putih pada
tabel 3)
• Kontrol akses
Pada sistem file UNIX, hak askes pengguna bergantung pada mode akses (baca atau
tulis) yang di‐request pada panggilan pembuka dan file hanya dibuka jika pengguna
benar‐benar memiliki hak.
• Antarmuka layanan direktori
Tujuan utama dari layanan direktori yaitu untuk menyediakan layanan untuk
menerjemahkan nama teks ke UFID.
Tabel 6. Operasi pelayanan direktori
Lookup(Dir, Name) ‐> FileId Mengalokasikan nama teks pada direktori dan
‐throws Not Found mengembalikan relevant UFID. Jika Name tidak ada di
direktori, dibuat suatu perkecualian.
AddName(Dir, Name, File) Jika Name tidak ada di direktori, tambahkan (Name, File)
‐throws Name Duplicate ke direktori dan meng‐update record atribut file.
Jika Name sudah ada di direktori: dibuat perkecualian.
UnName(Dir, Name) Jika Name ada di direktori: entry yang mengandung Name
‐throws Not Found dihapus dari direktori.
Jika Name tidak ada di direktori: dibuat perkecualian.
GetNames(Dir, Pattern) ‐> NameSeq Mengembalikan semua nama teks pada direktori yang
cocok dengan reguler expression Pattern.
• Sistem file hierarki
Sistem file hierarki seperti salah satu yang UNIX sediakan terdiri atas banyak direktori
disusun dalam struktur pohon. Tiap direktori membawa nama file dan direktori lain
yang bisa diakses dari situ.
Nanda Riski Permana (33275)
Eko Suripto Pasinggi` (33301)
• Pengelompokan file
Kelompok file merupakan sekumpulan file yang berlokasi pada sebuah server. Sebuah
server bisa membawa beberapa kelompok file, dan kelompok‐kelompok tersebut dapat
dipindah antar server, tetapi sebuah file tidak bisa pindah ke grup lain.
3. Sistem File Sun Network
¾ Sistem file virtual
NFS menyediakan transparansi akses: program pengguna dapat mengakses operasi file
untuk file lokal ataupun remote tanpa perbedaan yang berarti.
¾ Integrasi klien
Modul klien NFS memainkan peran dari modul klien dalam model arsitektur kita, yaitu
menyediakan antarmuka yang tepat guna untuk program aplikasi konvensional.
¾ Kontrol dan autentikasi akses
Tidak seperti sistem file UNIX konvensional, server NFS stateless dan tidak menjaga file
tetap terbuka demi kepentingan klien.
¾ Antarmuka server NFS
Representasi singkat menenai antarmuka RPC disediakan oleh NFS server.
¾ Layanan mount
Mounting dari sub‐tree sistem file remote oleh klien disupport dengan proses layanan
mount yang terpisah yang berjalan pada level pengguna pada tiap komputer server NFS.
¾ Translasi nama path
Sistem file UNIX menerjemahkan dari multi‐part file pathname ke i‐node reference
secara satu demi satu kapanpun panggilan sistem open, creat, ataupun stat.
¾ Automounter
Automounter ditambahkan ke implementasi UNIX dari NFS dengan tujuan untuk mount
direktori remote secara dinamis kapanpun titik mount kosong direferensi oleh klien.
¾ Server caching
Caching pada klien dan komputer server merupakan fitur yang sangat diperlukan dari
implementasi NFS dengan tujuan untuk mendapatkan performance yang sepurna.
¾ Client caching
Modul klien NFS men‐cache hasil operasi dari read, write, getattr, lookup, dan readdir
dengan tujuan mengurangi jumlah permintaan yang masuk ke server. Beberapa langkah
untuk mengurangi traffic panggilan gettatr ke server:
1. setiap kali nilai baru dari Tmserver diterima di client, itu diterapkan ke semua entri
cache yang berasal dari file yang bersangkutan.
2. Nilai attribut saat ini dikirim “piggybacked” bersama dengan hasil dari tiap operasi
pada sebuah file, dan apabila nilai Tmserver telah diubah, client menggunakannya
untuk update entri cache yang berkaitan dengan file tersebut.
3. Algoritma yang adaptif untuk mengeset freshness garis t internal di atas
mengurangi jauh traffic untuk lebih banyak file.
Nanda Riski Permana (33275)
Eko Suripto Pasinggi` (33301)
¾ Optimisasi lain
Prosedur validasi tidak menjamin konsistensi file pada level yang sama yang disediakan
pada sistem UNIX konvensional, karena update terbaru tidak selalu nampak ke client
yang men‐sharing sebuah file.
¾ Mengamankan NFS dengan Kerberos
Dalam standar implementasi NFS yang asli, identitas user termasuk dalam tiap
permintaan/reques dalam form sebuah numerical identifier yang
terenkripsi/tersandikan. NFS tidak melakukan pengecekan lebih jauh untuk autentifikasi
identifier yang disediakan. Hal ini menandakan tingkat kepercayaan yang tinggidalam
integritas client komputer dansoftware oleh NFS, sedangkan sasaran dari Kerberos dan
sistem security authenticity‐based lainnya adalah untuk mengurangi rentang
kepercayaan yang diasumsikan terhadap suatu komponen. Ketika NFS digunakan dalam
suatu lingkungan yang “ter‐kerberos”, NFS dapat menerima reques hanya dari client
yang identitasnya dapat ditampilkan telah dikonfirmasi oleh kerberos. Pada setiap
permintaan pengaksesan file, server NFS mengechek identitas user serta alamat
pengirim dan memberikan akses hanya jika cocok denga yang tersimpan diserver.
¾ Performa
NFS biasanya tidak memaksimalkan performa pinalty dibanding denga akses ke file
yang disimpan dalam local disk. Selain itu masih ada 2 lagi permasalahan:
−frekuensi penggunaan “gettatr call” dalam urutan untuk fetch timestamp dari
server untuk validasi chace.
− Relatif kurang dari segi performa dalam operasi write karena write‐throught
telah digunakan pada server.
¾ NFS summary
Transparansi lokasi. Setiap client menetapkan “file name space” dengan menambahkan
direktori yang di‐mountn dalan remote filesystem ke local name spacenya. File sistem
harus di export oleh node yang memuatnya dan remoted‐mounted oleh client sebelum
dapat diakses oleh proses yang berjalan di client.
Transparansi mobilitas. File sistem mungkin saja dapat dipindahkan diantara server
yang ada, walaupun demikian remote mount table pada setiap client harus diupdate
kemudian secara terpisah untuk meng‐enable client untuk mengakses file sistem
dilokasi yang baru.
Scability. NFS server dapat di bangun untuk menghendel beban yang sangat besar
dengan cara efektif dan cost yang efektif.
File replication. Read‐only file dapat di replikasi di beberapa server NFS, tetapi NFS tidak
dapat mendukung file replikasi dengan update.
Nanda Riski Permana (33275)
Eko Suripto Pasinggi` (33301)
Hardware dan OS yang heterogen. NFS telah diimplementasikan ke hampir semua OS
serta hardware flatform dan juga didukung oleh berbagai filling sistem.
Toleransi kesalahan. Dalam NFS, client mengakses remore file mirip dengan akses file
lokal. Ketika server fails, servis yang disediakan ditunda sampai server direstart, ketika
telah direstart, client akan melanjutkan proses dari titik terjadinya kesalahan.
Keamanan. Integrasi NFS dengan kerberos adalah langkah utama yang dilakukan
sebagai kebutuhan keamanan yang hanya muncul dari koneksi banyak intranet ke
internet.
4. Andrew File System
AFS menyediakan akses transparan ke remote shared file untuk program UNIX yang berjalan di
workstation. Akses ke AFS file menggunakan file UNIX normal primitif, meng‐enable program
UNIX yang ada to aksesfile tanpa modifikasi atau rekompilasi.
Perbedaan mencolok antara NFS dan AFS terletak pada desain dan implementasinya. AFS
didesain dengan performa baik untuk jumlah penggunak aktif yang lebih besar daripada didtem
file terdistribusi lainnya. AFS memiliki dua karakteristik desain yang luar biasa:
− whole‐file serving : seluruh isi direktori dan file di transmisikan ke komputer client oleh
server AFS.
− Whole‐file caching : setiap kali copy dari sebuah file atau chunk telah ditransfer ke
komputer client, maka akan disimpan di cache di local disk. Cache tersebut
mengandung ratusan file yang telah digunakan oleh komputer tersebut dan bersifat
permanen.
Skenario yang mengilustrasikan operasi AFS:
− ketikaproses user di komputer client menyetakan sebuah open sistem call pada sebuag
file yang merupakan shared file dan tidak ada copy dari file tersebut pada local chace,
server memuat dimana file diletakkan dan dikirim poermintaan untuk copy dari file
tersebut
− copian tersebut disimpan di local UNIX file sistem pada komputer client.
− Subsequent read, write dan operasi lainnya pada file oleh proses pada komputer client
diterapkan pada copian tersebut.
− Ketika proses di komputer client menyatakan sebuah close system call, jika isi copian
tersebut telah terupdate, maka akan dikirim kembali nke server. Server akan meng‐
update isi dan timestamp file. Dan kop[ian pada local disk akan tetap, mungkin saja
akan digunakan lagi pada komputer tersebut.
4.1 Implementasi
AFS mengimplementasikan 2 komponen software yang disebut Vice dan Venus. Vice adalah
nama untuk software yang berjalan di server dan venus untuk yang berjalan di client.
Nanda Riski Permana (33275)
Eko Suripto Pasinggi` (33301)
File yang tersedia bagi proses di workstation dapat berasal dari local maupun shared file.
Local file di hendel sebagai normal UNIX file. File tersebut disimpan di disk worksstation dan
hanya dapat digunakan oleh proses local. Shared file tersimpan di server dan copiannya
dicache pada local disk workstation.
Kernel UNIX ditiap workstation dan server adalah modifikasi dari BSD UNIX. Desain
modifikasi ini untuk menangkap open, close dan file sistem call lainnya ketika merujuk pada
shared file dan melewatkannya ke proses pada venus pda komputer client/worstation.
Sebuah partisi pada local disk pada tiap workstation digunakan sebagai cache, yang memuat
copian dari shared file. Venus akan mengatur penggunaan cache ini, membuang file yang
paling tidak dibutuhkan bisa ada file yang akan diterima dari server sedangkan cache sudah
full.
Implementasi dari file sistem call pada AFS
User process UNIX kernel Venus Net Vice
open(FileName, If FileName refers to a
mode) file in shared file space,
pass the request to Check list of files in
local cache. If not
Venus. present or there is no
valid callback promise,
send a request for the
file to the Vice server
that is custodian of the
volume containing the Transfer a copy of the
file. file and a callback
promiseto the
workstation. Log the
Place the copy of the callback promise.
file in the local file
Open the local file and system, enter its local
return the file name in the local cache
descriptor to the list and return the local
application. name to UNIX.
read(FileDescriptor, Perform a normal
Buffer, length) UNIX read operation
on the local copy.
write(FileDescriptor, Perform a normal
Buffer, length) UNIX write operation
on the local copy.
close(FileDescriptor) Close the local copy
and notify Venus that
the file has been closed. If the local copy has
been changed, send a
Replace the file
copy to the Vice server
contents and send a
that is the custodian of
the file. callback to all other
clients holdingcallback
promiseson the file.
4.2 Aspek Lain Dari AFS
Modifikasi kernel UNIX. Kernel UNIX dalam AFS dimodifikasi sehingga dapat menangani
operasi file selain yang dapat ditangani oleh convensional UNIX.
Nanda Riski Permana (33275)
Eko Suripto Pasinggi` (33301)
Lokasi database. Tiap server mengandung kopian dari sebuah lokasi database yang
direplikasi yang memberikan mapping dari volume name ke server.
Thread. Implementasi dari vice dan venus menggunakan sebuah non‐pre‐emptive thread
pakege untuk meng‐enable permintaan untuk diproses bersamaan pada beberapa client dan
server. Pada client, table menggambarkan isi dari cache dan volume database pada memory
yang dishare dengan thread venus.
Read‐only replicas. Volume yang mengandung file‐file yang sering dibaca namun jarang
diubah, seperti UNIX/bin, dapat direplikasi sebagai read‐only volume pada beberapa server.
Bulk transfer. AFS mentransfer file antara client dan server dalam paket‐paket 64‐kilobyte.
Penggunaan ukuran paket dalam ukuran yang besar adalah sebuah bantuan penting untuk
performa, meminimalisir efek dari network latncy. Hal ini dapat mengoptimalkan
pengguanaan jaringan.
Partial file caching. Kebutuhan untuk mentransfer seluruh isi file ke client bahkan ketika
permintaan aplikasi adalah hanya membaca sebagian kecil dari file adalah suatu
ketidakefisienan penggunaan resource. AFS versi 3 telah menghilangkan requerment
tersebut, mengizinkan data ditransfer dan di cache dalam blok 64‐kbyte dan tetap
mempertahankan konsistensi semantik dan fitur lain dari protokol AFS.
Performa. Tujuan utama dari AFS adalah pada skalabilitas, jadi performa dengan jumlah user
yang banyak adalah perhatian khusus.
Wide‐area support. AFS versi 3 telah mendukung multiple administratif cell, masing masing
dengan server, client, system administrator dan user masing‐masing. Tiap cell adalah
lingkungan yang autonomos, tetapi penggabungan cell‐cell dapat dapat bekerjasama dalam
menyajikan user secara seragam, seamless file name space.