Community EN

advertisement
perpustakaan.uns.ac.id
digilib.uns.ac.id
BAB II
LANDASAN TEORI
2.1
Operating System CentOS
CentOS (Community ENTerprise Operating System) adalah sebuah
distribusi linux sebagai bentuk dari usaha untuk menyediakan platform
komputasi berkelas enterprise yang memiliki kompatibilitas kode biner
sepenuhnya dengan kode sumber yang menjadi induknya, Red Hat
Enterprise Linux (RHEL). RHEL merupakan distribusi linux berbayar yang
menyediakan akses terhadap update atas perangkat lunak dan beragam jenis
dukungan teknis. Distribusi linux ini sebenarnya merupakan gabungan dari
sejumlah peragkat lunak yang didistribusikan dibawah lisensi perangkat
lunak bebas dan kode sumber atas paket perangkat lunak ini dirilis ke publik
oleh Red Hat sebagai bagian dari kesepakatan dalam lisensi yang
digunakan.
Para pengembang CentOS menggunakan kode sumber dari Red Hat,
dikompilasi dengan tujuan membuat sebuah produk final yang sangat mirip
dengan RHEL. Semua hal-hal yang berkaitan dengan merek dagang ataupun
logo kemudian diubah disebabkan Red Hat tidak mengijinkan mereka untuk
mendistribusikan ulang logo tersebut.
CentOS tersedia secara gratis, dukungan teknis utamanya disediakan
terhadap para pengguna melalui milis, forum berbasis web, ataupun chat.
Proyek CentOS tidak berafiliasi dengan Red Hat, sehingga proyek CentOS
berjalan tanpa mendapatkan bantuan apapun dari Red Hat. Untuk
penggalangan dana, CentOS berbasis donasi dari para pengguna serta
sponsor dari perusahaan-perusahaan yang menggunakannya.
Jadi, keberadaan CentOS adalah tidak lain untuk menyediakan
platform komputasi skala perusahan yang bebas, dan berusaha untuk
mempertahankan 100% kompatibilitas binernya terhadap sumber hulu
to user
(RHEL). Tak peduli apapuncommit
alasannya,
sejatinya CentOS tidak lain adalah
5
perpustakaan.uns.ac.id
digilib.uns.ac.id
clone dari RHEL yang berdasarkan kaidah lisensi GPL adalah sah-sah saja.
Red Hat dan produknya (RHEL) pada prinsipnya hanya dilindungi aturan
merek dagang, dan ini cukup memeberi ruang untuk Red Hat
mengembangkan bisnis layanan yang sukses. (The CentOS Project, 2014)
2.2
Web Server
Web server atau pelayan web dapat merujuk baik pada perangkat keras
ataupun perangkat lunak yang menyediakan layanan akses kepada pengguna
melalui protokol komunikasi HTTP atau HTTPS atas berkas-berkas yang
terdapat pada suatu situs web dalam layanan ke pengguna dengan
menggunakan aplikasi tertentu seperti peramban web. Pada prakteknya
penggunaanya diperluas sebagai tempat penyimpanan data atau pun untuk
menjalankan sejumlah aplikasi bidang pendidikan (e-learing). Fungsi utama
sebuah web server untuk mentransfer berkas atas permintaan pengguna
melalui portokol komunikasi yang telah ditentukan dan mentransfer seluruh
aspek pemberkasan dalam sebuah halaman web yang terkait, termasuk di
dalamnya teks, gambar, video, atau yang lainnya. Kriteria dasar web server
berjalan dengan baik adalah dengan terjalinnya komunikasi misalnya
protokol HTTP/HTTPS dari server ke client atau sebaliknya tanpa ada data
yang hilang. (Ardhian, Rochim, & Widianto, 2013)
2.3
Reverse Proxy
Pengelompokan sistem penyeimbang beban terdapat beberapa jenis
proxy yang merupakan bagian dari sistem penyeimbang beban yang bisa
bertindak sebagai pembagi beban, filtering, dan caching. Proxy adalah
sebuah sistem komputer atau program aplikasi yang melayani request dari
client dengan meminta layanan ke server lain. (lihat gambar 2.1) Proxy
server memiliki 3 fungsi utama yaitu :
1. Connection sharing
2. Filtering
: perantara client dan server.
: bekerja pada layer aplikasi yang dapat
commit
to user paket-paket tertentu.
mem-block
6
perpustakaan.uns.ac.id
3. Caching
digilib.uns.ac.id
: mampu menyimpan informasi yang pernah
di akses dari server-server.
Proxy dibagi menjadi 2 yaitu forward proxy dan reverse proxy. Proxy
forward adalah proxy yang meruskan data ke host tujuan. Reverse proxy
adalah proxy yang menampung permintaan client dari internet dan
meneruskan ke server-server yang berada satu LAN (Local Area Network)
dengan proxy tersebut. aplikasi yang berfungsi sebagai reverse proxy
contohnya adalah HAProxy dan Pound Links.
Gambar 2.1 Skema Reverse Proxy
Server proxy adalah server yang bertindak sebagai perantara untuk
melayani permintaan dari client yang mencari sumber daya dari server lain
di dalam jaringan komputer. Seorang client terhubung ke server proxy dan
meminta beberapa layanan, seperti sambungan file, halaman web, atau
sumber yang lain yang tersedia dari server yang berbeda. (Ardhian, Rochim,
& Widianto, 2013)
2.4
Sistem Penyeimbang Beban (Load Balancing)
Load balancing adalah proses pendistribusian beban terhadap sebuah
service yang ada pada sekumpulan server atau perangkat jaringan ketika ada
request dari client maka server tersebut akan terbebani karena harus
melakukan proses response terhadap request client. (lihat gambar 2.2)
commit to user
7
perpustakaan.uns.ac.id
digilib.uns.ac.id
Gambar 2.2 Skema Load Balancing
Dengan load balancing maka dapat diperleh keuntungan seperti
menjamin realibilitas service, availabilitas dan skalabilitas suatu jaringan.
(Sumarno & Hasmoro, 2013)
2.5
HAProxy
HAProxy adalah produk opensource yang mendukung keperluan
peyeimbang beban dan failover web server, banyak digunakan untuk
keperluan reverse proxy di situs-situs yang trafik hariannya tinggi. Pada
HAProxy memiliki beberapa parameter di dalamnya yaitu sebagai berikut.
(lihat gambar 2.3) (Ardhian, Rochim, & Widianto, 2013)
1.
Global parameter : berisi parameter manajemen proses dan keamanan,
tuning kinerja, dan userlist.
2.
Proxy
3.
Konfigurasi Server
4.
Manipulasi HTTP
5.
Accesslist
6.
Logging
7.
Statistik dan monitoring
commit to user
8
perpustakaan.uns.ac.id
digilib.uns.ac.id
Gambar 2.3 Skema HAProxy
2.6
Apache
Apache adalah software opensource untuk HTTP web server yang
dijalankan di platform sistem Unix-like seperti BSD, Linux, dan UNIX,
Microsoft Windows dan lainnya. Apache dikembangkan dan dipelihara oleh
komunitas terbuka yang bergabung dengan Apache Software Foundation.
Apache adalah HTTP server paling popular di internet sejak April 1996 dan
menguasai 57% pangsa pada bulan Mei 1999. Pada bulan Agustus 2004
tercatat peningkatan menjadi 67%.
Apache mendukung fitur yang diimplementasikan sebagai modul terkompilasi mulai dari server-side programming language support sampai
dengan authentication schemes. Sejumlah bahasa pemrograman yang lazim
digunakan seperti Perl, Python, dan PHP didukung apache sepenuhnya.
Apache digunakan sebagai web server yang mengolah script php, php
digunakan untuk melakukan proses-proses aritmatika, database dan lainlainnya. (Prima, 2011)
2.7
MySQL
MySQL adalah sistem manajemen database yang didistribusikan
secara opensource. Database adalah kumpulan data terstruktur. Untuk
menambah, mengakses, dan memproses data yang tersimpan dalam
commit to user
9
perpustakaan.uns.ac.id
digilib.uns.ac.id
database komputer, memerlukan sistem manajemen database seperti
MySQL server. Karena komputer yang sangat baik dalam menangani
sejumlah besar data, sistem manajemen database memainkan peran sentral
dalam komputasi, sebagai utilitas standalone, atau sebagai bagian dari
aplikasi lain. Database MySQL adalah sebuah relasional database yang
menyimpan data dalam tabel. Struktur database disusun dalam file fisik
dioptimalkan untuk kecepatan. Model logis, seperti database, tabel,
pandangan, baris, dan kolom, menawarkan lingkungan pemrograman yang
fleksibel.
MySQL server sangat cepat, handal, terukur, dan mudah digunakan.
MySQL server dapat berjalan dengan web server, dan sebagainya, yang
memerlukan sedikit atau tidak ada pengaturan. MySQL server pada awalnya
dikembangkan untuk menangani database yang besar jauh lebih cepat
daripada solusi yang ada dan telah berhasil digunakan dalam lingkungan
produksi yang sangat menuntut selama beberapa tahun. MySQL
menawarkan konektivitas, kecepatan, dan keamanan membuat MySQL
server sangat cocok untuk mengakses database melalui internet. (Anonym,
MySQL :: MySQL 5.5 Reference Manual :: 1.3.1 What is MySQL?, 19972014) (Anonym, MySQL :: About MySQL, 2014)
2.7.1 MySQL Community Edition
MySQL Community Edition adalah versi bebas didownload
dari paling populer database opensource di dunia. Ini tersedia di
bawah lisensi GPL dan didukung oleh komunitas besar dan aktif
pengembang opensource.
MySQL Community Edition meliputi:

