NFS (Network File System) merupakan layanan berbagi file melalui jaringan untuk komputer-komputer berbasis UNIX. Dengan NFS kita bisa membuat solusi penyimpanan data terpusat, karena kita dapat memounting direktori yang sudah di bagikan oleh NFS server di setiap NFS klien. NFS klien pun akan merasa seperti menyimpan data di harddisk sendiri.
Beberapa keunggulan NFS :
1. Bisa dijadikan solusi penyimpanan data terpusat.
2. Antara klien dengan server tidak perlu OS yang sama. Yang penting masih dalam keluarga UNIX.
3. Bisa diamankan menggunakan ACL, Firewall, maupun SELinux.
4. Tidak perlu adanya refresh, untuk melihat adanya perubahan file.
Disini saya akan membuat skenario untuk membuat sistem Home terpusat. Sehingga semua data user di NFS klien akan disimpan ke NFS server. Topologi dan sistem operasi yang saya gunakan adalah sebagai berikut :
NFS Server
Sistem Operasi : Centos 7
Hostname : nfs-server.rizal.linuxku
IP Address : 192.168.88.101
NFS Server
Sistem Operasi : Centos 7
Hostname : server-centos.rizal.linuxku
IP Address : 192.168.88.100
Kalian juga bisa menggunakan sistem operasi lain yang berbasis Redhat maupun berbasis Debian serta IP address yang berbeda juga. Silahkan disesuaikan saja.
Instalasi Paket-Paket yang dibutuhkan
DIKEDUA Server, install dan jalankan service aplikasi NFS dan rpcbind :
Debian-based # apt-get install nfs-utils nfs-utils-lib RHEL-based # yum install nfs-utils nfs-utils-lib # systemctl enable nfs-server # systemctl enable rpcbind # systemctl start nfs-server # systemctl start rpcbind
Konfigurasi NFS Server
Pertama-tama buatlah direktori yang ingin kalian share kepada klien. Disini saya membuat direktori bernama /data.
# mkdir /data
Selanjutnya editlah file /etc/exports dan tambahkan konfigurasi berikut :
# vim /etc/exports /data 192.168.88.0/24(rw,sync,no_root_squash,no_all_squash)
Penjelasan :
/data = Direktori yang ingin kalian share.
192.168.88.0/24 = Siapa saja yang kalian perbolehkan mengakses NFS share ini. Bisa diganti dengan ip tertentu maupun dengan tanda * yang berarti siapapun dengan ip berapapun bisa mengakses.
rw = Direktori ini bisa di baca dan tulis.
sync = Hanya memberitahu pada server ketika ada perubahan terjadi saja.
no_root_squash = Memperbolehkan root untuk mengakses direktori ini.
no_all_squash = Memperbolehkan adanya privileges user.
Untuk opsi lain bisa kalian lihat dari gambar dibawah ini :
Selanjutnya restart service NFS :
Debian-based # service nfs-server restart # service rpcbind restart RHEL-based # systemctl restart nfs-server # systemctl restart rpcbind
Khusus untuk distro RHEL-based, kalian perlu menambahkan daftar port NFS agar diperbolehkan diakses oleh firewall :
# firewall-cmd --permanent --add-service=nfs # systemctl restart firewalld
Terkahir cek hasil pembuatan NFS :
# showmount -e Export list for nfs-server: /data 192.168.88.0/24
Mounting NFS Share dari Klien
Berhubung kita akan memounting direktori yang sudah di share ke Home folder klien, maka pastikan kalian sudah backup semua data yang ada di /home beserta konfigurasi hak akses dan permissionnya. Disini saya akan membackupnya ke folder /backup. Lakukan semua perintah dibagian ini pada komputer NFS Klien.
# mkdir /backup # rsync -avpog /home/ /backup/
Tunggu hingga prosesnya selesai. Sebagai catatan, langkah diatas tidak perlu kalian lakukan jika kalian memounting direktori NFS share ke direktori lain selain /home atau direktori apapun yang tidak ada isinya. Jika direktori yang sudah ada isinya seperti /home, pastikan kalian membackup data-datanya terlebih dahulu seperti langkah diatas.
Selanjutnya klien bisa melakukan mounting dengan perintah berikut :
# mount -t nfs 192.168.0.101:/data /home
Cek hasilnya :
# df -kh Filesystem Size Used Avail Use% Mounted on /dev/mapper/vgsistem-lvroot 11G 1.3G 9.0G 13% / devtmpfs 492M 0 492M 0% /dev tmpfs 498M 0 498M 0% /dev/shm tmpfs 498M 6.7M 491M 2% /run tmpfs 498M 0 498M 0% /sys/fs/cgroup /dev/sda1 97M 77M 20M 80% /boot 192.168.88.101:/data 4.0G 33M 4.0G 1% /home
Jangan lupa kopikan kembali file-file yang sudah kalian backup tadi :
# rsync -avpog /backup/ /home/
Sekarang cobalah untuk melihat isi dari direktori /data di NFS server dan isi dari direktori /home di NFS klien. Seharusnya isinya akan sama :
NFS Server # ls /data rahman rangkuti rizal soni NFS Klien # ls /home rahman rangkuti rizal soni
Terakhir, khusus untuk distro RHEL-based kalian juga perlu mengatur agar SELinux memperbolehkan service NFS memakai Home direktori. Caranya adalah dengan mengaktifkan boolean use_nfs_home_dirs :
# setsebool -P use_nfs_home_dirs 1
Mounting NFS Share Secara Permanen
Agar NFS share dapat dimounting secara permanen di filesystem klien, maka kalian perlu mengatur file /etc/fstab. Lakukan semua perintah dibagian ini pada sisi komputer NFS Klien.
# vim /etc/fstab
Dan tambahkan baris berikut di paling bawah :
192.168.88.101:/data /home nfs defaults 0 0
Simpan dan tutup filenya.
Untuk mengetes apakah konfigurasi mounting permanen sudah berhasil dilakukan, pastikan tidak ada pesan error yang muncul saat kalian mengeksekusi perintah berikut (Perintah untuk memounting semua storage berdasarkan konfigurasi yang sudah ditulis di /etc/fstab) :
# mount -a
Terakhir cobalah untuk merestart komputer klien dan pastikan bahwa folder NFS share masih termounting dengan baik di /home.
# df -kh Filesystem Size Used Avail Use% Mounted on /dev/mapper/vgsistem-lvroot 11G 1.3G 9.0G 13% / devtmpfs 492M 0 492M 0% /dev tmpfs 498M 0 498M 0% /dev/shm tmpfs 498M 6.7M 491M 2% /run tmpfs 498M 0 498M 0% /sys/fs/cgroup /dev/sda1 97M 77M 20M 80% /boot 192.168.88.101:/data 4.0G 330M 4.0G 2% /home
Semoga bermanfaat 🙂