GNU/Linux >> Belajar Linux >  >> Ubuntu

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

Dalam tutorial ini, saya akan menunjukkan kepada Anda langkah demi langkah cara membuat Server Web Nginx Clustered Ketersediaan Tinggi dengan Pacemaker, Corosync, dan Crmsh. Kami akan membuat server web Nginx Active-Passive Cluster atau Failover-cluster menggunakan Pacemaker di Ubuntu 16.04.

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 dikembangkan oleh ClusterLabs sejak 2007.

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

Ada beberapa aplikasi yang tersedia untuk antarmuka Alat Pacu Jantung dan Crmsh adalah salah satunya. Ini adalah antarmuka baris perintah Alat Pacu Jantung untuk mengelola Tumpukan Ketersediaan Tinggi Alat Pacu Jantung. Crmsh ditulis dengan python. Kami dapat membuat, mengonfigurasi, dan memecahkan masalah tumpukan Pacemaker HA dengan alat baris perintah Crmsh.

Prasyarat

  • Tiga Server Ubuntu 16.04
    • web01       10.0.15.11
    • web02       10.0.15.12
    • web03       10.0.15.13
  • Alamat IP mengambang 10.0.15.15
  • Keistimewaan Root

Apa yang akan kita lakukan?

  1. Memetakan File Host.
  2. Instal dan Konfigurasi Nginx.
  3. Instal Alat Pacu Jantung, Corosync, dan Crmsh.
  4. Konfigurasikan Kunci Corosync.
  5. Mulai Semua Layanan.
  6. Membuat dan Mengonfigurasi Cluster.
  7. Pengujian.

Langkah 1 - Memetakan File Host

Catatan:
Jalankan langkah 1 - 3 pada ketiga server 'web01', 'web02', 'web03'.

Dalam tutorial ini, saya akan menggunakan 3 server Ubuntu 16.04 dan masing-masing memiliki nama host yang unik:'web01', 'web02' dan 'web03'. Setiap server dapat terhubung ke server lain dengan nama host server.

Untuk mencapainya, edit file '/etc/hosts' di semua server dengan vim.

vim /etc/hosts

Rekatkan konfigurasi /etc/hosts di bawah ini.

10.0.15.11      web01
10.0.15.12      web02
10.0.15.13      web03
10.0.15.15      ha-web.co

Simpan file dan keluar dari vim.

Selanjutnya, uji semua server dengan melakukan ping ke server lain melalui setiap nama host.

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

Langkah 2 - Instal dan Konfigurasi Nginx

Sekarang kita mulai membuat pengaturan Ketersediaan Tinggi dari server web Nginx dengan membuat cluster Failover dengan Pacemaker. Kita perlu menginstal Nginx di setiap node server terlebih dahulu.

Instal Nginx dengan perintah apt di bawah ini.

apt install -y nginx

Setelah penginstalan selesai, ganti halaman default nginx dengan halaman unik di setiap server dengan menjalankan perintah di bawah ini agar nanti kami dapat mengidentifikasi server mana yang mengirimkan halaman.

#Run Command on 'web01'
echo '<h1>web01 - hakase-labs</h1>' > /var/www/html/index.html

#Run Command on 'web02'
echo '<h1>web02 - hakase-labs</h1>' > /var/www/html/index.html

#Run Command on 'web03'
echo '<h1>web03 - hakase-labs</h1>' > /var/www/html/index.html

Sekarang hentikan server web.

systemctl stop nginx

Instalasi dan konfigurasi Nginx telah selesai.

Langkah 3 - Instal Alat Pacu Jantung, Corosync, dan Crmsh

Alat pacu jantung adalah aplikasi manajer cluster open source. Corosync adalah Mesin Cluster untuk Alat Pacu Jantung, dan Crmsh adalah alat berbasis python untuk mengelola cluster Alat Pacu Jantung. Semua aplikasi ini tersedia di repositori Uubuntu.

Instal Pacemaker, Corosync, dan crmsh dengan perintah apt di bawah ini.

apt install -y pacemaker corosync crmsh

Setelah instalasi, semua layanan ini berjalan secara otomatis di sistem. Hentikan mereka dengan perintah systemctl di bawah ini.

systemctl stop corosync
systemctl stop pacemaker

Tumpukan perangkat lunak yang menyediakan ketersediaan tinggi untuk Nginx telah diinstal.

Langkah 4 - Konfigurasikan Corosync

Catatan:
Jalankan langkah 4 hanya di server 'web01'.

