Artigo Diretório
- Prefácio
-
- 1. Noções básicas de backup ativo de sistema duplo Keepalived
- 2. Implementação real do cluster de alta disponibilidade LVS + Keepalived
Prefácio
Nesta era de TI altamente baseada em informações, o sistema de produção, operações de negócios, vendas e suporte e gerenciamento diário das empresas estão cada vez mais dependentes de informações e serviços de computador, o que aumentou muito a demanda por aplicativos de tecnologia de alta disponibilidade (HA). Para fornecer um sistema de computador ou serviços de rede contínuos e ininterruptos.
Use Keepalived para implementar backup dinâmico de sistema duplo, incluindo failover para endereços IP e aplicativos de backup dinâmico em clusters de alta disponibilidade LVS.
1. Noções básicas de backup ativo de sistema duplo Keepalived
1.1 Visão geral e instalação do Keepalived
1.1.1, Método de backup ativo Keepalived
Keepalived adota o protocolo de backup ativo VRRP para realizar a função de backup quente de várias máquinas do servidor Linux
VRRP, Virtual Routing Redundancy Protocol, é uma solução de backup para roteadores
Vários roteadores formam um grupo de backup dinâmico e fornecem serviços para o exterior por meio de um endereço IP virtual compartilhado
Apenas um roteador principal fornece serviço ao mesmo tempo em cada grupo de hot backup, e outros roteadores estão em estado redundante
Se o roteador online falhar, outros roteadores assumirão automaticamente o endereço IP virtual de acordo com a prioridade definida e continuarão a fornecer serviços
1.1.2, instalação Keepalived e controle de serviço
Ao aplicar em um ambiente de cluster LVS, você também precisa usar a ferramenta de gerenciamento
YUM lipvsadm para instalar o Keepalived para
habilitar o serviço Keepalived
[root@localhost ~]# yum -y install keepalived ipvsadm
1.2. Use Keepalived para obter backup dinâmico de sistema duplo
Keepalived pode realizar backup hot em várias máquinas, cada grupo hot-standby pode ter vários servidores, o mais comumente usado é backup hot em duas máquinas
O failover do backup dinâmico de sistema duplo é realizado pela variação do endereço IP virtual, que é adequado para vários servidores de aplicativos
Esta implantação implementará backup dinâmico de máquina dupla com base em serviços da web
1.2.1, a configuração do servidor principal
O diretório de configuração Keepalievd está localizado em / etc / keepalievd /
keepalievd.conf é o arquivo de configuração 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 se não há problema com a configuração, inicie o serviço Keepalived e você poderá visualizá-lo através do comando ip
[root@localhost keepalived]# systemctl start keepalived ####启动keepalived
[root@localhost keepalived]# ip addr show dev ens33 ####查看主控制IP地址和漂移地址
1.2.2, a configuração do servidor em espera
A configuração do servidor de backup Keepalived é diferente da configuração mestre em três opções
router_id: definir como nome livre
estado: definir como
prioridade BACKUP : valor inferior ao do servidor mestre
Outras opções são iguais às do mestre
1.2.3, teste a função de backup quente de sistema duplo
Teste o efeito do backup dinâmico de sistema duplo As
máquinas principal e de backup estão habilitadas com serviços da Web e o conteúdo é o mesmo.
Desabilite e habilite a placa de rede do servidor principal sucessivamente e execute o seguinte teste
Teste 1: Use o ping para detectar a conectividade de 19216810.72
Teste 2: Visite http: /192168.10.72 para confirmar a disponibilidade e as mudanças de conteúdo
Teste 3: Verifique as mudanças no arquivo de log / var / log / messages
2. Implementação real do cluster de alta disponibilidade LVS + Keepalived
2.1. Ambiente experimental
Planejamento de endereço IP do servidor VMware 5 :
Endereço de desvio (VIP): 192.168.100.100
Agendador primário: 192.168.100.21
Agendador secundário: 192.168.100.20
Servidor WEB 1: 192.168.100.22
Servidor WEB 2: 192.168.100.23
Servidor de armazenamento : 192.168 . 100,24
2.2, configure o agendador principal
2.2.1, ajustar / parâmetros de resposta proc
[
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 os parâmetros de keepalived
[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, configure o agendador escravo
2.3.1, ajustar parâmetros de resposta / proc
[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 os parâmetros de keepalived
[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 servidor de armazenamento
Primeiro, verifique se nfs-utils e rpcbind estão instalados, se eles não estiverem instalados com yum
, inicie os dois serviços após a instalação
[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 nó
2.5.1, configure o endereço IP virtual (VIP)
Tanto o firewall quanto a proteção do núcleo estão desligados, verifique se o 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 / parâmetros de resposta proc
[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
Os dois servidores de nó configurados anteriormente são os mesmos
2.5.3, instale a página de teste de montagem httpd
Monte dois servidores de nó separadamente abaixo
[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
Teste se o login é 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
Teste se o login é normal
2.6, verificação experimental
2.6.1, teste o agendador principal
Abra a ferramenta de captura de pacotes, você verá que o agendador mestre de 192.168.100.21 está enviando pacotes VRRP
. Digite 192.168.100.100 no navegador da máquina real
e espere um minuto para atualizar ou reinsira o
agendador mestre é normal! ! !
2.6.2, agendador escravo de teste
Pare o keepadlive do servidor principal
[root@localhost keepalived]# systemctl stop keepalived
Abra a ferramenta de captura de pacotes, você descobrirá que o agendador escravo 192.168.100.20 está enviando pacotes VRRP
. Digite 192.168.100.100 no navegador da máquina real
e espere um minuto para atualizar ou entrar novamente
. O agendador está normal! !