Cara mengonfigurasi dan mempertahankan ketersediaan/pengelompokan tinggi di Linux
- 4984
- 988
- Dwayne Hackett
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 haclusterBuat 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_herePengaturan 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.comBuat Cluster di Node1
Sekarang aktifkan cluster saat boot dan mulai layanan.
$ sudo pcs cluster aktif -semua $ sudo pcs cluster start --allAktifkan dan mulai cluster
Sekarang periksa apakah layanan cluster sudah habis dan berjalan menggunakan perintah berikut.
$ Sudo PCS Status atau $ SUDO CRM_MON -1Periksa 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 PCSLihat 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 SUDOPeriksa 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 kegagalanUntuk 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 kegagalanAtau, 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.
- « Cara mengkloning partisi atau hard drive di linux
- Cara mengkonfigurasi klien ldap untuk menghubungkan otentikasi eksternal »