高可用集群Keepalied + LVS
程序员文章站
2024-01-31 23:27:58
...
HACMP 小型机 高可用
keepalived 协议vrrp
SMTP 25 邮件协议
各端口对应服务
service 服务名 status
telnet ip地址 端口号
下载keepalived服务
yum -y install keepalived
默认配置文件在/etc/keepalived/keepalived.conf
利用keepalived之后 在调度器上lvs的配置就不用配置了,但是在rs上得和lvs上一样
集群Cluster
集群类型:
- LB lvs/nginx
- HA 高可用
- 几个9指标:99%(不允许。一年有3天)99.9%(不允许,一年有7小时)
- 必须达到99.9999%或者99.99999%(最多一年坏个3分钟)
系统可用性公式 : A=MTBF/(MTBF+MTTR)
-
MTBF = 正常时间
-
MTTR = 错误时间
系统故障:
- 硬件故障:设计缺陷、wear out (损耗)、自然灾害
- 软件故障:设计缺陷
实验
VIP:192.168.1.200
服务端RS1=192.168.1.11
服务端RS2=192.168.1.12
WEB主服务端192.168.1.10
WEB从服务端192.168.7.56
关闭安全服务
#setenforce 0
#systemctl stop firewalld
注:所有的服务器端都得做
-
下载keepalived、下载ipvsadm
#yum -y install keepalived ipvsadm
主服务端
配置文件
#vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
#收件人地址
}
#邮件服务器
}
#VRRP配置DS1
vrrp_instance VI_1 {
state MASTER #角色类型MASTER|BACKUP
interface ens33 #网卡名称
virtual_router_id 51 #虚拟路由id(需要与BACKUP一致)
priority 100 #优先级
advert_int 1 #没1秒检查一次
#nopreempt #非抢占模式
authentication {
auth_type PASS #认证类型 主备之间必须一样
auth_pass 1111 #认证密码 主备之间必须一样
}
virtual_ipaddress {
192.168.1.200 #虚拟ip(vip)
}
}
#LVS配置
virtual_server 192.168.1.200 80 {
delay_loop 3 #健康检查时间间隔
lb_algo rr #负载均衡调度算法
protocol TCP #协议
real_server 192.168.1.11 80 { #要监控的real_server的ip和端口号
weight 1 #权重
TCP_CHECK { #基于tcp协议的检查
connect_timeout 3 #连接时间超时
retry 3 #重连次数
delay_before_retry 3 #重连间隔时间
}
}
real_server 192.168.1.12 80 {
weight 1
TCP_CHECK {
connect_timeout 3
retry 3
delay_before_retry 3
}
}
}
重启keepalived服务
修改后拷贝至从服务端
#scp keepalived.conf aaa@qq.com:/etc/keepalived
从服务端进入配置文件修改
将MASTER改为BACKUP 优先级改为99. 之后重启keepalived服务
RS端下载apache
#yum -y install httpd
分别在RE端准备测试界面
#echo 'this is RS1' > /var/www/html/index.html
#echo 'this is RS2' > /var/www/html/index.html
arp抑制
#ansible chen -m shell -a 'bash lvs.sh' chen分组里面是RS IP
或者在各自RS端运行以下文件,文件内容如下
#!/bin/bash
echo "1">/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "1">/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2">/proc/sys/net/ipv4/conf/lo/arp_announce
echo "2">/proc/sys/net/ipv4/conf/all/arp_announce
最后进行测试,windows界面进入命令界面,为如下
之后关闭主服务器。再进行测试