kaywang 发表于 2019-1-4 08:55:38

LVS的NAT模式+DR模式的存储挂载

  一:LVS群集简介:
  lvs(linux virtual server)Linux的虚拟服务   
Internet的快速增长使多媒体网络服务器面对的访问数量快速增加,服务器需要具备提供大量并发访问服务的能力,因此对于大负载的服务器来讲, CPU、I/O处理能力很快会成为瓶颈。由于单台服务器的性能总是有限的,简单的提高硬件性能并不能真正解决这个问题。为此,必须采用多服务器和负载均衡技术才能满足大量并发访问的需要。Linux 虚拟服务器(Linux Virtual Servers,LVS) 使用负载均衡技术将多台服务器组成一个虚拟服务器。它为适应快速增长的网络访问需求提供了一个负载能力易于扩展,而价格低廉的解决方案
  二:LVS的结构和工作原理:         
LVS由前端的负载均衡器(Load Balancer,LB)和后端的真实服务器(Real Server,RS)群组成。RS间可通过局域网或广域网连接。LVS的这种结构对用户是透明的,用户只能看见一台作为LB的虚拟服务器(Virtual Server),而看不到提供服务的RS群。
  三:lvs的工作模式有三种:      
1.nat(LVS-NAT)      
a.集群接点必须和LB在同一个子网中(即DIP和),不能跨域网段      
b.RIP 是私有地址      
c.所有的RIP的网关必须指向DIP      
d.调度器处理所有的请求      
e.端口地址转换      
f.因为是NAT      
h.单点瓶颈      
2.直接路由(LVS-DR)      
a.集群接点必须和LB必须在一个物理网段,之间不能有路由器      
b.RIP可以使用公网地址,建议使用公网地址      
c.LB仅处理请求,不处理响应      
d.real server的网关不能指向DIP      
e.不能做端口转换      
f.并非所有的系统都可以做接点      
h.LVS-DR 可以带动比LVS-NAT更多的接点      
3.隧道(LVS-TUN)      
a.集群接点和LB接点不必在同一个物理网络      
b.RIP使用公网地址      
c.LB只处理进来的请求,不处理出去的请求      
d.响应的请求一定不经过LB      
e.不支持端口地址转换      
f.只能使用支持IP隧道协议的操作系统做集群接点
  四:lvs的LB的调度方法及各个调度方法对应的算法:         
1.静态调度方法:(fixed scheduling)不考虑后端连接状态         
a:RR(round-robin)轮循着,它将请求依次分配不同的RS,也就是在RS中均摊请求。这种算法简单,但是只适合于RS处理性能相差不大的情况;         
b:WRR(weight round-robin)加权轮调,它将依据不同RS的权值分配任务。权值较高的RS将优先获得任务,并且分配到的连接数将比权值较低的RS更多。相同权值的RS得到相同数目的连接数;         
c:destination hashing 根据服务的请求转发到特定的服务器,跟用户建立粘性,提高缓存命中率         
d:source hashing 将来自同一个用户的请求,始终转发到特定的路由器或防火墙(平均内网负载)         
2.动态调度方法:(dynamic scheduling)考虑后端连接状态         
a:LC (least-connect)最少连接,检查active和inactive,连接数(overhead)最少的接受请求         
b:WLC(weight least-connect)加权最小连接数(集群最好的算法)         
c:shortest expected delay (SED)最短期望延迟 ,不考虑非活动状态,在计算overhead之前,把非活动状态的总数加上1         
d:NQ(never query)只要有空闲的,不考虑算法的接受请求;         
e:LBLC(locality-based-least-connect:DH)支持权重(后面的是缓存服务器的)基于地址的最小连接数调度(Locality-Based Least-Connection) 将来自同一目的地址的请求分配给同一台RS如果这台服务器尚未满负荷,否则分配给连接数最小的RS,并以它为下一次分配的首先考虑;         
f:LBLCR (locality-based-least-connect with replication scheduling)是对LBLC的改进,对于某一目的地址,对应有一个RS子集。对此地址的请求,为它分配子集中连接数最小的RS;如果子集中所有的服务器均已满负荷,则从集群中选择一个连接数较小的服务器,将它加入到此子集并分配连接;若一定时间内,这个子集未被做任何修改,则将子集中负载最大的节点从子集删除;
  五:ipvsadm介绍:         
ipvs是内核空间模块,用户在LB负载均衡器上使用ipvsadm命令进行操作,基于不同模式的不同调度算法进行设置,然后实现不同的不同的负载措施:
  1.定义集群服务      
ipvsadm -A|-E -t|-u|-f VIP:PORT {tcp|udp|firewall mark} -s 调度算法,默认是wlc      
      -A 添加、-E 修改      
ipvsadm -D -t|-u VIP:PORT 删除定义的集群      
2.要为集群服务定义realserver      
ipvsadm -a|-e -t|-u VIP:port -r REALSERVER:port -g|-i|-m(模型) [-w weitht]      
      -a 添加、-e 修改、-w 权重、-d 删除
  ipvsadm -d -t|-u VIP:port -r REALSERVER:PORT      
      -C 清除规则、-R 恢复、-S 保存      
      其中模式中的-g|-i|-m分别用于dr|tun|nat      
3.查看      
ipvsadm    -ln
  案例一:LVS的nat模式:director使用linux主机。realserver1和realserver2搭建web服务器
  拓扑:
http://5493845.blog.运维网.com/attachment/201210/11/5493845_1349962299xbhF.png
  LB---linux主机配置:
  http://5493845.blog.运维网.com/attachment/201210/11/5493845_1349962301SdQL.png
  http://5493845.blog.运维网.com/attachment/201210/11/5493845_13499623025y9L.png
  http://5493845.blog.运维网.com/attachment/201210/11/5493845_1349962307hqgZ.png
  # mkdir /mnt/cdrom
  # mount /dev/cdrom /mnt/cdrom/
  # cd /mnt/cdrom/Cluster   #切换到Cluster仓库
  # vim /etc/yum.repos.d/rhel-debuginfo.repo      #编辑本地yum
  http://5493845.blog.运维网.com/attachment/201210/11/5493845_1349962309h2ET.png
  # grep -i ip_vs /boot/config-2.6.18-164.el5   #查看内核是否支持ipvs
  http://5493845.blog.运维网.com/attachment/201210/11/5493845_1349962314Eaqq.png
  # yum install ipvsadm –y      #安装ipvs的管理工具ipvsadm
  # ipvsadm -A -t 192.168.101.66:80 -s rr      #定义一个群集服务器,vip为192.168.101.66,由于后面realserver是web,所以监听80
  端口;-A表示添加,-t表示tcp,-s表示调度算法,rr表示调度算法轮询
  # ipvsadm -a -t 192.168.101.66:80 -r 192.168.2.100 -m    #定义一个realserver,-a表示添加,vip地址是192.168.101.66,-t表示
  tcp,-r表示realserver是192.168.2.100。-m表示采用的是nat模式
  # ipvsadm -a -t 192.168.101.66:80 -r 192.168.2.101 -m   #定义一个realserver,-a表示添加,vip地址是192.168.101.66,-t表示
  tcp,-r表示realserver是192.168.2.101。-m表示采用的是nat模式
  # service ipvsadm save    #保存ipvsadm的规则
  # vim /etc/sysconfig/ipvsadm       #规则保存在该文件中
  http://5493845.blog.运维网.com/attachment/201210/11/5493845_1349962316Ioqw.png
  # service ipvsadm start    #启动ipvsadm服务
  # ipvsadm –ln      #查看ipvsadm的规则详细信息
  http://5493845.blog.运维网.com/attachment/201210/11/5493845_1349962319Nvn8.png
  # vim /etc/sysctl.conf       #编辑该文件,打开数据包转发功能
  http://5493845.blog.运维网.com/attachment/201210/11/5493845_1349962320SRlt.png
  # sysctl –p      #使用该命令是刚才配置生效
  realserver1配置:
  http://5493845.blog.运维网.com/attachment/201210/11/5493845_1349962323UiKO.png
  http://5493845.blog.运维网.com/attachment/201210/11/5493845_134996232576SV.png
  # mkdir /mnt/cdrom
  # mount /dev/cdrom /mnt/cdrom/
  # cd /mnt/cdrom/Server/
  # rpm -ivh httpd-2.2.3-31.el5.i386.rpm       #安装httpd服务器
  # cd /var/www/html/
  # echo "web1">index.html       #创建网页
  # service httpd start    #启动httpd服务器
  realserver2配置:
  http://5493845.blog.运维网.com/attachment/201210/11/5493845_1349962327TRi9.png
  http://5493845.blog.运维网.com/attachment/201210/11/5493845_1349962329dGEe.png
  # mkdir /mnt/cdrom
  # mount /dev/cdrom /mnt/cdrom/
  # cd /mnt/cdrom/Server/
  # rpm -ivh httpd-2.2.3-31.el5.i386.rpm      #安装httpd服务器
  # cd /var/www/html/
  # echo "web2">index.html   #创建网页
  # service httpd start      #启动httpd服务
  测试:
  登录之后显示的是realserver1
  http://5493845.blog.运维网.com/attachment/201210/11/5493845_13499623310o6c.png
  刷新之后显示realserver2,表明使用的是轮询的方式
  http://5493845.blog.运维网.com/attachment/201210/11/5493845_13499623337UpR.png
  http://5493845.blog.运维网.com/attachment/201210/11/5493845_1349962339utvE.png
  为realserver加上权重:
  # ipvsadm –C       #将原来的规则删除
  # ipvsadm -A -t 192.168.101.66:80 -s wrr      #使用权重轮询方式wrr
  # ipvsadm -a -t 192.168.101.66:80 -r 192.168.2.100 -m -w 10      #-w表示权重
  # ipvsadm -a -t 192.168.101.66:80 -r 192.168.2.101 -m -w 5
  # service ipvsadmsave      #将规则保存
  # service ipvsadm restart       #重启服务
  http://5493845.blog.运维网.com/attachment/201210/11/5493845_1349962342pj6f.png
  定义的群集采用destination hashing方式:
  # ipvsadm -E -t 192.168.101.66:80 -s dh      #-E表示修改
  测试:
  http://5493845.blog.运维网.com/attachment/201210/11/5493845_1349962345XPBW.png
  http://5493845.blog.运维网.com/attachment/201210/11/5493845_1349962348OqC9.png
  案例二:LVS的dr模式:搭建两台realserver服务器,安装web服务,在另外一台存储服务器上存储要访问的网页,当用户访问
  LB时,将存储服务器上的网页挂载到realserver上。
  拓扑:
