GNU/Linux >> Belajar Linux >  >> Cent OS

Cara Mengatur Ketersediaan Tinggi Nginx dengan Alat Pacu Jantung dan Corosync di CentOS 7

Dalam tutorial ini, kami akan memandu Anda langkah demi langkah tentang cara membuat Server Web Nginx Cluster Ketersediaan Tinggi dengan Pacemaker, Corosync, dan Pcsd. Kami akan membuat server web Nginx Active-Passive Cluster atau Failover-cluster menggunakan Pacemaker pada sistem CentOS 7.

Alat pacu jantung adalah perangkat lunak manajer cluster open source yang mencapai ketersediaan tinggi maksimum layanan Anda. Ini adalah manajer klaster HA tingkat lanjut dan skalabel yang didistribusikan oleh ClusterLabs.

Corosync Cluster Engine adalah proyek open source yang berasal dari proyek OpenAIS di bawah Lisensi BSD baru. Ini adalah sistem komunikasi grup dengan fitur tambahan untuk menerapkan Ketersediaan Tinggi dalam aplikasi.

Ada beberapa aplikasi untuk antarmuka Pacemaker. Pcsd adalah salah satu antarmuka baris perintah Pacemaker dan GUI untuk mengelola Pacemaker. Kita dapat membuat, mengkonfigurasi, atau menambahkan node baru ke cluster dengan perintah pcsd pcs.

Prasyarat

  • 2 atau lebih CentOS 7 Server
    • web01       10.0.15.10
    • web02       10.0.15.11
    • web03       10.0.15.12
  • Alamat IP Mengambang 10.0.15.15
  • Keistimewaan Root

Apa yang akan kami lakukan:

  1. Petakan File Host
  2. Instal Repositori Epel dan Nginx
  3. Memasang dan Mengonfigurasi Alat Pacu Jantung, Corosync, dan Pcsd
  4. Membuat dan Mengonfigurasi Cluster
  5. Nonaktifkan STONITH dan Abaikan Kebijakan Kuorum
  6. Tambahkan Floating-IP dan Sumber Daya
  7. Tambahkan Aturan ke Cluster
  8. Konfigurasi Firewalld
  9. Uji penyiapan

Langkah 1 - Petakan File Host

Catatan : Jalankan langkah 1 - 3 di semua server web01, web02, dan web03.

Langkah pertama yang harus kita lakukan adalah mengedit file host di setiap server untuk memetakan hostname semua server. Kami memiliki server 'web01', 'web02' dan 'web03', login ke setiap server dengan akun ssh.

ssh [email protected][01,02,03]

Edit file '/etc/hosts' dengan vim.

vim /etc/hosts

Tempelkan konfigurasi berikut di sana.

10.0.15.10      web01
10.0.15.11      web02
10.0.15.12      web03

Simpan dan keluar.

Sekarang uji konfigurasi pemetaan host.

ping -c 3 web01
ping -c 3 web02
ping -c 3 web03

Pastikan 'web01', 'web02', dan 'web03' dipetakan ke alamat IP yang benar.

Langkah 2 - Instal Repositori Epel dan Nginx

Pada langkah ini, kita akan menginstal repositori epel dan kemudian menginstal server web Nginx. Repositori EPEL atau Paket Ekstra untuk Enterprise Linux diperlukan untuk menginstal paket Nginx.

Instal Repositori EPEL menggunakan perintah yum berikut.

yum -y install epel-release

Sekarang instal server web Nginx dari repositori EPEL.

yum -y install nginx

Setelah penginstalan selesai, ubah halaman index.html default di setiap server dengan halaman baru.

#Run Command on 'web01'
echo '<h1>web01 - hakase-labs</h1>' > /usr/share/nginx/html/index.html

#Run Command on 'web02'
echo '<h1>web02 - hakase-labs</h1>' > /usr/share/nginx/html/index.html

#Run Command on 'web03'
echo '<h1>web03 - hakase-labs</h1>' > /usr/share/nginx/html/index.html

Repositori EPEL dan server web Nginx sekarang terinstal di sistem.

Langkah 3 - Instal dan konfigurasikan Alat Pacu Jantung, Corosync, dan Pcsd

