LINUX虚拟服务器--LVS的搭建

本次实验做得是章文嵩博士创立的开源项目LVS(LinuxVirtual Server)。 Linux虚拟服务器,是一个虚拟的集群系统,目的是为了加强系统的可用性以及可伸缩性。本次实验使用四台虚拟机,其中两台作为提供服务的真机(real server)另外两台作调度器,实现ip负载均衡,其实实现ip负载均衡主要是有ipvs这个模块来实现的。LVS中有四种ip负载均衡技术,(“VS/NAT”、“VS/TUN”、“VS/DR”、“VS/FULLNAT”)以及相应的10种调度算法:轮叫算法(RR)、加权轮叫算法(WRR)、目标地址散列(DH)、源地址散列(SH)等属于静态调度算法,动态调度算法有:最少链接(LC)、加权最少链接(WLC)、最短期望链接(SED)、从不排队never quene (NQ)、基于局部性的最少链接(LBLC)、带复制的基于局部的最少链接(LBLCR)等动态调度算法。

本次实验使用IPVS模块实现ip负载均衡且使用VS/RR模式的rr轮叫算法实现调度。

本次试验拓扑图

具体上步骤:(VM1 VM2用来做调度器,VM3VM4用来做real server提供服务。)

调度器:VM1 、VM2 首先需要安装IPVS软件来实现ip负载均衡。

#yum  intall –y ipvsadm      #安装ipvsadm 服务

#ip  addr  add  172.25.45.100/24 dev  eth0  :首先需要添加虚拟ip地址;

#ipvsadm  -A  -t  172.25.10.100:80  -s  rr    :添加虚拟服务和rr轮叫算法

#ipvsadm  -a  -t172.25.10.100:80  -r 172.25.10.55:80  -g :-r 添加realserver    地址,-g表示添加VS/DR模式,-t :添加调度器地址;

#ipvsadm  -a  -t  172.25.10.100:80  -r  172.25.10.56:80 -g :添加另外一台真机

ipvsadm -l :查看添加的工作模式

ipvsadm -C :清除之前的算法和模式

realserver:  VM 3、VM4真机服务

#yum  install  -y  httpd    #真机提供HTTPD服务,

#/etc/init.d/httpd  start

#ip  addr  add  172.25.10.100/32 dev  eth0  #真机同样需要添加虚拟ip地址,与调度器的虚拟Ip地址一致。

#yum  install  -y  arptables_jf  #安装arp防火墙,用来屏蔽数据包,拦截ip冲突,因为虚拟机与real server的地址一致啊,所以进入real-server时就需要把虚拟ip DROP掉,也就就是拦截掉real-server的虚拟ip,;

#arptables  -A  IN  -d  172.25.10.100 -j  DROP    #拒绝客户端访问realserver的虚拟IP,只要输入进来直接DROP掉。

#arptables  -A  OUT  -s 172.25.10.100 -j mangle --mangle-ip-s172.25.10.55

#由于tcp三次握手原因,所以出去的时候仍要以vip地址出去才会实现握手,而真正将数据传输给客户端的就是realserver,  mangle参数就是这个功能;

#/etc/init.d/arptables_jf save

VM3 :#echoserver55.example.com >  /var/www/html/index.html

VM4:#echo server56.example.com >  /var/www/html/index.html

两台真机服务器的配置一样操作;提供httpd服务;

优点:为什么lvs vs/dr比路由要先进,因为他是直接在第四层将数据转发,而路由是经过网络层,将数据怎样进,再怎样通过路由出去,吞吐率不高;VS/NAT模式为:client àvs ànat àrs ànat àvs àclient

VS/DR模式调度器直接在数据链路层通过同一网段ip地址获得realserver的MAC地址,直接将数据包扔给realserver,而real -server再将服务直接提供给客户端,因此数据吞吐率较高,VS/DR模式为:client à vs à rs à client

工作在DR模式时,要求处在同一虚拟局域网VLAN内;

验证:在Firefox里面输入虚拟ip进行访问,刷新网页,可以不同的real-server提供apache服务。还可以通过真机输入命令:arp -an查看虚拟Ip的MAC地址,再去找到该MAC地址对应的调度器。如果MAC地址是real-server的,这说明调度器没有工作,需要查找原因了,我遇到的情况原因是因为调度器忘了添加虚拟ip.