http://5493845.blog.运维网.com/attachment/201210/11/5493845_1349962351abHw.png
  realserver1配置:
  http://5493845.blog.运维网.com/attachment/201210/11/5493845_1349962353KehV.png
  # sysctl -a | grep arp      #查看内核参数,含有arp字符的
  http://5493845.blog.运维网.com/attachment/201210/11/5493845_13499623545nJH.png
  # echo "net.ipv4.conf.eth0.arp_announce = 2">> /etc/sysctl.conf   
  # echo "net.ipv4.conf.all.arp_announce = 2">> /etc/sysctl.conf
  # echo "net.ipv4.conf.eth0.arp_ignore = 1">> /etc/sysctl.conf
  # echo "net.ipv4.conf.all.arp_ignore = 1">> /etc/sysctl.conf
  # sysctl –p      #使新编辑的内核文件生效
  http://5493845.blog.运维网.com/attachment/201210/11/5493845_1349962355eheS.png
  http://5493845.blog.运维网.com/attachment/201210/11/5493845_1349962359OkWU.png
  http://5493845.blog.运维网.com/attachment/201210/11/5493845_1349962360y6eL.png
  # service network restart      
  # route add -host 192.168.145.101 dev lo:0       #添加一条路由,保证数据包返回时是通过vip地址192.168.145.101,接口lo:0
  # mkdir /mnt/cdrom      #新建挂载点
  # mount /dev/cdrom /mnt/cdrom/         #挂载光盘
  # cd /mnt/cdrom/Server/
  # rpm -ivh httpd-2.2.3-31.el5.i386.rpm      #安装httpd服务
  # service httpd start   #启动httpd服务器
  # chkconfig httpd on
  realserver2配置:
  http://5493845.blog.运维网.com/attachment/201210/11/5493845_1349962362BYbZ.png
  # echo "net.ipv4.conf.eth0.arp_announce = 2">> /etc/sysctl.conf
  # echo "net.ipv4.conf.all.arp_announce = 2">> /etc/sysctl.conf
  # echo "net.ipv4.conf.eth0.arp_ignore = 1">> /etc/sysctl.conf
  # echo "net.ipv4.conf.all.arp_ignore = 1">> /etc/sysctl.conf
  # sysctl –p      #使新编辑的内核文件生效
  http://5493845.blog.运维网.com/attachment/201210/11/5493845_1349962363UzDL.png
  http://5493845.blog.运维网.com/attachment/201210/11/5493845_1349962364r7v0.png
  http://5493845.blog.运维网.com/attachment/201210/11/5493845_13499623653dDk.png
  # service network restart
  # route add -host 192.168.145.101 dev lo:0       #添加一条路由,保证数据包返回时是通过vip地址192.168.145.101,接口lo:0
  # mkdir /mnt/cdrom      #新建挂载点
  # mount /dev/cdrom /mnt/cdrom/      #挂在光盘
  # cd /mnt/cdrom/Server/
  # rpm -ivh httpd-2.2.3-31.el5.i386.rpm       #安装httpd服务器
  # service httpd start       #启动httpd服务器
  # chkconfig httpd on
  LB---Linux主机配置:
  http://5493845.blog.运维网.com/attachment/201210/11/5493845_1349962367TPZF.png
  http://5493845.blog.运维网.com/attachment/201210/11/5493845_1349962363UzDL.png
  http://5493845.blog.运维网.com/attachment/201210/11/5493845_1349962364r7v0.png
  http://5493845.blog.运维网.com/attachment/201210/11/5493845_13499623687H1O.png
  # mkdir /mnt/cdrom
  # mount /dev/cdrom /mnt/cdrom/
  # cd /mnt/cdrom/Cluster          #切换到Cluster仓库中
  # rpm -ivh ipvsadm-1.24-10.i386.rpm      #安装ipvs的管理工具ipvsadm
  # ipvsadm -A -t 192.168.145.101:80 -s rr       #定义群集服务器,采用轮询方式rr
  # ipvsadm -a -t 192.168.145.101:80 -r 192.168.145.200 –g      #-g表示gateway,采用直连路由方式dr
  # ipvsadm -a -t 192.168.145.101:80 -r 192.168.145.201 –g      #-g表示gateway,采用直连路由方式dr
  # service ipvsadm save      #保存配置的规则
  # service ipvsadm start      #启动ipvsadm
  # chkconfig ipvsadm on   #设置开机自动启动
  # ipvsadm –ln         #查看规则
  http://5493845.blog.运维网.com/attachment/201210/11/5493845_1349962374GuoG.png
  配置存储服务器:
  http://5493845.blog.运维网.com/attachment/201210/11/5493845_1349962376gk27.png
  # service nfs start       #nfs服务默认已经安装过,在此直接启动即可
  # mkdir /public/
  # mkdir /private/
  # vim /etc/exports       #编辑共享清单exports,该文件默认是空文件
  http://5493845.blog.运维网.com/attachment/201210/11/5493845_1349962377Ftao.png
  # cd /public/
  # vim index.html
  http://5493845.blog.运维网.com/attachment/201210/11/5493845_1349962377uKYE.png
  # cd ..
  # cd /private/
  # vim index.html
  http://5493845.blog.运维网.com/attachment/201210/11/5493845_1349962377v2Ni.png
  # exportfs –rv       #将设置共享的文件导出
  http://5493845.blog.运维网.com/attachment/201210/11/5493845_1349962379iPVS.png
  将共享文件临时挂载到realserver上:
  将网页文件临时挂载到realserver1上:
  # showmount -e 192.168.145.202   #测试是否具有权限查看192.168.145.202服务器上的共享文件
  http://5493845.blog.运维网.com/attachment/201210/11/5493845_1349962380Escm.png
  # mount 192.168.145.202:/public /var/www/html/       #将/public目录挂载到默认的httpd根目录下
  http://5493845.blog.运维网.com/attachment/201210/11/5493845_134996238167Hh.png
  将网页文件临时挂载到realserver2上:
  # showmount -e 192.168.145.202   #测试是否具有权限查看192.168.145.202服务器上的共享文件
  http://5493845.blog.运维网.com/attachment/201210/11/5493845_1349962380Escm.png
  # mount 192.168.145.202:/private /var/www/html/       #将/private目录挂载到默认的httpd根目录下
  http://5493845.blog.运维网.com/attachment/201210/11/5493845_134996238167Hh.png
  测试能否访问挂载的页面:
  http://5493845.blog.运维网.com/attachment/201210/11/5493845_13499623830ABm.png