Alat pacu jantung, Corosync, dan Pcsd tersedia di repositori sistem default. Jadi semuanya dapat diinstal dari repositori CentOS menggunakan perintah yum berikut.

yum -y install corosync pacemaker pcs

Setelah penginstalan selesai, aktifkan semua layanan untuk diluncurkan secara otomatis saat boot sistem menggunakan perintah systemctl di bawah.

systemctl enable pcsd
systemctl enable corosync
systemctl enable pacemaker

Sekarang jalankan antarmuka baris perintah alat pacu jantung pcsd di semua server.

systemctl start pcsd

Selanjutnya, buat kata sandi baru untuk pengguna 'hacluster' dan gunakan kata sandi yang sama untuk semua server. Pengguna ini telah dibuat secara otomatis selama penginstalan perangkat lunak.

Berikut cara mengonfigurasi sandi untuk 'hacluster ' pengguna.

passwd hacluster
Enter new password:

Tumpukan perangkat lunak Ketersediaan Tinggi Alat pacu jantung, Corosync, dan Pcsd diinstal ke sistem.

Langkah 4 - Buat dan Konfigurasikan Cluster

Catatan :Jalankan langkah 4 - 7 di 'web01' saja.

Pada langkah ini, kita akan membuat cluster baru dengan 3 centos server. Kemudian konfigurasikan alamat IP Mengambang dan tambahkan resource Nginx baru.

Untuk membuat cluster, kita perlu mengotorisasi semua server menggunakan perintah pcs dan pengguna hacluster.

Otorisasi semua server dengan perintah pcs dan pengguna serta kata sandi hacluster.

pcs cluster auth web01 web02 web03
Username: hacluster
Password: [email protected]

Sekarang saatnya mengatur cluster. Tentukan nama cluster dan semua server yang akan menjadi bagian dari cluster.

pcs cluster setup --name hakase_cluster web01 web02 web03

Sekarang mulai semua layanan cluster dan aktifkan juga.

pcs cluster start --all
pcs cluster enable --all

Selanjutnya, periksa status cluster.

pcs status cluster

Langkah 5 - Nonaktifkan STONITH dan Abaikan Kebijakan Kuorum

Karena kami tidak menggunakan perangkat anggar, kami akan menonaktifkan STONITH. STONITH atau Shoot The Other Node In The Head adalah penerapan anggar pada alat pacu jantung. Jika Anda sedang dalam produksi, lebih baik aktifkan STONITH.

Nonaktifkan STONITH dengan perintah pcs berikut.

pcs property set stonith-enabled=false

Selanjutnya, untuk kebijakan Kuorum, abaikan saja.

pcs property set no-quorum-policy=ignore

Periksa daftar properti dan pastikan stonith dan kebijakan kuorum dinonaktifkan.

pcs property list

Kebijakan STONITH dan Kuorum dinonaktifkan.

Langkah 6 - Tambahkan Floating-IP dan Sumber Daya

Floating IP adalah alamat IP yang dapat dimigrasikan/dipindahkan secara otomatis dari satu server ke server lain di Pusat Data yang sama. Dan kami telah menetapkan alamat IP mengambang untuk Ketersediaan Tinggi Pacemaker menjadi '10.0.15.15'. Sekarang kita ingin menambahkan dua sumber daya, sumber daya alamat IP Mengambang dengan nama 'virtual_ip' dan sumber daya baru untuk server web Nginx bernama 'server web'.

Tambahkan alamat IP mengambang sumber daya baru 'virtual_ip' menggunakan perintah pcs seperti yang ditunjukkan di bawah ini.

pcs resource create virtual_ip ocf:heartbeat:IPaddr2 ip=10.0.15.15 cidr_netmask=32 op monitor interval=30s

Selanjutnya, tambahkan sumber daya baru untuk 'server web' Nginx.

pcs resource create webserver ocf:heartbeat:nginx configfile=/etc/nginx/nginx.conf op monitor timeout="5s" interval="5s"

Pastikan Anda tidak mendapatkan hasil kesalahan, lalu periksa sumber daya yang tersedia.

pcs status resources

Anda akan melihat dua sumber 'virtual_ip' dan 'server web'. Sumber daya baru untuk IP Terapung dan server web Nginx telah ditambahkan.

Langkah 7 - Tambahkan Aturan Batasan ke Cluster

