设为首页 收藏本站
查看: 1081|回复: 0

[经验分享] LINUX虚拟服务器

[复制链接]
YunVN网友  发表于 2019-1-5 10:27:15 |阅读模式
              LINUX虚拟服务器--LVS的搭建

本次实验做得是章文嵩博士创立的开源项目LVSLinuxVirtual 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 3VM4真机服务
  #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地址获得realserverMAC地址,直接将数据包扔给realserver,real -server再将服务直接提供给客户端,因此数据吞吐率较高,VS/DR模式为:client à vs à rs à client
  工作在DR模式时,要求处在同一虚拟局域网VLAN内;
  验证:在Firefox里面输入虚拟ip进行访问,刷新网页,可以不同的real-server提供apache服务。还可以通过真机输入命令:arp -an查看虚拟IpMAC地址,再去找到该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 1VM2#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  root@172.25.10.51:/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 root@172.25.10.51:/etc/ha.d/
  双机集群都启动,保证调度器的高可用性,不会因为一台主机服务器宕掉而无法进行调度。
   VM1 VM2.
  #/etc/init.d/heartbeat   start
  

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





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-659572-1-1.html 上篇帖子: MYSQL+heratbeat+DRBD+LVS 数据库高可用群集 下篇帖子: lvs的dr和nat模式配置备忘
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表