NFS, Network File System paling banyak digunakan
NFS (Network File System) sebuah software atau protokol open source yang memungkinkan pengguna untuk mengakses data yang ada di remote server. Berbeda dengan SSHFS yang bisa dikonfigurasi dengan mudah, NFS ini memerlukan sedikit ketelitian dan pengetahuan tentang firewall. Dulunya, transmisi data antara client - server tidak terenkripsi secara default sehingga NFS seharusnya tidak digunakan di jaringan publik, melainkan jaringan private seperti VPC, VPN, dan sebagainya. Seiring perkembangan teknologi, NFS saat ini dapat menggunakan Kerberos sebagai lapisan keamanan. Namun, tentu saja performanya akan berbeda dari "plain NFS" yang tidak menggunakan enkripsi atau lapisan keamanan.
Pada artikel ini akan dijelaskan cara mengkonfigurasi NFSv4 plain tanpa enkripsi trafik agar mendapatkan performa yang optimal pada jaringan privat. Saya menyarankan untuk menggunakan interface VPC (bila ada) atau membuat Virtual Private Network jika tidak memungkinkan membuat VPC.
Langkah -langkah
Beberapa langkah yang harus dilakukan.
Siapkan dua server
Masing - masing server harus terkoneksi melalui jaringan pribadi baik menggunakan VPN maupun VPC. Dari dua server tersebut salah satunya akan menjadi client dan satunya lagi akan menjadi server.
Server yang akan saya gunakan adalah sebagai berikut
| Nama | IP Private |
|---|---|
| computer-science-group-03 (client) | 10.104.0.3 |
| computer-science-group-08 (server) | 10.104.0.10 |
Dua server tersebut terkoneksi melalui jaringan Virtual Private Cloud, sehingga dapat berkomunikasi tanpa harus melalui jaringan publik (internet). Keuntungannya adalah latensinya yang rendah, lebih aman, kecepatan transfer tidak terpengaruh dengan kondisi lalu lintas global, dan bandwidth pada jaringan privat biasanya tidak dihitung di pembayaran server sehingga dapat menghemat biaya.
[Lebih Lanjut]
Sebagian besar provider cloud mungkin berbeda - beda, kali ini saya memakai DigitalO***n. IP Private dapat diketahui melalui panel kontrol atau di servernya langsung.
Saat login pasti akan muncul bagian output kurang lebih seperti ini:
System information as of Wed Nov 8 01:23:59 UTC 2023
System load: 0.2412109375 Users logged in: 0
Usage of /: 44.9% of 9.51GB IPv4 address for eth0: 17x.128.211.xxx (sensor)
Memory usage: 72% IPv4 address for eth0: 10.15.0.6
Swap usage: 0% IPv4 address for eth1: 10.104.0.3
Processes: 107 IPv4 address for wg0: 10.7.0.1
Nah interface VPC pada DigitalO***n ini adalah pada eth1. Pada informasi di atas tertulis:
IPv4 address for eth1: 10.104.0.3maka alamat IP privat nya adalah 10.104.0.3. Selain itu, kita dapat menggunakan perintah ifconfig untuk melihat interface dan masing - masing alamat IP nya.
Install dan konfigurasi nfs-kernel-server pada server
Perintah di bawah ini dijalankan di mesin yang berperan sebagai NFS Server Gunakan perintah:
apt install nfs-kernel-serverSetelah itu, ijinkan alamat IP client untuk mengakses nfs. Pastikan firewall sudah aktif.
Perintahnya:
ufw allow from <alamat ip client> to any port nfsCONTOH
ufw allow from 10.104.0.3 to any port nfsSetelah mengijinkan trafik dari client, selanjutnya adalah menentukan direktori yang akan diekspor ke client.
Misalkan saya akan mengekspor direktori /var/nfs/huda, karena direktorinya belum ada maka saya akan membuatnya dengan perintah:
mkdir -p <path/direktori>CONTOH
mkdir -p /var/nfs/hudaSetelah membuat direktori, kita harus menambahkannya ke /etc/exports.
nano /etc/exports
Tambahkan baris:
<direktori> <alamat ip client>(rw,no_root_squash,sync,no_subtree_check)CONTOH
/var/nfs/huda 10.104.0.3(rw,no_root_squash,sync,no_subtree_check)Setelah itu, restart layanan server nfs dengan:
systemctl restart nfs-kernel-server
Install dan konfigurasi nfs pada client
Perintah di bawah ini dijalankan di mesin yang berperan sebagai NFS Client
Install nfs-common
apt install nfs-commonBuat mountpoint (tempat untuk mounting nfs)
mkdir <folder>CONTOH
mkdir -p /mnt/nfshudaMounting nfs dengan perintah:
mount <alamat ip server>:<direktori yang diekspor> <mountpoint>
CONTOH
mount 10.104.0.10:/var/nfs/huda /mnt/nfshudaSampai disini kita sudah melalukan mounting filesystem. Tetapi NFS menggunakan sistem permission juga sehingga kita juga harus mengkonfigurasi perijinan agar dapat diakses oleh non-root user.
NFS menyinkronkan groupid GID dan userid UID bukan "apa nama usernya" atau "apa nama groupnya"
Sekilas tentang sinkronisasi NFS
Contoh
Sebuah folder di server NFS dimiliki oleh huda (uid: 1000) dan grup mahasiswa (gid: 1007). Sementara, NFS client memiliki user dengan uid 1000 yaitu arif dan grup santri (gid: 1007). Maka, di dalam NFS server, folder tersebut dimiliki oleh user huda dan grup mahasiswa sedangkan di NFS client, folder tersebut dimiliki oleh arif dan grup santri.

About Muhammad Khuirul Huda
Muhammad Khuirul Huda is an Informatics Engineering student at Universitas Negeri Semarang.
Comments
Do you have a problem, want to share feedback, or discuss further ideas? Feel free to leave a comment here! Please stick to English. This comment thread directly maps to a discussion on GitHub, so you can also comment there if you prefer.
Instead of authenticating the giscus application, you can also comment directly on GitHub.