添加健康检查功能模块,此时如果哪台real-server停止服务了,则该调度器实验并不能判断出来哪台real-server不能工作,仍然回去调度那台不能工作的real-server.因此需要添加健康检查功能,使得后台的real-server坏了,能够及时发现,并且从调度器中移除该损坏的real-server主机。

LVS健康检查:也就是说一台real server 坏了,调度器只能显示好的在工作,坏了就直接能发现。ipvsadm -l 显示出正在执行的real-server

#cd  /usr/share/doc/ldirectord-3.9.5/

#cp  ldirectord.cf  /etc/ha.d/

#vim  ldirectord.cf

virtual=172.25.10.100:80     #虚拟ip

real=172.25.10.55:80 gate    #提供服务的real-serverIp

real=172.25.10.56:80 gate

fallback=127.0.0.1:80 gate    #如果两台real-server都坏了,则只能自己提供该服务。前提是的有该服务哦。

service=http

scheduler=rr         #调用轮叫算法

#persistent=600

#netmask=255.255.255.255

protocol=tcp

checktype=negotiate

checkport=80

request="index.html"    #查询内容

#/etc/init.d/ldirectord start  #ldirectored服务启动

VM 1、VM2#yum install -y httpd

#echo  www.westos.com >  /var/www/html/index.html

/etc/init.d/httpd  start  #注意该服务只能手动启动,

现在就可以进行健康检查了;使两个真机realserver依次停止httpd服务,然后再在服务调度器上进行查看:ipvsadm   -l

接下来与开源heartbeat集群进行整合,使得系统的稳定性更高,因为现在使用的是一台调度服务,我们使用heartbeat做一个双机集群的调度服务器,从而避免调度器的单机故障发生。

与开源heartbeat整合的目的是为了决调度器的单点故障,即使调度器所在的一台主机发生错误了,另外一台就可以直接接管调度其的功能服务.

heartbeat的双机集群:

#/etc/init.d/ldirectord  stop   #首先使健康检查功能停止,因为heartbeat自动起

#/etc/init.d/httpd  stop       #httpd服务停止

#ip  addr  del  172.25.10.100/24 dev  eth0   #去掉虚拟ip,因为heartbeat能自动产生虚拟ip

#scp  ldirectord.cf  [email protected]:/etc/ha.d/   #将健康检查功能传送到双机集群中的另一台虚拟机里面去,

#vim  /etc/ha.d/haresource    #编辑配置文件

server51.example.com  IPaddr::172.25.10.100/24/eth0  httpd  ldirectord

# scp/etc/ha.d/haresource [email protected]:/etc/ha.d/

双机集群都启动,保证调度器的高可用性,不会因为一台主机服务器宕掉而无法进行调度。

VM1 、VM2.

#/etc/init.d/heartbeat   start

验证:首先查看运行的虚拟ip,以及ipvsadm  -l 查看运行的两个real-server,最后依次关闭两个realserver,停止httpd服务.刷新网页查看内容变化.最后依次再关掉两个调度器,在刷新网页查看状态。

时间: 2024-10-13 20:58:55

LINUX虚拟服务器--LVS的搭建的相关文章

LVS (Linux虚拟服务器)

LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一. 宗旨 编辑 使用集群技术和Linux操作系统实现一个高性能.高可用的服务器. 很好的可伸缩性(Scalability) 很好的可靠性(Reliability) 很好的可管理性(Manageability).[1] 特点 编辑 可伸缩网络服务的几种结构,它们都需要一个前端的负载调度器(或者多个进行主从备份).我

LVS:Linux虚拟服务器,LVS-NAT模式+LVS-DR模式

LVS:Linux虚拟服务器什么是集群:一组通过高速网络互联的计算组,并以单一系统的模式加以管理? 将很多服务器集中起来一起,提供同一种服务,在客户端看来就象是只有一个服务器? 可以在付出较低成本的情况下获得在性能.可靠性.灵活性方面的相对较高的收益? 任务调度是集群系统中的核心技术一.工作模式1.NAT2.TUN:隧道模式(很少使用)3.DR:应用广泛4.Full nat:大规模部署二.LVS的调度算法1.轮询rr2.加权轮询wrr3.最少连接lc4.加权最少连接wlc5.基于局部的最少连接l