Pluggable Storage Engine Architecture .

Multiple Storage Engines:

InnoDB

MyISAM

NDB (MySQL Cluster)
commit to user
Memory

10
perpustakaan.uns.ac.id

digilib.uns.ac.id

Merge

Archive

CSV
MySQL Replication
: untuk meningkatkan kinerja
aplikasi dan skalabilitas.

MySQL Partitioning
: untuk meningkatkan kinerja dan
pengelolaan aplikasi database yang
besar.

Stored Procedures
: untuk meningkatkan produktivitas
pengembang.

Triggers
: untuk menegakkan aturan bisnis
yang kompleks di tingkat database.

Views
: untuk memastikan informasi
sensitif tidak terganggu.

Performance Schema
: untuk memantau tingkat user /
aplikasi konsumsi sumber daya.

Information Schema
: untuk menyediakan akses mudah ke
metadata.

MySQL Connectors
: (ODBC, JDBC, NET., Dll) untuk
membangun aplikasi dalam
berbagai bahasa.

MySQL Workbench
: untuk pemodelan visual,
pengembangan SQL dan
administrasi.
Tersedia di lebih dari 20 platform dan sistem operasi
termasuk Linux, Unix, Mac dan Windows. (Anonym, MySQL :
MySQL Community Edition, 2014)
2.8
Linux-HA (Linux High Availability)
Linux-HA merupakan sebuah proyek yang mempertahankan satu set
commit to user
blok server untuk sistem high availability cluster, termasuk cluster
11
perpustakaan.uns.ac.id
digilib.uns.ac.id
messaging layer, sejumlah besar agen sumber daya untuk berbagai aplikasi,
perpustakaan dan pelaporan kesalahan toolkit. (Anonym, Linux-HA, 2011)
2.8.1 Pacemaker
Pacemaker adalah manajer sumber cluster. Itu mencapai
ketersediaan maksimum untuk layanan cluster dengan mendeteksi
dan pulih dari node dan sumber daya tingkat kegagalan dengan
memanfaatkan pesan dan keanggotaan kemampuan yang disediakan
oleh infrastruktur cluster pilihan (baik Corosync atau Heartbeat).
Fitur kunci pacemaker meliputi:

Detection and recovery dari node dan tingkat layanan
kegagalan.

Storage agnostik, tidak ada persyaratan untuk penyimpanan
bersama.

Resource agnostik, apa pun yang dapat ditulis dapat
dikelompokkan.

Mendukung STONITH untuk memastikan integritas data.

Mendukung cluster besar dan kecil.

Mendukung both quorate dan resource driven clusters.

Mendukung hampir semua konfigurasi redundansi.

Konfigurasi otomatis replikasi yang dapat diperbarui dari
setiap node.

Kemampuan untuk menentukan cluster layanan order,
colocation dan anti-colocation.

Mendukung untuk jenis layanan canggih :

Clones: untuk layanan yang harus aktif di beberapa node.

Multi-state: untuk layanan dengan beberapa mode
(master / slave, primer / secondary).

Unifield, scriptabel, alat manajemen cluster.
(Beekhof, 2009-2012)
commit to user
12
perpustakaan.uns.ac.id
2.8.2
digilib.uns.ac.id
Arsitektur Pacemaker
Gambar 2.4 Arsitektur Pacemaker
Pada tingkat tertinggi, cluster terdiri dari tiga bagian : (lihat
Gambar 2.4)

Non-cluster komponen sadar (diilustrasikan dalam warna
hijau). Potongan-potongan ini meliputi sumber daya sendiri,
scripts yang start, stop dan memantau mereka, dan juga
daemon lokal yang ditandai perbedaan antara standar script
yang berbeda ini diterapkan.

