Senin, 16 Maret 2015

Analisa dan Perancangan Sistem Replikasi secara Realtime

 
 
 
 
 
 
Rate This

1. Analisa Sistem
Pada dasarnya sistem replikasi membutuhkan minimal dua buah server untuk digunakan sebagai Master dan Slave. Pada sistem ini penulis membuat sebuah skema rancangan untuk memisahkan antara aplication server dan database server yang masih terhubung dalam satu network.
perbedaan skema basis data
Gambar di atas adalah perbandingan antara skema sistem yang ada saat ini dengan server replikasi. Dalam sistem terdahulu, application server dan basis data server tergabung dalam satu server, dan tidak ada sistem back-up secara realtime sehingga jika data di server mengalami kerusakan maka data yang bisa di pulihkan adalah data terkahir yang di back-up secara manual oleh administrator. Pada server replikasi, data di back-up secara realtime dari master ke slave, dalam artian jika ada transaksi yang terjadi di master maka otomatis slave akan mereplika basis data yang ada di master.
Perencanaan IP address dalam sistem yang akan di bangun dengan network router 172.16.32.0/24 adalah IP 172.16.32.31 untuk Webserver, IP 172.16.32.32 untuk Master database dan IP 172.16.32.33 untuk Slave database.
2. Spesifikasi Perangkat Keras
Seperti yang kita ketahui, semakin tinggi spesifikasi perangkat keras yang di gunakan untuk server, semakin bagus pula server itu melayani kliennya. Namun dalam persiapan komputer yang akan di bangun sebagai server basis data dan server aplikasi di sini, penulis menggunakan spesifikasi perangkat keras sebagai berikut:
1. Server Aplikasi :
  • Processor Intel Pentium 4 @ 3.0 GHz
  • HDD Seagate Barrcauda 40 GB
  • Memory DDR Visipro 2 GB PC 3200
  • LAN Card Intel PCI 100 Mbps
2. Server Master Basis data :
  • Processor Intel Atom 330 @ 1,60 GHz
  • HDD Seagate Barrcauda 160 GB
  • Memory DDR2 Visipro 1 GB PC 6400
  • LAN Card Intel PCI 100 Mbps
3. Server Slave Basis data :
  • Processor Intel Pentium 4 @ 2,40 GHz
  • HDD Samsung 40 GB
  • Memory DDR Visipro 2 GB PC 3200
  • LAN Card Intel PCI 100 Mbps
4. Router Linksys
Sebagai NAT dan penghubung ketiga server di atas.
3. Installasi Perangkat Lunak
Semua server yang akan di bangun menggunakan sistem operasi yang sama, adapun perangkat lunak-perangkat lunak yang akan di gunakan dalam proses implementasi sistem ini adalah :
  1. Linux Ubuntu Server 8.04 LTS (Hardy Heron)
  2. Apache versi 2.2.16
  3. MySQL Server versi 5.1.49
  4. PHP versi 5.3.3
  5. PhpMyAdmin versi 3.3.5.1
  6. Heartbeat versi 2
  7. Cacti versi 0.8.7g
  8. Snmp sebagai protocol untuk memonitor perangkat jaringan
Adapun penggunaan dari perangkat lunak tersebut di atas pada masing-masing komputer adalah sebagai berikut:
  • Server Aplikasi
  1. Linux Ubuntu Server 8.04 LTS (Hardy Heron)
  2. Apache versi 2.2.16
  3. Php versi 5.3.3
  4. SNMP sebagai protocol untuk memonitor perangkat jaringan
  • Server Master
  1. Linux Ubuntu Server 8.04 LTS (Hardy Heron)
  2. MySQL Server versi 5.1.49
  3. Heartbeat versi 2
  4. SNMP sebagai protocol untuk memonitor perangkat jaringan
  • Server Slave
  1. Linux Ubuntu Server 8.04 LTS (Hardy Heron)
  2. MySQL Server versi 5.1.49
  3. Heartbeat versi 2
  4. SNMP sebagai protocol untuk memonitor perangkat jaringan
