实验准备

1.下面的实验使用的是rhel6系列(rhel6.5)的虚拟机,因此你需要有对应的镜像和yum源
2.准备三台虚拟机,为了区分主机名与IP分别为
server1 172.25.6.1
server2 172.25.6.2
server3 172.25.6.3
3.我们将server1(172.25.6.1)作为调度器,server2、server3作为后端服务器,物理机作为客户端

1.为什么要进行健康检查?

像前面配置好了,整个集群开始工作,但如果某些Real Server出现问题,不能正常访问,但依旧会执行调度。因此我们就要使Director的ipvs配置做出相应改变,删除出问题的Real Server;当Real Server又能正常访问时,也要把其添加回ipvs的调度列表,这就需要实时检查各Real Server的健康状态,以此来保证整个集群能够提供稳定可用的服务。

2.配置过程(在调度器server1上进行)

1)修改yum源(使其获得高可用源)

vim /etc/yum.repos.d/rhel-source.repo
[LoadBalancer]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=http://172.25.8.250/rhel6.5/HighAvailability
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

2)获得ldirectord-3.9.5-3.1.x86_64.rpm软件包,并进行安装

yum install ldirectord-3.9.5-3.1.x86_64.rpm -y
rpm -qpl ldirectord-3.9.5-3.1.x86_64.rpm

3)将模板文件进行复制,进行编写

cp /usr/share/doc/ldirectord-3.9.5/ldirectord.cf /etc/ha.d/
vim /etc/ha.d/ldirectord.cf
 11 # Global Directives          #“ 全局 ” 设置12 checktimeout=3            #指定定real server出错的时间间隔13 checkinterval=1           #指定ldirectord在两次检查之间的时间间隔16 autoreload=yes         #自动重载配置文件,选yes时,当配置文件发生变化,自动载入配置信息22 quiescent=no         #当一个节点在 checktimeout 设置的时间周期内没有响应时它是 “ 静止的 ” (它的权重为0),当你设置了这个选项后,ldirectord 将 会从 IPVS 表中移除真实服务器而不是 “ 停止 ” 它,从 IPVS 表移除节点将中断现有的客户端连接,并使 LVS 丢掉所有的连接跟踪记录和持续连接模板,如果 你不将这个选项设置为 no,当某个节点崩溃时,对某些客户端计算机而言可能会显示为集群关闭了,因为在这个节点崩溃前这些客户端计算机被分配给它了,而连接跟踪记录和程序连接模板仍然保留在Director上。
logfile="/var/log/ldirectord.log"   #设定ldirectord日志输出文件路径
# Sample for an http virtual service
virtual=172.25.6.100:80                #VIP 地址和端口号real=172.25.6.2:80 gate         #指定RealServer地址和端口,同时设定LVS工作模式,gate表示DR模式,ipip表示TUNL模式,masq表示NAT模式。real=172.25.6.3:80 gate         #当所有的real server节点不能工作时,web服务重定向的地址fallback=127.0.0.1:80 gate       #当所有的real server节点不能工作时,web服务重定向的地址service=http             #指定服务类型,对http服务做负载均衡scheduler=rr                #指定调度算法,这里是rr(轮叫)算法#persistent=600#netmask=255.255.255.255protocol=tcp                    #指出该服务使用的协议:tcp、udp 或 fwmchecktype=negotiate             #指定Ldirectord的检测类型,默认为negotiatecheckport=80                    #健康检查使用的端口是 80request="index.html"#receive="Test Page"            #指定请求和应答字串#virtualhost=www.x.y.z          #虚拟服务器的名称

4)清除手动编写的规则,让文件的规则生效

ipvsadm -C
/etc/init.d/ldirectord start
ipvsadm -l

5)添加IP

ip addr add 172.25.6.100/24 dev eth0  ##server1上添加24位IP,server2,server3上应该添加32位IP,如下图

6)编写默认发布文件

cd /var/www/html
vim index.html


6.测试

1)客户端进行检查看是否采用轮循


2)将后端服务器server2的httpd服务关掉,测试调度器是否会调度挂掉的服务器

仅调度server3上的资源



3)当两台后端的服务器都宕机,会如何?


3.LVS高可用(画重点)

具体概念在前篇已经都说过了,这里简单说一下

我们实现LVS高可用将使用到keepalived,它是集群管理中保证集群高可用的一个服务软件;它能够保证当个别节点宕机时,整个网络可以不间断地运行,所以,Keepalived 一方面具有配置管理LVS的功能,同时还具有对LVS下面节点进行健康检查的功能,另一方面也可实现系统网络服务的高可用功能

目的:防止单点故障(ld)
vrrp:虚拟路由冗余协议
keepalived:基于vrrp的路由器的高可用(1个master 多个backup vip)

具体配置详情如下

1)新建虚拟机,主机名和IP分别为

主机名:server4
IP:172.25.6.4
qemu-img create -f qcow2 -b peng.qcow2 peng4         ##利用之前的快照

2)将server1上的yum源文件发送给server4

