• Tidak ada hasil yang ditemukan

High Available and Reliable Systems

N/A
N/A
nicesuu

Academic year: 2023

Membagikan "High Available and Reliable Systems"

Copied!
6
0
0

Teks penuh

(1)

Week 15_High Available and Reliable Systems

Reliability

Overview

R(t) adalah probabilitas bahwa sistem berjalan tanpa failure pada interval [0, t]

Reliability diperlukan pada:

Sistem yang tidak mentoleransi kesalahan (pesawat, heart pace maker) Tidak mungkin dilakukan perbaikan (satelit, pesawat luar angkasa)

Contoh High Reliability

Pesawat:

R(beberapa jam) 0.999 999 9 0.97 Pesawat luar angkasa:

R(beberapa tahun) 0.95

Artinya pesawat luar angkasa dapat berjalan tanpa failure dengan tingkat probabilitas 0.95 dalam interval beberapa tahun

Reliability vs Fault Tolerance

Fault Tolerance adalah sebuah teknik untuk meningkatkan reliability, tapi

Sistem fault tolerant tidak harus memiliki keandalan yang tinggi(high reliability). Contoh lihat slide sebelumnya

Sebuah sistem dapat dirancang untuk menoleransi kesalahan tunggal, namun probabilitas kesalahan tersebut dapat sangat tinggi sehingga menyebabkan reliability sistem sangat rendah.

Sistem yang high reliable tidak harus fault tolerant

Contoh, sistem dibuat dengan komponen yang memiliki kemungkinan gagal sangat kecil (durable) Meskipun begitu, jika komponen gagal maka fungsi tidak berjalan

How fault tolerance helps

Fault tolerant meningkatkan keandalan sistem dengan menjaga agar sistem tetap beroperasi saat terjadi kesalahan perangkat keras atau perangkat lunak

Contoh sebuah sistem dengan redundant prosesor tetap dapat bekerja jika salah satu prosesor fail Apakah sistem fault tolerant lebih reliable daripada sebuah komponen tunggal?

Availability

A(t), probabilitas sistem bekerja dengan benar pada waktu t Tergantung pada,

Seberapa sering sistem mati Berapa lama waktu perbaikan

Arsitektur: Tanpa Load Balancing

(2)

Tanpa load balancing, Reliability sistem dibawah ini:

Arsitektur: with Load Balancing

Berapakah reliabilitasnya?

Karena di hitung secara parallel maka tingkat reliablity R semakin mendekat 1.

Yang jadi pertanyaan Apakah cukup?

Arsitektur: High Available Server

System with Load Balancer

(3)

HAProxy adalah singkatan dari High Availability Proxy, yaitu perangkat lunak yang berfungsi sebagai penyeimbang traffic untuk aplikasi yang berbasis HTTP atau TCP.

Sistem Haproxy bekerja dengan membagi permintaan atau request yang masuk ke beberapa server backend yang tersedia. Dengan demikian, beban server akan didistribusikan secara merata diantara server-server tersebut.

Salah satu interface jaringan dari ketiga VM dikonfigurasikan pada host-only network

sehingga juga dapat terhubung dengan host mesinnya . Host mesin nanti akan bertindak sebagai klien dari server web.

Konfigurasi HAProxy Server

 Kemudian tambahkan konfigurasi blok demi blok ke berkas haproxy.cfg. Bagian pertama adalah konfigurasi Global sebagai berikut:

**

Perintah log menyebutkan server syslog yang pesan lognya akan dikirim.

Perintah maxconn menentukan jumlah koneksi pada front-end. Nilai defaultnya adalah 2000 dan harus disetel sesuai konfigurasi sistem Anda.

Arahan user dan grup mengubah proses HAProxy ke pengguna / grup tertentu. Ini tidak boleh diubah.

 Bagian selanjutnya, digunakan konfigurasi default yang ada pada file haproxy.cfg seperti pada Gambar:

Berikut ini penjelasan konfigurasi tersebut:

Global

Log /dev/log loca10

log 127.0.0.1 local1 notice chroot /var/lib/haproxy maxconn 2000

user haproxy group haproxy daemon

(4)

Opsi “ timeout connect” adalah waktu tunggu maksimum pembentukan koneksi ke server.

Opsi “timeout” klien dan server adalah batas waktu transaksi (mengirim data atau mengirim ack) Opsi “httplog” adalah untuk menyimpan log transaksi HTTP

Opsi “dontlognull” agar tidak menyimpan log untuk kedatangan paket TCP probes/paket pengecekan(seperti paket icmp)

“Errorfile” merujuk suatu file yang akan di load ketika terjadi kesalahan.

 Pada bagian akhir berkas haproxy.cfg berisi konfigurasi untuk konfigurasi frontend dan backend.

Server frontend listen pada port:80. Koneksi dari klien diport 80 akan diarahkan ke server backend. Pada konfigurasi tersebut Back_Servers merupakan identitas klaster web server.

mode http menunjukan bahwa sistem bekerja pada transaksi HTTP selain itu akan ditolak. Hal ini sesuai dengan karakter dari L7 Load Balancer yang melakukan inspeksi paket sampai layer 7.

