Anda di halaman 1dari 9

Nanda 

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  akses.  Modul  client  NFS  menyediakan  antarmuka  pemrograman  aplikasi 


ke proses lokal yang identik dengan interface OS lokal. 

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.  

 
 
 

Anda mungkin juga menyukai