28 April 2017

NFS (Network File System)

NFS pada mulanya dikembangkan oleh Sun Microsystem (1984). Kini NFS yang menggunakan RPC (Remote Procedure Call) diterapkan pada lebih dari 100 jenis komputer dan diperkirakan dioperasikan pada lebih dari 100000 komputer.
NFS memungkinkan sebuah komputer mengakses sistem berkas komputer lain dan memperlakukan sistem berkas tersebut seperti bagiannya sendiri. Fasilitas ini juga didapatkan pada sistem DOS seperti Netware dari Novell. Ada sedikit perbedaan penerapan NFS dibandingkan sistem lainnya. Sejak awal, NFS dirancang untuk beroperasi tanpa membedakan jenis sistem operasi dan jenis perangkat keras dari komputer. NFS pertama kalinya dikembangkan pada sistem UNIX hingga menjadi sangat populer dikalangan pemakai UNIX.
Komputer yang memanfaatkan fasilitas NFS disebut client (pelanggan), sedangkan pemberi jasanya disebut server (pelayan). Antara client dan server digunakan bakuan / mekanisme RPC. Sebuah permintaan local client dibakukan melalui RPC. Pada sisi server, RPC tersebut diterjemahkan sesuai dengan implementasi pada sistem server. Semua RPC berlangsung secara stateless yaitu status pada RPC tidak mempengaruhi status sebelumnya ataupun status yang akan datang.

Pengertian NFS (Nework File System)

NFS (Nework File System) merupakan pelayanan akses file-file jarak jauh yang memungkinkan klien-klien untuk mengakses file-file pada komputer jaringan jarak jauh walaupun file tersebut disimpan secara lokal.
NFS adalah implementasi dan spesifikasi dari sistem perangkat lunak untuk mengakses files remote melalui LAN. Bagian-bagian NFS yaitu :
· Overview
· Mount Protocol
· NFS Protocol
· Path-Name Translation
· Remote Operations
a. Overview
NFS memperlihatkan suatu set interconnected workstations sebagai suatu set dari mesin yang berdiri sendiri dengan file system yang berdiri sendiri. Tujuannya untuk mengikuti beberapa tingkatan dari pembagian antara file-file sistem dengan cara yang transparan.

b. Mount Protocol
Mount Protocol membuat hubungan inisial yanglogic antara suatu server dan pengguna.

c. NFS Protocol
NFS Protocol menyediakan suatu set dari RPCs untuk operasi remote file. Prosedur mendukung operasi-operasi ini:
· Mencari file di dalam direktori
· Membaca suatu set direktori entri
· Memanipulasi links dan direktori
· Mengakses atribut file
· Membaca dan menulis files

Protokol NFS
Jika Anda menggunakan UNIX workstation, Anda akan memerlukan NFS untuk menghubungkan File system-files system yang ada. Sistem Solaris 2.5 mendukung dua versi protokol NFS. Versi 2 NFS di implementasikan pada tahun 1984 dan direlease pada SunOS 2.0. Versi 3 dibuat tahun 1992 ketika beberapa grup bergabung untuk membuatnya, dan diumumkan pada tahun 1994 pada konferensi USENIX di Boston.
Versi 3 ini masih baru untuk beberapa mesin, Jadi pilihannya tergantung pada pemakai, jika tidak dapat menggunakan Versi 3, maka sebagai default digunakan versi 2.
Ide dasar NFS cukup sederhana. Ketika kita menambahkan suatu disk pada sistem UNIX, maka kita menggabungkan disk itu pada file system yang sudah ada dengan menggunakanperintah mount. Disk yang baru membentuk cabang baru dari tiga struktur. Kita dapat berpindah ke dalamnya dengan perintah cd dan mengakses file-filenya. Dengan NFS Kita melakukan hal yang sama. Kita sebagai client, memberikan perintah mount  yang dikirimkan ke remote server, dan bagian dari struktur file system menggabungkan lokal file system. Server sekarang mempunyai daftar mesin yang diijinkan mengakses file system tersebut.
Pada SunOS, daftar tersebut terdapat pada file yang bernama /etc/exports. Pada Solaris, daftar dikontrol  oleh perintah share, yang dapat ditemukan pada /etc/dfs/dfstab. Ketika proses pada client mengakses remote file dengan membaca system, sebagai contoh, maka panggilan sistem tersebut akan dikembalikan ke network dengan menggunakna protokol NFS. Server mengecek validitas dari request, dan menampilkan operasi yang diinginkan.
Sekali kita telah me-mount remote file system pada satu struktur file, kapanpun kita menginginkan file pada tempat kita melakukan mount,  sytem akan menerjemahkan perintah itu ke dalam NFS request dan mengirimkan ke network dari server. Server akan mengeksekusi permintaan tersebut dan akan mengembalikan kepada kernel. Sebagai balasannya, kernel akan memberikan resume ke proses jika permintaan itu dilayani oleh local disk.
NFS protokol mengasumsikan bahwa server tidak menahan kondisi apapun dari client. Sebagai contoh, UNIX yang normal membaca panggilan sistem mengingan seberapa jauh proses yang berbeda harus membaca suatu file yang ditulis. Panggilan yang berurut dapat digunakan suatu file dari awal hingga akhir.  NFS akan memberikan “ dimana kita sekarang “ pada satu client, dan ketika menscan suatu file, ini merupakan kerjaan client untuk mengirimkan perintah-perintah membaca dan masing-masingnya berisi posisi dan ukuran informasi.
Jadi dalam hal ini server tidak cerdas. Ia tidak tahu menahu tentang apa-apa ynag dilakukan user. Client melakukan beberapa hal untuk efisiensi, yaitu : mengingan posisi, dan menyimpan informasi sehingga tidak harus mengulang dengan menelusuri jaringan kembali.
Tujuan awal dari desain NFS serndiri adalah agar remote file system tidak harus terikat pada UNIX, sehingga tidak kaku untuk menggunakan UNIX file system. Maka tujuan untuk membuat suatu system yang  dapat mensupport berbagai tipe file sisyem yang ada telah terlaksana.
NFS server stateless. Karena secara sedern\hana ia mengirimkan permintaan transaksi dan melakukan proses. Setiap permintaan adalah kejadian yang independent dan secara teori, pengapdate-an file dapat terjadi dalam berbagai cara. Statelessness merupakan criteria desain asli dari NFS yang dapat mencegah dari crash recovery. Ketika server crash, client cukup menunggu sampai server kembali jalan dan meneruskan operasi.

