Clúster LVS + Keepalived
Clúster LVS + Keepalived
Estudio de caso de Keepalived
- En las aplicaciones empresariales, un solo servidor corre el riesgo de un solo punto de falla en la aplicación.
- Una vez que se produce un solo punto de falla, los servicios empresariales se interrumpirán, lo que provocará un gran peligro
Introducción a la herramienta Keepalived
- Una herramienta de comprobación de estado especialmente diseñada para LVS y HA
1. Admite la conmutación por error automática (Conmutación por error)
2. Admite la verificación del estado del nodo
Análisis del principio de implementación de 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 enrutador virtual) es una solución de respaldo para enrutadores
1. Hay varios enrutadores que forman un grupo de respaldo activo y brindan servicios a través de una dirección IP virtual compartida
. 2. Cada grupo de respaldo activo tiene solo un enrutador principal que brinda servicios al mismo tiempo, y otros enrutadores están en un estado redundante
3. Si está actualmente en línea Si el enrutador falla, otros enrutadores tomarán automáticamente la dirección IP virtual de acuerdo con la prioridad establecida y continuarán brindando servicios
Proyecto Keepalived
Ahora yum instala nfs y rpcbind en la máquina nfs
[root@nfs ~]# rpm -qa | grep rpcbind
rpcbind-0.2.0-42.el7.x86_64
[root@nfs ~]# rpm -qa | grep nfs
nfs-utils-1.3.0-0.48.el7.x86_64
libnfsidmap-0.25-17.el7.x86_64
nfs4-acl-tools-0.3.3-15.el7.x86_64
创建两个web目录
[root@nfs ~]# mkdir /web1
[root@nfs ~]# mkdir /web2
[root@nfs ~]# echo "<h1>this is ggg 2 <h1>" > /web2/index.html
[root@nfs ~]# echo "<h1>this is ggg 1 <h1>" > /web1/index.html
montar primero en web1
[root@web1 ~]# mount 20.0.0.14:/web1 /var/www/html/
[root@web1 ~]# curl http://localhost
<h1>this is ggg 1 <h1>
[root@web1 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 20.0.0.2 0.0.0.0 UG 100 0 0 ens33
20.0.0.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
20.0.0.200 0.0.0.0 255.255.255.255 UH 0 0 0 lo
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
web2 Igual que arriba
en LVS1
modprobe ip_vs
cat /proc/net/ip_vs
yum -y install ipvsadm
yum -y install gcc gcc-c++ make popt-devel kernel-devel openssl-devel
在解压缩包
tar zxvf keepalived-2.0.13.tar.gz
cd keepalived-2.0.13/
在编译安装
./configure --prefix=/
make && make install
cd keepalived/
cd /etc/init.d/
cp keepalived /etc/init.d/
systemctl enable keepalived.service
在修改配置文件
vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id lvs_01
}
vrrp_instance vi_1 {
state MASTER
interface ens33
virtual_router_id 51
priority 110
advert_int 1
authentication {
auth_type PASS
auth_pass 6666
}
virtual_ipaddress {
20.0.0.200
}
}
virtual_server 20.0.0.200 80 {
delay_loop 6
lb_algo rr
lb_kind DR
persistence_timeout 6
protocol TCP
real_server 20.0.0.12 80{
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 20.0.0.13 80{
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
Igual que el anterior para LVS2
Modifique el archivo de configuración
[root @ lvs2 ~] # vi /etc/keepalived/keepalived.conf
en lvs1 (main)
[root @ lvs1 ~] # ip addr
Cuando el principal (lvs1) está apagado, el modo de espera (lvs2) se convertirá en el principal
. Visite http://20.0.0.200 en el cliente