Sistem berkas jaringan (Inggris: network file system disingkat NFS) adalah sebuah kumpulan protokol yang digunakan untuk mengakses beberapa sistem berkas melalui jaringan. Spesifikasi NFS didefinisikan dalam RFC 1094, dan saat ini telah mencapai versi 3 yang didefinisikan dalam RFC 1813. NFS merupakan sebuah sistem berkas terdistribusi yang dikembangkan oleh Sun Microsystems Inc. pada awal dekade 1980-an yang menjadi standar de facto dalam urusan sistem berkas terdistribusi. NFS didesain sedemikian rupa untuk mengizinkan pengeksporan sistem berkas terhadap jaringan yang heterogen (yang terdiri dari sistem-sistem operasi yang berbeda dan platform yang juga berbeda). Teknologi NFS ini dilisensikan kepada lebih dari 200 vendor komputer dan jaringan, dan telah dibuat implementasinya pada banyak platform dan sistem operasi, termasuk di antaranya adalah UNIX, GNU/Linux, Microsoft Windows, dan lingkungan mainframe. NFS dapat mengizinkan klien-klien untuk menemukan dan mengakses berkas yang disimpan di dalam server jaringan jarak jauh. Memang, desain awal spesifikasi NFS dikhususkan untuk penggunaan dalam jaringan lokal (LAN) dan tidak dioptimalkan untuk penggunaan dalam WAN. Tapi, versi NFS 3 yang digunakan saat ini dapat digunakan dalam jaringan WAN, sebaik ketika ia bekerja di dalam LAN. Fitur-fitur yang dimiliki oleh NFS versi 3 adalah sebagai berikut: § Mendukung ukuran berkas hingga satuan Terabyte, dengan menggunakan indikator ukuran berkas hingga 64-bit (pada versi sebelumnya, hanya mengimplementasikan indikator ukuran berkas hingga 32-bit saja, sehingga total ukuran berkas maksimum adalah 4 gigabyte). § Ukuran maksimum paket data yang didukung adalah 64 Kilobyte (pada versi sebelumnya, hanya mencapai 8 KB untuk tiap paketnya, sehingga lebih lama dalam melakukan transfer data dari satu host ke host lainnya yang menjalankan NFS).
§ Dapat memilih apakah hendak menggunakan protokol lapisan transport UDP atau TCP (pada versi sebelumnya, NFS hanya menggunakan protokol lapisan transport UDP sehingga kurang bagus diimplementasikan dalam jaringan WAN) § Server dapat melakukan penge-cache-an terhadap request yang dilakukan oleh klien.
NFS menggunakan arsitektur protokol jaringan berlapis (layered protocol) yang dibuat berdasarkan model referensi jaringan OSI, seperti yang ditunjukkan dalam tabel berikut.
Lapisan OSI | Protokol NFS |
Physical Layer | Apa saja (yang digunakan secara umum adalah Ethernet) |
Data-link Layer | Apa saja (yang digunakan secara umum adalah Ethernet) |
Network Layer | |
Transport Layer | |
Session Layer | |
Presentation Layer | |
Application Layer | |
NFS diimplementasikan sebagai sebuah sistem client/server yang menggunakan perangkat lunak NFS server dan NFS client yang berjalan di atas workstation. NFS Server akan menggunakan protokol NFS untuk mengekspor sistem berkas yang dimilikinya kepada klien NFS agar dapat dibaca ole klien, seolah-olah sistem berkas remote tersebut merupakan sistem berkas yang dimiliki oleh klien secara lokal. NFS umumnya menggunakan protokol Remote Procedure Call (RPC) yang berjalan di atas UDP dan membuka port UDP dengan port number 2049 untuk komunikasi antara klien dan server di dalam jaringan. Klien NFS selanjutnya akan mengimpor sistem berkas remote dari server NFS, sementara server NFS mengekspor sistem berkas lokal kepada klien. Mesin-mesin yang menjalankan perangkat lunak NFS server dapat saling berhubungan dengan perangkat lunak NFS server untuk membaca, menulis, memodifikasi, menghapus berkas dan direktori yang berada di dalam server dengan menggunakan request RPC seperti halnya READ, WRITE, CREATE, dan MKDIR. Berkas dan direktori remote akan seolah-olah terlihat sebagai berkas lokal bagi pengguna. Sebelum dapat mengakses berkas remote di dalam struktur direktori dalam sistem berkas UNIX dari dalam NFS Server, administrator harus melakukan mounting terlebih dahulu bagian dari sistem berkas UNIX lokal yang akan dibuat dapat diakses oleh klien dan menetapkan izin akses terhadap berkas atau direktori. NFS umumnya digunakan dalam platform-platform UNIX, sementara Windows menggunakan protokol berbagi-berkas yang disebut sebagai Server Message Block (SMB), sehingga dua sistem tersebut aslinya tidak kompatibel satu sama lainnya. Agar dapat saling mendukung, dalam sistem UNIX harus diinstalasikan klien protokol SMB semacam SAMBA atau menginstalasikan klien protokol NFS dalam sistem operasi UNIX, yang dapat diperoleh dari beberapa vendor. Microsoft menyediakan Windows Services for Unix (SFU) yang dapat digunakan dalam sistem operasi Windows 2000 Server, dan Windows Server 2003 sebagai perangkat lunak klien protokol NFS, sehingga menjadikan sistem Windows dapat berinteroperasi dengan sistem NFS dalam sistem operasi UNIX. Selain SFU, beberapa vendor lainnya juga membuat implementasi NFS dalam platform Windows, seperti halnya NetManage dengan ChameleonNFS, Hummingbird International dengan NFS Maestro, dan masih banyak lainnya.
· Konfigurasi pada server
Skenario
Dalam skenario ini kita akan menempelkan harddisk yang ada di linuxconfig.org (IP address 10.1.1.200) ke client IP address 10.1.1.100).
Persyaratan
Install NFS
apt-get install nfs-common nfs-kernel-server
Pastikan mesin kita mendukung NFS ketik
$ cat /proc/filesystems
keluar
nodev nfs
nodev nfs4
nodev nfsd
NFS daemon harusnya mendengerkan port 2049 dan portmap pada port 111. more /etc/services | grep 111
keluar
sunrpc 111/tcp portmapper # RPC 4.0 portmapper
sunrpc 111/udp portmapper
more /etc/services | grep 2049
keluar
nfs 2049/tcp # Network File System
nfs 2049/udp # Network File System
Cara lain untuk cek menggunakan
rpcinfo -p
keluar
program vers proto port
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 56835 status
100024 1 tcp 53408 status
100021 1 udp 50903 nlockmgr
100021 3 udp 50903 nlockmgr
100021 4 udp 50903 nlockmgr
100021 1 tcp 36404 nlockmgr
100021 3 tcp 36404 nlockmgr
100021 4 tcp 36404 nlockmgr
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
Server /etc/exports file
Kita perlu mendefinisikan folder yang ingin di share
vi /etc/exports
misalnya
/home/nfs/ 10.1.1.100(rw,sync) - /home/nfs utk IP 10.1.1.100 read, write permissions & synchronized mode
/home/nfs/ 10.1.1.0/24(ro,sync) - /home/nfs utk IP 10.1.1.0 netmask 255.255.255.0 read only permissions and synchronized mode
/home/nfs/ 10.1.1.100(rw,sync) 10.1.1.10(ro,sync) export /home/nfs directory for host with IP 10.1.1.100 with read, write permissions, synchronized mode, and also export /home/nfs directory for hosts with IP 10.1.1.10 with read only permissions and synchronized mode
/home/nfs/ 10.1.1.100(rw,sync,no_root_squash) export /home/nfs directory for host with IP 10.1.1.100 with read, write permissions, synchronized mode and the remote root user will be treated as a root and will be able to change any file and directory.
/home/nfs/ *(ro,sync) export /home/nfs directory for any host with a read only permission and synchronized mode
/home/nfs/ *.linuxconfig.org(ro,sync) export /home/nfs directory for any host within linuxconfig.org domain with a read only permission and synchronized mode
/home/nfs/ foobar(rw,sync) export /home/nfs directory for hostname foobar with read, write permissions and synchronized mode
contoh
/home/backup *(ro,sync,subtree_check)
/home/backup/public *(rw,sync,subtree_check)
/home/library *(ro,sync,subtree_check)
/home/media *(ro,sync,subtree_check)
Restart NFS daemon
Setelah /etc/exports file di edit, kita dapat me-restart NFS daemon.
/etc/init.d/nfs-kernel-server restart
Redhat users
/etc/init.d/nfs restart
Jika ingin menambahkan NFS /etc/exports file, kita perlu mengedit & merestart kembali, atau menggunakan perintah
exportfs -ra
· Konfigurasi Client
Install paket
apt-get install nfs-common nfs-kernel-server
Cara mount
mount ip-address-server:/folder/share /folder/lokal
mount -t nfs ip-address-server:/folder/share /folder/lokal
mount.nfs ip-address-server:/folder/share /folder/lokal
contoh yang agak rumit
Ø Asumsi Server NFS 192.168.0.1
Ø Nama Folder /album /iso /media /library /backup /repository /public
mkdir /mnt/album
mkdir /mnt/iso
mkdir /mnt/media
mkdir /mnt/library
mkdir /mnt/backup
mkdir /mnt/repository
mkdir /mnt/public
mount -t nfs 192.168.0.1:/nfs/album /mnt/album
mount -t nfs 192.168.0.1:/nfs/iso /mnt/iso
mount -t nfs 192.168.0.1:/nfs/media /mnt/media
mount -t nfs 192.168.0.1:/nfs/library /mnt/library
mount -t nfs 192.168.0.1:/nfs/backup /mnt/backup
mount -t nfs 192.168.0.1:/nfs/repository /mnt/repository
mount -t nfs 192.168.0.1:/nfs/Public /mnt/public
Pranala Menarik
Ø NFS: Mempersiapkan Ubuntu Untuk NFS
Ø NFS: Konfigurasi Server
Ø NFS: Konfigurasi Client
Ø NFS: Penggunaan nfswatch