简述LVS(Linux虚拟服务器)

LVS(Linux Virtual Server)即Linux虚拟服务器 为什么要有负载均衡? 因为tomcat后端服务慢. Tomcat高并发为什么慢? tomcat是位于TCP/IP协议模型的应用层,请求数据传输需要经过完整的七层: tomcat是在用户区的,运行需要JVM虚拟机,有内核和虚拟机的通信. 如何解决Tomcat高并发慢的问题? 四层负载均衡可以实现一种解决方案. 图解四层负载均衡 LVS负载均衡工作主要是转发,不会和client简历握手,传输效率非常快,要求后端服务是一样的(镜

Go 语言开发的基于 Linux 虚拟服务器的负载平衡平台 Seesaw

负载均衡系统 Seesaw Seesaw是由我们网络可靠性工程师用 Go 语言开发的基于 Linux 虚拟服务器的负载平衡平台,就像所有好的项目一样,这个项目也是为了解决实际问题而产生的. Seesaw发布的博客中这样写道:“我们需要能够处理单播(unicast)和任播(anycast)虚拟 IP (VIPs) 流量,使用 NAT 和 DSR (也被称为 DR) 执行负载均衡,执行针对后端的健康检查.特别是,我们需要一个容易管理的平台,可以自动部署配置的变化.在评估了一些包括现有的开源项目的平台

CentOS7Linux中服务器LVS负载均衡、高可用集群搭建(NAT、DR)

目录 集群 声明 集群概念 集群特性 Web服务器并发相应瓶颈 集群的分类 LB实现方法: LVS集群 负载调度器 服务器池 共享存储 LVS负载均衡的三种模式 负载均衡 集群 声明 文档不断更新中... 集群概念 一组相互独立又相互依赖的,通过网络连接的由计算机组,以单一的模式进行管理,为对方提供服务,对于用户来说,用户会认为对方是一个服务. DIP:用来和后端服务器进行数据交互的IP CIP:客户端的IP VIP:是域名解析的IP,是集群对外的公网IP RIP:真实服务器的IP 节点:一组计

详解如何正确的搭建Linux的服务器集群

什么是集群? 集群,是一组独立的计算机系统构成一个松耦合的多处理器系统,它们之间通过网络实现进程间的通信.应用程序可以通过网络共享内存进行消息传送,实现分布式计算机.集群的工作方式类似于人们之间的协同工作. Vs-nat集群是一种最简单的集群.他的结构类似于linux透明代理服务器. 这是从网络上下载的一幅图,这是一种典型的nat结构.可以用此种结构作简单测试.上图的LVS标识是一台linux主机,它负责均衡流量.通常称它为linux虚拟服务器.RS1标识和RS2标识是实际的服务器.虚拟服务器不

LVS+Keepalived搭建MyCAT高可用负载均衡集群

LVS+Keepalived 介绍 LVS LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一.目前有三种IP负载均衡技术(VS/NAT.VS/TUN和VS/DR),十种调度算法(rrr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq). Keepalvied Keepalived在这里主要用作RealServer的健康状态检查以及Mast

Linux中使用LVS实现负载均衡

什么是LVS     LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统. 同时LVS又被称为四层路由,工作于传输层上. LVS技术简介     LVS集群采用IP负载均衡技术和基于内容请求分发技术.调度器具有很好的吞吐率,将请求均衡地转 移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的. 高可用的虚拟服务器.整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程序. 为此,在设计时需

linux虚拟机上lvs-nat的实现

一.lvs-nat LVS是Linux Virtual Server的简写,意即Linux虚拟服务器.是由章文嵩博士开发的一个在内核层面的负载均衡调度器. lvs是在netfilter的INPUT链上根据我们制定的调度规则将特定目标地址和端口的数据包转发到后面的特定主机的,由于是工作于内核空间,所以工作效率高,经过优化最高可达400万的并发量调度. lvs的实现需要两部分:ipvs, ipvsadm ipvs是协议规则,ipvsadm是实现ipvs的工具,跟iptables具有极高的相似性. 定