Pada langkah ini, kita akan menyiapkan Aturan Ketersediaan Tinggi, dan akan menyiapkan batasan sumber daya dengan antarmuka baris perintah pcs.

Tetapkan batasan pemeriksaan untuk server web dan sumber daya virtual_ip dengan skor 'INFINITY'. Selain itu, siapkan server web dan resource virtual_ip sebagai sama di semua node server.

pcs constraint colocation add webserver virtual_ip INFINITY

Setel sumber daya 'virtual_ip' dan 'server web' selalu di server simpul yang sama.

pcs constraint order virtual_ip then the webserver

Selanjutnya, hentikan cluster lalu mulai lagi.

pcs cluster stop --all
pcs cluster start --all

Sekarang, periksa kembali sumber daya dan Anda akan melihat statusnya sebagai 'Dimulai' di server yang sama 'web01'.

pcs status resources

virtual_ip dan sumber daya server web telah dimulai pada server/node yang sama 'web01'.

Langkah 8 - Konfigurasi Firewalld

HA-Cluster akan berjalan di bawah konfigurasi firewall firewalld - instal jika Anda tidak memiliki paketnya.

yum -y install firewalld

Mulai firewalld dan aktifkan untuk berjalan secara otomatis setiap kali sistem boot menggunakan perintah systemctl berikut.

systemctl start firewalld
systemctl enable firewalld

Selanjutnya, tambahkan layanan baru ke firewalld dengan perintah firewall-cmd - tambahkan layanan ketersediaan tinggi, HTTP, dan layanan HTTPS untuk Nginx.

firewall-cmd --permanent --add-service=high-availability
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https

Muat ulang konfigurasi firewall, dan periksa semua layanan.

firewall-cmd --reload
firewall-cmd --list-all

Pastikan layanan dengan HTTP dan https ada dalam daftar.

Langkah 9 - Pengujian

Pada langkah ini, kita akan melakukan beberapa tes untuk cluster. Uji status node ('Online' atau 'Offline'), uji anggota dan status corosync, lalu uji ketersediaan tinggi server web Nginx dengan mengakses alamat IP Mengambang.

Uji status node dengan perintah berikut.

pcs status nodes

Semua node aktif 'Online'.

Uji anggota corosync.

corosync-cmapctl | grep members

Anda akan mendapatkan alamat IP anggota Corosync.

Periksa anggota Corosync, dan Anda akan melihat hasilnya seperti di bawah ini.

pcs status corosync

Dan terakhir, periksa Ketersediaan Tinggi server web. Buka browser web Anda dan ketik alamat IP Mengambang '10.0.15.15'.

Anda akan melihat halaman web dari server 'web01'.

Selanjutnya, hentikan cluster di server 'web01' dengan perintah di bawah ini.

pcs cluster stop web01

Dan periksa kembali halaman tersebut, dan Anda akan mendapatkan halaman dari server 'web02' seperti di bawah ini.

Tambahan:

Periksa status cluster dengan perintah di bawah ini.

pcs status

Dan Anda akan mendapatkan hasil seperti gambar di bawah ini.

Setup server web Nginx High Availability dengan Pacemaker, Corosync, dan Pcsd di server CentOS 7 telah berhasil diselesaikan.


Cent OS
  1. Cara Menginstal dan Mengkonfigurasi Nginx di CentOS 7

  2. Cara Instal phpMyAdmin dengan Nginx di CentOS 7

  3. Cara Mengatur Cluster Ketersediaan Tinggi Nginx menggunakan Alat Pacu Jantung di CentOS 7

  1. Cara Menginstal Nextcloud dengan Nginx dan PHP 7.3 di CentOS 8

  2. Cara Menginstal ownCloud 9.1 dengan Nginx dan MariaDB di CentOS 7

  3. Cara Instal WordPress dengan HHVM dan Nginx di CentOS 7

  1. Cara Menginstal Nextcloud dengan Nginx dan PHP7-FPM di CentOS 7

  2. Cara Mengatur Ketersediaan Tinggi Nginx dengan Pacemaker, Corosync, dan Crmsh di Ubuntu 16.04

  3. Cara Menginstal dan Mengonfigurasi Askbot dengan Nginx di CentOS 7