Directorio de artículos
- Prefacio
-
- 1. Conceptos básicos de la copia de seguridad en caliente de sistema dual Keepalived
- 2. Implementación real del clúster de alta disponibilidad LVS + Keepalived
Prefacio
En esta era de TI altamente basada en información, el sistema de producción, las operaciones comerciales, las ventas y el soporte, y la administración diaria de las empresas dependen cada vez más de la información y los servicios informáticos, lo que ha aumentado enormemente la demanda de aplicaciones tecnológicas de alta disponibilidad (HA). Para proporcionar un sistema informático o servicios de red continuos e ininterrumpidos.
Use Keepalived para implementar copias de seguridad en caliente de sistema dual, incluida la conmutación por error para direcciones IP y aplicaciones de copia de seguridad en caliente en clústeres de alta disponibilidad LVS.
1. Conceptos básicos de la copia de seguridad en caliente de sistema dual Keepalived
1.1 Descripción general e instalación de Keepalived
1.1.1, método de copia de seguridad en caliente Keepalived
Keepalived adopta el protocolo de copia de seguridad en caliente VRRP para realizar la función de copia de seguridad en caliente de múltiples máquinas del servidor Linux
VRRP, protocolo de redundancia de enrutamiento virtual, es una solución de respaldo para enrutadores
Varios enrutadores forman un grupo de respaldo activo y brindan servicios al exterior a través de una dirección IP virtual compartida
Solo un enrutador principal brinda servicio al mismo tiempo en cada grupo de respaldo activo, y otros enrutadores están en estado redundante
Si el enrutador actualmente en línea falla, otros enrutadores automáticamente tomarán el control de la dirección IP virtual de acuerdo con la prioridad establecida y continuarán brindando servicios
1.1.2, instalación mantenida y control de servicio
Al realizar la solicitud en un entorno de clúster LVS, también debe usar la herramienta de administración lipvsadm
YUM para instalar Keepalived y
habilitar el servicio Keepalived
[root@localhost ~]# yum -y install keepalived ipvsadm
1.2. Utilice Keepalived para lograr una copia de seguridad en caliente de sistema dual
Keepalived puede realizar copias de seguridad en caliente de varias máquinas, cada grupo de reserva en caliente puede tener varios servidores, el más utilizado es la copia de seguridad en caliente de dos máquinas
La conmutación por error de la copia de seguridad en caliente de sistema dual se realiza mediante la deriva de la dirección IP virtual, que es adecuada para varios servidores de aplicaciones.
Esta implementación implementará copias de seguridad en caliente de dos máquinas basadas en servicios web
1.2.1, la configuración del servidor principal
El directorio de configuración de Keepalievd se encuentra en / etc / keepalievd /
keepalievd.conf es el archivo de configuración principal
[root@localhost ~]# cd /etc/keepalived/
[root@localhost keepalived]# cp keepalived.conf keepalived.conf.bak
[root@localhost keepalived]# vi keepalived.conf
global_defs{
…}区段指定全局参数
vrrp_instance实例名称{
…}区段指定VRRP热备参数
注释文字以“!”符号开头
目录samples/,提供了许多配置样例作为参考
常用配置选项
router_id HA_TEST_R1: 本路由器(服务器)的名称
vrrp_instance VI_1:定义VRRP热备实例
state MASTER:热备状态,MASTER表示主服务器
interface ens33:承载VIP地址的物理接口
virtual_router_id 1:虚拟路由器的ID号,每个热备组保持一致
priority 100:优先级,数值越大优先级越高
advert_int 1:通告间隔秒数(心跳频率)
auth_type PASS:认证类型
auth_pass 123456:密码字串
virtual_ipaddress{
vip}:指定漂移地址(VIP),可以有多个,多个漂移地址以逗号分隔
Confirme que no hay ningún problema con la configuración, inicie el servicio Keepalived y podrá verlo a través del comando ip
[root@localhost keepalived]# systemctl start keepalived ####启动keepalived
[root@localhost keepalived]# ip addr show dev ens33 ####查看主控制IP地址和漂移地址
1.2.2, la configuración del servidor en espera
La configuración del servidor de respaldo Keepalived es diferente de la configuración maestra en tres opciones
router_id: establecido en el
estado del nombre libre : establecido en la
prioridad de BACKUP : valor más bajo que el del servidor maestro
Otras opciones son las mismas que las del maestro
1.2.3, pruebe la función de respaldo en caliente del sistema dual
Pruebe el efecto de la copia de seguridad en caliente de sistema dual Las
máquinas principal y de copia de seguridad están habilitadas con servicios web y el contenido es el mismo.
Deshabilite y habilite la tarjeta de red del servidor principal sucesivamente y realice la siguiente prueba
Prueba 1: use ping para detectar la conectividad de 19216810.72
Prueba 2: visite http: /192168.10.72 para confirmar la disponibilidad y los cambios de contenido
Prueba 3: Verifique los cambios en el archivo de registro / var / log / messages
2. Implementación real del clúster de alta disponibilidad LVS + Keepalived
2.1. Entorno experimental
Planificación de la dirección IP del servidor VMware 5 :
Dirección de deriva (VIP): 192.168.100.100
Programador principal: 192.168.100.21
Programador secundario: 192.168.100.20
Servidor WEB 1: 192.168.100.22
Servidor WEB 2: 192.168.100.23
Servidor de almacenamiento : 192.168.100.23 100,24
2.2, configurar el programador principal
2.2.1, ajustar / proc los parámetros de respuesta
[
root@localhost network-scripts]# vi /etc/sysctl.conf
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
[root@localhost network-scripts]# sysctl -p
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
2.2.2, ajustar los parámetros mantenidos
[root@localhost ~]# yum -y install keepalived ipvsadm
[root@localhost ~]# cd /etc/keepalived/
[root@localhost keepalived]# cp keepalived.conf keepalived.conf.bak
[root@localhost keepalived]# vi keepalived.conf
global_defs {
router_id HA_TEST_R1
}
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 1
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
192.168.100.100
}
}
virtual_server 192.168.100.100 80 {
delay_loop 15
lb_algo rr
lb_kind DR
persistence 60
protocol TCP
real_server 192.168.100.22 80 {
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 4
}
}
real_server 192.168.100.23 80 {
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 4
}
}
}
[root@localhost keepalived]# systemctl start keepalived
[root@localhost keepalived]# ip addr show dev ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:11:0d:16 brd ff:ff:ff:ff:ff:ff
inet 192.168.100.21/24 brd 192.168.100.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet 192.168.100.100/32 brd 192.168.100.100 scope global noprefixroute ens33:0
valid_lft forever preferred_lft forever
inet6 fe80::3069:1a3d:774b:18f/64 scope link noprefixroute
valid_lft forever preferred_lft forever
2.3, configurar el programador esclavo
2.3.1, ajustar / procesar parámetros de respuesta
[root@localhost network-scripts]# vi /etc/sysctl.conf
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
[root@localhost network-scripts]# sysctl -p
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
2.3.2, ajustar los parámetros mantenidos
[root@localhost ~]# yum -y install keepalived ipvsadm
[root@localhost ~]# cd /etc/keepalived/
[root@localhost keepalived]# cp keepalived.conf keepalived.conf.bak
[root@localhost keepalived]# vi keepalived.conf
global_defs {
router_id HA_TEST_R2
}
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id 1
priority 99
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
192.168.100.100
}
}
virtual_server 192.168.100.100 80 {
delay_loop 15
lb_algo rr
lb_kind DR
persistence 60
protocol TCP
real_server 192.168.100.22 80 {
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 4
}
}
real_server 192.168.100.23 80 {
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 4
}
}
}
[root@localhost keepalived]# systemctl start keepalived
[root@localhost keepalived]# ip addr show dev ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:48:b8:83 brd ff:ff:ff:ff:ff:ff
inet 192.168.100.20/24 brd 192.168.100.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::e438:b533:985e:cf94/64 scope link noprefixroute
valid_lft forever preferred_lft forever
2.4, configurar el servidor de almacenamiento
Primero, verifique si nfs-utils y rpcbind están instalados, si no están instalados con yum
, inicie los dos servicios después de la instalación
[root@localhost ~]# systemctl start nfs
[root@localhost ~]# systemctl start rpcbind
[root@localhost ~]# mkdir /opt/51xit /opt/52xit
[root@localhost ~]# vi /etc/exports
/opt/51xit 192.168.100.0/24(rw,sync)
/opt/52xit 192.168.100.0/24(rw,sync)
[root@localhost ~]# systemctl restart rpcbind
[root@localhost ~]# systemctl restart nfs
[root@localhost ~]# systemctl enable nfs
[root@localhost ~]# systemctl enable rpcbind
[root@localhost ~]# echo "this is www.51xit.top" > /opt/51xit/index.html
[root@localhost ~]# echo "this is www.52xit.top" > /opt/52xit/index.html
2.5, configurar servidor de nodo
2.5.1, configurar la dirección IP virtual (VIP)
Tanto el firewall como la protección del núcleo están apagados, verifique si nfs-utils está instalado
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-lo ifcfg-lo:0
[root@localhost network-scripts]# vi ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.100.100
NETMASK=255.255.255.255
ONBOOT=yes
[root@localhost network-scripts]# ifup lo:0
[root@localhost network-scripts]# ifconfig
省略部分内容
lo:0: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 192.168.100.100 netmask 255.255.255.255
loop txqueuelen 1000 (Local Loopback)
省略部分内容
[root@localhost network-scripts]# vi /etc/rc.local
/sbin/route add -host 192.168.100.100 dev lo:0
[root@localhost network-scripts]# route add -host 192.168.100.100 dev lo:0
2.5.2, ajustar / procesar parámetros de respuesta
[root@localhost network-scripts]# vi /etc/sysctl.conf
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
[root@localhost network-scripts]# sysctl -p
Los dos servidores de nodo configurados previamente son los mismos
2.5.3, instale la página de prueba de montaje httpd
Monte dos servidores de nodo por separado a continuación
[root@localhost ~]# showmount -e 192.168.100.24
Export list for 192.168.100.24:
/opt/52xit 192.168.100.0/24
/opt/51xit 192.168.100.0/24
[root@localhost ~]# yum -y install httpd
[root@localhost ~]# mount 192.168.100.24:/opt/51xit /var/www/html/
[root@localhost ~]# vi /etc/fstab
#
# /etc/fstab
# Created by anaconda on Thu Aug 6 12:23:03 2020
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root / xfs defaults 0 0
UUID=a1c935eb-f211-43a5-be35-2a9fef1f6a89 /boot xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
/dev/cdrom /mnt iso9660 defaults 0 0
192.168.100.24:/opt/51xit/ /var/www/html/ nfs defaults,_netdev 0 0
[root@localhost ~]# systemctl start httpd
Pruebe si el inicio de sesión es normal
[root@localhost ~]# showmount -e 192.168.100.24
Export list for 192.168.100.24:
/opt/52xit 192.168.100.0/24
/opt/51xit 192.168.100.0/24
[root@localhost ~]# yum -y install httpd
[root@localhost ~]# mount 192.168.100.24:/opt/52xit /var/www/html/
[root@localhost ~]# vi /etc/fstab
#
# /etc/fstab
# Created by anaconda on Thu Aug 6 12:23:03 2020
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root / xfs defaults 0 0
UUID=a1c935eb-f211-43a5-be35-2a9fef1f6a89 /boot xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
/dev/cdrom /mnt iso9660 defaults 0 0
192.168.100.24:/opt/52xit/ /var/www/html/ nfs defaults,_netdev 0 0
[root@localhost ~]# systemctl start httpd
Pruebe si el inicio de sesión es normal
2.6, verificación experimental
2.6.1, pruebe el programador principal
Abra la herramienta de captura de paquetes, encontrará que el programador maestro de 192.168.100.21 ha estado enviando paquetes VRRP
. Ingrese 192.168.100.100 en el navegador de la máquina real
y espere un minuto para actualizar o volver a ingresar al
programador maestro. ! !
2.6.2, programador esclavo de prueba
Detener keepadlive del servidor principal
[root@localhost keepalived]# systemctl stop keepalived
Abra la herramienta de captura de paquetes, encontrará que el programador esclavo 192.168.100.20 ha estado enviando paquetes VRRP
. Ingrese 192.168.100.100 en el navegador de la máquina real
y espere un minuto para actualizarlo o volver a ingresar
. ¡El programador es normal! !