Resource
management
pacemaker
memberikan
otak
(digambarkan dengan warna biru) yang memproses dan
bereaksi terhadap peristiwa tentang cluster. Peristiwa ini
termasuk node bergabung atau meninggalkan cluster.
Peristiwa sumber daya yang disebabkan oleh kegagalan,
pemeliharaan,
dijadwalkan
kegiatan,
dan
tindakan
administratif lainnya. Pacemaker akan menghitung state ideal
cluster dan plot jalan untuk mencapainya setelah salah satu
commit to
peristiwa tersebut.
Iniuser
mungkin termasuk memindahkan
13
perpustakaan.uns.ac.id
digilib.uns.ac.id
sumber daya, menghentikan node dan bahkan memaksa
mereka offline dengan saklar listrik jarak jauh.

Low level infrastructure corosync memberikan pesan handal,
keanggotaan
dan
informasi
tentang
quorum
cluster
(digambarkan dengan warna merah).
Ketika dikombinasikan dengan corosync, pacemaker juga
mendukung file system populer opensource cluster. (lihat gambar 2.5)
(Beekhof, 2009-2012)
Gambar 2.5 Pacemaker Stack
2.8.3 Komponen Internal
Pacemaker itu sendiri terdiri dari empat komponen utama
(digambarkan di bawah ini dalam skema warna yang sama dengan
diagram sebelumnya) : (lihat Gambar 2.6)

CIB (Cluster Information Base)

CRMD (Cluster Resource Management Daemon)

PEngine (PE atau Policy Engine)

STONITHd
commit to user
14
perpustakaan.uns.ac.id
digilib.uns.ac.id
Gambar 2.6 Pacemaker Internals
CIB menggunakan XML untuk mewakili kedua konfigurasi
cluster dan state saat ini dari semua sumber daya dalam cluster. Isi
CIB tersebut secara otomatis disimpan disinkron di seluruh cluster
dan digunakan oleh PEngine untuk menghitung keadaan ideal dari
cluster dan bagaimana harus dicapai.
Daftar
(Designated
instruksi
ini
Co-ordinator).
kemudian
Pacemaker
diumpankan
memusatkan
ke
DC
semua
pengambilan keputusan cluster dengan memilih salah satu contoh
CRMD untuk bertindak sebagai master.
DC melaksanakan instruksi PEngine dalam rangka yang
diperlukan dengan mengirimkan mereka ke salah satu LRMd (Local
Resource Management daemon) atau CRMD rekan-rekan pada node
lain melalui infrastruktur messaging cluster (yang pada gilirannya
melewati mereka ke proses LRMd mereka).
Peer nodes semua melaporkan hasil usaha mereka kembali
ke DC dan berdasarkan hasil yang diharapkan dan aktual, baik akan
melaksanakan tindakan
apatopun
commit
useryang diperlukan untuk menunggu
15
perpustakaan.uns.ac.id
digilib.uns.ac.id
sebelumnya untuk menyelesaikan, atau membatalkan pengolahan
dan meminta PEngine untuk menghitung ulang state ideal cluster
berdasarkan hasil tak terduga.
Dalam beberapa kasus, mungkin perlu untuk mematikan
node dalam rangka untuk melindungi data bersama atau pemulihan
resource recovery. Untuk pacemaker ini dilengkapi dengan
STONITHd. STONITH biasanya diimplementasikan dengan remote
power switch. Dalam pacemaker, perangkat STONITH dimodelkan
sebagai
resources
(dan
dikonfigurasi
dalam
CIB)
untuk
memungkinkan mereka untuk dapat dengan mudah di monitor untuk
gagal, namun STONITHd mengurus serta memahami topologi
STONITH sehingga client hanya meminta sebuah node dipagari dan
melakukan sisanya. (Beekhof, 2009-2012)
2.8.4 Jenis Pacemaker Cluster
Pacemaker tidak membuat asumsi tentang lingkungan
cluster, ini memungkinkan untuk mendukung hampir semua
konfigurasi redundansi. (lihat Gambar 2.7 dan Gambar 2.8)

Active / Passive
Gambar 2.7 Skema Pacemaker Active / Passive
commit to user
16
perpustakaan.uns.ac.id

digilib.uns.ac.id
Active / Active
Gambar 2.8 Skema Pacemaker Active / Active

N+1

N+M

N-to-1

dan N-to-N.
(Beekhof, 2009-2012)
2.9
DRBD
DRBD (Distributed Replicated Block Device) mengacu untuk
memblokir perangkat yang dirancang sebagai sebuah blok cluster untuk
membentuk HA (High Availability) cluster. Hal ini dilakukan dengan
mirroring block device melalui jaringan. DRBD dapat dipahami sebagai
jaringan berbasis RAID-1. (lihat Gambar 2.9)
commit to user
17
perpustakaan.uns.ac.id
digilib.uns.ac.id
Gambar 2.9 Skema DRBD
Dalam gambar 2.9 di atas, dua kotak oranye mewakili dua server
yang membentuk sebuah cluster HA. Kotak-kotak berisi komponen biasa
dari sebuah kernel linux : file system, buffer cache, disk scheduler, disk
drivers, TCP / IP stack dan NIC (Network Interface Card) driver. Tanda
panah hitam menggambarkan aliran data (file maupun database) antara
komponen tersebut. Panah oranye menunjukkan aliran data, seperti DRBD
mencerminkan data layanan sangat tersedia dari node aktif cluster HA ke
node siaga cluster HA.
commit to user
Gambar 2.10 Heartbeat Failover and Failback
18
perpustakaan.uns.ac.id
digilib.uns.ac.id
Bagian atas dari Gambar 2.10 ini menunjukkan cluster di mana node
kiri sedang aktif dan node kanan sedang siaga. Misalnya, alamat service IP
pada client, yang sedang melayani untuk saat ini adalah pada node kiri.
Service, termasuk alamat IP-nya, dapat bermigrasi ke node lain pada setiap
saat, baik karena kegagalan node aktif atau sebagai tindakan administratif.
Bagian bawah dari Gambar 2.10 menunjukkan cluster yang rusak. Dalam
HA berbicara migrasi layanan disebut failover, proses sebaliknya disebut
failback dan ketika migrasi dipicu oleh administrator itu disebut switchover.
(Anonym, DRBD:What is DRBD, 2008-2011)
commit to user
19
Download