bab iii - rancangan dan implementasi

Upload: dnurohmad

Post on 18-Oct-2015

56 views

Category:

Documents


1 download

DESCRIPTION

rancangan implementasi

TRANSCRIPT

  • BAB III

    PERANCANGAN DAN IMPLEMENTASI

    3.1. Alur Pengerjaan Tugas Akhir

    Untuk menganalisis linux virtual server (LVS) dan My SQL Cluster dengan

    tingkat ketersediaan tinggi pada tugas akhir ini dilakukan perancangan, implementasi

    dan pengukuran beberapa parameter meliputi throughput, request loss, waktu respon,

    dan cpu utilization. Adapun alur pengerjaan tugas akhir ini ditunjukkan pada Gambar

    3.1.

    Gambar 3.1 Diagram Alir Konsep Penelitian

  • BAB III PERANCANGAN DAN IMPLEMENTASI

    17

    IMPLEMENTASI LOAD BALANCING WEB SERVER DAN

    MYSQL CLUSTER UNTUK MENJAMIN HIGH

    AVAILABILITY PADA WEBSITE

    3.2. Perancangan Load Balancer dan MySQL Cluster

    Sistem yang diimplementasikan dalam tugas akhir ini terdiri dari dua

    komponen utama, yaitu linux virtual server dan MySQL Cluster. Dimana linux virtual

    server akan berfungsi sebagai load balancer dan failure detection sedangkan My SQL

    Cluster akan berfungsi menyediakan database yang high availability.

    Pada tugas akhir ini terdapat tiga komponen utama yaitu:

    a. Client, merupakan komputer yang bertugas untuk membangkitkan permintaan http.

    b. Director, sebagai sebuah server yang bertugas untuk meneruskan paket dari client

    kepada real server. Client dari jaringan luar akan menganggap director seolah

    sebagai server tunggal. Komputer director disini juga berfungsi sebagai

    manajemen node. Manajemen node berfungsi untuk mengatur sinkronisasi antara

    data node yang ada di dalam My SQL Cluster.

    c. Real Server, sebagai server yang melayani permintaan client. Ada dua komponen

    yang berjalan di real server yaitu web server dan mysql. Web server berfungsi

    sebagai penyedia layanan http dan mysql berfungsi sebagai tempat penyimpanan

    data website atau sebagai data node.

    Secara lebih jelas digambarkan pada Gambar 3.2.

    Gambar 3.2 Rancangan Konfigurasi Sistem

  • BAB III PERANCANGAN DAN IMPLEMENTASI

    18

    IMPLEMENTASI LOAD BALANCING WEB SERVER DAN

    MYSQL CLUSTER UNTUK MENJAMIN HIGH

    AVAILABILITY PADA WEBSITE

    Sistem yang dirancang menggunakan empat buah komputer yang membentuk

    sebuah cluster, dengan beban pada real server diseimbangkan oleh load

    balancer/director menggunakan metode penjadwalan Weighted Least Connection

    (WLC). Terdapat dua buah director dengan status active-standby untuk mendukung

    sistem dengan tingkat ketersediaan tinggi dan dua buah real server dengan status

    keduanya aktif. Selain berfungsi sebagai load balancer, director berfungsi juga

    sebagai manajemen node. Director dan real server dihubungkan oleh switch dan

    kedua real server menampilkan website yang identik

    Kedua real server memerlukan sinkronisasi data agar saat salah satu real

    server down bisa langsung digantikan oleh real server yang lain tanpa ada perbedaan

    data yang ditampilkan. Oleh sebab itu dibutuhkan suatu metode penyimpanan data

    yang dapat mendukung hal tersebut, dalam tugas akhir ini digunakan metode MySQL

    Cluster. MySQL Cluster dirancang menggunakan empat computer, dimana dua

    komputer sebagai manajemen node menggunakan platform linux gentoo dan dua

    komputer sebagai data node menggunakan platform linux ubuntu.

    Untuk menguji kehandalan sistem dilakukan simulasi adanya kegagalan pada

    salah satu real server, jika salah satu real server gagal atau mati maka real server

    lainnya akan melayani semua permintaan yang datang. Kemudian juga menguji sifat

    redundancy sistem dengan cara mematikan director yang aktif, sehingga standby

    director akan menggantikan director yang mati tersebut dan melanjutkan tugasnya.

    3.3. Komponen Sistem

    3.3.1. Komponen Perangkat Keras

    Dalam tugas akhir ini sistem cluster diuji dengan cara membangkitkan

    request secara simultan dalam jumlah yang banyak. Untuk itu akan memerlukan

    jumlah client yang banyak. Maka digunakan request generator supaya cukup

    dengan satu buah komputer seolah-olah bisa menghasilkan request yang

    dihasilkan oleh banyak client secara simultan. Spesifikasi komputer yang

    digunakan sebagai client yaitu :

    1. Processor : Intel Core 2 Duo E4600 @2.40GHz

    2. RAM : 1024MB

    3. Ethernet : Realtek RTL8101E PCI-E 100 Mbps

  • BAB III PERANCANGAN DAN IMPLEMENTASI

    19

    IMPLEMENTASI LOAD BALANCING WEB SERVER DAN

    MYSQL CLUSTER UNTUK MENJAMIN HIGH

    AVAILABILITY PADA WEBSITE

    Dua buah director dan manajemen node digunakan untuk meningkatkan

    kehandalan sistem yang bersifat fault tolerance dimana kedua director bekerja

    secara bergantian. Ketika salah satu director mengalami kegagalan maka

    director yang lain siap menggantikan dan meneruskan kerja director yang

    mengalami kegagalan tersebut. Spesifikasi komputer yang digunakan sebagai

    director yaitu

    a. Director primary

    1. Processor : AMD Athlon 64 Processor 3000+

    2. RAM : 512 MB

    3. Ethernet : - nVidia Corporation MCP51 10/100 Mbps

    - Dlink Sistem Inc RTL8139 10/100 Mbps

    b. Director secondary

    1. Processor : AMD Athlon 64 Processor 3000+

    2. RAM : 512 MB

    3. Ethernet : - nVidia Corporation MCP51 10/100 Mbps

    - Dlink Sistem Inc RTL8139 10/100 Mbps

    Minimal diperlukan dua real server untuk menciptakan sistem

    clustering, dimana aplikasi yang digunakan yaitu aplikasi http. Spesifikasi

    komputer yang digunakan yaitu :

    a. Real Server I

    1. Processor : Intel Core 2 Duo E4600 @2.40GHz

    2. RAM : 4 GB

    3. Ethernet : Realtek RTL8101E PCI-E 100 Mbps

    b. Real Server II

    1. Processor : Intel Core 2 Duo E4600 @2.40GHz

    2. RAM : 4 GB

    3. Ethernet : Realtek RTL8101E PCI-E 100 Mbps

    3.3.2. Komponen Perangkat Lunak

    Perangkat lunak yang digunakan dalam tugas akhir ini adalah sebagai berikut :

    A. Loadbalancer

    1. Sistem Operasi

  • BAB III PERANCANGAN DAN IMPLEMENTASI

    20

    IMPLEMENTASI LOAD BALANCING WEB SERVER DAN

    MYSQL CLUSTER UNTUK MENJAMIN HIGH

    AVAILABILITY PADA WEBSITE

    Komputer sebagai director yang diberi label lb1 dan lb2

    menggunakan system operasi Linux Gentoo.

    2. Kernel

    Kernel merupakan inti dari suatu sistem operasi Linux yang

    berhubungan dengan perangkat keras. Pada bagian kernel terdapat berbagai

    pilihan untuk memilih dan mengaktifkan driver perangkat keras dan

    algoritma penjadwalan yang digunakan.

    Kernel yang digunakan saat penelitian tugas akhir ini adalah kernel

    versi 2.6.36-gentoo-r5 untuk komputer director yang diberi label lb1 dan

    versi 2.6.34-gentoo-r12 untuk komputer director yang diberi label lb2..

    Sedangkan untuk computer sebagai real server dan client menggunakan

    kernel versi 2.6.24-16-generic

    3. Ipvsadm

    IP Virtual Server Administration (IPVSADM) digunakan untuk

    mengatur kerja director sehingga dapat menambahkan layanan-layanan apa

    saja yang mampu diberikan, memilih algoritma penjadwalan yang

    digunakan, dan meneruskan request kepada real server yang aktif. Pada

    director dengan label lb1 dan lb2 keduanya menggunakan ipvsadm versi

    1.25.

    4. Heartbeat

    Heartbeat merupakan sebuah program yang menyediakan fitur high

    availability pada linux virtual cluster. Diimplementasikan untuk

    menciptakan sistem active-standby, apabila director primary mengalami

    kerusakan maka director secondary akan mengambil alih tugas. Perangkat

    lunak yang digunakan pada penelitian ini yaitu heartbeat versi 2.0.8.

    5. Ldirectord

    Linux director daemon (ldirectord) memiliki fungsi untuk

    memonitor keadaan real server sehingga bisa diketahui status setiap real

    server sedang hidup atau mati. Apabila salah satu real server down maka

    ldirectord akan mengubah tabel IPVS sehingga paket yang datang tidak

    akan diteruskan kepada real server yang mati tersebut. Versi ldirectord

    yang digunakan adalah versi 1.186

  • BAB III PERANCANGAN DAN IMPLEMENTASI

    21

    IMPLEMENTASI LOAD BALANCING WEB SERVER DAN

    MYSQL CLUSTER UNTUK MENJAMIN HIGH

    AVAILABILITY PADA WEBSITE

    B. Real Server

    1. Sistem Operasi

    Sedangkan komputer sebagai real server keduanya menggunakan sistem

    operasi Linux Ubuntu. Untuk komputer client yang berfungsi sebagai

    pembangkit request menggunakan sistem operasi Linux Ubuntu.

    2. Kernel

    Kernel merupakan inti dari suatu sistem operasi Linux yang berhubungan

    dengan perangkat keras. Pada bagian kernel terdapat berbagai pilihan untuk

    memilih dan mengaktifkan driver perangkat keras dan algoritma

    penjadwalan yang digunakan.

    Kernel yang digunakan untuk komputer sebagai real server dan client

    menggunakan kernel versi 2.6.24-16-generic

    3. Web server

    Web server adalah suatu perangkat lunak yang berfungsi menerima

    permintaan http atau https dari client melalui web browser dan mengirimkan

    kembali hasilnya dalam bentuk halaman-halaman web yang umumnya

    berbentuk dokumen html. Di dalam tugas akhir ini web server yang

    digunakan adalah apache versi 2.2.19

    4. PHP

    PHP (Hypertext Preprocessor) yang merupakan bahasa

    pemrograman berbasis web yang memiliki kemampuan untuk memproses

    data dinamis. Php yang digunakan dalam tugas akhir ini adalah php versi

    5.2.17

    5. My SQL

    MySQL adalah sebuah perangkat lunak system manajemen basis

    data atau DBMS yang multithread, multiuser dan juga banyak digunakan

    oleh user di internet. MySQL juga mendukung fungsi database cluster.

    Dalam tugas akhir ini MySQL yang digunakan adalah versi 5.1.24

    6. Httperf

    Perangkat lunak yang digunakan untuk membangkitkan request agar

    dapat menghasilkan banyak request dalam satu waktu yaitu httperf. Dengan

    menggunakan httperf maka tidak perlu ada banyak komputer sebagai client,

  • BAB III PERANCANGAN DAN IMPLEMENTASI

    22

    IMPLEMENTASI LOAD BALANCING WEB SERVER DAN

    MYSQL CLUSTER UNTUK MENJAMIN HIGH

    AVAILABILITY PADA WEBSITE

    cukup satu komputer sebagai client tetapi mampu menghasilkan banyak

    request secara simultan. Pada penelitian tugas akhir ini digunakan httperf

    versi 0.8.

    3.4. Proses Instalasi dan Konfigurasi Sistem

    Dalam sistem operasi linux tidak semua fasilitas pada kernel diaktifkan,

    pengguna bisa memilih fasilitas apa saja yang ingin diaktifkan sesuai dengan

    kebutuhan sehingga bisa lebih optimal.

    Beberapa fasilitas pada kernel diperlukan untuk implementasi linux virtual

    cluster. Langkah-langkah untuk mengkompilasi kernel serta kode lengkap konfigurasi

    dan perintah perangkat lunak iptables, ipvsadm, ldirectord, heartbeat, dan MySQL

    cluster akan dijelaskan pada lampiran C. Pada bagian ini akan dijelaskan kode umum

    konfigurasi pada sistem linux virtual server khususnya pada director dan kode umum

    konfigurasi MySQL cluster.

    3.4.1. Heartbeat

    Saat instalasi heartbeat harus diaktifkan pula program untuk

    memonitor status real server , dalam tugas akhir ini digunakan ldirectord

    sebagai pemonitor status real server. Berkas konfigurasi utama ldirectord

    terdapat di ldirectord.cf. Berkas ldirectord berisi informasi alamat ip virtual

    yang harus diakses oleh client, alamat ip real server, service yang dijalankan

    real server, dan algoritma penjadwalan yang digunakan. Untuk lebih jelasnya

    bisa dilihat pada konfigurasi di bawah ini

    # /etc/ha.d/ldirectord.cf

    checktimeout = 3

    checkinterval = 5

    autoreload = yes

    quiescent = yes

    virtual = 10.14.200.7:80

    real = 192.168.1.10:80 masq

    real = 192.168.1.11:80 masq

    fallback = 127.0.0.1:80

    service = http

    scheduler = wlc

    protocol = tcp

    checktype = connect

  • BAB III PERANCANGAN DAN IMPLEMENTASI

    23

    IMPLEMENTASI LOAD BALANCING WEB SERVER DAN

    MYSQL CLUSTER UNTUK MENJAMIN HIGH

    AVAILABILITY PADA WEBSITE

    Ada tiga berkas penting sebelum mengaktifkan heartbeat yaitu ha.cf,

    haresources, dan authkeys. Berkas ha.cf berisi mengenai cara dan jenis media

    perantara yang digunakan untuk saling bertukar informasi antara primary dan

    secondary director. Untuk konfigurasi di primari director adalah sebagai

    berikut

    Sedangkan untuk konfigurasi secondary director adalah sebagai

    berikut,

    Berkas kedua yaitu haresources berisi keterangan mengenai nama

    node, ip virtual, dan perintah untuk mengetahui keadaan real server. Berfungsi

    saat takeover dimana akan terjadi proses perpindahan dari director primary

    yang mengalami kegagalan kepada director secondary yang akan

    menggantikan.

    Pada director primary dan secondary harus memiliki isi berkas

    haresources yang sama.

    # /etc/ha.d/haresource

    Lb1 IPaddr::10.14.200.7/24/eth0 IPaddr::192.168.1.9/29/eth1

    ldirectord::ldirectord.cf

    # /etc/ha.d/ha.cf

    keepalive 2

    deadtime 10

    warntime 10

    ucast eth0 10.14.200.72 // ip public director secondary

    auto_failback off

    node lb1

    node lb2

    # /etc/ha.d/ha.cf

    keepalive 2

    deadtime 10

    warntime 10

    ucast eth0 10.14.200.73 // ip public director secondary

    auto_failback off

    node lb1

    node lb2

  • BAB III PERANCANGAN DAN IMPLEMENTASI

    24

    IMPLEMENTASI LOAD BALANCING WEB SERVER DAN

    MYSQL CLUSTER UNTUK MENJAMIN HIGH

    AVAILABILITY PADA WEBSITE

    Hearbeat memiliki kunci autentikasi antara director primary dan

    secondary, sehingga hanya director tertentu yang memiliki kunci autentikasi

    sama yang dapat melakukan pertukaran informasi satu sama lain. Berkas

    autentikasi heartbeat menggunakan metode CRC, SHA1, atau MD5.

    Berkas authkeys pada kedua director harus sama

    3.4.2. Ipvsadm

    Ipvsadm sebagai perangkat lunak untuk manajemen LVS yang

    meneruskan jalannya paket dari client kepada real server untuk kemudian

    dilayani dan dikembalikan lagi kepada client. Director active dan standby

    memiliki konfigurasi ipvsadm yang sama.

    Untuk mengetahui konfigurasi sistem LVS dengan melihat tabel ipvs

    melalui perintah ipvsadm.

    3.4.3. Iptables

    Untuk mengimplementasikan topologi dengan metode NAT, maka

    diperlukan iptables dengan konfigurasi agar semua paket dari jaringan publik

    tidak bisa mengakses langsung kepada real server tetapi dari sisi real server

    dapat mengakses langsung ke jaringan publik.

    Untuk mengimplementasikan topologi dengan metode NAT, maka

    diperlukan iptables dengan konfigurasi agar semua paket dari jaringan publik

    [root@LVS]# ipvsadm -ln

    IP Virtual Server version 1.2.1 (size=65536)

    Prot LocalAddress:Port Scheduler Flags

    -> RemoteAddress:Port Forward Weight ActiveConn

    InActConn

    TCP 10.14.200.7:80 wlc

    -> 192.168.1.10:80 Masq 1 0 0

    -> 192.168.1.11:80 Masq 1 0 0

    ipvsadm -A -t 10.14.200.7:80 -s wlc

    ipvsadm -a -t 10.14.200.7:80 -r 192.168.1.10:80 -m

    ipvsadm -a -t 10.14.200.7:80 -r 192.168.1.11:80 -m

    # /etc/ha.d/authkeys

    auth 2

    2 sha1 butzz

  • BAB III PERANCANGAN DAN IMPLEMENTASI

    25

    IMPLEMENTASI LOAD BALANCING WEB SERVER DAN

    MYSQL CLUSTER UNTUK MENJAMIN HIGH

    AVAILABILITY PADA WEBSITE

    tidak bisa mengakses langsung kepada real server tetapi dari sisi real server

    dapat mengakses langsung ke jaringan publik.

    3.4.4. MySQL Cluster

    Ada tiga komponen utama di dalam My SQL Cluster yaitu manajemen

    node, data node, dan sql node.

    1. Data node, berfungsi untuk menyimpan semua data yang menjadi milik

    MySQL Cluster. Semua data direplikasi di node-node ini.

    2. SQL node, berfungsi sebagai pintu akses untuk masuk ke dalam node-node data yang ter-cluster.

    3. Manajemen node berfungsi untuk mengendalikan konfigurasi sistem ketika

    startup. Selain itu, node ini juga dapat digunakan sebagai pengidentifikasi

    setiap perubahan setting yang terjadi pada cluster. Dalam tugas akhir ini

    ada dua komputer yang digunakan sebagai manajemen node. Manajemen

    node diletakkan pada komputer lb1 dan lb2. Sehingga apabila manajemen

    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

    iptables t nat A POSTROUTING o eth1 s 192.168.1.8/29 j \ SNAT -to-source 192.168.1.9

    # /etc/my.cnf [client] port=3306 socket=/tmp/mysql.sock [mysqld] ndbcluster ndb-connectstring=192.168.1.12,192.168.1.13 default-storage-engine=NDBCLUSTER [mysql_cluster] ndb-connectstring=192.168.1.12,192.168.1.13 # /etc/my.cnf [client] port=3306 socket=/tmp/mysql.sock [mysqld] ndbcluster ndb-connectstring=192.168.1.12,192.168.1.13 default-storage-engine=NDBCLUSTER [mysql_cluster] ndb-connectstring=192.168.1.12,192.168.1.13

  • BAB III PERANCANGAN DAN IMPLEMENTASI

    26

    IMPLEMENTASI LOAD BALANCING WEB SERVER DAN

    MYSQL CLUSTER UNTUK MENJAMIN HIGH

    AVAILABILITY PADA WEBSITE

    node pada lb1 down dapat langsung digantikan oleh manajemen node pada

    lb2.

    3.5. Skenario Implementasi

    Skenario pengukuran pada penelitian tugas akhir ini secara garis besar terbagi

    menjadi 3 yaitu skenario performansi sistem, skenario performansi database, dan

    skenario dengan simulasi gangguan

    # /var/lib/mysql-cluster/config.ini [NDBD DEFAULT] NoOfReplicas=2 DataMemory=1000M # How much memory to allocate for data storage IndexMemory=100M # How much memory to allocate for index storage [MYSQLD DEFAULT] [NDB_MGMD DEFAULT] [TCP DEFAULT] # Section for the cluster management node [NDB_MGMD] # IP address of the management node (this system) Hostname = 192.168.1.12 Id = 2 [NDB_MGMD] Hostname = 192.168.1.13 Id = 1 # Section for the storage nodes [NDBD] # IP address of the first storage node Id=3 Hostname=192.168.1.10 DataDir=/usr/local/mysql/var/mysql-cluster BackupDataDir=/usr/local/mysql/var/mysql-cluster/backup DataMemory=2048M [NDBD] # IP address of the second storage node Id=4 Hostname=192.168.1.11 DataDir=/usr/local/mysql/var/mysql-cluster BackupDataDir=/usr/local/mysql/var/mysql-cluster/backup DataMemory=2048M # one [MYSQLD] per storage node [MYSQLD] Id=5 Hostname=192.168.1.10 [MYSQLD] Id=6 Hostname=192.168.1.11

  • BAB III PERANCANGAN DAN IMPLEMENTASI

    27

    IMPLEMENTASI LOAD BALANCING WEB SERVER DAN

    MYSQL CLUSTER UNTUK MENJAMIN HIGH

    AVAILABILITY PADA WEBSITE

    3.5.1. Skenario Performansi Sistem

    Skenario dilakukan dengan cara mengirimkan request ke alamat suatu

    website, request dilakukan dengan penambahan secara simultan. Dilakukan

    pada sistem server tunggal dan sistem dengan metode linux virtual cluster.

    3.5.2. Skenario Performansi Database

    Skenario dilakukan dengan cara mengirimkan request ke alamat suatu

    halaman website, dilakukan dengan cara penambahan request secara simultan.

    Dilakukan pada sistem linux virtual server dengan menggunakan konsep

    database shared nothing cluster dan pada sistem linux virtual server dengan

    menggunakan konsep database shared disk cluster.

    3.5.3. Skenario Real Server dengan Simulasi Gangguan

    Semua real server pada linux virtual server dalam keadaan aktif,

    sehingga keduanya dapat memberikan layanan kepada client. Skenario dengan

    mengirimkan request kepada system linux virtual server, kemudian salah satu

    real server disimulasikan mengalami gangguan dengan cara mematikan salah

    satu komputer real server. Layanan yang sedang diproses dan request

    selanjutnya tidak akan diteruskan kepada real server yang mengalami

    gangguan tersebut melainkan melimpahkan kepada real server yang sedang

    aktif.

    3.5.4. Skenario Director dengan Simulasi Gangguan

    Pada penelitian tugas akhir ini diimplementasikan dua buah director

    dengan keadaan active-standby. Untuk menunjukan high-availability maka

    perlu disimulasikan ketika salah satu director mengalami kegagalan atau mati.

    Sehingga director lainnya akan mengambil alih tugas director yang mati, maka

    terjadi proses take over yang memerlukan waktu beberapa detik.

    3.6. Parameter yang dianalisis

    3.6.1. CPU Utilization

    CPU Utilization adalah tingkat penggunaan sumber daya CPU sehingga

    dapat diketahui tingkat kesibukan perangkat yang digunakan.

  • BAB III PERANCANGAN DAN IMPLEMENTASI

    28

    IMPLEMENTASI LOAD BALANCING WEB SERVER DAN

    MYSQL CLUSTER UNTUK MENJAMIN HIGH

    AVAILABILITY PADA WEBSITE

    ... (2.1)

    3.6.2. Request Loss

    Request Loss merupakan persentase kegagalan request yang dikirimkan

    ke server tujuan, disebabkan antara lain :

    1. Terjadinya overload request pada server tujuan.

    2. Error yang terjadi pada media fisik.

    3. Kegagalan akibat overflow buffer pada sisi penerima.

    4. Timeout akibat antrian paket terlalu panjang.

    3.6.3. Waktu Respon

    Waktu respon ialah waktu yang dibutuhkan sistem dalam melayani

    setiap paket yang datang dengan satuan mili detik.

    3.6.4. Throughput

    Throughput merupakan banyaknya bit yang dilayani dengan benar dalam

    suatu selang waktu tertentu dengan satuan bit per detik.

    % request loss = request yang dikirim

    100 % request hilang

    Total bit yang dilayani dengan benar Throughput =

    ... (2.2) Total waktu pengamatan