scp /etc/yum.repos.d/rhel-source.repo root@172.25.6.4:/etc/yum.repos.d/


3)官网下载获得keepalived-2.0.6.tar.gz,解压并安装

tar zxf keepalived-2.0.6.tar.gz      ##对资源包进行解压
cd keepalived-2.0.6                     ##进入到解压好的目录下,安装服务需要的软件
yum install openssl-devel -y
yum install libnl libnl-devel -y

4)获得libnfnetlink-devel-1.0.0-1.el6.x86_64.rpm资源包,进行安装

yum install libnfnetlink-devel-1.0.0-1.el6.x86_64.rpm -y

5)进入解压好的keepalived-2.0.6目录下,进行源码编译

yum install gcc -y                   ##源码编译需要用到
cd keepalived-2.0.6
./configure --with-init=SYSV --prefix=/usr/local/keepalived
./configure --with-init=SYSV --prefix=/usr/local/keepalived

注意:因为源码是C,需要安装gcc;出现Use IPVS Framework : Yes成功,继续执行下一步

make && make install

6)查看编译完成后的目录

cd /usr/local/
ls
cd keepalived/
ls

7)将server4上编译好的keepalived发送给server1,检查是否一致

scp -r /usr/local/keepalived/ root@172.25.6.1:/usr/local/
du -sh keepalived/


7)在server1和server4上赋予执行权限,添加链接(操作命名完全相同)

chmod +x /usr/local/keepalived/etc/rc.d/init.d/keepalived
ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
ln -s /usr/local/keepalived/etc/keepalived/ /etc/
ln -s /usr/local/keepalived/sbin/keepalived /sbin/

8)server4上安装调度器软件

yum install ipvsadm -y

9)编辑server1、server4上的keepalived配置文件——server1作为主机、server4作为备机

vim /etc/keepalived/keepalived.conf
  3 global_defs {        ##全局定义块4    notification_email {    ##邮件通知5      root@localhost6    }7    notification_email_from keepalived@localhost    #设置邮件的发送地址8    smtp_server 127.0.0.1                #设置 smtp server 地址9    smtp_connect_timeout 30              #设置连接 smtp 服务器超时时间10    router_id LVS_DEVEL             #load balancer 的标识 ID,用于 email 警报11    vrrp_skip_check_adv_addr12    #vrrp_strict13    vrrp_garp_interval 014    vrrp_gna_interval 015 }16 17 vrrp_instance VI_1 {18     state MASTER               #备机改BACKUP,此状态是由 priority 的值来决定的,当前19     interface eth0                #HA 监测网络接口20     virtual_router_id 59           #主、备机的 virtual_router_id 必须相同,取值 0-25521     priority 100                #主机的优先级,备份机改为 50,主机优先级一定要大于备机22     advert_int 1             #主备之间的通告间隔秒数23     authentication {24         auth_type PASS            #设置验证类型,主要有 PASS 和 AH 两种25         auth_pass 111126     }27     virtual_ipaddress {          ##指定漂移地址(VIP),即切换到MASTER时,这些IP会被添加,切换到BACKUP时,这些IP会被删除(传给ip addr命令),所以每台服务器可以不用绑定任何的虚拟地址。28         172.25.6.10029     }30 }31 ## 虚拟服务配置32 virtual_server 172.25.6.100 80 {      #定义虚拟服务器33     delay_loop 3     #定义虚拟服务器34     lb_algo rr       #lvs 调度算法,这里使用轮叫35     lb_kind DR       #LVS 是用 DR 模式36     #persistence_timeout 50 #注释掉(像lftp等连接性服务,会有连接时间,此处用httpd做实验)37     protocol TCP     #指定转发协议类型,有 tcp 和 udp 两种38 39     real_server 172.25.6.2 80 {    #配置服务节点40         TCP_CHECK {           ##TCP方式的健康检查,realserve 的状态检测设置部分,单位是秒41             weight 1      ##默认为1,0为失效42             connect_timeout 3  #3 秒无响应超时43             retry 3         #重试次数44             delay_before_retry 3    #重试间隔45         }46     }47 48     real_server 172.25.6.3 80 {49         TCP_CHECK {50             weight 151             connect_timeout 352             retry 353             delay_before_retry 354         }55     }56 }

10)将上一个实验中的健康检查服务关掉,开机启动关闭;并将server1上的IP删除

/etc/init.d/ldirectord stop
chkconfig ldirectord off
ipvsadm -l
ipvsadm -C
ip addr del 172.25.6.100/24 dev eth0
ip addr show

11)调度器主备机上安装邮件服务

yum install mailx -y

12)server1和server4同时启动

/etc/init.d/keepalived start

可以使用日志方式查看

tail -f /var/log/messages

测试:

测试1:此时MASTER主机自动被分配172.25.6.100/32这个ip,并开启调度器;但是BACKUP是新的


测试2:将MASTER的keepalived下线,此时BACKUP工作

 /etc/init.d/httpd stop

客户端依然能正常访问

测试2:将后端apache关闭,模拟故障


调度器调度三次无响应后,直接将server2踢出工作集群

运维企业专题(8)LVS高可用与负载均衡后篇——LVS健康检查与高可用详解相关推荐

  1. 运维企业专题(5)LVS高可用与负载均衡中篇——VS/DR模式配置详解

    实验准备 1.下面的实验使用的是rhel6系列(rhel6.5)的虚拟机,因此你需要有对应的镜像和yum源 2.准备三台虚拟机,为了区分主机名与IP分别为 server1 172.25.6.1 ser ...

  2. 一篇运维老司机的大数据平台监控宝典(1)-联通大数据集群平台监控体系进程详解

    一篇运维老司机的大数据平台监控宝典(1)-联通大数据集群平台监控体系进程详解 "如果你是一个经验丰富的运维开发人员,那么你一定知道ganglia.nagios.zabbix.elastics ...

  3. Nginx运维之一 反向代理、动静分离、负载均衡

    Nginx运维之一 反向代理.动静分离.负载均衡 Nginx简述 Nginx 优势功能 Tengine 反向代理 正向代理 反向代理 动静分离 负载均衡 Nginx简述 Nginx是lgor Syso ...

  4. 运维企业专题(4)LVS高可用与负载均衡前篇——先学原理,再学配置

    我保证看完这篇文章,面试时问到相关问题轻轻松松解决,本文末尾会结合全文教你该如何回答面试官的问题 1.什么是LVS? LVS 是 Linux Virtual Server的简写,意即Linux虚拟服务 ...

  5. 运维企业专题——LVS高可用与负载均衡之原理篇

    我保证看完这篇文章,面试时问到相关问题轻轻松松解决,本文末尾会结合全文教你该如何回答面试官的问题 1.什么是LVS? LVS 是 Linux Virtual Server的简写,意即Linux虚拟服务 ...

  6. 运维企业专题(10)RHCS集群工具——FENCE搭建、高可用服务配置详解

    前言:FENCE工具的原理及作用 FENCE设备是RHCS集群中必不可少的一个组成部分,通过FENCE设备可以避免因出现不可预知的情况而造成的"脑裂"现象,FENCE设备的出现,就 ...

  7. 运维企业专题(3)LB负载均衡介绍

    1.LB是什么?有哪些主要的方式? LB--负载均衡(Load Balancing ) 负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽.增加吞吐量.加强网络数 ...

  8. 运维企业专题(9)RHCS集群工具介绍

    1.集群: 是指一组相互独立的计算机,利用高速通信网络组成的一个较大的计算机服务系统,每个集群节点都是运行各自服务的独立服务器,这些服务器之间可以彼此通信,协同向用户提供应用程序,系统资源和数据,并以 ...

  9. 运维企业专题(7)LVS高可用与负载均衡中篇——VS/NAT模式配置详解

    VS/NAT 在一组服务器前有一个调度器,它们是通过 Switch/HUB 相连接的.这些服务器提供相同的网络服 务.相同的内容,即不管请求被发送到哪一台服务器,执 行结果是一样的.服务的内容可以复制 ...

最新文章

  1. 官宣弃用Java 8!Kafka 3.0.0 新功能get
  2. 【运筹学】运输规划 ( 运输规划问题模型及变化 | 表上作业法引入 )
  3. linux pro*c环境配置,打造ubuntu下精简版的oracle客户端及pro*c编译环境
  4. 计算机网络 —— 总结(面试问题)
  5. python学生信息管理
  6. Java设计模式之观察者模式(发布-订阅模式)
  7. Java菜鸟教程 标识符
  8. IT 工作者如何写交接文档
  9. 谷歌神经网络机器翻译NMT:人人可利用TensorFlow快速建立翻译模型
  10. 天蝎项目整机柜服务器技术规范v1.01,天蝎项目整机柜服务器技术规范v1.01.pdf
  11. 新华三防火墙简单配置安全域
  12. 【刘晓燕语法长难句】 简单句
  13. httpc服务器错误类型大全
  14. 几个cad二次开发的网站
  15. SLIC 简单线性迭代聚类
  16. 程序员专业常用英语词汇
  17. 解析少儿编程中的运用的科技语言
  18. 《天下无谋》读后感 --- 度心术卷2御心篇
  19. LightGBM 参数及调优
  20. OVAL验证框架帮助文档

热门文章

  1. NLP自然语言常见问题及相关模型训练数据格式示例
  2. 影像组学视频学习笔记(31)-柱状图的python实现、Li‘s have a solution and plan.
  3. 设置访问权限_一项一项教你测等保2.0——Windows访问控制
  4. python colormap函数_python-使用由x,y位置定义的rgb值创建colormap
  5. Pbsim模拟器的使用
  6. 结合实例与代码谈数字图像处理都研究什么?
  7. java条件操作_关于java:条件为true时,从头开始执行各种操作的顺序
  8. mapdb java_JVM崩溃后MapDb恢复
  9. 树莓派做网站服务器同时做nas,【项目分享】树莓派4搭建NAS,让硬盘轻松联网...
  10. Nativefier 网页转桌面程序 app