balance roundrobin menunjukan algoritma penjadwalan yang digunakan.

opsi forwardfor, forward header klien ke servers.

 Untuk mengaktifkan halaman statistik dari klaster sistem load balancing. Ditambahkan konfigurasi berikut pada akhir baris file /etc/haproxy/haproxy.cfg.

Dari konfigurasi tersebut menunjukan bahwa halaman statistik dapat diakses melalui protokol http pada port 8080. Untuk mengaksesnya dapat menggunakan uri /stats (http://192.168.56.101 8080/stats) dan menggunakan username serta password yang disebutkan pada baris

stats auth. Versi HAProxy tidak ditunjukkan pada halaman statistik. Nilai halaman statistik diupdate setiap 10 detik.

Implementasi

Topology

The Virtual Router Redundancy Protocol VRRP is a computer networking protocol that provides for automatic assignment of available Internet Protocol IP routers to participating hosts.

frontend labkomputer bind *:80 mode http

default_backend Back_Servers backend Back_Servers

mode http

balance roundrobin option forwardfor

server webserv1.labkomputer.com 192.168.56.102:80 check server webserv2.labkomputer.com 192.168.56.103:80 check

listen stats bind :8080 mode http stats enable stats hide-version stats refresh 10s stats show-node stats auth joko:123456 stats uri /stats

(5)

Komponen

NGINX

install:

sudo apt-get install nginx

Keepalived

Keepalived provides frameworks for both load balancing and high availability. The load balancing framework relies on the well-known and widely used Linux Virtual Server IPVS kernel module, which provides Layer 4 load balancing.

routing software written in C

simple and robust facilities for loadbalancing and high-availability to Linux system and Linux based infrastructures install:

sudo apt-get install keepalived

Konfigurasi

Master

IP Virtual

Berfungsi sebagai interface ke user

Tidak mungkin menampilkan ke kompleksan sistem kepada user secara langsung Mempermudah pengelolaan name server

Slave/Backup

 vrrp_instance VI_1 Ini adalah bagian dari konfigurasi yang mendefinisikan instance VRRP dengan nama VI_1. Instance ini akan digunakan untuk mengatur ketersediaan tinggi pada jaringan.

 state BACKUP Peran atau status dari instance ini adalah BACKUP, artinya instance ini akan bertindak sebagai backup atau slave.

Instance lainnya (mungkin dengan prioritas lebih tinggi) akan bertindak sebagai MASTER.

 interface eth0 Interface yang digunakan oleh slave untuk berkomunikasi dengan jaringan, dalam hal ini, eth0.

 virtual_router_id 51 ID unik dari router virtual yang digunakan untuk mengidentifikasi grup VRRP. Semua perangkat dalam grup VRRP yang sama harus memiliki ID yang sama.

! Configuration File for keepalived vrrp_instance VI_1 {

state MASTER # Role

interface eth0 #Interface dari master

virtual_router_id 51 #Id router virtual untk redirection priority 150 #Higher priority untuk master

advert_int 1 #adverstisement interval (1 sec) authentication { #Opsi autentikasi antar server auth_type PASS # Opsi dipilih password

auth_pass $ rahasia #Password rahasia }

virtual_ipaddress { 10.32.75.200 # IP Virtual }

! Configuration File for keepalived vrrp_instance VI_1 {

state BACKUP # Role

interface eth0 #Interface dari slave

virtual_router_id 51 #Id router virtual untk redirection priority 100 #Higher priority untuk slave

advert_int 1 #adverstisement interval (1 sec) authentication { #Opsi autentikasi antar server auth_type PASS # Opsi dipilih password

auth_pass $ rahasia #Password rahasia (harus sama dengan Master) }

virtual_ipaddress { 10.32.75.200 # IP Virtual }

(6)

 priority 100 Prioritas dari instance VRRP ini. Dalam konfigurasi ini, slave memiliki prioritas 100. Jika terdapat multiple instance, instance dengan prioritas tertinggi akan menjadi MASTER.

 advert_int 1 Interval untuk melakukan pengiriman pesan iklan VRRP. Nilai 1 menunjukkan bahwa iklan akan dikirim setiap 1 detik.

 authentication: Bagian ini digunakan untuk mengatur opsi autentikasi antara server.

auth_type PASS Tipe autentikasi yang dipilih adalah dengan menggunakan password.

auth_pass $ rahasia: Password autentikasi yang digunakan antara slave dan master. Harus sama dengan konfigurasi pada server MASTER.

 virtual_ipaddress: Bagian ini mendefinisikan alamat IP virtual yang akan diambil alih oleh slave jika master mengalami kegagalan. Dalam konfigurasi ini, IP virtual yang digunakan adalah 10.32.75.200.

Konfigurasi ini memungkinkan server slave untuk secara otomatis mengambil alih IP virtual jika server master mengalami kegagalan atau mati.

Hal ini memastikan ketersediaan layanan yang tinggi dalam jaringan.

Autentikasi

Buat authkeys:

` Isi:

sudo nano /etc/ha.d/authkeys

auth 1

1 sha1 password

Referensi

Dokumen terkait