NFS versi 3
Masalah terbesar dari NFS versi 2 adalah kebutuhan server NFS untuk melakukan penulisan secara sinkron. Ketika satu client memberikan permintaan untuk menulis, ia mengirimkan satu RPC yang mengatakan “ Tulis data ini pada posisi ini dan ini pada file. Server tidak dapat membalas RPC ini dengan menjawab “dane” sampai data benar-benar telah tersimpan pada media penyimpanan yang aman, antara lain Hardisk ataupun magnetik disk.  Jika dikatakan “OK” ketika ia masih ada di memory dan tiba-tiba sistem crash. sebelum sempat menulisnya ke dalam media penyimpanan, maka kemudian file berada dalam kondisi yang tidak konsisten karena client mengira bahwa ia menulis data yang sebenarnya tidak ada pada disk. Server harus melakukan penulisan  dan tidak mengembalikan hasilnya sampai data benar-benar telah tertulis pada disk. Client harus menunggu sampai operasi write telah selesai.
Hal ini menghasilkan bottle neck  untuk pengimplementasian NFS. Beberapa sistem memberikan kondisi tidak aman untuk mode menulis dimana data ditahan pada memori server dan harapan client untuk tidak sering terjadi crash.
Saat ini data ditulis pada disk. Sehingga jika sistem crash sistem akan menuliskan data yang belum senpat di save sebelum melakukan bootstraping.
Versi 3 meningkatkan performansi dengan mengijinkan client untuk memilih transaksi asyncronous dan kemudian mengirimkan perintah yang mengatakan “ ok dan tulis data pada disk”. Operasinya dipenuhi dengan “ write verifier” .
Versi 3 mengijinkan NFS menggunakan hubungan TCP/IP pada remote machine dibandingkan dengan menggunakan UDP. Penggunaan UDP justru kemunduran karena kelambatannya. Pemikiran bahwa TCP/IP menyebabkan terlalu banyak protokol yang tidak digunakna dan otomatis akan menurunkan kecepatan operasi NFS. Disainer NFS kemudian menemukan bahwa ada kebutuhan untuk memberikan banyak layanan dari TCP/IP, seperti reliability, error recovery, congestion control, timeout dan seterusnya. Kode UDP menjadi dapat diimplementasikan pada aspek tertentu dari TCP/IP. Agar adil, kecepatan meningkat dengan meningkatnya kecepatan prosesor dimana disain NFS yang asli membuat protokol TCP semakin efisien.
Versi 3 memiliki tambahan performansi dengan mengurangi protokol yang menganggur ketika mengembalikan informasi direktori. Tujuannya adalah untuk mendukung pada kondisi yang sering terjadi.
Versi 3 menyediakan beberapa  help untuk client untuk mempunyai cache informasi yang disimpan pada server. Akhirnya Versi 3 support file 64-bit.
Oleh karena itu, gunakan versi 3 jika dapat, karena keuntungan diatas, dan tentu saja semampuan internetwork pada implementasi sebelumnya juga menjadi salah satu tujuan pendesainannya.

d. Path-Name Translation
Ini dapat diselesaikan dengan memecah jejak ke nama-nama komponen dan menunjukkan NFS lookup call yang terpisah untuk setiap pasang nama komponen dan vnode direktori.

e. Remote Operations di masa depan menggunakan data cached
· Cache atribut file
· Cache file blocks

No comments:

Post a Comment

Silakan masukkan komentar Anda untuk perkembangan blog ini.