Linux, Networking, Review, Sejarah

Network File System (NFS)

Februari 22, 2018

NFS adalah singkatan dari Network File System, yang pertama kali dikembangkan oleh Sun Microsystems pada tahun 80-an, sebagai sarana untuk berbagi file pada lingkungan kerja diskless. NFS menyediakan sarana untuk berbagi file antar jaringan, sehingga suatu mesin dapat mengakses file-file di mesin lain seolah-olah mengakses file sistem lokal. Protokol ini bekerja dengan sistem client-server. Server akan meng-export suatu file sistem sehingga dapat di share di jaringan. Selanjutnya, user akan melakukan mounting ke server tersebut. Dengan dukungan NFS yang sudah sangat matang di kernel, berbagai distro kini umumnya telah memasukkan NFS sebagai salah satu file sistem yang akan di mount pada saat booting. Dengan demikian, user tidak perlu sama sekali tahu apa yang terjadi. File yang diakses akan terlihat lokal, walau tersimpan dimesin yang berbeda.

Network File System memungkinkan remote host untuk mounting storage yang berada pada server dan mengakses file-file yang berada pada storage tersebut seolah-olah storage tersebut di-mount ­secara lokal. Hal ini memungkinkan Administrator sistem untuk dapat membagi space pada storage yang dimiliki server kepada beberapa client.

Saat ini terdapat 3 versi dari NFS , yaitu NFS versi 2 (NFSv2) , NFS versi 3 (NFSv3) , dan NFS versi 4 (NFSv4). NFSv2 merupakan yang paling tua dari versi yang lain dan paling banyak didukung oleh berbagai sistem. NFSv3 memiliki lebih banyak fitur dibandingkan pendahulunya seperti sudah mendukung  file 64bit, file yang lebih besar dari 2 GB, penulisan ke server secara Asynchronous , dan Error Handling yang baik. Sedangkan NFSv4 dapat bekerja melalui firewalls dan Internet, tidak lagi membutuhkan portmapper, mendukung ACLd, dan menggunakan protokol yang dapat me-maintain state.

Semua versi  dari NFS dapat menggunakan TCP (Transmission Control Protocol) sedangkan hanya NFSv2 dan NFSv3 yang dapat menggunakan UDP (User Datagram Protocol), protokol yang tidak dapat me-maintain state. Ketika menggunakan NFSv2 atau NFSv3 dengan UDP, koneksi UDP yang stateless memiliki waktu overhead yang lebih kecil dibandingkan dengan TCP. Namun TCP memiliki performa yang lebih baik pada jaringan yang non-congested.  Jika menggunakan TCP , apabila server NFS mati tiba-tiba , hal tersebut tidak aka

n mempengaruhi client dan cookie pun akan tetap tersedia. Namun jika menggunakan UDP yang stateless, Client  akan terus mengirim request ke server sehingga jaringan menjadi penuh. Oleh karena itu , protokol yang lebih banyak digunakan untuk koneksi ke NFS server adalah TCP.

Keuntungan dari menggunakan NFS (Network File System)

  • Workstation lokal dapat menggunakan space storage yang lebih sedikit karena data yang sering diakses oleh banyak orang  atau yang memakan banyak space dapat disimpan dalam NFS Server dan tetap dapat diakses oleh banyak orang.
  • Tidak perlu dibuat direktori Home yang terpisah ditiap workstation. Direktori Home untuk setiap user dapat dibuat di NFS Server dan tiap user dapat mengaksesnya melalui jaringan.
  • Device penyimpanan seperti floppy disk, CDROM drives, dll dapat digunakan oleh mesin lainnya.
  •  Penggunaan NFS memungkinkan manajemen yang tersentralisasi. Manajemen yang tersentralisasi ini dapat mengurangi pekerjaan administrator dalam melakukan back-up  dan menambahkan software yang digunakan banyak orang

NFS juga memiliki beberapa kelemahan , khususnya dalam hal performa dan keamanan. Sebagai File System yang berbasiskan Network , NFS sangat sensitif terhadap kepadatan jaringan.  Trafik tinggi pada jaringan dapat menurunkan performa NFS , begitu juga aktifitas yang tinggi pada storage akan mempengaruhi performa NFS.

Pada NFS client terlihat lambat karena proses membaca dan menulis  pada storage membutuhkan waktu yang lebih lama. Jika File System yang di ekspor sedang tidak tersedia ketika sebuah client mencoba melakukan mount , sistem dari client akan crash, meskipun permasalahan ini dapat dikurangi dengan menggunakan mount yang spesifik. Dan karena NFS itu tersentralisasi jika storage yang di-mount oleh berbagai client tiba-tiba crash karena suatu sebab , maka tidak akan ada yang dapat mengakses storage tersebut.

NFS juga memiliki permasalahan dalam keamanannya, karena NFS didesain dengan asumsi jaringannya itu aman. Kelemahan utama dari keamanan dari NFS ialah NFS itu berdasarkan RPC , yang tidak lain merupakan target utama dari serangan. Hal ini dapat menyebabkan informasi yang seharusnya tidak di-mount menjadi terekspos di in

ternet yang berada di dalam Firewall maupun diluar.

Meskipun berada di dalam Firewall , menyediakan akses ke seluruh user untuk semua file memberikan  resiko yang lebih tinggi dibandingkan dengan keuntungan yang didapat. Oleh karena itu seorang Administrator Sistem harus jeli dalam membatasi akses user dan permission untuk file-file tertentu pada direktori atau file system yang di-mount.  NFS juga memiliki fitur yang berpotensial meningkatkan resiko keamanan. Contohnya jika root user  di suatu client melakukan mount pada NFS export, maka diharapkan root pada client tidak memiliki hak sebagai root pada file system yang di mount. Secara default, NFS telah mencegahnya dengan prosedur yang dinamakan root squashing , namun apabila tidak hati-hati bisa saja seorang Administrator menghapus prosedur tersebut.

Tujuan dari NFS adalah untuk memungkinkan terjadinya pertukaran sistem berkas secara transparan antara mesin-mesin bebas tersebut. Hubungan yang terjadi di sini didasarkan pada hubungan client-server yang menggunakan perangkat lunak NFS server dan NFS client yang berjalan diatas workstation. 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).

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.

You Might Also Like

4 Comments

  • Reply agam atjoeng Februari 23, 2018 at 10:18

    menarik,….

    • Reply agam atjoeng Februari 23, 2018 at 10:22

      ada tutorial contoh implementasinya pak ?…. hehehe,…

      • Reply altadachi Februari 23, 2018 at 19:29

        untuk saat ini hanya pengertian dan konsep dasar dari nfs itu sendiri ,nanti saya buatkan video tutorial nya langsung. Implentasinya tingkat lanjut bisa di lihat langsung di warnet-warnet yang pakai diskless.

    • Reply altadachi Februari 23, 2018 at 19:30

      😀

    Leave a Reply

    %d blogger menyukai ini: