3-7-LVS实现企业负载均衡高级应用配置实战2

健康逻辑:
网络层检测:能不能ping通,有可能有误差,服务不知道在不在线
传输层检测:80或443端口,tcp ping 或udp ping,但是不知道服务可用不可用(页面资源被删)
更向上一层,应用层检测资源,状态码必须是200,内容必须包含我检测的关键字,但是会记录日志,会干扰
做哪一层的检测,自己决定,而且检测不是一次有问题就认为有问题,(这叫做软状态)连续3次以后就转换为硬状态(自己设置)或者10次以内有多少次有问题,转换硬状态

注意:脚本的执行效率很差,因为脚本不是专门的编程语言,它的实现是调用系统命令,每执行一个命令就启用一个进程,所以对时间要求较严格(防止一个时钟周期过去,命令没有执行完成)
ldirectord:是为了辅助lvs对后端RS进行健康检测的,并且作为守护进程来实现周期检测

有两个站点是用来搜索rpm包的:rpmfind.net和pkgs.org
视频中的课件,接上一节课

考虑:
    (1)Director不可用,整个系统将不可用;SPoF
        解决方案:高可用
            keepalived
            heartbeat/corosync
    (2)某RS不可用时,Director依然会调度请求至此RS;
        解决方案:对各RS的健康状态做检查,失败时禁用,成功时启用;
            keepalived---可以高可用,也可以健康检测
            ldirectord---只能健康检测,而且增删操作是直接调用内核的api不需要ipvsadm命令
        检测方式:
        (a)网络层检测;
        (b)传输层检测,端口探测;
        (c)应用层检测,请求某关键资源;---不同服务检测机制不一样

        ok-->failure
        failure-->ok

ldirectord:
配置示例:
checktimeout=3
checkinterval=1
fallback=127.0.0.1:80
autoreload=yes
logfile="/var/log/ldirectord.log"
quiescent=no
virtual=5
real=172.16.0.7:80 gate 2
real=172.16.0.8:80 gate 1
fallback=127.0.0.1:80 gate
service=http
scheduler=wr
checktype=negotiate
checkport=80
request="index.html"
receive="CentOS"

补充:共享存储
    NAS:Network Attached Storage
        nfs/cifs
        文件系统解耦
    SAN:Storage Area Network
        "块"接口

ldirectord需要自己安装,去rpmfind.net或者pkgs.org站点搜索
yum install -y ldirectord---有可能本机没有,需要自己下载
rpm -ql ldirectord可以查看安装这个命令后修改的文件
less 可以查看脚本中默认的配置文件位置(视频中说可以自己指定位置)
如果不指定配置文件,默认配置文件放在/etc/ha.d/conf/下
less /etc/init.d/ldirectord---读取一下脚本中的配置文件地址/etc/ha.d/ldirectord.cf
默认是没有配置文件的,但是可以从rpm -ql命令中看到有一个配置模板,复制到脚本中指定的位置然后编辑
cp /usr/share/doc/ldirectord-3.9.5/ldirectord.cf /etc/ha.d/---复制模板
vim ldirectord.cf---编辑配置文件

下面讲配置文件
global directives---全局配置checktimeout=3---超时时长
checkinterval=1---每隔多长时间检测一次
#fallback=127.0.0.1:80---如果rs全挂了,会由这个主机提供服务
#fallback6=[::1]:80
autoreload=yes---如果配置文件发生改变,会自动加载
logfile="/var/log/ldirectord.log"---自己指定日志地址
#logfile="local0"---由rsyslog来收集日志
#emailalert="admin@x.y.z"---出现问题给谁发邮件
br/>checktimeout=3---超时时长
checkinterval=1---每隔多长时间检测一次
#fallback=127.0.0.1:80---如果rs全挂了,会由这个主机提供服务
#fallback6=[::1]:80
autoreload=yes---如果配置文件发生改变,会自动加载
logfile="/var/log/ldirectord.log"---自己指定日志地址
#logfile="local0"---由rsyslog来收集日志
#emailalert="admin@x.y.z"---出现问题给谁发邮件
#emailalertfreq=3600---如果还没修复多长时间重复发
#emailalertstatus=all---什么状态发邮件
quiescent=no---不要工作在静默模式

