1
Indikator Beban
1)
Stefan Julianto, 2)Wiwin Sulistyo, ST., M.Kom., 3)Dr. Sri Yulianto, J.P., S.Si., M.Kom.
Program Studi Teknik Informatika
Fakultas Teknologi Informasi Universitas Kristen Satya Wacana Salatiga, Jawa Tengah 50711
Phone (0298) 321212
Email : 1)fan_aholic@yahoo.com, 2)wiwinsulistyo@staff.uksw.edu 3)sriyulianto@gmail.com
ABSTRACT
File that is popular and downloaded more than other files is a common thing that happens in file server. High traffic is determined from total users that access the file from the servers. There are some files that downloaded more than other files on the servers. This thing could make bottleneck occur in ones of the servers that served the files. Method that being used is NDLC (Network Development Life Cycle). NDLC method has purpose to plan an architecture of file servers from the decision of the topology that being used and the plan to choose the application and optimalization of the file servers. The purpose of this research is to use GlusterFS as the filesystem to address the issues. The type of filesystem that going to be used is distributed and striped type. The two type of the filesystems will being used to solve the problem of bottleneck in some of servers that have overload traffic into another server with low traffic.
ABSTRAK
File yang populer dan diunduh lebih sering dibandingkan files lainnya merupakan hal yang sering terjadi pada file server. Padatnya traffic jaringan ditentukan oleh jumlah user yang mengunduh file pada server. Dari sejumlah file yang terdapat pada server, terdapat beberapa file yang diunduh lebih banyak dari file lainnya. Hal ini mengakibatkan bottleneck pada salah satu server yang menyimpan file tersebut, sedangkan server lainnya dalam keadaan tidak padat. Metode yang digunakan adalah metode NDLC (Network Development Life Cycle). Digunakannya metode ini bertujuan untuk merancang sebuah arsitektur file server dari awal penentuan topology hardware sampai pada perancangan aplikasi dan optimalisasi file server. Tujuan dari penelitian ini adalah merancang file server menggunakan filesystem GlusterFS. Tipe Filesystem yang dipakai menggunakan tipe distributed dan stripe. Kedua tipe tersebut digunakan untuk mengatasi bottleneck pada salah satu server yang mengalami kepadatan jaringan untuk dibagi bebannya ke server lainnya.
1. Pendahuluan
Banyaknya user yang mengunduh file pada fileserver dapat mengakibatkan padatnya salah satu server pada cluster file server. Padatnya salah satu server tersebut mengakibatkan menurunnya transfer rate dari server ke user. Semakin menurunnya transfer rate maka semakin lama pula waktu yang dibutuhkan user untuk selesai mengunduh file. Ukuran file
turut menentukan lama sebuah file untuk selesai diunduh, semakin besar ukuran file, semakin lama user selesai untuk mengunduhnya.
Kinerjasuatu cluster server dapat terganggu dikarenakan server dalam cluster yang
bahwa di dalam suatu cluster server, storage server yang kemungkinan besar mengalami gangguan atau kerusakan[4].
Untuk mencegah storage server pada cluster tidak mengalami penurunan kinerja, dibutuhkan suatu perancangan fileserver yang saling bekerja sama untuk membagi beban jaringan. Pada penelitian ini akan menggunakan GlusterFS untuk mengatur pembagian file
pada cluster fileserver. Dengan pembagian tipe volume distributed dan stripe, diharapkan akan dapat mendistribusi beban jaringan. Dengan didistribusikannya file sesuai tingkat popularitasnya, maka diharapkan tidak terjadi bottleneck pada salah satu server dari kumpulan cluster fileserver yang ada.
2. Kajian Pustaka
Penelitian dengan judul Analysis of Six Distributed File System[2], melakukan perbandingan dari enam jenis aplikasi distributed file systems. Diantaranya terdapat
GlusterFS DFS. GlusterFS memiliki kelebihan dalam kecepatan input/output yang lebih baik
dibanding DFS jenis lainnya. Selain itu GlusterFS juga tidak memisahkan antara server
metadata dengan server penyimpanan data, sehingga GlusterFS dapat dikembangkan hingga
beberapa server dalam jumlah yang sangat banyak. Kelebihan GlusterFS inilah yang dianggap sangat cocok dengan kebutuhan web file server yang merupakan tipe cluster server
yang membutuhkan transfer rate tinggi dan dapat diperluas dengan mudah dan berskala besar.
Tabel 1 Perbandingan Fitur DFS [2]
HDFS iRODS Ceph GlusterFS Lustre
Architecture Centralized Centrlized Distributed Decentralized Centralized
Naming Index Database CRUSH EHA Index
No failover No failover High High Failover
Data availability
Replication Replication Replication RAID-like No
Placement strategy
Auto Manual Auto Manual No
Replication Async Sync Sync Sync RAID-like
Cache
GlusterFS merupakan salah satu DFS yang memiliki placement strategy manual. Sehingga
untuk menjadikan GlusterFS DFS menjadi filesystem yang dapat melakukan placement
strategy dinamis, perlu ditambahkan sebuah script tambahan untuk manajemen file pada file
server cluster.
management cluster. Ketika terjadi server overload, maka management cluster harus mampu memindahkan atau membagi beban server ke server lainnya di dalam cluster file server.
GlusterFS memiliki desain client server dimana tidak terdapat server metadata.
GlusterFS menyimpan data dan metadata ke beberapa devices yang terletak di beberapa
server yang saling terhubung. Kumpulan devices itu disebut volume , yang dapat dikonfigurasi untuk menyimpan data secara stripe ke dalam bentuk blocks dan mereplikasinya. Blocks kemudian didistribusikan ke dalam beberapa device di dalam
volume[5].
GlusterFS menggunakan algoritma Elastic Hasing Algorithm. Algoritma ini tidak
memisahkan antara data dengan metadatanya. Lokasi data diketahui dengan hanya membutuhkan informasi berupa path name dan file name. Tidak dipisahkannya data dan metadatanya dikarenakan lokasi file dapat ditentukan secara independen.
Gambar 1 Cara Kerja Gluster Filesystem Distributed[7]
Pada gambar 2 merupakan penjelasan cara kerja umum GlusterFS. Brick adalah
storage filesystem yang ditempatkan ke dalam volume. Brick kemudian menjadi kesatuan
di dalam perangkat (server) yang memuat volume. Volume adalah perangkat yang merupakan tempat menampung data sebenarnya. Setelah brick dikelompokkan ke dalam
volume dengan tipe tertentu misalnya tipe striped, maka stripping data akan terjadi ke
dalam beberapa bricks di dalam satu volume.
3. Metode Perancangan Sistem
Perancangan File Server menggunakan pendekatan metode NDLC ( Network
Development Life Cycle ). Tahapan yang terdapat di dalamnya yaitu, analysis, design,
simulation prototyping, implementation, monitoring, management.
Gambar 2 menunjukkan diagram NDLC yang akan digunakan pada file server. Tahap pertama yaitu tahap analysis merupakan tahapan untuk menentukan dan menganalisa kebutuhan system File Server dengan GlusterF S. GlusterFS membutuhkan minimal dua server yang berfungsi sebagai Gluster server dan minimal 1 server sebagai GlusterFS client.
Gluster server merupakan server yang menampung data berupa file yang disimpan sehingga
Gluster server inilah yang merupakan pusat file server pada arsitektur file server
menggunakan GlusterFS ini.
Analisis lainnya yang dianalisa adalah seberapa besar maximum file size yang diperbolehkan diunggah ke file server. Besaran file maximum yang disimpan pada server
inilah yang menjadi patokan untuk menentukan apakah suatu file akan disimpan pada
filesystem distributed atau filesystem striped.
Analisis yang terakhir adalah analisis untuk menentukan jumlah total download per jam untuk masing-masing file untuk dikatergorikan sebagai file yang memiliki tingkat jumlah unduhtinggi. Jumlah total download per jam akan di reset tiap satu jam dengan pertimbangan kemampuan maksimum transfer rate ethernet cable, sehingga file yang melebihi batas 100 total download per jam akan dipindahkan antar kedua filesystem distributed dan striped. Ukuran file yang dijadikan batas adalah minimal 100 mb dengan mengacu pada transfer rate
ethernet, yaitu 100 mb/s.
Tahap Design yang akan digunakan merupakan topologi antara file server-server
yang menyimpan file dengan web server/GlusterFS client. Pada tahapan ini, design yang digunakan menyesuaikan dengan prototype local network. Local network ini hanya mencakup jaringan LAN. Ketiga server hostname dalam cluster GlusterFS harus saling terdaftar di dalam hosts di masing-masing server. Protocol yang digunakan adalah tcp, dan
port yang digunakan adalah port 24007 untuk Gluster daemon, 24008 untuk infiniband
management, port 34865 – 34867 untuk inline GlusterNFS server dan port 111 untuk
portmapper.
Gambar 3 menjelaskan topology jaringan yang akan dipakai oleh cluster glusterfs.
Topology yang digunakan merupakan topology dasar dari glusterfs. Kedua gluster server
adalah server 1 dan server 2. Web server adalah server yang juga berfungsi sebagai server
gluster client. Shell script yang akan dibuat terdapat pada web server untuk mengatur
distribusi file pada file server.
Tahap simulasi akan dijalankan pada virtual server menggunakan aplikasi
VirtualBox.File Server dan web server akan diinstall pada Ubuntu Server 12.04. Server yang
akan disimulasikan adalah dua file server Gluster dan satu server GlusterFS client. Web
server akan diinstall pada server GlusterFS client menggunakan apache2. Database mysql
akan dibuat pada server GlusterFS client untuk menyimpan data file berupa nama file, ukuran
file, dan path file.
Pada tahap implementation akan diimplementasikan semua tahapan dari tahapan
design sampai ke tahapan simulation prototyping. Dimulai dengan instalasi Gluster server
pada kedua file server dan instalasi GlusterFS client pada head server. Selain instalasi utama berupa cluster GlusterF S, diperlukan juga instalasi mysql, apache web server, web browser
(firefox), wonderhaper, dan tcptrack sebagai aplikasi pelengkap web file server menggunakan
GlusterFS.
Gambar 4 Flowchart Implementasi Shell Script pada File Server Start
Shell Script
Database File
total unduh lebih dari 100
ukuran file >100mb
copy file from distribute to
stripe
Finish
ya tidak
Gambar 4 menjelaskan flowchart implementasi shell script pada file server. total unduh adalah total unduh file pada file server. Ukuran file adalah ukuran file yang disimpan pada file server. Alasan ukuran file ditentukan 100 mb sebagai acuan adalah dikarenakan
striping data lebih efektif pada file berukuran besar, yang pada penelitian ini dipakai 100 mb
sebagai batas minimal suatu file untuk dapat didistribusikan ke dalam filesystem tipe
striped[7].
Tahap monitoring diperlukan untuk memonitor file server apakah telah berjalan sesuai dengan konfigurasi yang ditentukan. Monitoring menggunakan tcptrack dari sisi head
server untuk memonitor kondisi Gluster server. Tcptrack memonitor alamat IP Gluster
server yang terhubung dengan head server berupa transfer rate dan status jaringan. Dari sisi
client, monitoring dilakukan dengan mengamati transfer rate pada download manager
browser (firefox). Data yang didapat dari hasil monitoring akan dicatat dan dianalisa apakah
sesuai hasil yang diingankan atau tidak dan apa yang menyebabkan hasil yang didapat tersebut.
Tahapan management adalah tahapan terakhir yang merupakan tahapan penting yang digunakan sebagai kebijakan utama untuk mendistribusikan file ke dalam filesystem
distributed atau striped. Management dilakukan secara otomatis dengan menggunakan shell
script. Shell script akan mengatur dan mengecek kondisi file menggunakan data dari
database mysql dan melakukan tindakan sesuai dengan kondisi yang telah ditentukan pada
tahap analysis.
4. Hasil dan Pembahasan
Persiapan pertama yang dilakukan adalah dengan melakukan konfigurasi di ketiga
server yang merupakan bagian dari cluster GlusterFS. Pembagian konfigurasi server dibagi
ke dalam dua tahap. Tahap pertama adalah melakukan konfigurasi gluster server di kedua
server yang nantinya berfungsi sebagai tempat penyimpanan data. Konfigurasi gluster server
dapat dilihat pada gambar 5.
Pada gambar 5, gluster server memiliki dua directory yang diperuntukkan untuk menyimpan file. Directory /datadis adalah directory utama untuk menyimpan file. Directory
/data adalah directory untuk menyimpan file sementara. Semua file yang diupload ke file
server akan otomatis disimpan ke dalam directory /datadis. Sedangkan file yang akan
disimpan pada directory /data, adalah file yang telah diunduh sebanyak lebih dari seratus kali.
Shell script inilah yang akan memindahkan file yang terdapat pada directory /datadis ke
dalam directory /data.
Tipe distributed adalah tipe filesystem di mana file yang didistribusikan ke dalam file
server dibagi secara merata ke semua bricks yang ada. Tipe striped merupakan tipe filesystem
dimana file yang ada dipecah ke dalam ukuran block kecil sesuai ukuran block size standar
glusterfs yaitu 128 kb yang kemudian pada konfigurasi yang dipakai diubah menjadi 100 mb
per block data.
Tahap kedua adalah konfigurasi head server atau gluster client. Gluster client
merupakan jembatan yang menghubungkan semua gluster server yang ada. Pada server
gluster client inilah sebuah virtual directory akan digunakan oleh aplikasi php sebagai tempat
penyimpanan file. Gambar 6 menunjukkan lokasi storage yang digunakan oleh gluster server.
Gambar 6 Filesystem Distributed dan Striped pada Gluster Client
Gambar 6 menunjukkan web server yang akan ditempatkan pada head server
GlusterFS dengan tujuan agar web server dapat langsung menggunakan directory volume
gluster server. Pada server ini juga terdapat aplikasi php yang digunakan untuk membuat
website dengan fungsi upload dan download.
Besaran maksimum file yang diatur oleh konfigurasi file pada file php.ini. Konfigurasi php.ini bertujuan untuk menyesuaikan dengan syarat yang dibuat pada shell
script untuk mengatur besaran file minimum untuk didistribusikan ke filesystem striped,
sehingga tidak terjadi kesalahan pada proses management file.
Database yang digunakan adalah database mysql. Database menyimpan data yang
berisi tentang informasi file tersimpan pada file server. Field utama yang terdapat pada
database file adalah namafile, ukuran, path, totalhr. Struktur database dapat dilihat pada
gambar 7.
Gambar 7 menjelaskan rancangan database yang akan digunakan oleh shell script
untuk management file. Field namafile adalah data berupa nama file, ukuran adalah data
berupa ukuran file dalam satuan kb (kilobytes), path adalah data berupa directory dimana file
disimpan pada gluster client secara virtual, totalhr adalah data berupa total download dalam durasi kurun waktu satu jam.
Management file secara dinamik diatur secara otomatis oleh shell script. Shell
script berfungsi untuk melakukan kontrol secara berkala kepada database file. Setiap jam
shell script akan mencari sebuah file yang memiliki total download melebihi batas minimum
yang telah ditetapkan yaitu 100 download per jam. File yang telah memiliki total download
lebih dari 100 dan juga memiliki ukuran lebih dari 200 Mb, akan dicopy ke dalam filesystem
striped yang terdapat pada directory /data. Shell script akan terus melakukan pengecekan
secara berkala sampai tidak ada lagi file yang memenuhi kriteria di atas, dan kemudian shell
script akan berada dalam kondisi idle.
Selain melakukan fungsi memindahkan file ke dalam filesystem striped, shell script
juga bertanggung jawab untuk mengontrol total size dari seluruh file yang terdapat pada
filesystem striped. Dikarenakan filesystem distributed merupakan filesystem utama tempat
penyimpanan file, maka total size dari filesystem striped tidak dapat melebihi total size filesystem distributed. Oleh karena itu shell script juga bertugas untuk menghapus file dari
filesystem striped untuk memberikan ruang kosong.
Kode Program 1 Shell Sript Management File
Kode Program 1 Shell Script untuk Distribusi File
Kode program 1 adalah script yang digunakan oleh shell script untuk management file yang berguna untuk mendisribusikan file pada file server. Pada kode program ini juga dijalankan perintah untuk mengecek data file pada database sebagai factor untuk melakukan sebuah tindakan pendisribusian file. File yang telah diseleksi dan memiliki tingkat request
lebih dari 100 request per detik dan memiliki ukuran file lebih dari 300 megabytes akan didistribusikan ke dalam gluster server bertipe filesystem striped.
Pengujian dilakukan dengan membandingkan keadaan dimana Cluster File Server
hanya menggunakan satu tipe filesystem dengan cluster file server yang menggunakan gabungan kedua tipe filesystem dengan optimalisasi shell script. Pengujian melihat transfer
rate yang dihasilkan jika kedua konfigurasi tersebut mengalami tingkat request yang tinggi
yang menimbulkan server overload pada salah satu gluster server.
Tabel 2 Hasil Pengujian Throughput Gluster Server #!/bin/bash
maxtotal=$(mysql –D coba1 –u root –pcluster –e “select max(totalhr) as max from infofile where ukuran>300000 and path=’/var/www/serverdis’ and totalhr >100”)
max=${maxtotal:4}
if[“$max” == “NULL”] then echo”no file” else
namafile=$(mysql –D coba1 –u root –pcluster –e “select namafile from infofile where ukuran>300000” nama=${namafile:9}
fi
Pengujian ke - batasan transfer rate. Pengujian selanjutnya adalah pengujian untuk melihat throughput
gluster server jika salah satu server mengalamai penurunan throughput.
Gambar 8 Perbandingan Throughput Server Sebelum dan Sesudah Optimalisasi
Gambar 8 menunjukkan perbedaan signifikan throuhput gluster server.Pada
request dengan total 100 request, transfer rate pada kedua jenis filesystem relatif masih tidak
terdapat perbedaan signifikan. Pada saat request telah melebih 100 requests untuk file yang sama, maka oleh management script beban menjadi terbagi dua. Pada server 1, dimana file
yang diminta berada yang pada saat requests berada pada jumlah maximum, shell script
Gambar 9 Perbandingan Throughput antar Gluster Server
Gambar 9 merupakan grafik yang menunjukkan kondisi real time saat terjadi
transfer file dari gluster server ke gluster client. Hasil throughput server 1 mencerminkan adanya penurunan throughput secara drastis disaat server 2 terjadi kenaikan througput yang sangat drastis. Hal ini dikarenakan server 1 yang melakukan transfer file dalam keadaan
heavy load sesudah shell script memindahkan pecahan dari file yang memiliki requests rate
yang tinggi. Titik terjadinya perubahan throughput pada kedua server merupakan titik dimana
server 1 telah selesai melakukan transfer file dan kemudian dilanjutkan oleh server 2 yang
memiliki throughput yang lebih besar dibandingkan server 1.
Gambar 10 Hasil Pengamatan Transfer Rate pada Client
Gambar 10 merupakan hasil pengujian dari sisi client yang melakukan download
file, terlihat terjadi peningkatan transfer rate yang signifikan setelah rentang waktu 60 detik.
Hal ini dikarenakan file server telah merespon dengan melakukan management transfer file
dari sisi file server. Sehingga dari grafik 3 ini dapat disimpulkan bahwa optimalisasi dengan
management file server GlusterFS berhasil meningkatkan transfer rate pada client yang
5. Simpulan
Hasil pengujian menunjukkan hasil yang sangat signifikan pada saat terjadi
overload pada salah satu file server. File server yang mengalami heavy overload yang
diakibatkan request yang melebihi 100 requests per detik mengakibatkan transfer rate
berkurang hingga 70% dalam konfigurasi single filesystem glusterfs distributed menjadi
bottleneck kepada file server lain yang tidak mengalamai over load. Konfigurasi yang
merupakan gabungan filesystem glusterfs distributed dan striped, jika terjadi bottleneck pada salah satu file server maka file yang menyebabkan over load akan dibagi ke file server lain sehingga transfer rate pada client hanya berkurang 10 %.
Kekurangan pada konfigurasi ini dalam lingkungan cluster glusterfs adalah tipe
filesystem striped secara merata membagi atau memecah file ke semua server yang ada yang
terdapat pada seluruh volume tipe striped. Dengan kata lain, jika terdapat server lainnya yang mengalami overload pada saat yang bersamaan, meskipun sudah dioptimalisasikan dengan
shell script yang dibuat, transfer rate yang didapat masih jauh dari optimal. Sehingga untuk
6. Daftar Pustaka
[1] Sehgal Priya, Vasily Tasarov, Erez Zadok, 2009, Evaluating Performance and Energy in File Systems Server Workloads, Stony Brook University, New York.
[2] Depardon Benjamin, 2013, Analysis of Six Distributed File Systems, Laboraioire MIS,
Universite de Picardie Jules Verne, Amiens.
[3] Baskoro Pranata 2013 Rancang Bangun Server Learning Management System (LMS)
Berbasis Metode Load Balancing, Jurusan Teknik Elektro, ITS,Solo.
[4] Kasick Michael, 2010, Black Box Problem Diagnosis in Parallel Filesystems, Electrical & Computer Engineering Department, Carnegie Mellon University, Pittsburg.
[5] Wang Yuan, 2011, Performance Evaluation of A Infiniband-based Lustre Parallel File
System, Information Engineering School, Communication Engineering of China,
Beijing.
[6] Etkin, Joshua dan John A. Zinky, 1989, Development Life Cycle of Computer Networks: The Executable Model Approach, IEEE Transaction on Software
Engineering 15: 1078.
[7] Gluster, Inc, 2011, An Introduction to Gluster Architecture, http://www.gluster.org.