Dengan kemunculan era data besar, semakin banyak syarikat dan organisasi mula menggunakan sistem pengendalian Linux sebagai platform pelayan mereka. Untuk memastikan ketersediaan dan kestabilan aplikasi, seni bina ketersediaan tinggi telah menjadi bahagian yang sangat diperlukan dalam pelayan Linux. Artikel ini akan memperkenalkan cara menggunakan seni bina ketersediaan tinggi dalam Linux.
Apakah seni bina ketersediaan tinggi?
Ketersediaan Tinggi (HA) merujuk kepada seni bina sistem yang boleh terus menyediakan perkhidmatan apabila sistem gagal. HA boleh dilaksanakan melalui pelbagai teknologi, seperti pengimbangan beban, sandaran berlebihan, failover, dsb. Untuk aplikasi peringkat perusahaan, mengekalkan ketersediaan yang tinggi adalah penting kerana ia memastikan aplikasi boleh terus berfungsi seperti biasa sekiranya berlaku keadaan yang tidak dijangka.
Langkah-langkah untuk menggunakan seni bina ketersediaan tinggi dalam Linux
Pertama, anda perlu merancang rangkaian. Untuk memastikan ketersediaan tinggi, setiap nod dalam kelompok harus diberikan alamat IP bebas dan digabungkan menjadi alamat IP maya. Selain itu, storan rangkaian perlu dikonfigurasikan untuk kluster berkongsi data antara nod.
Sebelum memasang perisian, pasang pakej perisian yang diperlukan pada setiap nod, seperti pakej degupan jantung, corosync dan pcs. Ia boleh dipasang pada CentOS menggunakan arahan berikut:
sudo yum install corosync pcs pacemaker resource-agents
Seterusnya, Corosync dan Denyutan Jantung perlu dikonfigurasikan untuk membolehkan komunikasi antara kedua-dua nod . Ini adalah salah satu langkah utama untuk memastikan ketersediaan yang tinggi. Tetapkan alamat IP nod, nama saluran dan port saluran dalam fail konfigurasi. Semasa proses konfigurasi ini, pastikan maklumat berikut dikonfigurasikan:
totem { version: 2 secauth: off interface { ringnumber: 0 bindnetaddr: 192.168.50.0 mcastaddr: 226.94.1.1 mcastport: 5405 } transport: udpu } logging { to_logfile: yes logfile: /var/log/corosync/corosync.log to_syslog: yes }
Dalam fail konfigurasi degupan jantung, anda perlu menetapkan alamat IP dan alamat IP maya nod. Pastikan aplikasi yang menyediakan alamat IP maya dipasang.
#设定hacluster集群名称 cluster hacluster #设定故障探测时间间隔 必须<ping的-send值 keepalive 2 #每次探测(waitting)会加入2秒 deadtime 10 #装备ping用的参数,每次等待10秒 warntime 10 initdead 20 udpport 694 #主服务节点IP,可多行填写 node node1.example.com node node2.example.com #关联的主节点为node1,次节点为node2 crm respawn #virtual_ip是虚拟IP #Ethernet Bridge 和IP假设设为192.168.0.1/24 primitive virtual_ip ocf:heartbeat:IPaddr2 params ip="192.168.0.5" cidr_netmask="24" op monitor interval="10s" #IP暂停服务后强制迁移 location virtual_ip-primary virtual_ip rule $id="virtual_ip-rule" inf: virtual_ip
Pasang alat pcs, iaitu alat baris arahan yang digunakan untuk mengkonfigurasi perisian pengurusan kluster Perentak jantung. Ia boleh dipasang menggunakan arahan berikut:
sudo yum install pcs sudo systemctl enable pcsd.service && sudo systemctl start pcsd.service
Konfigurasikan tembok api, memastikan bahawa tembok api pada mana-mana nod membenarkan komunikasi. Pada CentOS7, anda boleh menggunakan arahan berikut:
sudo firewall-cmd --add-service=high-availability --permanent sudo firewall-cmd --reload
Pada setiap nod, cipta pengguna hacluster dan tambahkannya pada kumpulan pcsd untuk pengurusan masa depan gugusan Perentak jantung:
sudo useradd hacluster sudo passwd hacluster sudo usermod -aG pcsd hacluster
Untuk mendayakan pcsd perkhidmatan, sila gunakan arahan berikut:
sudo systemctl enable pcsd sudo systemctl start pcsd
Konfigurasikan kekunci auth pada Perentak jantung menggunakan arahan berikut, salin kekunci auth ke semua nod lain menggunakan pilihan yang sama:
sudo pcs cluster auth <node1.example.com> <node2.example.com> -u hacluster -p <password> --force
Pasang dan konfigurasikan HAproxy, alat pengimbangan beban dengan ketersediaan tinggi untuk aplikasi TCP dan HTTP. Anda boleh menggunakan arahan berikut untuk memasangnya pada CentOS:
sudo yum -y install haproxy sudo systemctl enable haproxy
Dalam fail konfigurasi haproxy, anda perlu menetapkan algoritma pengimbangan beban, alamat IP dan nombor port pelayan bahagian belakang.
global log 127.0.0.1 local2 chroot /var/lib/haproxy pidfile /var/run/haproxy.pid maxconn 4000 user haproxy group haproxy daemon # Enables HAProxy in daemon mode defaults log global mode http option httplog option dontlognull retries 3 option redispatch maxconn 2000 contimeout 5000 clitimeout 50000 srvtimeout 50000 frontend web bind *:80 mode http default_backend web-backend backend web-backend mode http balance roundrobin option httpchk HEAD / HTTP/1.1 Host:localhost server node1 10.0.0.2:80 check server node2 10.0.0.3:80 check
Akhir sekali, uji ketersediaan tinggi. Putuskan sambungan salah satu nod dan pastikan IP maya dipindahkan secara automatik ke nod yang lain. Sahkan bahawa aplikasi pada nod lain berjalan seperti biasa di bawah IP maya untuk memastikan ketersediaan tinggi.
Kesimpulan
Menggunakan seni bina ketersediaan tinggi dalam Linux boleh memastikan kestabilan dan ketersediaan aplikasi perusahaan dalam menghadapi kegagalan yang tidak dijangka. Menggunakan seni bina HA berdasarkan Corosync dan Heartbeat, aplikasi boleh diedarkan ke nod pelayan yang berbeza melalui alamat IP maya dan algoritma pengimbangan beban untuk memastikan ketersediaan dan prestasi tinggi mereka.
Atas ialah kandungan terperinci Bagaimana untuk menggunakan seni bina ketersediaan tinggi dalam Linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!