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

[经验分享] lvs集群基础及lvs

[复制链接]

尚未签到

发表于 2019-1-3 11:12:06 | 显示全部楼层 |阅读模式
  集群基础知识点:

  集群类型:LB、HA、HP、DS

  LB:load balance,负载均衡集群,director:负载均衡器或者调度器,上游服务(upstream server),后端服务器称为real server;
  HA:high avalilability,高可用集群,评估高可用性能Availability = 平均无故障时间/(平均无故障时间+平均修复时间)
  HP:high performance 超级计算机类型
  LB集群的实现:硬件、软件(lvs: Linux Virtual Server、haproxy、nginx、ats (apache traffic server)、perlbal、
         基于工作的协议层次划分:
    传输层:(工作于内核)可以突破socket 可用端口的限制一共6W多个;lvs, haproxy (mode tcp)
    应用层:(用户空间):haproxy (mode http), nginx, ats, perlbal
  lvs的实现基于传输层:类型有四种nat、dr(direct routing)、tun、fullnat

  lvs-nat:多目标的DNAT:通过将请求报文的目标地址和目标端口修改为挑选出某RS的RIP和PORT来实现;
  (1) RIP和DIP应该使用私网地址,RS的网络应该指向DIP;
  (2) 请求和响应报文都要经由director转发;极高负载的场景中,Director可能会成为系统瓶颈;
  (3) 支持端口映射;
  (4) VS必须为Linux,RS可以是任意的OS;
  (5) RS的RIP与Director的DIP必须在同一IP网络;
  lvs-dr:direct routing通过修改请求报文的MAC地址进行转发;IP首部不会发生变化(源IP为CIP,目标IP始终为VIP);
  (1) 确保前端路由器将目标IP为VIP的请求报文一定会发送给Director;
  解决方案:
  静态绑定;在路由器上静态绑定VIP和director的Mac地址,禁止RS响应VIP的ARP请求;
      (a) arptables;
      (b) 修改各RS的内核参数,并把VIP配置在特定的接口上实现禁止其响应;
  (2) RS的RIP可以使用私有地址,也可以使用公网地址;
  (3) RS跟Director必须在同一物理网络中;
  (4) 请求报文必须由Director调度,但响应报文必须不能经由Director;
  (5) 不支持端口映射;
  (6) 各RS可以使用大多数的OS;
  lvs-tun:ip tunneling,ip隧道;转发方式:不修改请求报文的IP首部(源IP为CIP,目标IP为VIP),而是在原有的IP首部这外再次封装一个IP首部(源IP为DIP,目标IP为RIP);
  
  (1) RIP,DIP,VIP全得是公网地址;
  (2) RS的网关不能也不可能指向DIP;
  (3) 请求报文经由Director调度,但响应报文将直接发给CIP;
  (4) 不支持端口映射;
  (5) RS的OS必须支持IP隧道功能;
  lvs-fullnat:(非标准模型)通过同时修改请求报文的源IP地址(cip-->dip)和目标IP地址(vip --> rip)实现转发;
  (1) VIP是公网地址;RIP和DIP是私网地址,且可以不在同一IP网络中,但需要通过路由互相通信;
  (2) RS收到的请求报文的源IP为DIP,因此其响应报文将发送给DIP;
  (3) 请求报文和响应报文都必须经由director;
  (4) 支持端口映射;
  (5) RS可使用任意OS;
  集群服务管理命令:需要检查内核是否支持ipvs:grep -A 11 -i 'IPVS' /boot/config-3.10.0-327.el7.x86_64
  安装服务程序:yum install -y ipvsadm
  ipvsadm命令的用法: (大写用于服务,小写用于RS)
  管理集群服务命令:
  ipvsadm  -A|E  -t|u|f  service-address  [-s scheduler]  [-p [timeout]]
  ipvsadm  -D  -t|u|f service-address
  -A:添加
  -E:修改
  -D:删除
  service-address:
  -t, tcp, vip:port
  -u, udp, vip:port
  -f, fwm, MARK  Firewalls mask
  -s scheduler:默认为wlc;加权最少连接
  管理real server命令:
  ipvsadm -a|e  -t|u|f service-address -r server-address [-g|i|m] [-w weight]
  ipvsadm -d -t|u|f service-address -r server-address
  -a:添加一个RS
  -e:修改一个RS  修改属性,修改IP地址要先删除再添加
  -d:删除一个RS  
  -r server-address:RS地址 rip[:port]
  -g:GATEWAY (默认) dr模型
  -i: IPIP             tun隧道模型
  -m: MASQUERADE       nat模型
  查看命令:
  ipvsadm -L|l [options]
  -n:numeric,数字格式显示地址和端口,名称解析
  -c:connection,显示ipvs连接;
  --stats:统计数据;
  --rate:速率
  --exact:精确值
  清空规则:ipvsadm  -C
  规则保存和重载:
  保存:ipvsadm -S  > /PATH/TO/SOME_RULE_FILE
  ipvsadm-save  > /PATH/TO/SOME_RULE_FILE
  若重启生效:保存至默认路径/etc/sysconfig/ipvsadm
  ipvsadm-save > /etc/sysconfig/ipvsadm
  开机生效:systemctl enable ipvsadm
  重载:ipvsadm  -R < /PATH/FROM/SOME_RULE_FILE
           ipvsadm-restore < /PATH/FROM/SOME_RULE_FILE
  lvs-nat
  实验环境:centos7x86虚拟机
  nat模型

  搭建环境配置
  1、director核心转发功能设置,打开核心转发功能:两个网卡间,若永久有效编辑配置文件
  vim /etc/sysctl.d/*conf 添加net.iPv4.ip_forward=1
  确保RS网关指向director内网地址(内网基于host-only通信),测试是否能通信:


  2、配置RSweb服务启动

  3、director请求服务是否正常

  4、director添加集群服务规则

  5、lvs集群实现调度的效果

  总结要点:
  1.DIP与RIP要在同一网段,RIP网关指向dip
  2.支持端口映射
  3.是否用到共享存储  取决于业务要求:
  lvs-dr
  在各主机director,RS均需要配置VIP,因此,要解决地址冲突问题,目标是让各个RS上的VIP不可见,

  仅用接收目标地址为VIP报文,同时又可以作为响应报文的源地址;
  方案:1.在前端的网关接口上静态绑定
            2.在RS上使用arptables
            3.在各RS上修改内核参数,来限制arp响应和通告;
  限制响应级别:arp_ignore
         0:使用本地任意接口上配置地址进行响应;
         1:仅在请求的目标IP配置在本地主机的接入报文的接口上时,才给予响应;
  限制通告级别:arp_announce
  0:默认,把本机所有接口向每一个接口通告;
  1:尽量避免向本网络通告
  2:总是避免;
  模型:

  调整网络director、rs在同一网络192.168.1,配置IP、vip
  配置director添加vip方法:
  1.IP addr add命令实现

  2.ifconfig interface:alias ip netmask方法:

  3.rs-vip配置并设置内核参数



  4.给director添加集群服务规则

  5.通过本地访问服务:


  设计要点:
  (1):各主机一个接口即可,但需要在同一网络
  (2):rip的网关不能指向dip;rip和dip通常应该在同一 网段,但二者未必会与VIP在同一网段;
  (3):各rs需先设置内核参数,在设置VIP和路由
  fwm:在netfilter上实现给报文打记;mangle 需要在PREROUTNG链上打标,mangle可用于所有的链上
  ipvsadm -A|E -t|u|f service-address [-s scheduler]  [-p [timeout]]
  -t, -u: service-address
  ip:port
  -f: service-address
  firewall mark $
  基于fwm定义集群服务的步骤:

  (1) 打标
  # iptables -t mangle -A PREROUTING -d $vip -p $protocol --dport $serviceport -j MARK --set-mark #
  mangle:
  target: MARK
  --set-mark value[/mask]16进制整数
  可以实现多个端口标记:-m multiport
  (2) 定义集群服务
  # ipvsadm -A -f # [-s scheduler] [-p [timeout]] 默认300s
  (3) 定义real server
  lvs persistence:持久连接
  功能:无论ipvs使用何种scheduler,其都能够实现在指定时间范围内始终将来自同一个ip地址的请求发往同一个RS;此功能是通过lvs持久连接模板实现,其与调度方法无关;
  ipvs持久连接的模式:
  每端口持久(PPC):per port,一个server可以有多个集群服务指向的端口不一80,8080,只对单个服务集群持久
  每客户端持久(PCC):定义tcp或udp协议的0号端口为集群服务端口;对所有服务进行持久,无论访问任何访问,都是同一台服务主机
  每FWM持久(PFWMC):只对同一防火墙标记进行持久如http, https绑定
  eg:pfwmc   https ca
  iptables -t mangle -A PREROUTING -d 192.168.1.111 -p tcp -m multiport --dport 80,443 -j MARK --set-mark 10
  ipvsadm -A -f 10 -s rr -p
  ipvsadm -a -f 10 -r 192.168.1.201 -g
  ipvsadm -a -f 10 -r 192.168.1.202 -g
  pcc: 没有添加iptables打标记
  ipvsadm -A -t 192.168.1.200:0 -s rr -p
  ipvsadm -a -t 192.168.1.200:0 -r 192.168.1.201 -g -w 1
  ipvsadm -a -t 192.168.1.200:0 -r 192.168.1.202 -g -w 2




运维网声明 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-658936-1-1.html 上篇帖子: LVS NAT 下篇帖子: lvs的路由模式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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