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

[经验分享] 集群理论和部分LVS

[复制链接]

尚未签到

发表于 2019-1-3 07:09:14 | 显示全部楼层 |阅读模式
集群就是一群机器,按照一定的组合,来实现负载均衡、高可用、高性能
的一群机器,所以集群就分为三种:
1.LB:Load balancing 负载均衡集群
2.HA:High availability 高可用性集群
3.HP:High performance 高性能集群
目前,提高服务器性能按照大的分类,可以有两种
1、scale on向上扩展,就是使用更好的服务器的组件来替代现有的服务器的组件,
如使用多颗cpu,更大的内存,但是这样会提高
成本。
2、scale out 向外发展,这也是集群的方式。
各种集群的解决方案
LB:
lvs *
haproxy
F5 (硬件)
HA:
heartbeat *
corosync+openais:RHCS
ultramokey
keepalive *
HP:
bowerfull
一、LB负载均衡集群
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群。
当用户的请求发往虚拟服务器,LB根据设定的包转发策略和负载均衡调度算法将用户请求转发给RS。RS再将用户请求结果返回给用户。同请求包一样,应答包的返回方式也与包转发策略有关。
lvs的工作模式有三种:
  1.net(LVS-NET)
   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提供的功能:
1.higher throughput
2.redundancy
3.adaptability
lvs常见的命名机制:
VIP(virtual ip)虚拟ip地址
RIP(real ip)后端真正提供接点的ip
DIP(Director‘s ip)及负载均衡器(Loader balance,LB)上连接D/RIP的地址
CIP(custom ip)用户请求的ip
lvs LB是一个L4转发,因为他是根据用户请求的服务不同,提供转发的,所以他是使用四层的端口进行转发的,对用户来说是透明的。

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)考虑后端连接状态
   1.LC (least-connect)最少连接,检查active和inactive,连接数(overhead)最少的接受请求
   2.WLC(weight least-connect)加权最小连接数(集群最好的算法)
   3.shortest expected delay (SED)最短期望延迟 ,不考虑非活动状态,在计算overhead之前,把非活动状态的总数加上1
   4.NQ(never query)只要有空闲的,不考虑算法的接受请求;
   5.LBLC(locality-based-least-connect:DH)支持权重(后面的是缓存服务器的)基于地址的最小连接数调度(Locality-Based Least-Connection) 将来自同一目的地址的请求分配给同一台RS如果这台服务器尚未满负荷,否则分配给连接数最小的RS,并以它为下一次分配的首先考虑;
   6.LBLCR (locality-based-least-connect with replication scheduling)是对LBLC的改进,对于某一目的地址,对应有一个RS子集。对此地址的请求,为它分配子集中连接数最小的RS;如果子集中所有的服务器均已满负荷,则从集群中选择一个连接数较小的服务器,将它加入到此子集并分配连接;若一定时间内,这个子集未被做任何修改,则将子集中负载最大的节点从子集删除;
lvs:
ipvsadm用户空间的命令
ipvs是内核空间模块
用户在LB负载均衡器上使用ipvsadm命令进行操作,基于不同模式的不同调度算法进行设置,然后实现不同的不同的负载措施:
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
       -l
       -L
       -n 数字的方式来显示地址
       --stats显示统计的数据信息
       --rate 显示统计的速率

接下来就要使用实验来实现LVS的三种工作模式和10种算法:
1.LVS-NAT
拓扑如下图:

LB负载均衡器上的配置
#yum install ipvsadm
#ifconfig eth0 192.168.1.108/24
#ifconfig eth1 10.1.1.1/8
#echo 1 >/proc/sys/net/ipv4/ip_forward
#ipvsadm -A -t 192.168.1.108:80 -s rr
#ipvsadm -a -t 192.168.1.108:80 -r 10.1.1.2:80 -m
#ipvsadm -a -t 192.168.1.108:80 -r 10.1.1.3:80 -m

RealServer1上的配置
#yum install httpd mysql-server php php-mysql php-mbstring
#service mysqld start
#echo "RealServer1" >/var/www/html/index.html
#server httpd start
#ifconfig eth0 10.1.1.2/8
#route add default gw 10.1.1.1

RealServer2上的配置
#yum install httpd mysql-server php php-mysql php-mbstring
#service mysqld start
#echo "RealServer2" >/var/www/html/index.html
#server httpd start
#ifconfig eth0 10.1.1.3/8
#route add default gw 10.1.1.1

测试:
然后使用自己的主机进行测试:
在浏览器中输入http://192.168.1.108然后不断的刷新页面,可以看到这时候会出现不同的页面的,而且是轮循这出现
(算法是自己选择的,不同的算法,会导致服务器的响应不同)
ok,这个实验就完成了。

LVS-DR
拓扑如下所示:

1.在LB负载均衡器上做的配置如下:
  LB负载均衡器上的配置:
  DIP配置在接口上,VIP配置在接口别名
  #ifconfig eth0 172.16.100.10/16
  #ifconfig eth0:0 172.16.100.1 broadcast 172.16.100.1 netmask 255.255.255.255 up
  #route -host 172.16.100.1 dev eth0:0
  #echo 1 > /proc/sys/net/ipv4/ip_forward
  定义集群的服务:
  #ipvsadm -A -t 172.16.100.1:80 -s rr
  #ipvsadm -a -t 172.16.100.1:80 -r 172.16.100.11:80 -g
  #ipvsadm -a -t 172.16.100.1:80 -r 172.16.100.12:80 -g
  
2.RealServer1上的配置:
  RIP 要配置在接口上,VIP配置在lo的别名上
  定义内核参数,禁止响应对应VIP的ARP的广播请求
  #echo 1 > /proc/sys/net/ipv4/conf/lo/arp_igonre
  #echo 1 > /proc/sys/net/ipv4/conf/all/arp_igonre
  #echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
  #echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
  配置RIP&&VIP
  #ifconfig eth0 172.16.100.11/16
  #ifconfig lo:0 172.16.100.1 broadcast 172.16.100.1 netmask 255.255.255.255 up
  #route add -host 172.16.100.1 dev lo:0
  #yum install php httpd mysql-server php-mysql php-mbstring
  #service httpd start
  #service mysqld start
  
3.RealServer1上的配置:
  RIP 要配置在接口上,VIP配置在lo的别名上
  定义内核参数,禁止响应对应VIP的ARP的广播请求
  #echo 1 > /proc/sys/net/ipv4/conf/lo/arp_igonre
  #echo 1 > /proc/sys/net/ipv4/conf/all/arp_igonre
  #echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
  #echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
  配置RIP&&VIP
  #ifconfig eth0 172.16.100.12/16
  #ifconfig lo:0 172.16.100.1 broadcast 172.16.100.1 netmask 255.255.255.255 up
  #route add -host 172.16.100.1 dev lo:0
  #yum install php httpd mysql-server php-mysql php-mbstring
  #service httpd start
  #service mysqld start
  
  4.测试OK了!




运维网声明 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.iyunv.com/thread-658764-1-1.html 上篇帖子: 一个公网地址部署LVS/DR模式 下篇帖子: LVS_DR
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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