Karena kita tidak menggunakan pcsd untuk Ubuntu, kita perlu mengkonfigurasi Corosync secara manual. Kami akan membuat kunci Corosync untuk otentikasi cluster dan membuat file konfigurasi Corosync baru di server 'web01', lalu menyalin kunci dan konfigurasi ke server lain 'web02' dan 'web03'.

Sebelum kita membuat kunci Corosync, kita perlu menginstal paket baru 'haveged'. Ini digunakan untuk mendapatkan nomor acak yang lebih baik untuk pembuatan kunci Corosync.

Instal hasged dari repositori dengan perintah apt.

apt install -y haveged

Sekarang buat kunci Corosync baru dengan perintah di bawah ini.

corosync-keygen

Ketika pembuatan kunci selesai, Anda dapat melihat kunci baru 'authkey' di direktori '/etc/corosync/'.

ls -lah /etc/corosync/

Selanjutnya, masuk ke direktori '/etc/corosync' dan buat cadangan file konfigurasi default 'corosync.conf'.

cd /etc/corosync/
mv corosync.conf corosync.conf.bekup

Kemudian buat file konfigurasi 'corosync.conf' baru dengan vim.

vim corosync.conf

Tempelkan konfigurasi di bawah ini ke dalam file tersebut.

# Totem Protocol Configuration
totem {
  version: 2
  cluster_name: hakase-cluster
  transport: udpu

# Interface configuration for Corosync
  interface {
    ringnumber: 0
    bindnetaddr: 10.0.15.0
    broadcast: yes
    mcastport: 5407
  }
}

# Nodelist - Server List
nodelist {
  node {
    ring0_addr: web01
  }
  node {
    ring0_addr: web02
  }
  node {
    ring0_addr: web03
  }
}

# Quorum configuration
quorum {
  provider: corosync_votequorum
}

# Corosync Log configuration
logging {
  to_logfile: yes
  logfile: /var/log/corosync/corosync.log
  to_syslog: yes
  timestamp: on
}

service {
  name: pacemaker
  ver: 0
}

Simpan file dan keluar dari editor.

Selanjutnya, salin kunci otentikasi dan file konfigurasi dari server 'web01' ke server 'web02' dan 'web03'.

