Cara mengonfigurasi dan mempertahankan ketersediaan/pengelompokan tinggi di Linux

Cara mengonfigurasi dan mempertahankan ketersediaan/pengelompokan tinggi di Linux

Ketersediaan tinggi (HA) cukup mengacu pada kualitas suatu 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 pengelompokan.

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 node yang menyediakan layanan dengan simpul sekunder yang mengambil alih jika gagal.

Cluster jatuh ke dalam empat jenis utama:

  • Penyimpanan: Menyediakan gambar sistem file yang konsisten di seluruh server di sebuah cluster, memungkinkan server untuk secara bersamaan membaca dan menulis ke satu sistem file bersama.
  • Ketersediaan tinggi: Menghilangkan titik kegagalan tunggal dan dengan gagal atas layanan dari satu node cluster ke yang lain jika sebuah simpul menjadi tidak beroperasi.
  • Penyeimbang beban: Permintaan layanan jaringan pengiriman ke beberapa node cluster untuk menyeimbangkan beban permintaan di antara node cluster.
  • Kinerja tinggi: 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 di mana satu atau lebih database (sekunder) dapat disimpan dalam sinkronisasi dengan database primer tunggal (atau master).

Untuk mengatur 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

Dalam artikel ini, kami akan menunjukkan dasar -dasar cara menggunakan, mengkonfigurasi, dan mempertahankan ketersediaan/pengelompokan tinggi di Ubuntu 16.04/18.04 dan centos 7. Kami akan menunjukkan cara menambahkan layanan Nginx HTTP ke cluster.

Mengkonfigurasi pengaturan DNS lokal di setiap server

Agar kedua server dapat berkomunikasi satu sama lain, kita perlu mengonfigurasi pengaturan DNS lokal yang sesuai di /etc/host file di kedua server.

Buka dan edit file menggunakan editor baris perintah favorit Anda.

$ sudo vim /etc /host 

Tambahkan entri berikut dengan alamat IP aktual dari server Anda.

192.168.10.10 Node1.contoh.com 192.168.10.11 Node2.contoh.com 

Simpan perubahan dan tutup file.

Menginstal server web nginx

Sekarang instal server web nginx menggunakan perintah berikut.

$ sudo apt install nginx [di ubuntu] $ sudo yum instal epel-release && sudo yum install nginx [pada centos 7] 

Setelah instalasi selesai, mulailah layanan Nginx untuk saat ini dan aktifkan untuk memulai secara otomatis pada waktu boot, lalu periksa apakah sudah naik dan berjalan menggunakan perintah Systemctl.
Di Ubuntu, layanan harus dimulai secara otomatis segera setelah paket pra-konfigurasi selesai, Anda dapat mengaktifkannya.

$ sudo systemctl aktifkan nginx $ sudo systemctl start nginx $ sudo systemctl status nginx 

Setelah memulai layanan Nginx, kita perlu membuat halaman web khusus untuk mengidentifikasi dan menguji operasi di kedua server. Kami akan memodifikasi konten halaman indeks NGINX default seperti yang ditunjukkan.

$ echo "Ini adalah halaman default untuk node1.contoh.com "| sudo tee/usr/share/nginx/html/index.html #vps1 $ echo "Ini adalah halaman default untuk node2.contoh.com "| sudo tee/usr/share/nginx/html/index.HTML #VPS2 

Menginstal dan Mengkonfigurasi Corosync dan Pacemaker

Selanjutnya, kita harus menginstal Pacemaker, Corosync, Dan PC di setiap node sebagai berikut.

$ sudo apt install corosync pacemaker pcs #ubuntu $ sudo yum menginstal pcs pacemaker corosync #centos 

Setelah instalasi selesai, pastikan itu PC Daemon berjalan di kedua server.

$ sudo systemctl aktifkan pcsd $ sudo systemctl mulai pcsd $ sudo systemctl status pcsd 

Membuat cluster