http://5493845.blog.运维网.com/attachment/201210/11/5493845_1349962388voio.png
  将共享文件临时开机自动挂载到realserver上:
  将网页文件开机自动挂载到realserver1上:
  # umount /var/www/html/   #将临时挂载卸载掉
  # vim /etc/fstab      #编辑开机自动挂载文件
http://5493845.blog.运维网.com/attachment/201210/11/5493845_13499623890Jrl.png
  # init 6      #重启系统
  将网页文件开机自动挂载到realserver2上:
  # umount /var/www/html/ #将临时挂载卸载掉
  # vim /etc/fstab #编辑开机自动挂载文件
http://5493845.blog.运维网.com/attachment/201210/11/5493845_1349962391VlBB.png
  # init 6       #重启系统
  测试能否访问到挂载的页面
http://5493845.blog.运维网.com/attachment/201210/11/5493845_1349962392eyS3.png
http://5493845.blog.运维网.com/attachment/201210/11/5493845_1349962394T1wu.png
  连接自动挂载:
  将网页文件连接自动挂载到realserver1上:
  # umount /var/www/html/
  # rpm -qa |grep auto      #查看与自动挂载相关的软件包
  http://5493845.blog.运维网.com/attachment/201210/11/5493845_1349962395eDy9.png
  # vim /etc/auto.master       #编译与自动挂载相关的配置文件
