Definisi
A network file system (NFS) is a type of file system mechanism that enables the storage and retrieval of data from multiple disks and directories across a shared network. A network file system enables local users to access remote data and files in the same way they are accessed locally.
https://www.techopedia.com/definition/1845/network-file-system-nfs, diakses 17 November 2020
NFS adalah sebuah jenis mekanisme sistem file yang memungkinkan penyimpanan (write) dan pengambilan (read) data dari banyak disk dan direktori dari seluruh jaringan berbagi. NFS memungkinkan pengguna lokal untuk mengakses data dan berkas remote dengan cara yang sama ketika pengguna lokal tersebut mengaksesnya secara lokal.
- + Keuntungan dari NFS
Media simpan yang bisa sangat besar karena bisa merupakan gabungan dari banyak komputer atau media simpan lainnya seperti NAS (Network-attached storage) - – Kerugiannya dari NFS
Kecepatan baca/tulis lebih lambat karena melewati jaringan yang kecepatannya lebih rendah dari kecepatan baca tulis disk
Studi Kasus
NFS dapat digunakan di implementasi awal atau untuk mengatasi masalah yang muncul di tengah-tengah jalannya sistem. Pada kesempatan kali ini, akan dibahas penggunaan NFS untuk mengatasi masalah yang muncul di tengah-tengah jalannya sistem, karena hal ini lebih menarik dan menantang.
Kasus:
Disk space dari folder /var di web server adalah 99%, sehingga tidak ada lagi tempat untuk menyimpan data di web server.
Kondisi:
Menggunakan NAS sebagai server NFS.
Setting NFS di NAS
- Mungkin tampilan, menu, istilah, ketentuan dan sebagainya akan berbeda dengan perangkat pembaca karena perbedaan merk atau versi dari NAS yang dipakai atau menggunakan komputer
- Pastikan Firewall tidak mengganggu proses
- Login ke dalam NAS melalui browser, sehingga akan muncul menu awal seperti gambar di bawah ini
- Pilih Services, kemudian akan muncul jendela seperti gambar di bawah ini
- Pilih menu NFS, aktifkan servis NFS dan klik tombol Apply. Tutup jendela Services.
- Pilih Settings, kemudian akan muncul jendela seperti gambar di bawah ini
- Pilih menu Network, pilih tab LAN, kemudian masukkan pengaturan jaringan seperti yang diinginkan dan klik tombol Apply. Catat alamat IP-nya (ini adalah alamat IP dari NAS/NFS).
- Pilih menu ADM Defender, kemudian akan muncul jendela seperti gambar di bawah ini
- klik tombol Add. Isi IP web server, kemudian klik tombol OK. Tutup jendela Settings.
- Pilih folder induk yang ingin digunakan, misalnya folder Public, kemudian buat folder di dalamnya, misalnya moodledata untuk data-data dari elearning dan wwwdata untuk data-data dari web.
- Klik kanan pada folder yang akan digunakan kemudian pilih menu Properties. Catat lokasinya kemudian tutup jendela Properties dan File Explorer. Di bawah ini adalah gambar jendela Properties untuk melihat lokasi folder
- Pilih menu Access Control, kemudian akan muncul jendela seperti gambar di bawah ini
- Pilih menu Shared Folders, kemudian pilih folder induk yang digunakan dan klik tombol Access Rights, kemudian akan muncul jendela seperti gambar di bawah ini
- Klik tombol Add. Masukkan IP dari server web, bukan IP dari NAS dan pastikan hak aksesnya baca-tulis (read & write). Klik tombol OK dan klik tombol OK lagi.
Menghubungkan Web Server dengan NFS
- Moodle
- Server adalah Moodle
- IP Web Server 172.16.1.1
- Folder aplikasi saat ini adalah /var/www/html/moodle
- Folder data moodle di lokal server adalah /var/www/moodledata
- Folder data moodle di NFS adalah /var/www/moodledatanfs
- NAS
- IP NAS 172.16.100.100
- Folder NFS /volume1/Public/moodledata
- Memasang komponen untuk NFS di Web Server
sudo apt-get update
sudo apt-get install nfs-common - Memasang NFS ke Web Server
sudo mkdir /var/www/moodledatanfs
sudo mount -t nfs 172.16.100.100:/volume1/Public/moodledata /var/www/moodledatanfs
sudo echo "172.16.100.100:/volume1/Public/moodledata /var/www/moodledatanfs nfs defaults 0 0" >> /etc/fstab - Aktifkan mode Maintenance pada Moodle
- Identifikasi 2 hal berikut ini:
- Folder yang digunakan untuk cache
Untuk Moodle: folder cache dan localcache - Folder yang intensif berubah (sering ditulis)
Untuk Moodle: folder sessions
- Folder yang digunakan untuk cache
- Salin data dari moodledata ke moodledatanfs, kecuali folder cache dan localcache
- Buka config.php, kemudian ubah pengaturan lokasi penyimpanan dataroot, cache dan localcache
$CFG->dataroot = '/var/www/moodledatanfs';
$CFG->cachedir = '/var/www/moodledata/cache';
$CFG->localcachedir = '/var/www/moodledata/localcache';$CFG->session_file_save_path = '/var/www/moodledata/sessions';
- Bersihkan cache
sudo php /var/www/html/moodle/admin/cli/purge_caches.php
- Ubah nama semua folder selain cache dan localcache di folder data moodle di lokal server (ditambah underscore). Ubah nama folder cache dan localcache di folder data moodle di NFS (ditambah underscore). Ubah pemilik folder data moodle di NFS ke www-data.
#Ubah nama folder selain cache dan localcache di folder data moodle di lokal server
cd /var/www/moodledata
for d in $(find . -type d -name '*' | egrep -v "^\./cache|^\./localcache|^\./sessions"); do sudo mv "$d" "${d}_"; done;
#Ubah nama folder cache dan localcache di folder data moodle di NFS
cd /var/www/moodledatanfs
for d in $(find . -type d -name 'cache' -o -name 'localcache' -o -name 'sessions'); do sudo mv "$d" "${d}_"; done;
#ubah pemilik folder data moodle di NFS ke www-data
sudo chown www-data:www-data /var/www/moodledatanfs
- Non-aktifkan mode Maintenance pada Moodle
- Uji coba elearning
- buka berkas unggahan yang dulu
- unggah berkas kemudian unduh berkas tersebut
- Jika berhasil, maka semua folder dengan underscore (_) dapat dihapus
Debug Masalah NFS di Klien
- Tidak bisa mount NFS atau error 512 atau connection timeout
- Coba ping server NFS, kemudian mount lagi
ping -c 1 172.16.100.100 && mount -t nfs 172.16.100.100:/volume1/Public/moodledata /var/www/moodledatanfs
- Jika
- Bisa
- Maka buka crontab sebagai root
crontab -e
- Kemudian masukkan skrip tadi saat reboot di crontab
@reboot ping -c 1 172.16.100.100 && mount -t nfs 172.16.100.100:/volume1/Public/moodledata /var/www/moodledatanfs
- Maka buka crontab sebagai root
- Tidak bisa
Maka cek hak akses di server NFS (/etc/exports)
- Bisa
- Coba ping server NFS, kemudian mount lagi
- Web server sangat lambat
Mungkin ada folder yang intensif berubah tapi masih ada di NFS. Temukan dan pindah ke web server - Mengetahui status mount NFS
- cek log boot
journalctl -b | grep -E "NFS|nfs"
- cek setting mounting nfs
nfsstat -m
- cek log boot
Sumber:
- https://www.digitalocean.com/community/tutorials/how-to-set-up-an-nfs-mount-on-ubuntu-16-04
- https://stackoverflow.com/questions/4210042/how-to-exclude-a-directory-in-find-command
- https://stackoverflow.com/questions/50933570/renaming-the-files-recursively-in-unix
- https://www.truenas.com/community/threads/trouble-connecting-nfs-share-to-ubuntu-linux-desktop.81844/
- https://alvinalexander.com/blog/post/linux-unix/find-how-multiple-search-patterns-filename-command/