Selama instalasi, pengguna sistem dipanggil "Hacluster" dibuat. Jadi kita perlu mengatur otentikasi yang dibutuhkan PC. Mari kita mulai dengan membuat kata sandi baru untuk "Hacluster" Pengguna, kita perlu menggunakan kata sandi yang sama di semua server:

$ sudo passwd hacluster 
Buat Kata Sandi Pengguna Cluster

Selanjutnya, pada salah satu server (node1), jalankan perintah berikut untuk mengatur otentikasi yang diperlukan PC.

$ sudo pcs cluster auth node1.contoh.com node2.contoh.com -u hacluster -p password_here 
Pengaturan otentikasi untuk PC

Sekarang buat kluster dan isi dengan beberapa node (nama cluster tidak dapat melebihi 15 karakter, dalam contoh ini, kami telah menggunakan exampleCeluster) di server node1.

$ sudo pcs cluster setup --name examplecluster node1.contoh.com node2.contoh.com 
Buat Cluster di Node1

Sekarang aktifkan cluster saat boot dan mulai layanan.

$ sudo pcs cluster aktif -semua $ sudo pcs cluster start --all 
Aktifkan dan mulai cluster

Sekarang periksa apakah layanan cluster sudah habis dan berjalan menggunakan perintah berikut.

$ Sudo PCS Status atau $ SUDO CRM_MON -1 
Periksa status cluster

Dari output dari perintah di atas, Anda dapat melihat bahwa ada peringatan tentang tidak Stonith perangkat namun Stonith masih diaktifkan di cluster. Selain itu, tidak ada sumber daya/layanan cluster yang telah dikonfigurasi.

Mengkonfigurasi opsi cluster

Opsi pertama adalah menonaktifkan Stonith (atau Tembak simpul lain di kepala), implementasi pagar di Pacemaker.

Komponen ini membantu melindungi data Anda agar tidak rusak oleh akses bersamaan. Untuk tujuan panduan ini, kami akan menonaktifkannya karena kami belum mengkonfigurasi perangkat apa pun.

Mematikan Stonith, Jalankan perintah berikut:

$ sudo pcs properti set stonith-enabled = false 

Selanjutnya, abaikan juga Jumlah anggota minimum Kebijakan dengan menjalankan perintah berikut:

$ Sudo PCS Properti Set No-Quorum-Policy = Abaikan 

Setelah mengatur opsi di atas, jalankan perintah berikut untuk melihat daftar properti dan memastikan bahwa opsi di atas, Stonith dan Kebijakan Kuorum dinonaktifkan.

Daftar Properti $ Sudo PCS 
Lihat Properti Cluster

Menambahkan Layanan Sumber Daya/Cluster

Di bagian ini, kita akan melihat cara menambahkan sumber daya cluster. Kami akan mengonfigurasi IP mengambang yang merupakan alamat IP yang dapat langsung dipindahkan dari satu server ke server lainnya dalam jaringan atau pusat data yang sama. Singkatnya, IP mengambang adalah istilah umum teknis, digunakan untuk IP yang tidak terikat secara ketat pada satu antarmuka tunggal.

Dalam hal ini, ini akan digunakan untuk mendukung failover di kluster ketersediaan tinggi. Perlu diingat bahwa IP yang mengambang bukan hanya untuk situasi failover, mereka memiliki beberapa kasus penggunaan lainnya. Kita perlu mengonfigurasi cluster sedemikian rupa sehingga hanya anggota aktif dari cluster "memiliki" atau menanggapi IP mengambang pada waktu tertentu.

Kami akan menambahkan dua sumber daya cluster: sumber daya alamat IP mengambang yang disebut “floating_ip”Dan sumber daya untuk server web nginx yang disebut“http_server".

Mulailah pertama dengan menambahkan floating_ip sebagai berikut. Dalam contoh ini, alamat IP mengambang kami 192.168.10.20.

