panduan high availability server menggunakan ubuntu server

Upload: miftahul-ulums

Post on 10-Jan-2016

271 views

Category:

Documents


0 download

DESCRIPTION

Panduan High Availability Server Menggunakan Ubuntu Server

TRANSCRIPT

  • Copyright 2013 http://jagoancengeng.wordpress.com

    Panduan Linux Failover & High Availability Pada Ubuntu ServerMuhammad Imam Hanafihttp://jagoancengeng.wordpress.com

    Bogor, 9 Juni 2013Dedicated To:My Luvly Cut Marnesa DhietMy Son Ayyash Ahmad Al kahfi

    =========================Hai orang-orang yang beriman, apabila dikatakan kepadamu: "Berlapang-lapanglah dalam majlis, maka lapangkanlah, niscaya Allah akan memberi kelapangan untukmu. Dan apabila dikatakan: "Berdirilah kamu, maka berdirilah, niscaya Allah akan meninggikan orang-orang yang beriman diantaramu dan orang-orang yang diberi ilmu pengetahuan beberapa derajat. Dan Allah Maha Mengetahui apa yang kamu kerjakan.(QS. Al-Mujaadilah: 11)=========================

    Lisensi Dokumen: Copyright 2013 http://jagoancengeng.wordpress.com

    Dokumen ini dapat digunakan, dimodifikasi dan disebarkan secara bebas & luas untuk tujuan non komersial (non profit), dengan syarat tidak menghilangkan keterangan mengenai penulis dan lisensi yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari http://jagoancengeng.wordpress.com

    Mari Bersama Menyebarkan Kebaikan dan pengetahuan.

    (*) Dokumen ini dibuat menggunakan aplikasi open source Libre Office 3.6.2.2 Pada Linux Mint

    Panduan Linux Fail Over & High Avai la bility pada Ubuntu Server

  • Copyright 2013 http://jagoancengeng.wordpress.com

    OpeningDi dalam sebuah system yang berkembang belakangan ini, kebutuhan akan backup sangat penting,

    sebagai upaya pencegahan jika terjadi yang tidak di inginkan pada system, backup berperan penting,

    bisa di bayangkan jika suatu system berjalan tanpa adanya backup system, kekacauan akan terjadi.

    Pemilihan cara backup sangat beragam, mulai dari backup secara konvensional yaitu dengan

    membackup data dengan media simpan seperti Hardisk external, CD/DVD, Tape LTO sampai dengan

    backup secara langsung dimana data dan system akan tersinkornisasi dengan server production.

    Pada Panduan ini akan di bahas bagaimana metode backup secara langsung dengan menggunakan

    beberapa tools yang ada pada Linux Ubuntu Server, sehingga dapat menghasilkan suatu system backup

    yang powerfull dengan meminimalkan biaya.

    Panduan ini menggunakan Ubuntu server 12.04 namun juga dapat menggunakan distro yang lainnya

    dengan sedikit penyesuaian.

    Instalasi dan Konfigurasi Heartbeat

    Coba anda bayangkan jika anda menjadi seorang IT admin, dimana system yang anda buat itu adalah

    sebuah core utama dan anda tidak mempunyai system backup secara langsung, jika terjadi sebuah

    kesalahan system pada server utama maka anda akan di hadapkan pada situasi dimana anda akan di

    paksa berpikir keras dan cepat, berapa lama? Tergantung dari berapa cepat anda memperbaikinya. tentu

    hal ini tidak sangat mengenakan bukan?

    Sebagai solusi terhadap masalah tersebut, kita harus mempunyai sebuah server backup yang mampu

    menghandle tugas server utama, dan yang terpenting proses recovery system berjalan cepat sehingga

    user tidak merasakan bahkan tidak mengetahui adanya kerusakan system anda. Untuk itu anda

    memerlukan sebuah pengetahuan tentang proses backup failover, yaitu dimana jika terjadi kerusakan

    system utama dapat di recovery dengan server backup dengan cepat.

    Panduan Linux Fail Over & High Avai la bility pada Ubuntu Server

  • Copyright 2013 http://jagoancengeng.wordpress.com

    Pada Panduan ini kita akan membuat sebuat LAMP ( Linux Apache Mysql & PHP ) Server, dimana kita

    akan membuat sebuah server utama dan server backup yang saling tersinkronisasi dan dapat melakukan

    failover. Untuk teknologi failover yang akan di bahas pada bagian ini, kita akan menggunakan tools

    Hearbeat. Sesuai dengan namanya, Heartbeat akan bekerja layaknya monitor detak jantung, dimana

    heartbeat akan selalu memonitor kondisi dari server utama, sehingga apabila terdapat kegagalan dan

    kerusakan system heartbeat akan dengan cepat mengatur failover ke server backup, dimana semua

    service yang berjalan akan di pindahkan langsung ke server backup.

    Heartbeat akan memanfaatkan satu buah IP virtual yang akan di gunakan sebagai IP Cluster , dimana IP

    tersebut yang akan menjadi acuan dalam memindahkan service dan data dari server utama ke server

    backup.

    Gambar : Diagram proses LAMP Server failover & HA

    Pada diagram proses di atas, Heartbeat bekerja sebagai pemeriksa kesehatan kedua server, dimana

    heartbeat yang berada pada server bravo akan selalu memonitor keadaan dari server alpha. Supaya

    tidah membingungkan, saya akan mendeklarasikan IP untuk server alpha adalah 192.168.1.100 dan

    server bravo adalah 192.168.1.101 sedangkan IP virtual saya akan berikan 192.168.1.222. untuk apa IP

    virtual? IP ini akan di gunakan sebagai IP Cluster, dimana pada saat nanti terjadi failover IP virtual lah

    yang akan di pindahkan dari server alpha ke bravo.

    Panduan Linux Fail Over & High Avai la bility pada Ubuntu Server

  • Copyright 2013 http://jagoancengeng.wordpress.com

    Untuk membangun system seperti ilustrasi di atas, konfigurasi network card anda serta insall applikasi

    heartbeat sebagai applikasi yang di gunakan untuk failover. Lakukan langkah-langkah ini

    1. konfigurasi network eth0 anda pada berkas /etc/network/interfaces

    :~# pico /etc/network/interfaces

    Isi file tersebut dengan konfigurasi di bawah ini

    auto eth0 iface eth0 inet static address 192.168.1.100netmask 255.255.255.0 gateway 192.168.1.1broadcast 192.168.1.254

    Restart service networking dengan cara

    /etc/init.d/networking restart

    Konfigurasi juga network eth0 server bravo dengan cara yang sama seperti di atas, berikan IP sesuai

    dengan IP yang sudah kita sepakati di atas yaitu 192.168.1.20

    2. Install Applikasi Heartbeat pada masing-masing server alpha dan bravo

    :~# apt-get install heartbeat

    3. Setelah hearbeat selesai di install, kita mulai mengkonfigurasi hearbeat. Buat berkas baru yaitu ha.cf

    di /etc/ha.d/ha.cf pada masing-masing server dengan perintah :

    :~# pico /etc/ha.d/ha.cf

    isi dari berkas tersebut adalah :

    keepalive 2warntime 5deadtime 15initdead 90udpport 694auto_failback onbcast eth0

    Panduan Linux Fail Over & High Avai la bility pada Ubuntu Server

  • Copyright 2013 http://jagoancengeng.wordpress.com

    node alpha bravo

    untuk perintah node alpha bravo sesuaikan dengan hostname masing-masing, di sini saya memakai alpha sebagai primary dan bravo sebagai secondary, ingat penulisan tidak boleh terbalik.

    Simpan berkas tersebut dengan menekan ^o (Ctrl+o) , untuk keluar dari editor pico tekan ^x (Ctrl+o)

    4. Buat berkas authkeys pada /etc/ha.d/authkeys

    :~# pico /etc/ha.d/authkeys

    isi dari berkas tersebuat adalah :

    auth 22 crc

    ganti permision authkeys dengan cara ketik

    chmod 0600 /etc/ha.d/authkeys

    5. Buat berkas haresources pada /etc/ha.d/haresources. Isi dari file tersebut adalah

    alpha IPaddr::192.168.1.222/24/eth0 apache2

    script di atas untuk membuat IP virtual yang akan di gunakan untuk failover dimana sebagai server

    primary kita tentukan yaitu alpha sedangkan IP Virtualnya adalah 192.168.1.222 , Penulisan berkas di

    atas bersifat case sensitive, perhatikan besar dan kecil huruf nya.

    6. Agar tidak repot dan setting lagi di server bravo, copy ketiga berkas tersebut pada server bravo

    dengan cara ketik:

    alpha:~# scp /etc/ha.d/ha.cf 192.168.1.101: /etc/ha.d/ha.cfalpha:~# scp /etc/ha.d/authkeys 192.168.1.101: /etc/ha.d/authkeysalpha:~# scp /etc/ha.d/haresources 192.168.1.101: /etc/ha.d/haresources

    7. ketikan perintah ini di kedua server alpha dan bravo

    chkconfig heartbeat on

    Panduan Linux Fail Over & High Avai la bility pada Ubuntu Server

  • Copyright 2013 http://jagoancengeng.wordpress.com

    chkconfig apache2 offservice apache2 stopservice heartbeat startservice apache2 start

    8.lakukan testing pada server alpha,cek settingan ip dengan cara:

    ifconfig

    jika eth0:0 sudah ada, menandakan bahwa settingan IP sudah benar dan IP virtual sudah terbentuk.

    Gambar : Testing IP Virtual sudah terbentuk pada server alpha

    9. Lakukan testing failover dengan cara matikan service hearbeat pada server alpha, jika settingan anda

    benar maka eth0:0 akan berpindah ke server alpha

    service heartbeat stop

    Sampai di sini kita sudah membuat server dapat berpindah otomatis ketika terjadi disaster pada server

    utama, namun goal kita selain membuat server dapat failover, data antar kedua server juga harus

    tersinkornisasi. Bagaimana caranya? Kita akan melanjutkan di bagian berikutnya.

    Panduan Linux Fail Over & High Avai la bility pada Ubuntu Server

  • Copyright 2013 http://jagoancengeng.wordpress.com

    Installasi dan Konfigurasi DRBD

    Pada penjelasan di atas, kita sudah berhasil membuat dua buah server dapat melakukan failover ketika

    server utama down. Namun failover saja tidak cukup untuk membuat sebuah system yang mumpuni,

    kesamaan data antar dua server juga menjadi satu perhatian penting, akan sangat lucu jika terjadi

    disaster server dapat failover namun data tidak sinkron.

    Untuk itulah di perlukan sebuah teknologi yang dapat mereplikasi antar server. Dalam panduan ini akan

    di jelaskan bagaimana instalasi dan konfigurasi DRBD sebagai teknologi replikasi data. Applikasi

    DRBD di gunakan sebagai perantara antar server untuk mereplikasi data. Adapun langkah-langkah

    instalasi dan konfigurasi DRBD seperti di bawah ini.

    1. Tambahkan satu buah disk pada kedua server dengan ukuran sama besar, sebagai contoh kita akan

    menambahkan 2Gb pada server alpha dan bravo. Disk ini di gunakan sebagai disk replikasi.

    Setelah di tambahkan cek kondisi disk dengan cara ketik command:

    fdisk -l

    hasil dari command tersebut :

    Disk /dev/sda: 10.7 GB, 10737418240 bytes

    255 heads, 63 sectors/track, 1305 cylinders, total 20971520 sectors

    Units = sectors of 1 * 512 = 512 bytes

    Sector size (logical/physical): 512 bytes / 512 bytes

    I/O size (minimum/optimal): 512 bytes / 512 bytes

    Disk identifier: 0x0008760b

    Device Boot Start End Blocks Id System

    /dev/sda1 * 2048 18874367 9436160 83 Linux

    /dev/sda2 18876414 20969471 1046529 5 Extended

    /dev/sda5 18876416 20969471 1046528 82 Linux swap / Solaris

    Disk /dev/sdb: 2147 MB, 2147483648 bytes

    255 heads, 63 sectors/track, 261 cylinders, total 4194304 sectors

    Units = sectors of 1 * 512 = 512 bytes

    Sector size (logical/physical): 512 bytes / 512 bytes

    Panduan Linux Fail Over & High Avai la bility pada Ubuntu Server

  • Copyright 2013 http://jagoancengeng.wordpress.com

    I/O size (minimum/optimal): 512 bytes / 512 bytes

    Disk identifier: 000000000

    Disk /dev/sdb doesnt contain a valid partition table

    Pada hasil fdisk l di jelaskan bahwa disk /dev/sdb belum memiliki partisi, karena memang saya belum

    format dan di beri partisi.

    2.Install paket drbd pada masing-masing server

    apt-get install drbd8-utils drbdlinks

    3. edit pada masing-masing server file drb.conf di /etc/drbd.conf . isikan dengan script berikut

    global {dialog-refresh 1;usage-count yes;minor-count 5;}common {syncer {rate 10M;}}resource r0 {protocol C;disk {on-io-error detach;}syncer {rate 10M;al-extents 257;}on alpha {device /dev/drbd0;address 192.168.1.100:7788;meta-disk internal;disk /dev/sdb;}on bravo {device /dev/drbd0;address 192.168.1.101:7788;meta-disk internal;disk /dev/sdb;}}

    4. Buat Meta data disk dan jalankan service drbd, jalankan perintah ini di kedua server

    Panduan Linux Fail Over & High Avai la bility pada Ubuntu Server

  • Copyright 2013 http://jagoancengeng.wordpress.com

    drbdadm create-md r0service drbd start

    5. Cek status drbd

    service drbd status

    Gambar: Service DRBD Setelah di jalankan namun kedua server masih menjadi secondary

    Pesan diatas menunjukkan bahwa DRBD sudah berjalan, namun kedua server sama-sama bertindak

    sebagai secondary dan keduanya inconsistent (masing-masing node berbeda isi). Tak masalah , yang

    harus kita lakukan adalah membuat server alpha menjadi primary.

    6.Jadikan server alpha sebagai primary, lakukan ini hanya pada server alpha saja.

    drbdsetup /dev/drbd0 primary --overwrite-data-of-peer

    7. Cek kembali drbd status

    Panduan Linux Fail Over & High Avai la bility pada Ubuntu Server

  • Copyright 2013 http://jagoancengeng.wordpress.com

    service drbd status

    Pesan diatas menunjukkan bahwa server alpha sudah berfungsi sebagai primary dan mulai melakukan

    sinkronisasi dengan server bravo,proses sinkronisasi ini di tunjukan dengan persen. Lamanya proses

    sinkronisasi tergantung besar data yang harus di sinkronisasi.tunggu hingga proses mencapai 100%.

    untuk melihat proses sinkronisasi ketik

    watch service drbd status

    8.Jika proses sinkronisasi sudah selesai, buat file system baru untuk drbd, hal ini di lakukan hanya pada

    server alpha saja karena server bravo akan sinkronisasi dengan server alpha.

    mkfs.ext3 /dev/drbd0

    Sampai proses ini, instalasi dan konfigurasi drbd sudah selesai. Untuk mengecek dan memastikan

    bahwa konfigurasi di atas sudah benar, kita akan melakukan testing drbd.

    Panduan Linux Fail Over & High Avai la bility pada Ubuntu Server

  • Copyright 2013 http://jagoancengeng.wordpress.com

    Testing Replikasi DRBD

    Setelah bergelut dengan konfigurasi drbd saatnya kita testing hasil dari konfigurasi yang sudah kita

    kerjakan, lakukan hal-hal ini untuk testing Replikasi DRBD.

    1. Mounting satu buat device DRBD pada server alpha, buatlah satu buah file pada device DRBD yang

    sudah di mounting.

    mkdir /srv/data-drbd mount -t ext3 /dev/drbd0 /srv/data-drbd touch /srv/data-drbd/file_test_alpha.txt ls /srv/data-drbd/

    Hasil dari command tersebut adalah, terbentuknya satu buah file pada device DRBD yang sudah kita

    mount.

    2. Umount device drbd dari server alpha, dan dowgrade status nya menjadi secondary.

    umount /srv/data-drbd drbdadm secondary r0

    3.Pada server Bravo, aktifkan DRBD server bravo sebagai primary, dan mounting device drbd

    drbdadm primary r0 service drbd status mkdir /srv/data-drbd mount -t ext3 /dev/drbd0 /srv/data-drbdls /srv/data-drbd/

    Server Bravo akan otomatis memiliki salinan file yang tadi di buat pada server alpha. Jika tidak ada

    kesalahan pada konfigurasi seharusnya pada bravo kita akan mendapatkan hasil file yang di bentuk

    pada alpha.

    4. Jika Testing sudah selesai kembalikan lagi ke kondisi semula, dimana server alpha menjadi primary

    dan Bravo menjadi secondary.

    Panduan Linux Fail Over & High Avai la bility pada Ubuntu Server

  • Copyright 2013 http://jagoancengeng.wordpress.com

    Pada server bravo :

    umount /srv/data-drbd drbdadm secondary r0

    Pada Server alpha

    drbdadm primary r0 service drbd status mount -t ext3 /dev/drbd0 /srv/data-drbd

    Implementasi Heartbeat & DRBD pada Web Server

    Pada bagian di atas kita sudah mengenal, install dan konfigurasi teknologi failover dan replikasi data,

    lalu bagaimana mengimplementasikan pada sebuah service. Pada panduan ini kita akan

    mengimplemantasikan kedua teknologi tersebut untuk membangun sebuah web server yang mampu

    recovery dengan cepat dan dengan data yang sama.

    1. Install Apache sebagai web server

    apt-get install apache2

    2. Install PHP

    apt-get install php php-mysql

    3. Install Mysql sebagai server database

    apt-get install mysql mysql-server

    4.Uninstall apparmor, hal ini di lakukan agar pembuatan symbol link tidak error

    dpkg --purge apparmor apparmor-utils

    5.Pindahkan directory /var/www ke device drbd yang sudah di mount ke /srv/data-drbd. Sebelum di

    pindahkan pastikan service apache sudah di stop terlebih dahulu.

    service apache2 stopmv /var/www /srv/data-drbd

    6. Buat symbol link untuk service apache, lalu start service apache

    Panduan Linux Fail Over & High Avai la bility pada Ubuntu Server

  • Copyright 2013 http://jagoancengeng.wordpress.com

    ln -s /srv/data-drbd/www /var/wwwservice apache2 start

    7. Pindahkan directory /var/lib/mysql ke device drbd yang sudah di mount ke /srv/data-drbd . Sebelum

    di pindahkan pastikan service apache sudah di stop terlebih dahulu.

    Service mysql stopmv /var/lib/mysql /srv/data-drbd

    8.Buat symbol link untuk service mysql, lalu start service mysql

    ln -s /srv/data-drbd/mysql /var/lib/service mysql start

    9. Data-data yang di gunakan untuk service webserver sudah di pindahkan ke device drbd, sehingga

    apabila ingin mengembangkan sebuah website di letakan pada directory yang ada pada device drbd.

    Catatan1. Dalam melakukan konfigurasi urutan penamaan antara server primary dan secondary jangan sampai

    terbalik.

    2. Besar kecil penulisan command dan script haruslah di perhatikan, karena sifatnya case sensitif

    3. Banyaknya waktu yang di gunakan pada saat sinkronisasi data tergantung besar hardisk.

    4. Dokumen ini di buat terkait dengan training system operasi yang di lakukan pada lingkup

    Institut Teknologi Indonesia Jurusan Teknik Informatika

    5.Jika ada pertanyaan lebih lanjut dapat di alamatkan ke [email protected]

    Tentang PenulisLahir di Jakarta Tanggal 28 Mei 1984, di beri nama oleh kedua orang tuanya Muhammad Imam Hanafi Menjalani masa kecil,Besar dan nakal di Tangerang.Menamatkan Sekolah di SD Danau batur, SLTPN13 Tangerang, SMU Islamic Centre dan menamatkan jenjang S1 di Institut Teknologi Indonesia Jurusan Informatika angkatan 2002.Saat ini aktivitas yang di jalani adalah seorang karyawan perusahaan swasta.Alhamdulillah sudah di karuniai seorang Jagoan Kecil Ayyash Ahmad Al kahfi dari seorang Istri yang luar biasa Cut Marnesa.

    Panduan Linux Fail Over & High Avai la bility pada Ubuntu Server