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