$ sudo pcs sumber daya buat floating_ip ocf: detak jantung: ipaddr2 ip = 192.168.10.20 cidr_netmask = 24 interval monitor op = 60s 

Di mana:

  • floating_ip: adalah nama layanan.
  • “OCF: Heartbeat: Ipaddr2”: Memberitahu alat pacu jantung mana yang akan digunakan, ipaddr2 dalam hal ini, namespace yang ada di (alat pacu jantung) dan standar apa yang sesuai dengan OCF.
  • interval monitor op = 60 -an”: Menginstruksikan alat pacu jantung untuk memeriksa kesehatan layanan ini setiap satu menit dengan memanggil tindakan monitor agen.

Kemudian tambahkan sumber daya kedua, bernama http_server. Di sini, agen sumber daya dari layanan ini OCF: Heartbeat: nginx.

$ sudo pcs sumber daya buat http_server ocf: detak jantung: 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.

$ SUMBER SUMBER STATUS PCS SUDO 
Periksa sumber daya cluster

Melihat output perintah, keduanya menambahkan sumber daya: "Floating_ip" Dan “HTTP_SERVER” telah terdaftar. Layanan floating_ip mati karena simpul utama sedang beroperasi.

Jika Anda memiliki firewall yang diaktifkan di sistem Anda, Anda harus mengizinkan semua lalu lintas ke Nginx dan semua layanan ketersediaan tinggi melalui firewall untuk komunikasi yang tepat antara node:

-------------- Centos 7 -------------- $ Sudo Firewall-CMD --Permanent --add-service = http $ sudo firewall-cmd --permanent --add-service = ketersediaan tinggi $ sudo firewall-cmd --eload -------------- Ubuntu -------------- $ sudo ufw Izinkan http $ sudo ufw Izinkan ketersediaan tinggi $ sudo ufw Muat ulang 

Menguji ketersediaan/pengelompokan tinggi

Langkah akhir dan penting adalah menguji bahwa pengaturan ketersediaan tinggi kami berfungsi. Buka browser web dan navigasikan ke alamat 192.168.10.20 Anda akan melihat halaman Nginx default dari node2.contoh.com seperti yang ditunjukkan dalam tangkapan layar.

Uji klaster sebelum kegagalan

Untuk mensimulasikan kegagalan, jalankan perintah berikut untuk menghentikan cluster di node2.contoh.com.

$ sudo pcs cluster berhenti http_server 

Kemudian muat ulang halaman di 192.168.10.20, Anda sekarang harus mengakses halaman web NGINX default dari node1.contoh.com.

Uji klaster setelah kegagalan

Atau, Anda dapat mensimulasikan kesalahan dengan memberi tahu layanan untuk berhenti secara langsung, tanpa menghentikan cluster pada node apa pun, menggunakan perintah berikut pada salah satu node:

 $ sudo crm_resource ---sourcing http_server ---force-stop 

Maka Anda perlu berlari crm_mon Dalam mode interaktif (default), dalam interval monitor 2 menit, Anda harus dapat melihat cluster memperhatikan itu http_server gagal dan pindahkan ke simpul lain.

Agar layanan cluster Anda berjalan secara efisien, Anda mungkin perlu menetapkan beberapa kendala. Kamu dapat melihat PC Halaman Manusia (PC Man) untuk daftar semua perintah penggunaan.

Untuk informasi lebih lanjut tentang Corosync dan Pacemaker, lihat: https: // clusterlabs.org/

Ringkasan

Dalam panduan ini, kami telah menunjukkan dasar -dasar cara menggunakan, mengkonfigurasi, dan mempertahankan ketersediaan/pengelompokan/replikasi yang tinggi di Ubuntu 16.04/18.04 dan centos 7. Kami mendemonstrasikan cara menambahkan layanan Nginx HTTP ke sebuah cluster. Jika Anda memiliki pemikiran untuk dibagikan atau pertanyaan, gunakan formulir umpan balik di bawah ini.