Network Attached Storage (NAS) merupakan sebuah perangkat khusus yang didesain untuk penyimpanan yang memungkinkan diakses melalui jaringan. NAS ini memungkinkan media simpan menjadi besar melalui Network File System (NFS), seolah-olah mengakses data lokal.
Namun, performanya lebih lambat apabila dibandingkan dengan menggunakan media simpan di server itu sendiri karena server harus mengkontak NAS terlebih dahulu. Oleh karena itu, perlu menyediakan cache secara lokal di server itu sendiri agar mengurangi trafik ke NAS untuk berkas-berkas yang sering diakses. Secara umum, kernel Linux menggunakan RAM yang tidak terpakai salah satunya untuk page cache dengan tujuan mempercepat i/o penyimpanan lokal.
Daftar Isi
NFS dan NAS
NAS berperan dalam meningkatkan kapasitas media simpan dari server, tetapi perlu disediakan cache untuk membantu mempercepat pembacaan berkas melalui NFS.
— Menambah Storage Dengan NFS/NAS
Perhatian, tutorial ini berjalan di Ubuntu, untuk server lain menyesuaikan.
Ada beberapa alternatif bagaimana meletakkan cache:
- Pada partisi tersendiri pada disk yang sama
Strategi ini dapat dilakukan pada server yang belum diinstal atau media simpan di server masih ada sisa penyimpanan (free space) untuk diformat menjadi partisi baru - Pada partisi yang sudah ada
Strategi ini “terpaksa” dilakukan pada server yang tidak ada sisa penyimpanan yang dapat diformat menjadi partisi baru. Cache dapat disimpan pada sebuah image (https://bptsi.unisayogya.ac.id/menambah-storage-dengan-nfs-nas/#Membuat-sistem-file-terbatas) - Pada media simpan tersendiri
Strategi ini dapat dilakukan pada server yang memiliki media simpan yang masih bisa diformat menjadi partisi baru
Mengaktifkan NFS Cache di Ubuntu
|-(Opsional) Membuat Sistem File Terbatas (Image)
- Buat folder untuk menampung cache di dalam /var
mkdir /var/cache
mkdir /var/cache/fscache
- Buat file dengan ukuran tertentu (misalnya: imageFSCache.img sebesar 32Giga) untuk menampung cache agar tidak memenuhi partisi
touch /var/cache/imageFSCache.img && truncate -s 32G /var/cache/imageFSCache.img
- Format image menjadi ext4
mke2fs -t ext4 -F imageFSCache.img
- Mount image ke /var/cache/fscache
mount /var/cache/imageFSCache.img /var/cache/fscache -o defaults,noatime,nodirtime
- Tambahkan ke /etc/fstab
/var/cache/imageFSCache.img /var/cache/fscache ext4 defaults,noatime,nodirtime 0 0
Sumber: https://askubuntu.com/a/841306
|-Mengaktifkan NFS Cache
- Pastikan bahwa tidak ada perintah
/proc/sys/vm/drop_caches
yang berjalan, coba cek di cron, sekali lagi pastikan perintah tersebut tidak berjalan, karena perintah tersebut menghapus cache di RAM, salah satunya adalah disk cache - Pasang cachefilesd
apt-get install cachefilesd
- Sesuaikan konfigurasi (jika diperlukan)
nano /etc/cachefilesd.conf
- Hilangkan komentar (hapus karakter #) kalimat #RUN=yes pada /etc/default/cachefilesd
RUN=yes
- Tambahkan opsi fsc pada /etc/fstab, untuk beberapa kasus mungkin perlu menambahkan opsi rsize=524288 (https://serverfault.com/a/1063359), contoh:
nas.local.addr:/volume1/Public/path/ /var/www/path nfs fsc,rsize=524288,noatime,nodirtime
- Restart server atau tambahkan mount point
mount -t nfs nas.local.addr:/volume1/Public/path/ /var/www/path -o fsc,rsize=524288,noatime,nodirtime
- Hidupkan service cachefilesd apabila belum hidup
service cachefilesd restart
Catatan:
Dapat menggunakan nfs4 atau nfs vers=4, atau dengan versi lebih tinggi
Sumber: https://askubuntu.com/a/4578
|-Memeriksa Keberfungsian NFS Cache
#pastikan ada opsi fsc pada informasi mount point
nfsstat -m
#pastikan nilai yes pada kolom NFS
cat /proc/fs/nfsfs/volumes
#pastikan fscache sudah dimount
grep 'fscache' /proc/mounts
|-Troubleshoot
- Unit nfs-common.service is masked
service nfs-common restart
rm /lib/systemd/system/nfs-common.service
systemctl daemon-reloadservice cachefilesd restart
- mount.nfs4: access denied by server while mounting x.x.x.x
- solusinya adalah dengan memastikan bahwa IP komputer y.y.y.y yang hendak terhubung NFS ada di list:
showmount -e x.x.x.x
- jika IP y.y.y.y tidak ada, maka dapat ditambahkan hak aksesnya di NAS, seperti di bawah ini
- solusinya adalah dengan memastikan bahwa IP komputer y.y.y.y yang hendak terhubung NFS ada di list:
|-Contoh Penerapan NFS
Dibuat sebuah web media yang 100% berkasnya berada di server [media.example.com].
Dibuat web utama [www.example.org] atau web sub-domain [subdomain.example.org] dengan core web berada di server dan uploadnya berada di NAS. Namun, semua media yang digunakan di template halaman utama (main page) diambil dari web media [media.example.org].
|-Sengaja Menyalin Berkas dengan Lambat ke NAS
#Buat backup dari berkas yang akan dipindah ke NAS
cp -r /var/web/folderupload /var/web/folderupload_backup
#Buat folder di NAS (/path/NAS)
#Tambahkan pengaturan mount di /ect/fstab
nas.local.addr:/volume1/Public/path/ /var/web/folderupload nfs fsc,rsize=524288,noatime,nodirtime
#Mount
mount /var/web/folderupload
#Salin data dari backup ke NAS
#biasanya cp -r /var/web/folderupload_backup /var/web/folderupload
#tetapi agar tidak mengganggu kinerja sistem diubah menjadi:
rsync -r -v --progress --bwlimit 5000 /var/web/folderupload_backup /var/web/folderupload
#Hapus folder backup
rm -r /var/web/folderupload_backup
Demikian, semoga bermanfaat. [bst]