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

[经验分享] Linux下面的LVS服务的配置(群集服务搭建)

[复制链接]

尚未签到

发表于 2019-1-6 09:54:52 | 显示全部楼层 |阅读模式
  实验题目
  

  实验一:LVS之NAT实验配置
  

  

实验介绍    在企业的IT 集群应用中,最常用的架构除了高可用集群外,还有负载均衡集群(Load
Balancing)。负载均衡集群可实现多台服务器或应用的流量均衡分配。服务器集群对外部应
用及客户表现为一个虚拟的服务器,集群内部各服务器平均地处理由外部应用及客户端所提
交的业务,实现服务器之间的负载均衡处理并提供灵活的可扩展性,当业务压力增大时,可
随时加入新的服务器以提高集群的整体性能。负载均衡集群特别适用于高并发的网络应用,
如网站、文件服务器、各种要求高并发的Socket处理等。通常负载均衡集群方案大多通过
专用的硬件--"负载均衡器"来实现,但此类硬件产品往往价格昂贵。目前在服务器领域千兆
网络已经非常普及,但是当前中档的百兆负载均衡器依然以动辄近十万元的高价,使得不少
企业望而却步。
    LVS(负载均衡软件,Linux Virtual Server)项目的创始人是我国国防科技大学的章文
嵩博士,此项目也是当前已经加入到Linux内核中为数不多的由国人维护的开源项目之一。
随着此项目的不断发展,功能的逐渐完善及性能的不断提高,当前不少硬件负载均衡器就是
通过Linux内核结合LVS来实现的
实验过程  实验拓扑:
LVS之NAT配置的实验拓扑图(省略,在共享的文章word文档里面有)


  

  1、负载均衡群集在rhel6.0中的应用
  xrandr -s 800×600  调整屏幕分辨率
  

  案例1:
  LVS-NAT模式
  

  环境准备阶段:
  物理环境准备
  指定虚拟网络:把内网的网段设置为VMnet2
  把外网的网段设置为VMnet4
  

  在LVS负载调度器上面需要添加一块网卡,把网卡设置为VMnet4
  

  虚拟机环境准备
  -----LVS负载调度器---------
  ifconfig eth0
  ip:192.168.1.254/24 (内网网关)
  

  ifconfig eth1(外网网关)
  ip:192.168.2.254/24
  

  /etc/init.d/network restart
  

  -----web1(节点1)----------
  ifconfig eth0
  ip:192.168.1.250/24 GW:192.168.1.254(内网网关)
  /etc/init.d/network restart
  

  /etc/init.d/httpd restart
  

  cd /var/www/html
  vim index.html
  example.com
  chkconfig httpd on
  

  

  

  ------web2(节点2)----------
  ifconfig eth0
  ip:192.168.1.253/24  GW:192.168.1.254(内网网关)
  /etc/init.d/network restart
  /etc/init.d/httpd restart
  

  vim /var/www/html/index.html
  www.example.com
  chkconfig httpd on
  

  

  

  ------client(windows server2003)-------
  ip:192.168.2.1/24 GW:192.168.2.254(外网网关)
  

  

  

  实验阶段:
  LVS负载调度器:
  system-config-firewall
  

  vim /etc/sysctl.conf
  修改一处  net.ipv4.ip_forward=0,把此处的0改为1
  

  sysctl -p
  

  web1:
  system-config-firewall
  setenforce 0
  

  ping 192.168.2.1
  

  web2:
  system-config-firewall
  setenforce 0
  

  ping 192.168.2.1
  

  client:
  关闭windows server 2003的防火墙
  

  

  测试阶段
  ping测试来测试网络的连通性
  客户端:用Windows server 2003系统模拟
  

  ping 192.168.1.250
  ping 192.168.1.253
  

  

  LVS负载均衡器
  cd /mnt
  cd Packages/
  rpm -ivh ipvsadm-*
  ipvsadm -L
  ipvsadm -Ln
  ipvsadm -C
  ipvsadm -A -t 192.168.2.254:80 -s rr
  

  ipvsadm -a -t 192.168.2.254:80 -r 192.168.1.250 -m -w 1
  ipvsadm -a -t 192.168.2.254:80 -r 192.168.1.253 -m -w 2
  service ipvsadm save
  ipvsadm -L
  

  /etc/init.d/ipvsadm restart
  chkconfig ipvsadm on
  

  

  访问(在Windows server 2003上面)
  在地址栏输入:192.168.2.254
  

  若链接不上则ping测试
  ping 192.168.1.250
  ping 192.168.1.253
  

  

  实验二:LVS之DR(直接路由转发)
  

  接着上面的实验
  1.
  安装ipvsadm,并清空LVS并发数
  在配置好的NAT的情况下面,在LVS服务调度器上面直接的把并联的网络连接清空就ok了
  ipvsadm -C  这个命令就ok了
  

  在LSV服务调式器上面
  接下来就是
  ipvsadm -Ln查看网络的连接状态
  

  ifconfig eth0:1 192.168.1.240/32 up
  cd /etc/sysconfig/network-scripts/
  ls
  cp ifcfg-eth0 ifcfg-eth0:1
  vim ifcfg-eth0:1
  

  2.
  下面在/etc/sysctl.conf下面添加
  net.ipv4.conf.all.send_redirects=0
  net.ipv4.conf.default.send_redirects=0
  net.ipv4.conf.eth0.send_redirects=0
  net.ipv4.conf.eth1.send_redirects=0
  

  sysctl -p
  

  3.s
  配置负载分配策略
  ipvsadm -A -t 192.168.1.240:80 -s rr
  ipvsadm -a -t 192.168.1.240:80 -r 192.168.1.250 -g -w 1
  ipvsadm -a -t 192.168.1.240:80 -r 192.168.1.253 -g -w 1
  service ipvsadm save
  ipvsadm -Ln
  

  

  在web1(web服务器的节点1)上面
  ifconfig lo
  ifconfig lo:1 192.168.1.240/32 up
  

  ifconfig 查看
  

  route add -host 192.168.1.240 dev lo:1
  vim /etc/sysctl.conf
  net.ipv4.conf.all.arp_ignore=1
  net.ipv4.conf.all.arp_announce=2
  net.ipv4.conf.default.arp_ignore=1
  net.ipv4.conf.default.arp_announce=2
  net.ipv4.conf.lo.arp_ignore=1
  net.ipv4.conf.lo.arp_announce=2
  执行sysctl -p使修改生效
  /etc/init.d/httpd restart
  

  在web2(web服务器的节点2)上面
  ifconfig lo
  ifconfig lo:1 192.168.1.240/32 up
  

  ifconfig 查看
  

  route add -host 192.168.1.240 dev lo:1
  vim /etc/sysctl.conf
  net.ipv4.conf.all.arp_ignore=1
  net.ipv4.conf.all.arp_announce=2
  net.ipv4.conf.default.arp_ignore=1
  net.ipv4.conf.default.arp_announce=2
  net.ipv4.conf.lo.arp_ignore=1
  net.ipv4.conf.lo.arp_announce=2
  执行sysctl -p使修改生效
  /etc/init.d/httpd restart
  

  winodows客户端
  把网卡设置为VMnet2
  ip地址改为:192.168.1.1/24
  GW:192.168.1.254
  

  DNS:192.168.1.254
  

  ping测试
  ping 192.168.1.240 可以通
  

  ping 192.168.1.254 可以通
  

  ping 192.168.1.250 不通
  

  ping 192.168.1.253 不通
  

  

  

  实验三:LVS之主从服务器的配置
  实验题目:LVS的主从服务器的配置
  

  LVS主服务器
  第一步:设置网卡内型,这里LVS主服务器需要添加一块网卡
  VMnet2 内网,VMnet4外网
  ip:192.168.1.254/24 (内网)
  ip:192.168.2.254/24 (外网)
  

  第二步关闭防火墙
  system-config-firewall
  setenforce 0
  

  第三步安装ipvsadm
  mount /dev/cdrom /mnt
  cd /mnt/Packages
  rpm -ivh ipvsadm*
  

  /etc/init.d/ipvsadm restart
  

  第四步:安装yum仓库
  vim /etc/yum.repos/server.repo
  [base]
  name=rhel 6.2
  baseurl=file:///mnt/
  enabled=1
  gpgcheck=0
  

  

  第五步:安装php包
  yum -y install php*
  

  

  

  第六步:rpm -ivh piranha*
  /etc/init.d/httpd restart
  

  第七步:piranha-passwd
  

  

  

  第八步:在地址栏中输入http://192.168.1.254:3636   ---发现打不开
  

  /etc/init.d/pulse restart   ----重启失败
  

  /etc/init.d/piranha-gui restart  ---重启生效
  

  

  再次在地址栏中输入:192.168.1.254:3636
  

  接下来点击------login
  接下来输入刚才设置的用户与密码
  用户名:piranha
  密码:
  

  -------------------------------------------------------
  第九步:点击第二项----GLOBAL SETTINGS------>然后来修改一些配置
  1.GLOBAL SETTINGS设置
  下面直接找到LVS的内型,然后点击Direct Routing就OK,接下来再来填写下面的内容:
  Primary server public IP:192.168.1.254
  Primary server Pravte IP:192.168.2.254
  填完后最后点击“accept”
  

  2.REDUNDANCY-------------备用服务器
  接下来点击Backup:inactive使其为active
  下面填写备用服务器的ip地址
  Redundant server public IP:192.168.1.250
  Redundant server private IP:192.168.2.250
  

  3.VIRTUAL SERVERS
  下面先点击“EDIT”---编辑
  ----VIRTUAL SERVER----
  Name:web
  Vitual IP Address:192.168.1.240
  Vitual IP Network Mask:255.255.255.255
  最后点击“ACCEPT”
  

  

  ----REAL SERVER-----(节点服务器)
  点击“EDIT”
  Name:web1
  Address:192.168.1.252
  最后点击"ACCEPT"
  

  下面再次点击一下REAL SERVER的"EDIT"
  Name:web2
  Address:192.168.1.253
  最后点击“ACCEPT”
  完成后最后点击“激活”
  

  ----MONITORING SCRIPTS------
  这里不需要更改,直接的点击“ACCEPT”保存
  

  再回到VIRTUAL SERVERS这里,然后点(DE)ACTIVE
  

  下面再次重启pulse服务发现现在OK了
  /etc/init.d/pulse restart
  /etc/init.d/ipvsadm restart
  ipvsadm
  vim /etc/sysconfig/ha/lvs.cf  (可以看到刚才的配置)
  

  ifconfig ---查看现在的ip地址
  

  

  

  ----------------从属LVS服务器的配置--------------
  

  第一步:在从属LVS服务器上面添加一块网卡
  配置ip地址
  ip:192.168.1.250/24
  ip:192.168.2.250/24 (HA)
  /etc/init.d/network restart
  

  ifconfig
  

  第二步:关闭防火墙
  system-config-firewall
  setenforce 0
  

  第三步:挂载光驱
  mount /dev/cdrom /mnt
  cd /mnt/Packages
  

  第四步:配置yum仓库
  vim /etc/yum.repos.d/server.repo
  [base]
  name rhel 6.1
  baseurl=file:///mnt/
  enabled=1
  gpgcheck=0
  

  

  第五步:安装ipvsadm
  cd /mnt/Packages
  rpm -ivh ipvsadm*
  

  

  第六步:安装php插件
  yum -y install php*
  

  第七步:安装安装piranha*
  rpm -ivh piranha*
  

  /etc/init.d/piranda-gui restart
  

  /etc/init.d/httpd restart
  

  

  到LVS主服务器上面
  scp /etc/sysconfig/ha/lvs.cf  root@192.168.1.250:/etc/sysconfig/ha/lvs.cf
  然后下面点击“yes”
  

  

  然后再回到从属服务器LVS上面
  ifconfig
  

  /etc/init.d/pulse restart
  ifconfig
  

  -----------------------------------------------------------------
  配置web1服务器
  第一步:配置ip地址,网卡设置为VMnet2
  ip:192.168.1.252/24
  

  /etc/init.d/httpd restart
  /etc/init.d/network restart
  

  第二步:配置httpd
  cd /var/www/html
  vim index.html
  example.com----192.168.1.252
  

  第三步:关闭防火墙
  system-config-secr
  setenforce 0
  

  

  

  ping  192.168.1.254
  

  

  在主lvs这边也用ping来测试一下
  ping 192.168.1.252
  

  ipvsadm
  

  

  

  web2上面
  第一步:配置ip地址
  ip:192.168.1.253/24
  /etc/init.d/network restart
  

  ifconfig
  第二步:关闭防火墙
  

  

  第三步安装httpd
  yum -y install httpd
  /etc/init.d httpd restart
  

  第四步:配置httpd
  vim /var/www/html/index.html
  www.example.com----192.168.1.253
  

  ping 192.168.1.254
  

  第五步:
  

  主服务器LVS上面测试
  ping 192.168.1.253
  

  ipvsadm
  

  

  -----------------客户端测试------------
  现在还不能访问
  ping 192.168.1.254
  

  ping 192.168.1.252
  ping 192.168.1.253
  

  

  在web2上面配置
  ifconfig lo:1 192.168.1.240/32 up
  ifconfig
  

  

  在web1上面配置
  ifconfig lo:1 192.168.1.240/32 up
  

  

  在LVS主服务器上面
  ping 192.168.1.252
  

  ping 192.168.1.253
  

  ipvsadm
  

  

  下面再回到LVS服务器查看
  ipvsadm
  

  

  

  再次到客户端测试----现在发现可以访问了
  在客户端地址栏输入:192.168.1.240或者http:\\192.168.1.240
  

  

  在web1上面添加一条路由
  route add -host 192.168.1.240 dev lo:1
  echo 1>/proc/sys/net/ipv4/conf/all/arp_ignore
  echo 2>/proc/sys/net/ipv4/conf/all/arp_announce
  echo 1>/proc/sys/net/ipv4/conf/lo/arp_ignore
  echo 2>/proc/sys/net/ipv4/conf/lo/arp_announce
  

  

  在web2上面添加一条路由
  route add -host 192.168.1.240 dev lo:1
  echo 1>/proc/sys/net/ipv4/conf/all/arp_ignore
  echo 2>/proc/sys/net/ipv4/conf/all/arp_announce
  echo 1>/proc/sys/net/ipv4/conf/lo/arp_ignore
  echo 2>/proc/sys/net/ipv4/conf/lo/arp_announce
  

  回到LVS主服务器上面查看
  ipvsadm
  

  下面再次到客户端就可以访问了
  

  

  下面就开始做测试httpd服务器挂掉后会怎么样?
  到web1上面
  service httpd stop
  

  

  回到LVS主服务器上面查看
  ipvsadm
  

  

  到web1上面
  service httpd start
  

  

  

  假说主服务器挂掉了----直接挂起或者关闭来模拟挂掉
  

  

  现在再来查看从属服务器------发现现在起来了我
  这里仅仅是过程,很多的理论本人不会,我也不喜欢理论,只喜欢把东西做出来,达到实验的效果与目的,追求简单,快捷,讲求实用,我认为任何的技术发明出来都是要容易的完成,容易的达到效果,这就是目的,原理也是很重要的。能够从过程推导出原理来是我认为最有趣的一件事情,不然的话,一开始原理着手,那我可是受不了的,因为一大堆的东西你要去看,主要是看的时候很乏味,不能像小说那样的有趣,所以我不喜欢一开始的理论,而是通过做实验入手,像这样的做实验才有趣。最关键还是要别人演示一遍实验的过程(老师或者懂这方面的人),然后你跟着做就行了。不然还是要多看书,毕竟技术是枯燥的事情,想要学到还是需要下一番苦功夫。我认为没有任何有实用价值的东西得来是简单的,越简单的东西就越没有价值与意义。
  





运维网声明 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-659883-1-1.html 上篇帖子: 群集概述及LVS三种模式优点缺点比较 下篇帖子: 基于Corosync/openais和ldirectord实现LVS(DR)中的Director的高可用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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