Modifikasi Distributed File Server pada GlusterFS Menggunakan

advertisement
Modifikasi Distributed File Server pada GlusterFS Menggunakan
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)[email protected], 2) [email protected] 3) [email protected]
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.
Kinerja suatu cluster server dapat terganggu dikarenakan server dalam cluster yang
berfungsi sebagai storage mengalami gangguan. Terdapat kemungkinan 50%
1
2
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]
Architecture
Naming
Api
Fault detection
HDFS
Centralized
Index
CLI, FUSE
REST, API
iRODS
Centrlized
Database
CLI, FUSE
REST, API
Fully
connect
No failover
P2P
System
availability
Data
Replication
availability
Placement
Auto
strategy
Replication
Async
Cache
WORM,
consistency
lease
Load balancing
Auto
GlusterFS
Decentralized
EHA
FUSE, mount
Lustre
Centralized
Index
FUSE
Detected
Manually
No failover
Ceph
Distributed
CRUSH
FUSE,
mount
REST
Fully
connect
High
High
Failover
Replication
Replication
RAID-like
No
Manual
Auto
Manual
No
Sync
Lock
Sync
Lock
Sync
No
RAID-like
Lock
Manual
Manual
No
Pada tabel 1 merupakan perbandingan dari enam DFS yang sering digunakan.
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.
Sebuah sistem cluster file server memiliki beberapa server komputer yang saling
berbagi akses di dalam sebuah filesystem di dalam shared storage[1]. Untuk menghindari
terjadinya server overload pada salah satu server di dalam cluster file server, perlu dilakukan
3
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 Network Development Life Cycle[6]
4
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 GlusterFS. 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
unduh tinggi. 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 Topology Jaringan Web File Server dengan GlusterFS
5
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 GlusterFS, diperlukan juga instalasi mysql, apache web server, web browser
(firefox), wonderhaper, dan tcptrack sebagai aplikasi pelengkap web file server menggunakan
GlusterFS.
Start
Shell Script
Database
File
tidak
ya
total unduh lebih dari 100
tidak
ukuran file
>100mb
ya
copy file from
distribute to
stripe
Finish
Gambar 4 Flowchart Implementasi Shell Script pada File Server
6
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.
Gambar 5 Konfigurasi Gluster Server
7
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 Struktur Utama Database File
8
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.
#!/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
Kode Program 1
cp /var/www/serverdis/$nama /var/www/serverstrip
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
9
Pengujian ke 1
2
3
4
5
6
7
8
9
10
Server 1
Distributed
(Mbps)
5,6
5,6
5,5
5,4
4,9
5,7
5,6
4,9
5,1
5,3
Server 2
Striped (Mbps)
7,1
7,5
8,3
7,2
7,2
7,2
7,5
7,1
8,1
7,7
Pada tabel 2 terlihat jelas bahwa tipe server striped meningkatkan performa
throughput server dengan rentang rata-rata 2-3 Mbps. Hasil pengujian pada tabel 2 masih
pada tahap awal dimana kedua gluster server dalam keadaan normal dan belum diberi
batasan transfer rate. Pengujian selanjutnya adalah pengujian untuk melihat throughput
gluster server jika salah satu server mengalamai penurunan throughput.
6000
5000
4000
Distributed
3000
Striped
2000
1000
0
100 requests
>100 requests
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
memecah file yang diminta tersebut dan sebagian pecahannya didistribusikan ke server 2.
10
3000
2500
2000
Distributed
1500
Striped & Distributed
1000
500
0
10
20
30
40
50
60
70
80
90
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.
2500
2000
1500
Client
1000
500
0
10
20
30
40
50
60
70
80
90
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
mengunduh file yang dikategorikan sebagai file populer.
11
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
pengembangan ke depan diharapkan dapat melakukan management yang lebih efisien dalam
kondisi file server multi over load.
12
6.
[1]
[2]
[3]
[4]
[5]
[6]
[7]
Daftar Pustaka
Sehgal Priya, Vasily Tasarov, Erez Zadok, 2009, Evaluating Performance and Energy
in File Systems Server Workloads, Stony Brook University, New York.
Depardon Benjamin, 2013, Analysis of Six Distributed File Systems, Laboraioire MIS,
Universite de Picardie Jules Verne, Amiens.
Baskoro Pranata 2013 Rancang Bangun Server Learning Management System (LMS)
Berbasis Metode Load Balancing, Jurusan Teknik Elektro, ITS, Solo.
Kasick Michael, 2010, Black Box Problem Diagnosis in Parallel Filesystems,
Electrical & Computer Engineering Department, Carnegie Mellon University,
Pittsburg.
Wang Yuan, 2011, Performance Evaluation of A Infiniband-based Lustre Parallel File
System, Information Engineering School, Communication Engineering of China,
Beijing.
Etkin, Joshua dan John A. Zinky, 1989, Development Life Cycle of Computer
Networks: The Executable Model Approach, IEEE Transaction on Software
Engineering 15: 1078.
Gluster, Inc, 2011, An Introduction to Gluster Architecture, http://www.gluster.org.
Diakses tanggal 20 Mei 2014.
Download