Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Bagaimana untuk menggunakan seni bina ketersediaan tinggi dalam Linux

Bagaimana untuk menggunakan seni bina ketersediaan tinggi dalam Linux

WBOY
WBOYasal
2023-06-18 12:21:261818semak imbas

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

  1. Perancangan rangkaian

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.

  1. Pasang perisian

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
  1. Konfigurasikan Corosync dan Denyutan Jantung

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:

  • bindnetaddr: Digunakan untuk menentukan alamat antara muka rangkaian untuk komunikasi antara nod.
  • mcastaddr: digunakan untuk menentukan alamat multicast.
  • mcastport: digunakan untuk menentukan nombor port saluran multicast.
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
  1. Konfigurasikan alat pengurusan kluster

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
  1. Konfigurasikan pengimbangan beban

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
  1. Uji seni bina ketersediaan tinggi

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn