linux怎么查看本机内存大小
292
2022-10-15
LVS-DR+keepalived高可用群集
LVS-DR+keepalived高可用群集
LVS负载均衡采用直连路由工作模式(LVS-DR),采用半开放的网络结构,结构与IP隧道模式类似,但各节点并不是分散在各地,而是与调度器位于同一个物理网络,负载调节器与各节点服务器通过本地网络连接,不需要建立专用的IP隧道。 Keepalived采用VRRP热备份协议,以软件的方式实现服务机的多机热备功能。其主要用来提供故障切换和健康检查功能——判断LVS负载调度器、节点服务器的可能性,及时隔离并替换为新的服务器,当故障主机恢复后将其重新加入群集。
LVS-DR+keepalived结构拓补图
实验环境
主机 | 操作系统 | IP | 软件 |
---|---|---|---|
LVS主调度器 | CentOS-7.3x86_64 | 192.168.100.101 | keepalived、ipvsadm |
LVS从调度器 | CentOS-7.3x86_64 | 192.168.100.102 | keepalived、ipvsadm |
web1服务器 | CentOS-7.3x86_64 | 192.168.100.103 | httpd |
web2服务器 | CentOS-7.3x86_64 | 192.168.100.104 | httpd |
注:VIP为192.168.100.50
LVS调度服务器设置
主从调度服务器设置基本相同,不同之处将会注明;
开启路由转发功能,关闭proc响应重定向功能;
vi /etc/sysctl.conf
net.ipv4.ip_forward=1 //开启路由转发功能 net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.default.send_redirects = 0 net.ipv4.conf.eth0.send_redirects = 0 //关闭proc响应重定向功能
sysctl -p //立即生效
设置虚拟网卡,并启动虚拟网卡;
cd /etc/sysconfig/network-scripts cp ifcfg-ens33 ifcfg-ens33:0 vim ifcfg-ens33:0
DEVICE=ens33:0 ONBOOT=yes IPADDR=192.168.100.10 NETMASK=255.255.255.255 //注意:子网掩码必须全为1
ifup ens33:0
配置负载分配策略(编写脚本方便管理);
cd /etc/init.d vim dr.sh //脚本名
#!/bin/bash GW=192.168.100.1 VIP=192.168.100.50 RIP1=192.168.100.103 RIP2=192.168.100.104 case "$1" in start) /sbin/service ipvsadm start /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 /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g echo "ipvsadm starting --------------------[ok]" ;; stop) /sbin/ipvsadm -C /sbin/service ipvsadm stop 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
chmod +x dr.sh //提权 service dr.sh start //开启服务
配置keepalived(编写脚本方便管理);
yum install keepalived -y vi /etc/keepalived/keepalived.conf
global_defs { notification_email { root@localhost.localdomain } notification_email_from benet root@localhost.localdomain smtp_server 127.0.0.1 //指定本地 smtp_connect_timeout 30 router_id LVS_01 //指定名称,备份服务名称不同 } vrrp_instance VI_1 { state MASTER //备份服务器为BACKUP interface ens33 //接口为ens33 virtual_router_id 10 //组号;备份服务器相同 priority 100 //优先级;备份服务器小于主服务器 advert_int 1 authentication { auth_type PASS auth_pass abc123 } virtual_ipaddress { 192.168.100.50 //指定VIP地址 } } virtual_server 192.168.100.10 80 { delay_loop 6 lb_algo rr lb_kind DR //指定工作模式 persistence_timeout 60 protocol TCP real_server 192.168.100.103 80 { //web1服务器IP和端口 weight 1 //权重 TCP_CHECK { //健康检查方式 connect_port 80 //端口 connect_timeout 3 //连接超时 nb_get_retry 3 //重试次数 delay_before_retry 3 //重试间隔时间(秒) } } real_server 192.168.100.104 80 { //web2服务器IP和端口 weight 1 TCP_CHECK { connect_port 80 connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } } }
systemctl start keepalived.service //启动服务 ip addr show dev ens33:0 //查看虚拟网卡
关闭防火墙和安全功能
systemctl stop firewalld.service setenforce 0
web服务器配置
两台web服务器配置相同,设置不同的测试首页作为区分。
安装install -y systemctl start httpd.service systemctl stop firewalld.service setenforce 0
创建(两台web服务器测试首页内容不同);
echo "this is web1 test " > /var/ //web1服务器 echo "this is web2 test " > /var/ //web2服务器
配置虚拟IP地址(VIP):ifcfg-lo:0(若使用远程连接的虚拟机,切勿重启,否则会中断远程连接)
cd /etc/sysconfig/network-scripts cp ifcfg-lo ifcfg-lo:0 vim ifcfg-lo:0
DEVICE=lo:0 IPADDR=192.168.100.50 NETMASK=255.255.255.255 ONBOOT=yes
调整proc响应参数(使用脚本,脚本文件提权,启动脚本);
cd /etc/init.d/ vim web.sh //脚本名
#!/bin/bash VIP=192.168.100.10 case "$1" in start) ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP /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 " ;; stop) ifconfig lo:0 down 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
chmod +x web.sh service web.sh start
启动虚拟网卡;
ifup lo:0
在虚拟机中可输入 firefox "& 命令使用火狐浏览器进入测试首页
service web.sh stopservice web.sh start //(建议重启服务)
登录测试
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~