Server merupakan induk dari segala komputer yang terhubung pada sebuah jaringan yang berfungsi sebagai pengatur sistem jaringan. Kegagalan devices pada sebuah server bukan suatu yang tidak mungkin terjadi sehingga diperlukan solusi agar sistem jaringan tidak terganggu. Bayangkan jika sebuah web server mati yang disebabkan oleh suatu hal (power supply mati atau yang lainnya), maka pengguna internet tidak akan bisa mengkakses situs pada web server tersebut. Clustering menawarkan solusi untuk menangani perpindahan tugas atau pemerataan beban dari satu server ke server yang lainnya apa bila terjadi kerusakan pada salah satu server.
Clustering
Dalam dunia komputer yang dimaksud dengan Server Clustering adalah menggunakan lebih dari satu server yang menyediakan redundant interconnections, sehingga user hanya mengetahui ada satu sistem server yang tersedia dan komputer client tidak menyadari jika terjadi kegagalan pada sistem server karena tersedianya server sebagai redundant atau backup. Clustering Server dapat digunakan untuk Load Balancing cluster ataupun Failover clustering (Server HA).
Server Cluster
Failover clustering (High Availability)
Failover clustering menyediakan solusi high availability server dimana jika terjadi kegagalan pada perangkat keras seperti power supply mati yang menyebabkan server mati total maka server lain anggota cluster yang akan mengambil alih fungsi dari server yang mati, sehingga komputer client tidak mengetahui jika terjadi kegagala pada server, karena proses yang dilakukan pada server yang gagal atau mati akan dilanjutkan oleh server cadangan. Konsep konfigurasi failover cluster adalah membuat satu server sebagai master server dan server yang lain menjadi slave server dimana saat server dalam keadaan normal master server menangani semua request dari client. Slave server akan mengambil alih tugas master server apabila master server tidak berfungsi atau mati. Failover server memiliki dua mode yaitu mode aktif-pasif (master-slave) dan (aktif-aktif).
- Aktif-pasif (master-slave) : Dua server atau lebih, yang melayani servicejaringan hanya satu server saja, yang lain hanya sebagai cadangan jika terjadi kegagalan pada server aktif (master).
- Aktif-aktif (master-master) : Dua server yang kedua duanya bisa melayani jaringan dan saling mem-backup, jika salah satu server mati maka server yang lain akan menggantikannya. Kedua server ini memiliki data yang sama persis.
Biasanya failover menggunakan shared storage yang akan di gunakan bersamaan oleh lebih dari server. Tetapi ada juga yang tanpa menggunakan shared storage yaitu dengan menggunakanmirroring hard disk server.
Load balancing clustering
Load balancing cluster merupakan cluster server dimana anggota cluster serverdikonfigurasikan untuk saling berbagi beban yang berfungsi mendistribusikan request dari client ke anggota server Load balanced Cluster. Tipe konfigurasi Loadbalancing Cluster sering disebut Load balanced cluster, sedangkan teknologi platform Load balancing sering disebut sebagai Load balancers.
Secara umum cara kerja Load balancer adalah menerima incoming request dari client dan meneruskan request tersebut pada server tertentu jika dibutuhkan. Load balancer menggunakan beberapa algoritma yang berbeda untuk melakukan control traffic network.Tujuan algoritma Load balancer adalah untuk mendistribusikan beban secara pintar atau memaksimalkan kerja anggota servercluster. Beberapa contoh algoritma Load balancer :
- Round-Robin. Algoritma round-robin mendistribusikan beban kepada semua server anggotacluster sehingga masing masing server mendapat beban yang sama dalam waktu yang sama. Round-robin cocok saat server anggota cluster memiliki kemampuan proccessing yang sama, jika tidak, beberapa server bisa jadi menerima request lebih dari kemampuan proccessingserver itu sendiri sedang yang lainnya hanya mendapat beban lebih sedikit dari resource yang dimiliki.
- Weighted round-robin. Algoritma weighted round-robin melakukan perhitungan perbedaan kemampuan proccessing dari masing masing server anggota cluster. Administrator memasukan secara manual parameter beban yang akan ditangani oleh masing masing server anggotacluster, kemudian scheduling sequence secara otomatis dilakukan berdasarkan beban server.Request kemudian diarahkan ke server yang berbeda sesuai dengan round-robin scheduling sequence.
- Least-connection. Algoritma Least-connection melakukan pengiriman request pada server anggota cluster, berdasarkan pada server mana yang memiliki fewest connections (koneksi paling sedikit).
- Load-based. Algoritma Load-based mengirimkan paket request ke server anggota clusterberdasarkan server mana yang memiliki beban terkecil.
Fungsi Load Balancer
Menginterupsi traffic jaringan (web traffic,dll) yang diarahkan ke sebuah situs.
- Membagi traffic jaringan menjadi individual request dan menentukan server mana yang akan menerima individual requests.
- Me-monitor server yang ada serta memastikan server server tersebut merespon traffic. Jika terjadi kegagalan pada sebuah server maka server yang gagal tidak akan digunakan (menggunakan server yang masih bekerja).
- Menyediakan redundancy dengan menggunakan lebih dari satu unit failover skenario.
- Menawarkan distribusi content-aware seperti melakukan pembacaan URLs, intercepting cookiesdan XML parsing.
Failover cluster VS Load Balancing
Failover cluster dan Load Balancing memiliki manfaat dalam memanage server secara bersamaan. Tapi untuk failover cluster memiliki beberapa kekurangan dibanding Load Balancing yaitu : Peng-integrasi-an masing-masing server yang agak rumit, khususnya pada perangkat lunak yang digunakan harus memiliki setting yang sama antar server anggota cluster. Selain itu failover clusterterbatas untuk beberapa protocol seperti HTTP, samba dll.
Sedang SLB (server load balancing) merupakan sebuah platform dan OS neutral. SLB dapat menyeimbangkan beban (Load) antar masing masing server. SLB juga mendukung beberapa network protocol dari HTTP hingga NFS, TCP dan UDP protocol. SLB di-desain secara simple sehingga tidak memerlukan interaksi antar server, sedikit melakukan trouble-shoot.
Dalam peng-konfigurasi-an server load balancing, load balancer diletakan didepan anggota server cluster dimana dianalogikan seperti sebuah gateway dari semua anggota server. Sedang failover clustering harus menggunakan protocol perangkat lunak yang sama untuk setiap server.
Pengalaman Penulis mengenai Linux failover cluster server
Penulis akan membagi pengalaman bagaimana cara mengkonfigurasi linux failover, ya karena memang baru failover yang pernah dikonfigurasi sedang untuk load balancing belum pernah sama sekali, masih sebatas teori. Perlu diketahui, meskipun failover ini menggunakan Linux, tetapi komputer klien bisa menggunakan sistem operasi apa saja (Linux, Windows, Android,dll). Yang paling perlu diketahui adalah failover ini bisa mendukung virtual machine ataupun mendukung cloud failover (agak rumit konfigurasinya).
Untuk topologi failover pada dasarnya ada dua yaitu menggunakan shared storage(NAS/SAN) dan tanpa menggunakan shared storage, cukup menggunakan hard disk internal pada masing-masing server. Gambar dibawah merupan topologi failover server menggunakan shared storagedimana aktif server dan pasif server menyimpan data pada shared storage, sehingga jika ada salah satu server mati data masih ada di shared storage dan data masih bisa diakses oleh server lain.
Failover menggunakan shared storage
Failover di bawah tidak menggunakan shared storage, tetapi cukup menggunakan internalhard disk, dan hard disk tersebut di konfigurasi mirror atau sering disebut juga dengan RAID 1 over network. Apapun yang ditulis pada aktif server, seperti format, membuat partisi (jika diimplementasikan dengan iSCSI), dll, akan selalu terjadi sama persis pada hard disk pasif server.
Failover tanpa menggunakan shared storage
============================================================
Perangkat lunak pendukung FailOver
Untuk melakukan konfigurasi Failover pada Linux adalah dengan melakukan instalasi paket aplikasi sbb:
- Heartbeat – Merupakan perangkat lunak yang melakukan komunikasi antar dua atau lebih server yang bertujuan untuk melakukan pengecekan apakah server dalam keadaan up atau down.
- DRBD (Distributed Replicated Block Device) – Merupakan perangkat lunak yang memberikan solusi replikasi storage block device (hard disk, partisi,logical volume, dll) antara dua server yang identik pada sistem operasi Linux. DRBD melakukan replikasi melalui jaringan LAN , atau biasa disebut dengan RAID 1 over network. DRBD membuat konfigurasi Linux HA lebih simpel dan mudah.
Apa yang bisa dilakukan oleh heartbeat :
- Melakukan komunikasi antar komputer atau server melalui jaringan LAN atau melalui serial port yang bertujuan untuk melakukan failover.
- Melakukan pemindahan IP (IP floating) pada server ke server yang lainnya dalam cluster.
- Menjalankan secara otomatis services yang didaftarkan pada heartbeat pada saat heartbeat dijalankan.
Apa yang bisa dilakukan oleh DRBD :
- DRBD melakukan replikasi blok device (hard disk) dari server master.
- DRBD memiliki 3 metode replikasi yaitu : 1. Synchronous(Protocol C) : yaitu data akan dianggap selesai ditulis saat data sudah sampai pada hard diskmasing masing server. 2. Asynchronous ( Protocol A) : yaitu data dianggap selesai ditulis jika data telah sampai pada hard disk lokal pada sebuah komputer atau server. 3. Semi synchronous ( protocol B) : yaitu data dianggap selesai jika data sampai pada lokal disk dan sampai pada cacheatau buffer dari server lain ( anggota cluster).