一.什么是lvs
LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。
二.LVS的组成
ipvs 代码
ipvsadm 负责编写规则,定义谁是集群服务,而谁是真正的后端服务器。
三.LVS相关的IP
VIP:客户需要访问的 IP,对外公布
DIP:LVS服务器发送数据到RS服务器的IP
RIP:真正服务器的IP
CIP:客户端的IP
四.LVS/DR模式工作
它的限制在于所有的VIP和RIP要在同一广播域,不支持异地容灾
1.首先得配置虚拟服务器(LVS)
配置高可用yum源
安装编写调度策略工具
添加策略 采用轮询机制rr 将VIP添加进去
再添加RIP策略 -g表示直连模式(DR模式)
查看调度策略
保存策略
如果策略添加错误 ipvsadm -C删掉,再重新加
再给LVS服务器上添加 VIP
2.配置真实后端服务器
安装Apache服务
编写默认发布文件
为了将VS和RS进行通信,必须在RS服务器上添加VIP
3.这样就可以实现轮询
问题1
:DR+arptables
因为RS服务器和LVS服务器上都有VIP,所以在当客户访问VIP的是时候,会随机访问,这样显然是不合理的,我们要让客户只访问调度器。
解决方案:在后台真实服务器上
安装arp火墙管理工具 arptables_jf
添加火墙策略
当有客户端数据流入时,直接拒绝VIP,DROP丢弃
当有数据流出时,以本机IP返回
保存策略
这样问题就解决啦
问题2:
DR+lidrectord 健康检查 在LVS服务器
如果后端服务器(DS)出现故障,就实现不了轮询
解决
安装工具
拷贝文件 cp /usr/share/doc/lidrectord-3.9.5/librector.cf /etc/ha.d
设定健康检查
vim /etc/ha.d/librector.cf
测试:
当坏掉一台RS服务器,查看策略,发现调度器自动会将这个坏的RS服务器移除
问题3:
要是两台RS服务都坏掉的话,怎么给客户端返回信息
解决:
这是就要调度器帮忙了
在LVS服务器上,安装Apache服务
编写默认发布文件
比如:网站正在维护。。。。。
将Apache的端口该为80
vim /etc/httpd/conf/http.conf
重启apache服务
就可以了
问题4:
要是调度器出问题怎么办
解决:
配置主备调度器
安装Keepalived gcc
给脚本一个可执行权限
做软链接
关闭健康检查服务,因为高可以自带健康检查
移除VIP ,因为高可用会自动添加
编写配置文件
开启Keepalived服务
将编译好的配置文件传给辅调度器 在server4(辅调度器 )上
给脚本一个可执行权限
做软链接
在配置文件里改为备用调度和优先级
开启Keepalived服务
测试:
模拟调度器损坏,看看VIP在哪台LVS上,这就叫做IP漂移。