scp /etc/corosync/* [email protected]:/etc/corosync/
scp /etc/corosync/* [email protected]:/etc/corosync/

Setelah semua selesai, masuk ke server 'web02' dan 'web03', lalu periksa file-file tersebut.

ssh [email protected]
cd /etc/corosync/
ls -lah

Konfigurasi Corosync telah selesai.

Langkah 5 - Mulai Semua Layanan Cluster

Catatan:
Jalankan langkah 5 di semua server.

Mulai tumpukan perangkat lunak klaster HA, alat pacu jantung, dan corosync, di semua server. Kemudian aktifkan untuk memulai secara otomatis saat boot.

Mulai Corosync dan tambahkan untuk memulai secara otomatis saat boot.

systemctl start corosync
systemctl enable corosync

Sekarang mulai alat pacu jantung dan aktifkan untuk memulai saat boot.

systemctl start pacemaker
update-rc.d pacemaker defaults 20 01
systemctl enable pacemaker

Semua layanan telah dimulai, periksa semua node dan pastikan status server 'Online' pada semuanya.

crm status

Atau Anda dapat memeriksa status dengan memeriksa anggota Corosync dengan perintah corosync-cmapctl di bawah ini.

corosync-cmapctl | grep members

Anda akan melihat semua Alamat IP server.

Langkah 6 - Buat dan Konfigurasikan Cluster

CATATAN:
Jalankan langkah 6 hanya di server web01

Pada langkah ini, kita akan mengonfigurasi Cluster Nginx Aktif-Pasif menggunakan alat baris perintah crmsh. Karena kami tidak menggunakan perangkat STONITH, kami ingin menonaktifkan STONITH dan mengabaikan kebijakan Kuorum di klaster kami.

Jalankan perintah crm di bawah untuk menonaktifkan 'STONITH' dan Abaikan kebijakan Kuorum.

crm configure property stonith-enabled=false
crm configure property no-quorum-policy=ignore

Sekarang periksa status STONITH dan kebijakan kuorum dengan perintah crm di bawah ini.

crm configure show

Anda akan melihat hasilnya seperti di bawah ini.

Selanjutnya, kita perlu membuat beberapa sumber daya baru untuk cluster. Alat pacu jantung mendukung jenis Resource Agents (RA) berikut.

  • LSB (Berbasis Standar Linux) - Disediakan oleh distribusi Linux. mis:skrip '/etc/init.d/service'.
  • OCF (Open Cluster Framework) - Kumpulan alat untuk komputasi cluster. Proyek ini adalah bagian dari Linux Foundation.

Untuk server web Nginx HA, kita perlu membuat dua sumber daya OCF:'virtual_ip' untuk IP mengambang dan 'server web' untuk layanan nginx.

Buat sumber daya 'virtual_ip' baru untuk konfigurasi IP mengambang dengan perintah crm di bawah ini.

sudo crm configure primitive virtual_ip \
ocf:heartbeat:IPaddr2 params ip="10.0.15.15" \
cidr_netmask="32" op monitor interval="10s" \
meta migration-threshold="10"

Dan untuk 'server web' nginx, buat sumber daya dengan perintah di bawah ini.

sudo crm configure primitive webserver \
ocf:heartbeat:nginx configfile=/etc/nginx/nginx.conf \
op start timeout="40s" interval="0" \
op stop timeout="60s" interval="0" \
op monitor interval="10s" timeout="60s" \
meta migration-threshold="10"

Ketika ini selesai, periksa sumber daya baru 'virtual_ip' dan 'server web' dengan perintah di bawah ini. Pastikan semua resource berstatus 'started'.

crm resource status

Terakhir, kita perlu menambahkan grup untuk konfigurasi baru layanan Failover IP. Kami ingin memigrasikan layanan 'Nginx' pada sumber daya 'server web' dengan IP mengambang pada sumber daya 'virtual_ip'.

Kami sudah membuat Floating IP dan Layanan, sekarang tambahkan sumber daya tersebut ke grup baru bernama 'hakase_balancing' dengan perintah di bawah ini. Anda dapat memilih nama grup Anda sendiri tentu saja di sini, pastikan untuk mengganti nama kemudian di mana pun digunakan.

sudo crm configure group hakase_balancing virtual_ip webserver

Grup sumber daya baru dengan nama 'hakase_balancing' telah ditentukan. Anda dapat memeriksanya dengan perintah di bawah ini.

crm resource show

Anda akan mendapatkan grup bernama hakase_balancing dengan sumber daya anggota 'virtual_ip' dan 'server web'.

Konfigurasi cluster telah selesai.

Langkah 7 - Pengujian

Menguji status node dan status cluster.

crm status

Kami memiliki 3 Node dengan status 'Online'.

Kami memiliki grup sumber daya bernama 'hakase_balancing', dan sekarang berjalan di node 'web01'.

Menguji server web Nginx dari browser web. Kunjungi alamat IP mengambang, nama server pengujian saya adalah - ha-web.co . Gunakan nama yang telah Anda pilih untuk server Anda di sini.

Semua sumber daya ada di simpul 'web01'.

Menguji Cluster Aktif-Pasif atau Failover

Hentikan cluster di server 'web01' dengan menjalankan perintah di bawah ini pada node 'web01'.

crm cluster stop

Anda akan mendapatkan hasil 'INFO:Layanan cluster dihentikan '.

Sekarang login ke node 'web02' dan periksa status cluster.

crm status


Sekarang Anda mendapatkan hasil bahwa simpul 'web01' adalah 'Offline', dan sumber daya virtual_ip dan server web dialihkan ke simpul 'web02'.

Saat Anda mengunjungi lagi IP mengambang 'ha-web.co ', Anda akan mendapatkan halaman web02.

Nginx High Availability dengan Pacemaker, Corosync, dan Crmsh di Ubuntu 16.04 telah berhasil diinstal dan diuji.


Ubuntu
  1. Cara Mengatur Ketersediaan Tinggi MariaDB dengan Detak Jantung dan DRBD di Ubuntu 16.04 LTS

  2. Cara Instal Nginx Dengan PHP5 Dan MySQL Di Ubuntu 11.10

  3. Cara Menginstal dan mengatur PHP dan Nginx (LEMP) di Ubuntu 20.04

  1. Cara Mengonfigurasi Firewall Ubuntu Anda dengan UFW dan Mengatur Aturan Firewall

  2. Cara Menginstal Mattermost dengan PostgreSQL dan Nginx di Ubuntu 16.04

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

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

  2. Cara Menginstal Magento 2 dengan Nginx dan Letsencrypt di Ubuntu 18.04

  3. Cara Menginstal Gitlab dengan PostgreSQL dan Nginx di Ubuntu 15.04