配置文件中一个virtual就代表一个虚拟主机
#Sample for an http virtual service
virtual=172.16.0.99:80---vip和端口
real=172.16.0.7:80 gate---rip和端口,gate表示-g dr类型
real=172.16.0.8:80 gate
fallback=127.0.0.1:80 gate
service=http---指明应用层是什么协议
scheduler=rr
#persistent=600---要不要做持久连接
#netmask=255.255.255.255
protocol=tcp
checktype=negotiate
checkport=80---有可能和上边的port不一致,因为有可能专门有一台虚拟主机用来接收检测,否则会产生大量日志信息
request="test1.html"---请求哪个页面
#receive="Test Page"---期望请求页面中包含什么
#virtualhost=www.x.y.z---指定向哪个虚拟主机发请求

下边不是讲解配置文件了,而是操作步骤
在Directory:172.16.0.6上
yum install -y nginx---安装nginx服务,就是为了提供一个say sorry的服务
mkdir /data/nginx/html -pv
vim /data/nginx/html/inde.html---创建sorry主页
<h1>Maintanance Time</h1>---例行维护时间

vim /etc/nginx/nginx.conf---定义一个虚拟主机,下边的server配置没有记录完全,视频中用的是nginx提供的默认虚拟主机,只是把root改了
server {
listen 80 default_server;
servername ;
root /data/nginx/html;
}

nginx -t---检查语法错误
systemctl start nginx.service
ss -tnl---查看80端口已经启动起来了

ipvsadm -ln---查看一下规则
ipvsadm -C---把自己的ipvsadm规则全部删除
ifconfig eno16777736:0 172.16.0.99 netmask 255.255.255.255 broadcast 172.16.0.00 up---添加vip
service ldirectord start---启动ldirectord服务
ipvsadm -ln---查看有没有加进来,sorry server加进来了,其他rs检测失败了
curl
http://172.16.0.99
<h1>Maintanance Time</h1>---会看到自己定义的sorry server网页
后端服务器RS启用以后,执行curl http://172.16.0.99/test1.html是可以访问到的



上边讲的是定义单一服务,下边讲定义防火墙标记的集群服务。
配置文件:
#Sample configuration for a fwmark based service For an explanation of
#fwmark see the ipvsadm(8) man page
virtual=3
real=172.16.0.7 gate---因为是防火墙标记,所以不要加端口
real=172.16.0.8 gate
fallback=127.0.0.1:80 gate
service=http---指明应用层是什么协议
scheduler=rr
#persistent=600---要不要做持久连接
#netmask=255.255.255.255
protocol=fwm---协议是防火墙标记
checktype=negotiate
checkport=80---有可能和上边的port不一致,因为有可能专门有一台虚拟主机用来接收检测,否则会产生大量日志信息
request="test1.html"---请求哪个页面
#receive="Test Page"---期望请求页面中包含什么
#virtualhost=www.x.y.z---指定向哪个虚拟主机发请求
然后重启服务
service ldirectord restart
ipvsadm -ln---可以看到生成了新规则(防火墙标记为3的新规则)
后边讲发布,更新服务,凌晨发布,先下线一部分,用脚本发布并保留老的服务(只是一个链接,方便替换)

原文地址:https://blog.51cto.com/13852573/2364130

时间: 2024-10-31 08:52:18

3-7-LVS实现企业负载均衡高级应用配置实战2的相关文章

3-6-LVS实现企业负载均衡高级应用配置实战

回顾:lvs:四层交换或四层路由器:lvs-type:nat/dr/tun(ipip)/fullnatnat/fullnat:请求和响应都经由director:nat:仅修改请求报文的目标IP和端口fullnat:修改请求报文的源和目标IP,目标端口(源端口最好不改)dr/tun:仅请求报文经由directordr:dip所属的网络接口与各RS的RIP所属的网络接口要在同一个物理网络:tun:重新封装,跨路由lvs-scheduler:静态算法:仅根据算法进行调度,适用于短链接rr/wrr/sh

LVS+Keepalived实现负载均衡

一.负载均衡:必不可少的基础手段 1.1 找更多的牛来拉车吧 当前大多数的互联网系统都使用了服务器集群技术,集群即将相同服务部署在多台服务器上构成一个集群整体对外提供服务,这些集群可以是Web应用服务器集群,也可以是数据库服务器集群,还可以是分布式缓存服务器集群等等. 古人有云:当一头牛拉不动车的时候,不要去寻找一头更强壮的牛,而是用两头牛来拉车. 在实际应用中,在Web服务器集群之前总会有一台负载均衡服务器,负载均衡设备的任务就是作为Web服务器流量的入口,挑选最合适的一台Web服务器,将客户

LVS DR模式 负载均衡服务搭建

