Maison  >  Article  >  Opération et maintenance  >  Comment implémenter une sauvegarde à chaud sur deux machines avec Nginx+Keepalived

Comment implémenter une sauvegarde à chaud sur deux machines avec Nginx+Keepalived

王林
王林avant
2023-05-29 20:29:35988parcourir

一.keepalived

keepalived est un logiciel de service qui garantit la haute disponibilité du cluster. Le nœud ayant une priorité élevée dans le réseau est le maître chargé de répondre au package arp du VIP, indiquant aux autres hôtes du réseau la relation de mappage. entre les adresses VIP et mac, et également en utilisant l'option Envoyer des notifications vrrp au réseau sous forme de multicast pour les informer de leurs priorités. Le nœud de sauvegarde est uniquement responsable du traitement des paquets multicast envoyés par le maître. Lorsqu'il constate que la priorité du maître n'est pas aussi élevée que la sienne, ou qu'il ne reçoit pas la notification vrrp du maître, le nœud de sauvegarde passe lui-même au nœud de sauvegarde. état maître.

2. Configuration de l'environnement

  1. Environnement : qemu-kvm, client debian (9.4.0)

  2. Installation de la machine virtuelle qemu-kvm : Introduction à la technologie de virtualisation qemu-kvm

1. deux machines virtuelles utilisant des instantanés temporaires. Les opérations suivantes doivent être effectuées sur les deux machines virtuelles

faramita2016@linux-l9e6:~> qemu-kvm -cpu host -m 512 -hda vdisk.img -net nic -net bridge,br=br0 -snapshot -nographic

2 Définissez l'IP statique de la machine virtuelle

root@debian:~# cat /etc/network/interfaces
# the primary network interface
allow-hotplug ens3
#iface ens3 inet dhcp
iface ens3 inet static
address 10.0.0.3  // 设置ip
netmask 255.0.0.0
gateway 10.0.0.1
hwaddress ether 52:54:00:12:34:53  // 设置mac地址

3 Activez l'IP de la carte réseau

root@debian:~# ip addr del 10.0.0.8/8 dev ens3  // 删除客户机原有ip
root@debian:~# ifdown ens3
root@debian:~# ifup ens3

4.

root@debian:~# apt-get install -y nginx keepalived

5. Modifiez le fichier /var/www/html/index.nginx-debian.html et ajoutez l'adresse IP actuelle de la machine virtuelle pour marquer le serveur répondant réel

root@debian:~# vi /var/www/html/index.nginx-debian.html 
……
<h1>welcome to nginx! 10.0.0.3</h1>
……

Comment implémenter une sauvegarde à chaud sur deux machines avec Nginx+Keepalived

3. machine virtuelle de nœud (10.0.0.3), machine virtuelle de nœud de secours (10.0.0.4), IP virtuelle (10.0.0.100)

1 Sur la machine virtuelle du nœud principal, modifiez le fichier /etc/keepalived/keepalived.conf

.

root@debian:~# cat /etc/keepalived/keepalived.conf 
global_defs {
  router_id ri_1  // 标识当前keepalived节点
}

vrrp_script chk_nginx {
  script "/root/chk_nginx.sh"  // 定义监控脚本
  interval 2  // 执行监控脚本的闹中间隔时间
}

vrrp_instance vi_1 {
  state master  // 设置节点为主节点,节点的初始状态
  interface ens3  // 设置绑定虚拟ip的网络接口
  virtual_router_id 50  // vrrp组名,指明节点同属一个组
  priority 100  // 节点优先级,主节点应当高于备用节点
  advert_int 1  // 组播信息发送间隔

  #nopreempt  // 禁止抢占服务,只对备用节点生效,主节点根据priority优先级进行抢占,不受nopreempty控制

  authentication {
    auth_type pass  // 设置认证方式
    auth_pass 123456  // 密码
  }

  virtual_ipaddress {
    10.0.0.100/24  // 设置vip
  }

  track_script {  // 调用监控脚本
    chk_nginx
  }
}

2. Pour la machine virtuelle du nœud de secours, modifiez le fichier /etc/keepalived/keepalived.conf À l'exception des éléments suivants, les autres sont les mêmes que le nœud principal

state backup  // 设置节点为主节点,节点的初始状态
  priority 10  // 节点优先级

3. script de surveillance, modifiez le fichier /root/chk_nginx.sh

root@debian:~# vi /root/chk_nginx.sh 
#!/bin/bash
a=`ps -c nginx --no-header | wc -l`
if [ $a -eq 0 ]
then
  /etc/init.d/keepalived stop
fi

4. Vérifiez le service

1. Exécutez la commande ip a, le maître. La carte réseau du nœud ens3 a été liée à vip (10.0.0.100)2. Dans Sur la machine virtuelle du nœud de sauvegarde, démarrez les services nginx et keepalived

Comment implémenter une sauvegarde à chaud sur deux machines avec Nginx+KeepalivedExécutez la commande ip a La carte réseau du nœud de sauvegarde. ens3 n'est pas lié à vip (10.0.0.100)

3. Le navigateur hôte accède à http://10.0.0.100

Comment implémenter une sauvegarde à chaud sur deux machines avec Nginx+KeepalivedLa page Web 10.0.0.3 apparaît, indiquant que le service keepalived a pris effet et que le VIP a été lié au nœud maître

4. Dans la machine virtuelle du nœud maître, fermez le service nginx et simulez une panne

root@debian:~# /etc/init.d/nginx start
root@debian:~# /etc/init.d/keepalived start


Exécutez la commande ip a, la carte réseau du nœud principal ens3 n'est pas liée à vip (10.0.0.100) Comment implémenter une sauvegarde à chaud sur deux machines avec Nginx+Keepalived

5. Sur la machine virtuelle du nœud de sauvegarde, interrogez l'adresse IP


Exécutez la commande ip a, la carte réseau du nœud de sauvegarde ens3 est liée à vip (10.0.0.100) 10.0.0.100. )Comment implémenter une sauvegarde à chaud sur deux machines avec Nginx+Keepalived

6. Le navigateur hôte accède à http://10.0.0.100


La page Web de 10.0.0.4 apparaît, indiquant que le service keepalived a pris effet et que le VIP a été lié au nœud de sauvegardeComment implémenter une sauvegarde à chaud sur deux machines avec Nginx+Keepalived

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer