Cara Konfigurasi dan Membuat High Availability/Clustering pada OS Linux
High Availability (HA) hanya mengacu pada kualitas sistem untuk beroperasi terus menerus tanpa kegagalan untuk jangka waktu yang lama. Solusi HA dapat diimplementasikan menggunakan perangkat keras dan / atau perangkat lunak, dan salah satu solusi umum untuk menerapkan HA adalah clustering.
Dalam komputasi, sebuah cluster terdiri dari dua atau lebih komputer (umumnya dikenal sebagai node atau anggota) yang bekerja bersama untuk melakukan tugas. Dalam pengaturan seperti itu, hanya satu simpul yang menyediakan layanan dengan simpul sekunder mengambil alih jika gagal.
Cluster terbagi dalam empat tipe utama:
- Storage: memungkinkan server untuk secara bersamaan membaca dan menulis ke sistem file bersama.
- High Availability: menghilangkan titik kegagalan tunggal dan dengan gagal layanan dari satu node cluster ke yang lain dalam kasus node menjadi tidak beroperasi.
- Load Balancing: mengirimkan permintaan layanan jaringan ke beberapa node cluster untuk menyeimbangkan beban permintaan di antara node cluster.
- High Performance: melakukan pemrosesan paralel atau bersamaan, sehingga membantu meningkatkan kinerja aplikasi.
Solusi lain yang banyak digunakan untuk menyediakan HA adalah replikasi (khususnya replikasi data). Replikasi adalah proses dimana satu atau lebih basis data (sekunder) dapat tetap disinkronkan dengan satu basis data utama (atau master).
Untuk mengatur sebuah cluster, kita membutuhkan setidaknya dua server. Untuk tujuan panduan ini, kami akan menggunakan dua server Linux:
- Node1: 192.168.10.10
- Node2: 192.168.10.11
Pada artikel ini, kami akan menunjukkan dasar-dasar cara menggunakan, mengkonfigurasi dan mempertahankan ketersediaan tinggi / clustering di Ubuntu 16.04 / 18.04 dan CentOS 7. Kami akan menunjukkan cara menambahkan layanan HTTP Nginx ke cluster.
Configuring Local DNS Settings on Each Server
Agar kedua server dapat berkomunikasi satu sama lain, kita perlu mengonfigurasi pengaturan DNS lokal yang sesuai di file /etc/hosts di kedua server.
Buka dan edit file menggunakan editor baris perintah favorit Anda.
$ sudo vim /etc/hosts
Tambahkan entri berikut dengan alamat IP aktual dari server Anda.
192.168.10.10 node1.example.com 192.168.10.11 node2.example.com
Simpan perubahan dan tutup file.
Installing Nginx Web Server
Sekarang instal server web Nginx menggunakan perintah berikut.
$ sudo apt install nginx [On Ubuntu] $ sudo yum install epel-release && sudo yum install nginx [On CentOS 7]
Setelah instalasi selesai, mulailah layanan Nginx untuk saat ini dan aktifkan untuk memulai secara otomatis saat boot, kemudian periksa apakah sudah menyala dan berjalan menggunakan perintah systemctl.
Di Ubuntu, layanan harus dimulai secara otomatis segera setelah paket pra-konfigurasi selesai, Anda cukup mengaktifkannya.
$ sudo systemctl enable nginx $ sudo systemctl start nginx $ sudo systemctl status nginx
Setelah memulai layanan Nginx, kita perlu membuat halaman web khusus untuk mengidentifikasi dan menguji operasi pada kedua server. Kami akan mengubah konten halaman indeks Nginx default seperti yang ditunjukkan.
$ echo "This is the default page for node1.example.com" | sudo tee /usr/share/nginx/html/index.html #VPS1 $ echo "This is the default page for node2.example.com" | sudo tee /usr/share/nginx/html/index.html #VPS2
Installing and Configuring Corosync and Pacemaker
Selanjutnya, kita harus menginstal Pacemaker, Corosync, dan Pcs pada setiap node sebagai berikut.
$ sudo apt install corosync pacemaker pcs #Ubuntu $ sudo yum install corosync pacemaker pcs #CentOS
Setelah instalasi selesai, pastikan pcs daemon berjalan di kedua server.
$ sudo systemctl enable pcsd $ sudo systemctl start pcsd $ sudo systemctl status pcsd
Creating the Cluster
Selama instalasi, pengguna sistem yang disebut “hacluster” dibuat. Jadi kita perlu mengatur otentikasi yang diperlukan untuk pcs. Mari kita mulai dengan membuat kata sandi baru untuk pengguna “hacluster”, kita perlu menggunakan kata sandi yang sama di semua server:
$ sudo passwd hacluster
Selanjutnya, pada salah satu server (Node1), jalankan perintah berikut untuk mengatur otentikasi yang diperlukan untuk pcs.
$ sudo pcs cluster auth node1.example.com node2.example.com -u hacluster -p password_here --force
Now create a cluster and populate it with some nodes (the cluster name cannot exceed 15 characters, in this example, we have used examplecluster) on Node1 server.
$ sudo pcs cluster setup --name examplecluster node1.example.com node2.example.com
Sekarang aktifkan cluster saat boot dan mulai layanan.
$ sudo pcs cluster enable --all $ sudo pcs cluster start --all
Sekarang periksa apakah layanan cluster sudah berjalan dan menggunakan perintah berikut.
$ sudo pcs status OR $ sudo crm_mon -1
Dari output perintah di atas, Anda dapat melihat bahwa ada peringatan tentang tidak ada perangkat STONITH namun STONITH masih diaktifkan di kluster. Selain itu, tidak ada sumber daya / layanan cluster yang telah dikonfigurasi.
Configuring Cluster Options
Opsi pertama adalah menonaktifkan STONITH (atau Tembak Node Lainnya di Kepala), implementasi pagar pada alat pacu jantung.
Komponen ini membantu melindungi data Anda dari kerusakan oleh akses bersamaan. Untuk tujuan panduan ini, kami akan menonaktifkannya karena kami belum mengkonfigurasi perangkat apa pun.
Untuk mematikan STONITH, jalankan perintah berikut:
$ sudo pcs property set stonith-enabled=false
Selanjutnya, abaikan juga kebijakan Kuorum dengan menjalankan perintah berikut:
$ sudo pcs property set no-quorum-policy=ignore
Setelah mengatur opsi di atas, jalankan perintah berikut untuk melihat daftar properti dan memastikan bahwa opsi di atas, stonith dan kebijakan kuorum dinonaktifkan.
$ sudo pcs property list
Adding a Resource/Cluster Service
Di bagian ini, kita akan melihat bagaimana cara menambahkan sumber daya klaster. Kami akan mengonfigurasi IP mengambang yang merupakan alamat IP yang dapat dipindahkan secara instan dari satu server ke server lain dalam jaringan atau pusat data yang sama. Singkatnya, IP mengambang adalah istilah umum teknis, yang digunakan untuk IP yang tidak terikat secara ketat pada satu antarmuka tunggal.
Dalam hal ini, ini akan digunakan untuk mendukung failover di cluster ketersediaan tinggi. Perlu diingat bahwa IP mengambang bukan hanya untuk situasi failover, mereka memiliki beberapa kasus penggunaan lainnya. Kita perlu mengkonfigurasi cluster sedemikian rupa sehingga hanya anggota aktif dari cluster yang “memiliki” atau merespons IP mengambang pada waktu tertentu.
Kami akan menambahkan dua sumber daya klaster: sumber daya alamat IP mengambang yang disebut “floating_ip” dan sumber daya untuk server web Nginx yang disebut “http_server“.
Pertama mulailah dengan menambahkan floating_ip sebagai berikut. Dalam contoh ini, alamat IP mengambang kami adalah 192.168.10.20.
$ sudo pcs resource create floating_ip ocf:heartbeat:IPaddr2 ip=192.168.10.20 cidr_netmask=24 op monitor interval=60s
dimana:
- floating_ip: adalah nama layanan.
- “ocf:heartbeat:IPaddr2”: memberitahu Pacemaker script mana yang harus digunakan, IPaddr2 dalam kasus ini, namespace yang mana di dalamnya (pacemaker) dan standar apa yang sesuai dengan ocf.
- “op monitor interval=60s”: menginstruksikan Alat Pacu Jantung untuk memeriksa kesehatan layanan ini setiap satu menit dengan menelepon tindakan monitor agen.
Kemudian tambahkan sumber daya kedua, bernama http_server. Di sini, agen sumber daya layanan adalah ocf:heartbeat:nginx.
$ sudo pcs resource create http_server ocf:heartbeat:nginx configfile="/etc/nginx/nginx.conf" op monitor timeout="20s" interval="60s"
Setelah Anda menambahkan layanan cluster, keluarkan perintah berikut untuk memeriksa status sumber daya.
$ sudo pcs status resources
Melihat output dari perintah, dua sumber daya yang ditambahkan: “floating_ip” dan “http_server” telah terdaftar. Layanan floating_ip tidak aktif karena simpul utama sedang beroperasi.
Jika Anda mengaktifkan firewall di sistem Anda, Anda harus mengizinkan semua lalu lintas ke Nginx dan semua layanan ketersediaan tinggi melalui firewall untuk komunikasi yang baik antar node:
-------------- CentOS 7 -------------- $ sudo firewall-cmd --permanent --add-service=http $ sudo firewall-cmd --permanent --add-service=high-availability $ sudo firewall-cmd --reload -------------- Ubuntu -------------- $ sudo ufw allow http $ sudo ufw allow high-availability $ sudo ufw reload
Testing High Availability/Clustering
Langkah terakhir dan penting adalah menguji apakah pengaturan ketersediaan tinggi kami berfungsi. Buka browser web dan navigasikan ke alamat 192.168.10.20 Anda akan melihat halaman Nginx default dari node2.example.com seperti yang ditunjukkan pada tangkapan layar.
Untuk mensimulasikan kegagalan, jalankan perintah berikut untuk menghentikan cluster di node2.example.com.
$ sudo pcs cluster stop http_server
Kemudian muat ulang halaman di 192.168.10.20, Anda sekarang harus mengakses halaman web Nginx default dari node1.example.com.
Sebagai alternatif, Anda dapat mensimulasikan kesalahan dengan memberi tahu layanan untuk berhenti secara langsung, tanpa menghentikan gugus pada sembarang simpul, menggunakan perintah berikut di salah satu simpul:
$ sudo crm_resource --resource http_server --force-stop
Kemudian Anda perlu menjalankan crm_mon dalam mode interaktif (default), dalam interval monitor 2 menit, Anda harus dapat melihat pemberitahuan kluster bahwa http_server gagal dan memindahkannya ke node lain.
Agar layanan cluster Anda berjalan dengan efisien, Anda mungkin perlu menetapkan beberapa kendala. Anda dapat melihat halaman manual pcs (pcs pcs) untuk daftar semua perintah penggunaan.
Untuk informasi lebih lanjut tentang Corosync dan Alat Pacu Jantung, periksa: https://clusterlabs.org/
Dalam panduan ini, kami telah menunjukkan dasar-dasar cara menggunakan, mengkonfigurasi dan mempertahankan ketersediaan tinggi / clustering / replikasi di Ubuntu 16.04 / 18.04 dan CentOS 7. Kami mendemonstrasikan cara menambahkan layanan Nginx HTTP ke sebuah cluster.
Tidak ada komentar:
Posting Komentar