LVS 负载均衡 最近在研究服务器负载均衡,阅读了网上的一些资料,发现主要的软件负载均衡方案有nginx(针对HTTP服务的负载均衡),LVS(针对IP层,MAC层的负载均衡).LVS模式工作在网络层,且由内核实现负载转发,效率要比nginx高.     LVS负载均衡包含三种模式: 1. NAT模式(类似路由器,实现外网内网地址映射,负载均衡服务器修改请求包的源以及目的MAC地址和IP地址,发送给实际服务器:负载均衡服务器,修改响应包的源以及目的MAC地址和IP地址,发送给客户端.请求和响应报

借助LVS+Keepalived实现负载均衡(转)

原文:http://www.cnblogs.com/edisonchou/p/4281978.html 一.负载均衡:必不可少的基础手段 1.1 找更多的牛来拉车吧 当前大多数的互联网系统都使用了服务器集群技术,集群即将相同服务部署在多台服务器上构成一个集群整体对外提供服务,这些集群可以是Web应用服务器集群,也可以是数据库服务器集群,还可以是分布式缓存服务器集群等等. 古人有云:当一头牛拉不动车的时候,不要去寻找一头更强壮的牛,而是用两头牛来拉车. 在实际应用中,在Web服务器集群之前总会有一

借助LVS+Keepalived实现负载均衡

一.负载均衡:必不可少的基础手段 1.1 找更多的牛来拉车吧 当前大多数的互联网系统都使用了服务器集群技术,集群即将相同服务部署在多台服务器上构成一个集群整体对外提供服务,这些集群可以是Web应用服务器集群,也可以是数据库服务器集群,还可以是分布式缓存服务器集群等等. 古人有云:当一头牛拉不动车的时候,不要去寻找一头更强壮的牛,而是用两头牛来拉车. 在实际应用中,在Web服务器集群之前总会有一台负载均衡服务器,负载均衡设备的任务就是作为Web服务器流量的入口,挑选最合适的一台Web服务器,将客户

利用lvs实现discuz负载均衡

一:实验目的 利用LVS实现discuz负载均衡  二:实验拓扑图 WEB服务器与PHP服务器在同一网段内,mysql服务器同时起着LVS负载均担作用. 三:搭建WEB服务器 本次WEB服务器采用编译安装服务,编译过程请参考LAMP平台编译.接下来配置WEB服务器主配置文件.  vim /etc/httpd24/extra/httpd-vhosts.conf  #前面的路径为编译时指定的路径.  ifconfig eth0 192.168.1.16/24 up           #修改主机的I

LVS+IPvsadm+Keepalive负载均衡安装部署

LVS中文站点 http://zh.linuxvirtualserver.org/ 一. LVS简介 LVS: Linux Virtual Server的缩写,意思是Linux虚拟服务器,是一个虚拟的服务器集群系统. LVS是一个开源的软件,由毕业于国防科技大学的章文嵩博士于1998年5月创立,可以实现LINUX平台下的简单负载均衡 宗旨: 使用集群技术和Linux操作系统实现一个高性能.高可用的服务器. 很好的可伸缩性(Scalability) 很好的可靠性(Reliability) 很好的可

【大型网站技术实践】初级篇:借助LVS+Keepalived实现负载均衡

一.负载均衡:必不可少的基础手段 1.1 找更多的牛来拉车吧 当前大多数的互联网系统都使用了服务器集群技术,集群即将相同服务部署在多台服务器上构成一个集群整体对外提供服务,这些集群可以是Web应用服务器集群,也可以是数据库服务器集群,还可以是分布式缓存服务器集群等等. 古人有云:当一头牛拉不动车的时候,不要去寻找一头更强壮的牛,而是用两头牛来拉车. 在实际应用中,在Web服务器集群之前总会有一台负载均衡服务器,负载均衡设备的任务就是作为Web服务器流量的入口,挑选最合适的一台Web服务器,将客户

《大型网站技术实践》借助LVS+Keepalived实现负载均衡

一.负载均衡:必不可少的基础手段 1.1 找更多的牛来拉车吧 当前大多数的互联网系统都使用了服务器集群技术,集群即将相同服务部署在多台服务器上构成一个集群整体对外提供服务,这些集群可以是Web应用服务器集群,也可以是数据库服务器集群,还可以是分布式缓存服务器集群等等. 古人有云:当一头牛拉不动车的时候,不要去寻找一头更强壮的牛,而是用两头牛来拉车. 在实际应用中,在Web服务器集群之前总会有一台负载均衡服务器,负载均衡设备的任务就是作为Web服务器流量的入口,挑选最合适的一台Web服务器,将客户