http://5493845.blog.运维网.com/attachment/201210/11/5493845_1349962396dhU0.png
  # cp -p /etc/auto.misc /etc/auto.nfs       #产生一个auto的主配置文件
  # vim /etc/auto.nfs       #编辑该文件
  http://5493845.blog.运维网.com/attachment/201210/11/5493845_1349962401f5BA.png
  # service autofs restart       #重启autofs服务
  # vim /etc/httpd/conf/httpd.conf   #编辑httpd主配置文件
http://5493845.blog.运维网.com/attachment/201210/11/5493845_1349962402Uqg6.png
  # service httpd restart   #重启httpd服务器
  将网页文件连接自动挂载到realserver2上:
  # umount /var/www/html/
  # rpm -qa |grep auto #查看与自动挂载相关的软件包
  http://5493845.blog.运维网.com/attachment/201210/11/5493845_1349962395eDy9.png
  # vim /etc/auto.master #编译与自动挂载相关的配置文件
http://5493845.blog.运维网.com/attachment/201210/11/5493845_1349962406bC0x.png
  # cp -p /etc/auto.misc /etc/auto.nfs #产生一个auto的主配置文件
  # vim /etc/auto.nfs
  http://5493845.blog.运维网.com/attachment/201210/11/5493845_1349962411ieFg.png
  # service autofs restart #重启autofs服务
  # vim /etc/httpd/conf/httpd.conf
http://5493845.blog.运维网.com/attachment/201210/11/5493845_1349962412vB9v.png
  # service httpd restart      #重启httpd服务器
  测试能否访问到挂载的页面:
  在realserver1上查看挂载情况:
  # mount #查看挂载的共享文件
  http://5493845.blog.运维网.com/attachment/201210/11/5493845_13499624148ZbC.png
http://5493845.blog.运维网.com/attachment/201210/11/5493845_1349962416ic5y.png
  # mount #查看挂载的共享文件
http://5493845.blog.运维网.com/attachment/201210/11/5493845_1349962421w0bS.png
  在realserver2上查看挂载情况:
  # mount #查看挂载的共享文件
  http://5493845.blog.运维网.com/attachment/201210/11/5493845_13499624148ZbC.png
http://5493845.blog.运维网.com/attachment/201210/11/5493845_1349962423RRTA.png
  # mount
http://blog.运维网.com/attachment/201210/213718379.png



页: [1]
查看完整版本: LVS的NAT模式+DR模式的存储挂载