Avec l'avènement de l'ère du big data, de plus en plus d'entreprises et d'organisations commencent à utiliser les systèmes d'exploitation Linux comme plates-formes de serveurs. Afin de garantir la disponibilité et la stabilité des applications, l'architecture haute disponibilité est devenue un élément indispensable des serveurs Linux. Cet article explique comment déployer une architecture haute disponibilité sous Linux.
Qu'est-ce que l'architecture haute disponibilité ?
La haute disponibilité (HA) fait référence à une architecture système qui peut continuer à fournir des services en cas de panne du système. La haute disponibilité peut être mise en œuvre via diverses technologies, telles que l'équilibrage de charge, la sauvegarde redondante, le basculement, etc. Pour les applications d'entreprise, le maintien d'une haute disponibilité est essentiel car il garantit que l'application peut continuer à fonctionner normalement en cas de circonstances inattendues.
Étapes pour déployer une architecture à haute disponibilité sous Linux
Tout d'abord, vous devez planifier le réseau. Pour garantir une haute disponibilité, chaque nœud du cluster doit se voir attribuer une adresse IP indépendante et combiné en une adresse IP virtuelle. De plus, le stockage réseau doit être configuré pour que le cluster puisse partager des données entre les nœuds.
Avant d'installer le logiciel, installez les packages logiciels nécessaires sur chaque nœud, tels que : les packages heartbeat, corosync et pcs. Il peut être installé sur CentOS à l'aide de la commande suivante :
sudo yum install corosync pcs pacemaker resource-agents
Ensuite, Corosync et Heartbeat doivent être configurés pour activer la communication entre les deux nœuds. C’est l’une des étapes clés pour garantir une haute disponibilité. Définissez l'adresse IP du nœud, le nom du canal et le port du canal dans le fichier de configuration. Au cours de ce processus de configuration, veuillez vous assurer de la configuration des informations suivantes :
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 }
Dans le fichier de configuration Heartbeat, vous devez définir l'adresse IP et l'adresse IP virtuelle du nœud. Assurez-vous que l'application servant l'adresse IP virtuelle est installée.
#设定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
Installez l'outil pcs, qui est un outil de ligne de commande pour configurer le logiciel de gestion de cluster Pacemaker. Il peut être installé à l'aide de la commande suivante :
sudo yum install pcs sudo systemctl enable pcsd.service && sudo systemctl start pcsd.service
Configurez le pare-feu, en vous assurant que le pare-feu de n'importe quel nœud autorise la communication. Sur CentOS7, vous pouvez utiliser la commande suivante :
sudo firewall-cmd --add-service=high-availability --permanent sudo firewall-cmd --reload
Sur chaque nœud, créez l'utilisateur hacluster et ajoutez-le au groupe pcsd pour la gestion future du cluster Pacemaker :
sudo useradd hacluster sudo passwd hacluster sudo usermod -aG pcsd hacluster
Pour activer le service pcsd, utilisez la commande suivante :
sudo systemctl enable pcsd sudo systemctl start pcsd
Configurez la clé d'authentification sur Pacemaker à l'aide de la commande suivante, copiez la clé d'authentification sur tous les autres nœuds en utilisant les mêmes options :
sudo pcs cluster auth <node1.example.com> <node2.example.com> -u hacluster -p <password> --force
Installez et configurez HAproxy, un serveur haut débit basé sur des applications TCP et HTTP Outil d'équilibrage de charge de disponibilité. Vous pouvez utiliser la commande suivante pour l'installer sur CentOS :
sudo yum -y install haproxy sudo systemctl enable haproxy
Dans le fichier de configuration haproxy, vous devez définir l'algorithme d'équilibrage de charge, l'adresse IP et le numéro de port du serveur backend.
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
Enfin, testez la haute disponibilité. Déconnectez l'un des nœuds et assurez-vous que l'adresse IP virtuelle est automatiquement transférée vers l'autre nœud. Confirmez que les applications sur les autres nœuds s'exécutent normalement sous l'adresse IP virtuelle pour garantir une haute disponibilité.
Conclusion
Le déploiement d'une architecture haute disponibilité sous Linux peut garantir la stabilité et la disponibilité des applications d'entreprise face à des pannes inattendues. Grâce à l'architecture HA basée sur Corosync et Heartbeat, les applications peuvent être distribuées sur différents nœuds de serveur via des adresses IP virtuelles et des algorithmes d'équilibrage de charge pour garantir leur haute disponibilité et leurs performances.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!