Upload
vanthien
View
215
Download
0
Embed Size (px)
Citation preview
Bab 4
Hasil dan Pembahasan
Pada bab ini memuat hasil dan pembahasan yang meliputi
implementasi dari perancangan, pengujian dan hasil analisa.
Implementasi tersebut meliputi konfigurasi Nginx untuk load
balance, MySQL-Max untuk cluster MySQL serta pengaturan file
nginx.conf, config.ini dan my.cnf.
4.1 Implementasi Sistem
4.1.1 Implementasi Balancer
Untuk dapat menggunakan webserver clustering dengan
skema load balancing. Pastikan semua paket dan software
pendukung telah di-install. Proses instalasinya disesuaikan dengan
paket yang di-install pada sistem operasi linux. Jika paketnya adalah
file rpm, maka di-install dengan rpm. Jika file-nya adalah kompresi,
maka dapat langsung di-extract dan di-compile atau dapat langsung
menginstal melalui repository yang ada pada setiap linux.
Pada pengaturan load balancer yang menggunakan paket
aplikasi Nginx membutuhkan sedikit pengaturan yang ada pada file
/etc/nginx/nginx.conf. Pengaturan dilakukan dengan cara
menambahkan baris upstream pada tag http seperti yang terlihat
pada Kode Program 4.1. Kode Program 4.1 Nginx.conf
1. ... 2. ... 3. ... 4. http { 5. upstream sia { 6. server 192.168.1.3; 7. server 192.168.1.4; 8. }
31
32
9. 10. server { 11. location /{ 12. proxy_pass http://sia; 13. } 14. } 15. ... 16. ... 17. ...
Maksud dari Kode Program 4.1 adalah jika user sedang
mengakses web server dengan IP load balancer maka secara
otomatis load balancer akan mengalihkan request http tersebut
langsung ke IP server 192.168.1.3 dan IP 192.168.1.4 secara
seimbang sesuai dengan jumlah request user. Apabila semua
pengaturan tersebut sudah dilakukan secara benar, maka load
balancing siap untuk menjalankan fungsinya bagi real server. Selain
pengaturan nginx.conf, pada load balancer juga dilakukan
pengaturan DNS (Domain Name System) pada paket aplikasi Bind9
dengan membuat DNS bernama sia.tunashararapan.edu. Gambar 4.1
merupakan tampilan apabila nginx sudah selesai dikonfigurasi.
Gambar 4.1 Load Balancing Nginx
4.1.2 Implementasi Clusterware
MySQL-max merupakan middleware yang disediakan oleh
MySQL untuk membangun sebuah cluster. Middleware ini mampu
33
menyediakan mesin penyimpanan NDB yang bisa dihubungkan
untuk menjadi sebuah cluster. Cluster yang dibangun menggunakan
dua buah mesin NDB (node) untuk web server sekaligus sebagai
storage server dan menggunakan sebuah mesin management untuk
mengatur mesin NDB serta satu buah PC sebagai server balancer
untuk mengatur request dari user. Kedua node yang tergabung
dalam mesin NDB nantinya akan mengakses storage server yang
ada pada dirinya sendiri (sesuai dengan cara kerja MySQL cluster
yaitu shared-nothing). Supaya dapat berkomunikasi dengan baik,
setiap node harus memiliki alamat IP yang sesuai pada setiap
network interfaces dan harus didefinisikan juga alamat IP dari setiap
node yang digunakan. Definisi tersebut disimpan didalam sebuah
host file dengan nama hosts yang terletak didalam folder /etc/hosts
pada PC balancer seperti yang terlihat pada Kode Program 4.2. Kode Program 4.2 /etc/hosts
1. 192.168.1.1 balancer 2. 192.168.1.2 management 3. 192.168.1.3 node1 4. 192.168.1.4 node2
Kode Program 4.2 menjelaskan bahwa IP 192.168.1.1
digunakan oleh PC balancer, IP 192.168.1.2 oleh PC management,
IP 192.168.1.3 oleh PC node1, dan IP 192.168.1.4 digunakan oleh
PC node2. Selain sebagai definisi PC yang digunakan oleh cluster,
definisi tersebut juga digunakan untuk menjalankan protokol ssh
sebagai remote server dari PC balancer.
Pengaturan pertama pada server management membutuhkan
paket aplikasi MySQL-Cluster yang bernama mysql-max-5.0.19-
linux-i686-glibc23.tar yang di ekstrak di folder /usr/src/mysql-mgm.
Pengaturan server management atau MGM ini dilakukan dengan
34
membuat file config.ini yang ada pada /var/lib/mysql-
cluster/config.ini dengan memasukkan kode program seperti pada
Kode Program 4.2. Kode Program 4.3 Config.ini
1. [NDBD DEFAULT] 2. NoOfReplicas=2 3. 4. [MYSQLD DEFAULT] 5. 6. [NDB_MGMD DEFAULT] 7. 8. [TCP DEFAULT] 9. 10. [NDB_MGMD] 11. HostName=192.168.1.2 12. 13. [NDBD] 14. HostName=192.168.1.3 15. DataDir= /var/lib/mysql-cluster 16. 17. [NDBD] 18. HostName=192.168.1.4 19. DataDir=/var/lib/mysql-cluster 20. 21. [MYSQLD] 22. [MYSQLD]
Maksud dari Kode Program 4.3 adalah pada tag [NDBD
DEFAULT] menjelaskan bahwa jumlah server yang dicluster adalah
2 komputer dengan IP 192.168.1.3 dan IP 192.168.1.4 yang terlihat
pada baris 13 sampai baris 19. Sedangkan pada tag [NDB_MGMD]
merupakan IP dari server management yang bertugas mengatur
server NDB. Apabila semua konfigurasi sudah dilakukan dengan
benar maka server MGM dapat memulai fungsinya sebagai
management node, seperti terlihat pada Gambar 4.2.
35
Gambar 4.2 Halaman Utama ndb_mgm Awal
Gambar 4.2 menjelaskan bahwa server management ini sama
sekali belum terhubung dengan server node. Pada tag [ndbd(NDB)]
menghubungkan antara server management dengan server node
yang mempunyai IP 192.168.1.3 dan IP 192.168.1.4. Sedangkan
pada tag [mysqld(API)] menghubugkan antara server management
dengan server node mysql yang ada pada IP 192.168.1.3 dan IP
192.168.1.4.
Pengaturan server NDBD juga sama seperti server
management yakni membutuhkan paket aplikasi MySQL-Cluster
yang bernama mysql-max-5.0.19-linux-i686-glibc23.tar serta
beberapa paket aplikasi web server diantaranya yaitu mysql-server,
mysql-client, apache2, php5, libapache2-mod-php5, php5-mysql,
php5-curl, php5-gd, php5-idn, php-pear, php5-imagick, php5-imap,
php5-mcrypt, php5-memcache, php5-ming, php5-ps, php5-pspell,
php5-recode, php5-snmp, php5-sqlite, php5-tidy, php5-xmlrpc,
php5-xsl dan phpmyadmin yang diinstall langsung dari repository
linux ubuntu 11.04. Pengaturan pada server NDBD dilakukan pada
file my.cnf yang terletak pada folder /etc/my.cnf dengan cara
menghubungkan file my.cnf pada folder /etc/mysql/my.cnf.
36
Pengaturan dilakukan dengan cara menambahkan baris ndbcluster
pada tag mysqld dan menambahkan tag mysql_cluster pada akhir
baris kode program yang terlihat pada Kode Program 4.3. Kode Program 4.4 My.cnf
1. ... 2. ... 3. ... 4. [mysqld] 5. ndbcluster 6. ndb-connectstring=192.168.1.2:1186 7. ... 8. ... 9. ... 10. ... 11. [mysql_cluster] 12. ndb-connectstring=192.168.1.2:1186
Maksud dari Kode Program 4.4 adalah pada tag [mysqld]
menjelaskan bahwa MySQL server NDBD akan dihubungkan ke
server MGM dengan IP 192.168.1.2 dan port mysqld 1186.
Sedangkan baris program ke 11 dan 12 menjelaskan bahwa MySQL
pada server NDBD dihubungkan ke server MGM untuk menjadi
satu kesatuan cluster. Apabila semua konfigurasi pada server NDB
ini sudah dilakukan dengan benar maka pada server MGM yang
semula server id tidak terhubung akan menjadi terhubung, seperti
terlihat pada Gambar 4.3.
Gambar 4.3 Halaman Utama ndb_mgm Jadi
37
Gambar 4.3 menjelaskan bahwa server management sudah
terhubung dengan server node. Pada tag [ndbd(NDB)]
menghubugkan antara server management dengan server node yang
mempunyai IP 192.168.1.3 yang berfungsi sebagai master node dan
IP 192.168.1.4. Sedangkan pada tag [mysqld(API)] menghubugkan
antara server management dengan server node mysql yang ada pada
IP 192.168.1.3 dan IP 192.168.1.4.
4.1.3 Impelementasi Database
Untuk implementasi basis data beserta tabel-tabelnya dapat
dilihat pada Lampiran 3.
Setelah dilakukan implementasi basis data dan tabel-tabelnya,
selanjutnya dilakukan pengaturan untuk menghubungkan basis data
yang sudah dibuat dengan aplikasi yang dibuat. Pengaturan ini
dilakukan pada file config.php. Pengaturan dapat dilihat pada Kode
Program 4.5. Kode Program 4.5 Config.php
1. <?php 2. $host='localhost'; 3. $user='root'; 4. $pass='boimzood'; 5. $db='siasat'; 6. $table='siswa'; 7. $conn=mysql_pconnect($host, $user, $pass)or die('Maaf,Koneksi
gagal terhubung ke server'); 8. mysql_select_db($db)or die('Database Can\'t be Selected!'); 9. ?>
Kode Program 4.5 dapat dijelaskan bahwa host yang
digunakan adalah localhost dengan user root, password boimzood
dan nama database siasat. Kode program ini berfungsi untuk
menghubungkan aplikasi dengan database.
38
4.2 Pengujian Sistem Pada tahapan ini dilakukan pengujian diantaranya pengujian
load balancing yaitu pengujian mesin NDB, perpindahan migrasi
beban dan pengujian terhadap kinerja MySQL cluster. Dalam
pengujian MySQL cluster akan dilihat dari segi kecepatan, beban
dan availabilitas dari web server.
4.2.1 Pengujian Load Balancing
Pengujian load balancing dilakukan untuk melihat node
manakah yang melayani request dari user ketika terjadi banyak
request terhadap web server, serta apakah pembagian kerja atau
penyamarataan kerja dari web server terhadap request dari user
sudah berjalan dengan baik. Pengujian ini dilakukan dengan
menggunakan iftop yang merupakan salah satu aplikasi monitoring
jaringan untuk melihat traffic jaringan secara realtime.
Pengujian dengan melihat jumlah paket yang lewat dari user
ke load balancing. Jika load balancing sudah bekerja dengan baik,
maka setiap ada request dari user akan dialihkan ke masing-masing
web server (node) yang ada pada cluster. Sehingga user hanya
melakukan request ke IP atau hostname dari balancer. Padahal yang
sebenarnya terjadi adalah balancer tidak mengerjakan request dari
user, tetapi balancer hanya mengalihkan dan membaginya kepada
masing-masing web server (node) dalam cluster untuk dapat
mengerjakan dan memberikan layanan yang diminta oleh user
melalui balancer.
39
Gambar 4.4 Capture dengan Iftop
Gambar 4.4 menunjukkan bahwa balancer sudah bekerja
dengan baik. Hal itu ditunjukkan dengan pembagian kerja kepada
node1 dan node2 secara merata. Terlihat dari tiga kolom paling
kanan pada node1, disana ada 21,3Kb 14,2Kb 8,53Kb. Mulai dari
paling kiri, merupakan jumlah data yang diterima oleh node1 dalam
selang waktu 2 detik yaitu sebanyak 21,3Kb. Kolom berikutnya
menunjukan data yang diterima dalam waktu 10 detik yaitu
sebanyak 14,2Kb, dan yang terakhir dalam jangka waktu 40 detik
yaitu sebanyak 8,53Kb. Kemudian node2 juga terlihat hampir sama
yaitu dalam selang waktu 2 detik yaitu sebanyak 21,2Kb. Kolom
berikutnya menunjukan data yang diterima dalam waktu 10 detik
yaitu sebanyak 14,1Kb, dan yang terakhir dalam jangka waktu 40
detik yaitu sebanyak 8,61Kb.
4.2.2 Pengujian Kecepatan (SpeedUp)
Setelah bisa dipastikan bahwa mesin NDB dan storage server
berjalan dengan baik, selanjutnya dilakukan pengujian web server
cluster. Pengujian web server cluster dilakukan secara bertahap,
tahap pertama yakni dilakukan dengan satu web server (web server
40
tunggal). Pengujian ini berfungsi untuk melihat kecepatan masing-
masing web server dalam menangani request dari user. Tahap yang
kedua adalah dengan melakukan pengujian web server cluster,
pengujian ini bertujuan untuk mengetahui apakah terjadi
peningkatan kecepatan (speedup) terhadap request dari user.
o Web Server Tunggal
Pengujian ini dilakukan dengan simulasi menggunakan
program yang mampu mengakses server dengan beberapa user
secara bersamaan. Pengujian ini dilakukan dengan melihat
kecepatan pada salah satu web server (node) dengan menggunakan
bantuan aplikasi web server stress tool yang mampu melakukan
pengujian dengan melihat kecepatan akses setiap user yang meminta
request kepada web server. Proses pengujian tersebut didapatkan
hasil seperti pada Tabel 4.1. Tabel 4.1 Perbandingan Web Server Tunggal
User No Bytes kbit/s 1 16.093 14,35 2 16.093 32,64 3 14.630 13,7 4 17.556 260,04 5 16.093 56,14 6 16.093 13,68 7 16.093 14,63 8 16.093 143,43 9 16.093 63,6 10 16.093 435,29 11 16.093 16,42 12 17.556 62,23 13 16.093 13,26 14 17.556 480,66 15 16.093 32,36 16 16.093 36,98
41
17 16.093 399,39 18 14.630 18,47 19 16.093 530,55 20 14.630 13,92
Rata-rata 16.093 132,587
o Web Server Cluster
Pada tahap ini pengujiannya dilakukan hampir sama pada
pengujian web server tunggal. Namun dalam melakukan pengujian
pengaksesan web sever akan dilakukan melalui load balancer
(http://www.sia.tunasharapan.edu/), sehingga load balancer akan
langsung membagi beban request ke node-node yang ada dalam
cluster. Proses pengujian tersebut didapatkan hasil seperti pada
Tabel 4.2. Tabel 4.2 Perbandingan Web Server Cluster
User No Bytes kbit/s 1 17.466 57,58 2 17.547 436,76 3 17.547 122,94 4 17.448 314,5 5 17.466 147,14 6 17.538 441,65 7 17.556 236,03 8 17.448 331,6 9 16.093 213,74 10 15.994 324,75 11 17.457 108,98 12 17.547 499,93 13 17.556 498,81 14 17.448 330,09 15 17.556 526,4 16 17.448 334,76 17 17.556 523,51 18 15.994 336,87
42
19 16.093 488,11 20 15.994 303,26
Rata-rata 17.137,6 328,8705
o Perbandingan Web Server Tunggal dan Cluster. Tabel 4.3 Perbandingan Web Server Tunggal dan Cluster
Besar data (Bytes) Kecepatan (kbit/s)
Tunggal 16.093 132,587
Cluster 17.137,6 328,8705
Perbandingan (%) 6,1 59,7
Tabel 4.3 dapat dilihat kelebihan apabila menggunakan web
server cluster, dimana kecepatan untuk mengakses data sebesar
17.137,6 Bytes atau 17,13 Mb user bisa mengaksesnya dengan
kecepatan 328,8705 kb/s. Sedangkan pada web server tunggal
dengan data sebesar 16.093 Bytes atau 16,1 Mb user bisa
mengaksesnya dengan kecepatan 132,587 kb/s. Perbandingan yang
ditampilkan dari hasil pengujian dengan selisih besar data yang
diakses sebesar 6,1% dengan beda kecepatan akses sebesar 59,7%.
Dengan demikian dapat dibuktikan bahwa dengan menggunakan
web server cluster, kecepatan dalam mengakses data lebih cepat dari
pada mengunakan web server tunggal.
4.2.3 Pengujian Availabilitas Web Server
Pengujian pada tahap ini dilihat dari availabilitas antara web
server tunggal dan web server cluster. Pengujian ini berfungsi untuk
melihat apakah dalam web server cluster tetap dapat melayani
request dan menyediakan ketersediaan data bagi user.
43
o Web Server Tunggal
Pengujian ini dilakukan dengan cara me-non-aktifkan NIC
(Network Interface Card) pada web server tunggal dengan
berasumsi bahwa web server tunggal telah mati (down), kemudian
dilakukan pengaksesan ke web server tersebut. Hasil pengujian ini
dapat dilihat pada Gambar 4.5.
Gambar 4.9 Web Server Up
Gambar 4.5 adalah gambar sebelum web server down.
Kemudian gambar setelah web server down dapat dilihat pada
Gambat 4.6.
Gambar 4.6 Web Server Down
44
Gambar 4.6 menunjukkan bahwa pada web server tunggal
apabila web server down maka user sudah tidak bisa melakukan
request kepada web server.
o Web Server Cluster
Pengujian ini dilakukan dengan cara yang sama pada
pengujian web server tunggal yaitu dengan cara me-non-aktifkan
NIC (Network Interface Card) pada salah satu web server (node)
yang ada pada cluster dengan berasumsi bahwa web server telah
mati (down). Pengujian ini juga dilakukan pengujian pada load
balancer dalam mengimplementasikan availabilitas sistem cluster,
apakah web server clustrer dapat tetap melayani apabila salah satu
node mengalami kematian (down). Hasil pengujian ini dapat dilihat
pada Gambar 4.7 sampai Gambar 4.10.
Gambar 4.7 MGM_Node Sebelum Salah Satu Node Down
Gambar 4.7 menunjukkan bahwa semua node yang terhubung
dengan MGM masih dalam kondisi aktif atau masih terhubung
dengan baik.
45
Gambar 4.8 Web Server Cluster dengan Dua Node
Gambar 4.8 memperlihatkan bahwa web server cluster masih
berjalan dengan baik dalam melayani request dari user. Kemudian
apabila salah satu node dalam cluster dimatikan akan terlihat seperti
Gambar 4.9.
Gambar 4.9 MGM_Node Setelah Salah Satu Node Down
Gambar 4.9 menunjukkan bahwa salah satu web server (node)
dengan IP 192.168.1.3 telah down, tetapi salah satu web server
(node) masih tetap aktif yakni web server server (node) dengan IP
192.168.1.4.
46
Gambar 4.10 Web Server Cluster dengan Satu Node
Gambar 4.10 memperlihatkan ternyata sistem load balancing
dalam mengimplementasikan availabilitas sistem cluster dapat
bekerja dengan baik, karena request dari user masih bisa dilayani
dengan baik. Hal tersebut dikarenakan masih adanya web server
(node) yang masih tetap bekerja, sehingga balancer hanya
mengalihkan request dari user tersebut ke web server (node) yang
masih aktif. Jika web server yang mengalami (down) sudah
diperbaiki, maka web server tersebut akan langsung aktif kedalam
anggota cluster.
Gambar 4.11 Web Server Down Kembali Aktif
47
4.3 Hasil Analisa Dari semua hasil pengujian yang telah dilakukan, hasil analisa
dari sistem load balancing untuk web server dengan MYSQL
cluster adalah :
o Dengan menggunakan aplikasi nginx sebagai load balancer,
request dari user mampu dibagi ke web server secara merata.
o MySQL cluster mampu memberikan layanan data secara
realtime, karena sistem replikasi data yang ada pada setiap
mesin storage.
o Pengujian dengan menggunakan aplikasi web stress tool,
sistem web server cluster mampu memberikan layanan data
secara lebih cepat dari pada menggunakan sistem web server
tunggal.
o Availabilitas web server dapat terpenuhi dengan baik, hal ini
dibuktikan dengan mematikan salah satu web server dan
request dari user masih bisa dilayani dengan baik. Pengujian
ini juga membuktikan bahwa kinerja dari load balancing
sudah berjalan dengan optimal.
o Titik krusial pada sistem cluster terletak pada MGM node. Hal
ini terjadi karena apabila PC MGM node mati, maka tabel-
tabel pada database storage ndb cluster akan hilang.