Selain beberapa perangkat lunak utama di atas masih ada beberapa paket perangkat lunak tambahan sebagai pendukung dari sistem kerja perangkat lunak di atas. Untuk memantau binary log di basis data baik master ataupunslave, penulis cukup menggunakan tools yang sudah ada di MySQL. Beberapa paket pendukung yang lain nanti akan langsung di jelaskan penulis pada saat proses installasi berlangsung.
Pemilihan perangkat lunak pun tidak lepas dari beberapa hasil survei yang  telah dilakukan penulis, baik dari berbagai buku, situs web, jurnal, mailing list dan pendapat beberapa praktisi IT. Seperti pemilihan sistem operasi Linux Ubuntu Server 8.04 LTS (Hardy Heron). Penulis memilih sistem opreasi ini selain karena beberapa kelebihan yang telah di jelaskan di bab sebelumnya juga karena pendapat salah satu praktisi IT di ITB yang menyebutkan bahwa Linux bagus untuk server aplikasi dan keluarga BSD handal di gunakan untuk membangun router.
Begitupun MySQL, pemilihan basis data ini di karenakan MySQL berkembang dari solusi yang dipakai oleh pembuatnya, TcX AB, dalam memproses data untuk aplikasi Web. Fokusnya adalah memang pada kecepatan. Pengembangan MySQL pun sudah diatur secara sentral oleh perusahaan komersial di Swedia bernama MySQL AB (sebelumnya TcX AB). Menurut MySQL AB, saat ini jumlah instalasi MySQL sekitar 3 juta. Karena popularitas ini penulis juga memilih MySQL sehingga trafik milis, buku, tutorial/artikel yang membahas MySQL cukup banyak. Yang ke depannya bisa di gunakan oleh admin jaringan untuk lebih mengembangkan basis data ini.
4. Perancangan Replikasi sebagai High Avaibility Server
Seperti yang telah di jelaskan pada bab sebelumnya, sangat banyak kegunaan dari replikasi seperti pendistribusian data untuk lokasi geografis yang cukup jauh, load balancing yang dapat membantu pendistribusikan read query di beberapa server, back-up data, pengujian sebelum melakukan upgrade pada sistem dan tentunya untuk menjaga ketersediaan data.
Banyak cara yang dapat di gunakan untuk mewujudkan semua keuntungan dari replikasi. Tergantung dari desain sistem dan keperluan apa yang kita butuhkan. Salah satu yang akan penulis coba adalah menjaga ketersediaan data (high availability). Replikasi dapat membantu menghindarkan MySQL membuat satu titik kegagalan dalam sebuah aplikasi.
Failover dan load balancing mempunyai beberapa kemiripan dan cukup susah di pisahkan oleh penulis. Failover di sini adalah proses perpindahan server ketika sebuah server gagal dan langsung secara otomatis menggunakan server lain sebagai gantinya. Ini adalah salah satu bagian yang paling penting dari sebuah arsitektur high availability. Sebuah sistem failover yang baik melibatkan slave yang direplikasi yang juga dapat membantu mengurangi downtime secara signifikan.
Saat ini tidak ada solusi resmi dari MySQL untuk menyediakan failover antara master dan slave pada saat terjadi kegagalan sistem. Banyak teknik yang dapat di gunakan untuk merancang sistem failover ini. Salah satu yang akan coba penulis rancang adalah dengan memanfaatkan replikasi master-master dengan mode aktif-pasif menggunakan Hearbeat.
Gambar di bawah menjelaskan bagaimana skema replikasi dengan mode master aktif dan master pasif dengan IP virtual dari Heartbeat. Jika replikasi berfungsi untuk membuat salinan basis data yang identik antar server basis data melalui jaringan, Heartbeat digunakan sebagai layanan yang melakukan pengecekan mati hidupnya suatu node(server) tertentu.
Seperti skema rancangan pada gambar di bawah, ada dua buah server basis data yaitu server master aktif dan server master pasif dimana master aktif menjadi server utama dan master pasif menjadi server bakup. Heartbeat berfungsi melakukan pengecekan apakah master aktif dalam kondisi hidup atau tidak. Jika kondisinya hidup, masteraktif akan menjadi server utama, sedangkan jika master aktif ternyata dalam kondisi mati, Heartbeat akan mengalihkan layanan server ke master pasif.
skema replikasi hearbeat
Layanan utama yang dilayani oleh Hearbeat adalah Setting IP. Di sini penulis ingin membuat layanan basisi data yang di akases dari web server Apache menggunakan IP 172.16.32.5, maka IP tersebut harus dijadikan sebagai IP virtual.
Server master aktif beralamat fisik pada IP 172.16.32.32 dan servermaster pasif beralamat fisik pada IP 172.16.32.33. Dalam kondisi normal, masteraktif bertindak sebagai server utama dan ia akan mempunyai dua buah IP, yaitu IP address fisik miliknya sendiri (172.16.32.32) dan IP address virtual yang diatur oleh Heartbeat yaitu 172.16.32.5. Jika master aktif mati, Hearbeat akan memerintahkan master pasif untuk mengambil alih IP virtual 172.16.32.5. Ini yang disebut failover. Jika IP address bisa berpindah-pindah, secara otomatis semua layanan terkait akan ikut berpindah pula.