CentOS 7.3 部署LVS + Keepalived 高可用集群
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS 7.3 部署LVS + Keepalived 高可用集群相关的知识,希望对你有一定的参考价值。
双击热备
在这个高度信息化的IT时代,企业的生产系统,业务运营,销售个支持
以及日常管理环节越来越依赖计算机信息和服务,使得对高可用(HA)
技术的应用需求大量上升,以便提供持续的,不间断计算机或网络
vs服务器和web-server他们必须在同一个网段内,因为LVS转发包的时候,是直接修改了包目标的MAC地址,直接扔给了rs,基于MAC地址的修改是活动在OSI二层数据链路层的,工作在数据链路层的网络设备就是交换机了,所以必须在一个交换机下面,也就是一个局域网内
为啥抑制real-server的ARP,是这样的,我们在DR模式要更改web-server的ARP的模式,arp_ignore为1是说只回答目标IP地址是来访网络接口本地地址的ARP查询请求,我们都在回环接口上配置了一个VIP,当arp模式更改以后,那么如果有谁在请求VIP的mac地址时,那么那些web-server就会回答arp广播报文了,只有lvs才会,如果没有更改arp模式,那么大家都喊我是VIP,这就乱套了。
Keepalived 双机热备
keepalived 起初是专门正对LVS 设计的一款强大的辅助工具,只要用来提供故障切换切换(FAilover)
和健康检查功能---判断LVS 负载调到器
节点服务器的可用性,及时隔离并且替换新的服务器,当故障主机恢复后将其重新加入集群
yum install keepalived ipvsadm -y //在线下载所需的软件
实验只准备环境为 4台 centos 7.3
其中两台为调度服务器以主服务器一个为备份服务器
另外两个提供节点服务器
yum install httpd -y //下载服务并且开启
修改网卡配置
开始调试
先做简单的先调试两台点服务器的配置
1. systemctl start httpd.service //开启服务
2. echo "this is accp web" >/var/www/html/index.html //生成首页
3.cp ifcfg-lo ifcfg-lo:0 //复制回环网卡 并且进行修改
4. DEVICE=lo:0
IPADDR=192.168.100.10
NETMASK=255.255.255.0
ONBOOT=yes //就留下这三行
5. vim /etc/init.d/web.sh //添加启动脚本致内如如下
VIP=192.168.100.10
case "$1" in
start)
ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP //启动它的虚拟IP添加网段
/sbin/route add -host $VIP dev lo:0
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce ///接受调度服务器给与的回馈
sysctl -p >/dev/null 2>&1
echo "RealServer Start OK " //优化参数 都导入到null 中俗称黑洞
;;
stop)
ifconfig lo:0 down //关闭 虚拟IP 并且关闭服务器给与的回馈
route del $VIP /dev/null 2>&1
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
echo "RealServer Stopd"
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
exit 0
6. ifup lo:0 //(建议最后开启虚拟网卡)
7. service web.sh stop
8. service web.sh start(建议重启服务)
9. firefox "http://127.0.0.1/"& //进行自测检测会在后台进行打开稍等片刻
两台配置都一样 关闭防火墙 等一些阻挡访问的一些服务
配置调度服务器
1. systemctl stop firewalld.service 关闭防火墙
2. 修改网卡模式 仅主机模式
sysctl.conf这个文件是对Linux系统直接配置的文件,一些基本防护也可以从这个文件做起:
# net.ipv4.tcp_syncookies = 1
当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN×××。
3. vi /etc/sysctl.conf
net.ipv4.ip_forward=1 //启用IP转发功能,做NAT服务或者路由时才会用到。
#proc响应关闭重定向功能
//恶意用户可以使用IP重定向来修改远程主机中的路由表,在设计良好的网络中,末端的重定向设置是不需要的,发送和接受重定向信息包都要关闭。
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
关闭重定向功能
net.ipv4.conf.ens33.send_redirects = 0
4. sysctl -p //即使生效
5. cp ifcfg-ens33 ifcfg-ens33:0
6. vim ifcfg-ens33:0
DEVICE=ens33:0 //名称
ONBOOT=yes //开启网卡
IPADDR=192.168.100.10 //虚拟IP
NETMASK=255.255.255.0 //马克地址
7. ifup ens33:0 //启动虚拟网卡//如报错则重启服务
service network restart
做到这其实就可以访问网页来进行测试了
配置调度服务器进行双机热备 先做主服务器
1. vim /etc/init.d/dr.sh //添加脚本
GW=192.168.100.1 //网关
VIP=192.168.100.10 //虚拟IP
RIP1=192.168.100.201 //节点服务器
RIP2=192.168.100.202 //节点服务器
case "$1" in
start)
/sbin/ipvsadm --save > /etc/sysconfig/ipvsadm //保存若直接启动会报错
systemctl start ipvsadm //开启工具
/sbin/ifconfig ens33:0 $VIP broadcast $VIP netmask 255.255.255.255 broadcast $VIP up //开启虚拟网卡
/sbin/route add -host $VIP dev ens33:0 //开启路由赚翻
/sbin/ipvsadm -A -t $VIP:80 -s rr //调度方法 轮询
/sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g //启动ivsf 调度
/sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g //指定D2 的模式
echo "ipvsadm starting --------------------[ok]"
;;
stop)
/sbin/ipvsadm -C //关闭时该清空的清空
systemctl stop ipvsadm
ifconfig ens33:0 down //当掉的当
route del $VIP
echo "ipvsamd stoped----------------------[ok]"
;;
status)
if [ ! -e /var/lock/subsys/ipvsadm ];then //检测启动的时候文件存不存在 若存在则显示停止状态
echo "ipvsadm stoped---------------"
exit 1
else
echo "ipvsamd Runing ---------[ok]"
fi
;;
*)
echo "Usage: $0 {start|stop|status}"
exit 1
esac
exit 0
2. chmod +x dr.sh
3. service dr.sh start
4. vim/etc/keepalived/
vim/etc/keepalived/ //在配置文件中对应的序列号
10 smtp_server 127.0.0.1
12 router_id LVS_01 //从的改成02
20 state MASTER //为主服务器//BACKUP 从
22 virtual_router_id 10 //更具需求可以不改
27 auth_pass abc123 //预定义密码
30 192.168.100.10 //留下一个并且对应到虚拟IP
34 virtual_server 192.168.100.10 80 //对应虚拟IP
37 lb_kind DR //DR模式
41 real_server 192.168.100.221 80 { //对应的真实的地址也就是提供服务的IP
43 TCP_CHECK { //检查
44 url { //准备8DD 删除8行自行添加
44 cpnnect_port 80 //声明端口
41 real_server 192.168.100.221 80 { //准备复制10行新成新的对应的证实地址IP
49 } //此处粘贴
real_server 192.168.100.222 80 {
TCP_CHECK {
url {
cpnnect_port 80 //一样的内容
systemctl start keepalived.service //启动服务
systemctl status keepalived.service //查看服务有没有开启
ip addr show dev ens33:0 //检测虚拟网卡 启用
备的服务器一样的配置
以上是关于CentOS 7.3 部署LVS + Keepalived 高可用集群的主要内容,如果未能解决你的问题,请参考以下文章