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