Network File System

Pengertian dan Jenis-Jenis NFS

Network File System (NFS) 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 akan 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 NFS

Penggunaan NFS tentunya membawa keuntungan bagi organisasi yang mengimplementasikannya , diantaranya :

  • 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.
  • 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 .

Kelemahan NFS

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 internet 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.

Cara Kerja NFS

Ketika client ingin mengakses suatu file melalui NFS , kernel melakukan RPC(Remote Procedure Call) melalui TCP/UDP ke nfsd (NFS daemon) pada server. RPC ini menggunakan file handle , nama file atau direktori yang ingin diakses, dan user id dan grup id dari client sebagai parameter.  Parameter ini digunakan untuk menentukkan apakah client berhak mengakses file tersebut. Untuk mencegah user yang tidak berhak membaca dan memodifikasi file , user dan group id harus sama untuk kedua hosts. Setelah akses diberikan , client dapat mengaksesnya seolah – olah file atau direktori berada pada local disk.

Persiapan

Komputer server dengan ip address 152.118.30.156

Komputer klien dengan ip address 152.118.30.149

Kedua komputer berada pada jaringan dengan subnet yang sama. Server menggunakan sistem operasi Ubuntu 11.10 server edition dan menjalankan software nfsv4. Komputer klien menggunakan sistem operasi Ubuntu 11.10 desktop edition.

Server

Instalasi

Install NFS server menggunakan perintah

apt-get install nfs-kernel-server nfs-common portmap

Jalankan portmap

service portmap start

Konfigurasi

Ubah file /etc/exports dan tambahkan baris

/root/shared 152.118.0.0/16(rw,fsid=0,no_subtree_check)

Opsi di atas memiliki arti folder /root/shared merupakan folder yang di-share di antara pada jaringan 152.118.0.0/16 atau rentang ip 152.118.0.0 – 152.118.255.255 dengan permission read dan write (rw). Opsi lain yang bisa dipakai di antaranya :

  • ro: Folder hanya bisa dibaca. klien tidak bisa mengubah dan menulis pada folder.
  • rw: klien dapat membaca dan menulis pada folder yang di-share.
  • no_root_squash: Secara default, user root pada klien yang melakukan request akan dianggap sebagai user nobody oleh server. Jika opsi ini diaktifkan, user root pada klien memiliki hak yang sama dengan user root pada server.
  • no_subtree_check: Secara default, server akan memeriksa apakah file yang diminta klien berada pada partisi yang sesuai. Jika opsi ini diaktifkan, server tidak melakukan pemeriksaan dan dapat mempercepat proses transfer file.
  • sync: Opsi untuk mencegah terjadinya file corruption.

Ubah file /etc/default/nfs-common dan tambahkan baris

NEED_STATD=no
NEED_IDMAPD=yes
NEED_GSSD=no

Restart service nfs

/etc/init.d/nfs-kernel-server restart

Eskpor ulang direktori yang baru saja ditambahkan

exportfs -a

Klien

Instalasi

Install NFS klien menggunakan perintah

apt-get install portmap nfs-common

Konfigurasi

Mount folder /root/shared pada server ke folder /root/temp pada klien

mount 152.118.30.156:/root/shared /root/temp

Pada gambar di atas menunjukkan folder /root/shared telah berhasil di-mount komputer klien pada mount point /root/temp

Referensi

http://nfs.sourceforge.net/nfs-howto/ar01s03.html

http://ubuntuforums.org/showthread.php?t=249889

http://tldp.org/LDP/nag/node140.html

http://www.centos.org/docs/5/html/Deployment_Guide-en-US/ch-nfs.html

http://www.debianhelp.co.uk/nfs.htm

http://www.eecis.udel.edu/~srisatha/NFS/sld009.htm



Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s