Sistem File Terdistribusi
Pengertian Sistem Terdistribusi Sistem terdistribusi adalah koleksi prosesor yang terhubung dalam jaringan serta tidak berbagi memori, yaitu memiliki memori masing-masing
Alasan untuk sistem terdistribus Distribusi fungsi : komputer memiliki kemampuan fungsi yang berbeda-beda – client/server – Host/terminal – Data gathering / data processing Distribusi beban/keseimbangan : pemberian tugas ke prosesor secukupnya sehingga unjuk kerja seluruh sistem teroptimasi. Sifat terdistribusi mencegah terjadinya application domain, e.g. – cash register dan sistem persediaan untuk supermarket, – Komputer pendukung collaborative work
Alasan untuk sistem terdistribusi(cont..) Replikasi kekuatan pemrosesan : independent processors bekerja untuk pekerjaan yang sama – Sistem terdistribusi terdiri dari kumpulan mikrokomputer yang memiliki kekuatan pemrosesan yang tidak dapat dicapai oleh superkomputer Pemisahan fisik : sistem yang menggantungkan pada fakta bahwa komputer secara fisik terpisah (e.g., untuk mencapai kehandalan). Ekonomis : kumpulan mikroprosesor menawarkan harga/unjuk kerja yang lebih baik dari pada mainframe
Keuntungan Sistem Terdistribusi
Resource sharing. Suatu komputer bisa mengakses sumber daya yang ada di komputer lain. Misalkan, komputer A bisa mengakses database yang ada di komputer B. Sebaliknya, komputer B bisa mencetak dokumen dengan menggunakan printer yang terpasang di komputer A. Computation speedup. Jika suatu proses komputasi bisa dipecah-pecah menjadi sejumlah bagian yang berjalan secara konkuren, dalam sistem terdistribusi bagian-bagian komputasi ini bisa terbagi dalam komputerkomputer yang ada. Inilah yang menimbulkan adanya speedup. Lebih jauh lagi, bisa terjadi load sharing, yaitu jika suatu komputer mengerjakan tugas terlalu banyak, sebagian dari tugasnya itu bisa dialihkan ke komputer lain.
Keuntungan Sistem Terdistribusi (cont..) Reliability. Jika satu komputer mengalami kegagalan, maka secara keseluruhan sistem masih tetap dapat berjalan. Contoh: jika sistem terdiri atas komputer-komputer yang tersusun secara independen, kegagalan salah satu komputer seharusnya tidak mempengaruhi keseluruhan sistem. Tapi jika sistem terdiri atas komputer-komputer yang mengatur tugas spesifik seperti terminal I/O atau filesystem, maka kerusakan satu komputer saja bisa menyebabkan keseluruhan sistem mati. Tentunya, perlu mekanisme untuk mendeteksi kegagalan seperti ini, sehingga jika ada komputer yang rusak, sumber daya yang ada padanya tidak digunakan dan sebagai gantinya komputer yang lain bisa menangani itu.
Keuntungan Sistem terdistribusi (cont…) Communication. Karena satu komputer terhubung dengan komputer-komputer lainya, sangat dimungkinkan terjadi pertukaran informasi. Dengan adanya message passing, fungsi fungsi yang ada di suatu komputer misal file transfer, login, web browsing, bisa diperluas dalam sistem terdistribusi. Ini menyebabkan fungsifungsi ini bisa diakses secara jarak jauh. Misalnya, sejumlah orang yang terlibat dalam satu proyek, walaupun terpisah secara geografis, tetap bisa berkolaborasi dalam proyek itu. Dalam dunia industri, terjadi downsizing. Downsizing adalah mengganti mainframe dengan komputer atau workstation yang terhubung via jaringan. Dengan itu, mereka bisa mendapatkan fungsionalitas yang sesuai dengan biaya, kemudahan mengatur sumber daya, kemudahan maintenance/perawatan, dan lain-lain.
Kelemahan Sistem Terdistribusi Jika tidak direncanakan dengan tepat, sistem terdistribusi bisa
menurunkan proses komputasi, misalnya jika kegagalan salah satu komputer mempengaruhi komputer-komputer yang lain.
Troubleshooting menjadi lebih rumit, karena bisa memerlukan koneksi ke komputer lain yang terhubung secara remote, atau menganalisis komunikasi antar komputer. Tidak semua proses komputasi cocok untuk dilakukan dalam sistem terdistribusi, karena besarnya keperluan komunikasi dan sinkronisasi antar komputer. Jika bandwith, latency, atau kebutuhan komunikasi terlalu besar, maka performanya bisa menjadi lebih jelek daripada sistem yang tidak terdistribusi sama sekali. Karena itu, lebih baik komputasi dilakukan di sistem yang tidak terdistribusi.
Contoh DS: Internet Jaringan Internet : Mengimplementasikan Protokol Internet
Contoh DS(cont…):Intranet Jaringan yang teradministrasi secara lokal, biasanya proprietary Terhubung ke internet (melalui firewall) dan Menyediakan layanan internal dan eksternal
Contoh DS(cont…):
Mobile dan Sistem
Komputasi Ubiquitous Sistem telepon Cellular (e.g., GSM) – Resources dishare : frekuensi radio, waktu transmisi dalam satu frekuensi, bergerak Komputer laptop, ubiquitous computin,handheld devices, PDA, etc
Contoh DS(cont…) : WWW
Sistem File Terdistribusi Latar Belakang Perlu adanya sharing informasi/resource Informasi/resource mungkin berada pada komputer lain dan dalam format lain (konteks: file system) Pengguna tidak perlu tahu file system yang dipakai pada sistem lain Diperlukan service yang memungkinkan akses file remote seperti pada HD lokal pada jaringan intranet/Internet
Sistem File Terdistribusi Layanan File Terdistribusi 1.Layanan Dasar – tempat penyimpanan tetap untuk data dan program – operasi terhadap file (create, open, read,…) – multiple remote clients (dalam intranet) – file sharing – menggunakan semantic one-copy update umum, melalui RPC 2. Perkembangan baru – persistent object stores (storage of objects) 3. Persistent Java, Corba, … – replikasi, caching keseluruhan file –multimedia terdistribusi (contoh: file server Tiger video)
Karakteristik File Setiap file punya data dan attribute (meta data) – Nama file – Ukuran file – Read/Write/Creation timestamp – Pemilik/ACL.... File diatur dan diorganisasi dalam direktori Direktori adalah sebuah file dengan jenis khusus yang melakukan mapping dari nama teks ke sebuah identifier file internal
Sistem Terdistribusi (cont…) File attributes
Sistem File Terdistribusi
Kebutuhan Sistem File Terdistribusi Transparency (clients tidak perlu tahu terhadap bentuk/mekanisme distribusi) – access transparency (client tidak perlu tahu bahwa file adalah terdistribusi, karena memiliki interface yang sama untuk file local/remote) – location transparency (name space file yang uniform terhadap client workstation) – mobility transparency (files dapat dipindahkan dari satu server ke lainnya tanpa berdampak pada client) – performance transparency (client performance tidak berdampak pada load (layanan) – scaling transparency (kemungkinan perluasan apabila jumlah client bertambah)
Kebutuhan Sistem File Terdistribusi(cont…) Concurrent file updates (perubahan yang dilakukan oleh satu client tidak berdampak pada yang lainnya) File replication (untuk load sharing, fault-tolerance) Heterogeneity (interface platform-independent) Fault-tolerance (tetap beroperasi secara kontinu meskipun terjadi kesalahan pada client ataupun server) Consistency (one-copy-update semantics atau slight variations) Security (access control) Efficiency (unjuk kerja yang comparable terhadap sistem file conventional)
Opsi Perancangan Layanan File Stateful – server menyimpan informasi tentang file yang open, posisi sekarang (current position) dan file locks – open (dibuka) sebelum access dan kemudian ditutup – performa yang lebih baik – pesan yang lebih pendek, dimungkinkan untuk read-ahead – server failure - kehilangan state – client failure - tables fill up – menyediakan file locks Stateless – server tidak menyimpan state informasi – file operations idempotent, harus mengandung semua yang diperlukan (longer message) – perancangan file server yang lebih simpel – dapat dengan mudah di-recovery apabila client ataupun server crash – locking membutuhkan extra lock server untuk mempertahankan
RPC (Remote Procedure Call) Prinsip RPC antara Client dan Server
Steps of RPC 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Client procedure calls client stub in normal way Client stub builds message, calls local OS Client's OS sends message to remote OS Remote OS gives message to server stub Server stub unpacks parameters, calls server Server does work, returns result to the stub Server stub packs it in message, calls local OS Server's OS sends message to client's OS Client's OS gives message to client stub Stub unpacks result, returns to client
Arsitektur File Server Components (untuk openness): • Layanan Flat file – operations pada file contents – unique file identifiers (UFIDs) – penterjemahan dari UFIDs ke lokasi file • Layanan Directory – pemetaan antara nama sbg text ke UFIDs • Modul Client – API untuk file access, satu untuk setiap computer client – menyimpan status (state): open files, positions – mengetahui lokasi jaringan dari flat file dan directory server
Layanan Flat file melalui RPC interface • Digunakan oleh modul client, bukan user programs – FileId (UFID) mendefinisikan file secara tunggal – mengirim pesan invalid jika file tidak ada atau akses yang tidak wajar. – Read/Write; Create/Delete; Get/SetAttributes • No open/close! (unlike UNIX) – akses secara langsung dan segera dengan FileId – Read/Write mengidentifikasi saat dimulai • Meningkatkan fault-tolerance – operations idempotent kecuali Create, dapat diulang (semantic atleast-once RPC) – stateless service
Access control • Dalam sistem file UNIX – hak akses diperiksa berdasarkan mode akses (read,write, execute) ketika open – identitas user diperikasi ketika login, • Dalam sistem terdistribusi – hak akses harus diperiksa pada server • RPC unprotected • dimungkinkan melakukan forging identity, tetapi merupakan risiko keamanan – user id biasanya dikirim bersamaan dengan setiap request (e.g. Sun NFS) – stateless
Struktur Directory • Hierarchical – tree-like, pathnames dari root – (di UNIX) dapat digunakan beberapa nama untuk setiap file (link operation) • Sistem penamaan (Naming system) – diimplementasi oleh modul client, menggunakan directory service – root memiliki well-known UFID – melokasikan file mengikuti path dari root
File Names Text name (=directory pathname+file name) • hostname: local name – not mobility transparent • struktur nama uniform (name space yang sama untuk semua clients) • remote mount (e.g. Sun NFS) – remote directory dimasukkan ke dalam local directory – relies on clients maintaining consistent naming conventions across all clients • all clients harus implement local tree yang sama • harus melakukan mount remote directory ke local directory yang sama
Implementasi DFS
Implementasi NFS dengan menggunakan Sun RPC (Sun Remote Procedure Call) NFS Client 'call' fungsi pada NFS Server Spesifikasi NFS mendefinisikan remoteinterface yang bisa dipakai oleh client Pengiriman data bisa menggunakan TCP/UDP