lvs分布式

LVS架构从逻辑上可分为调度层(Director)、server集群层(Real server)和共享存储层

LVS可分为三种工作模式:

NAT(调度器将请求的目标ip即vip地址改为Real server的ip, 返回的数据包也经过调度器,调度器再把源地址修改为vip)依赖防火墙

TUN(调度器将请求来的数据包封装加密通过ip隧道转发到后端的real server上,而real server会直接把数据返回给客户端,而不再经过调度器)

DR(调度器将请求来的数据包的目标mac地址改为real server的mac地址,返回的时候也不经过调度器,直接返回给客户端,)不依赖防火墙 ,直接通过外网把数据返回给客户

三种IP:DIP(driector ip), VIP(virtual ip), RIP(Real IP). 其中DIP, RIP 为同一

个网段,并且为私网IP, vip为对外提供服务的ip,Director, Real server上都设置

vip

LVS的调度算法:轮叫调度(Round Robin)(简称rr) ,加权轮叫(Weighted Round

Robin)(简称wrr),最少链接(least connection)(LC),加权最少链接(Weighted Least

Connections)(WLC) 等等

LVS/DR模式 配置

三台服务器一台作为director, 两台作为real server (vi /etc/sysconfig/network 改主机名)

以下eth0 为公网IP, vip 脚本自动生成(110取数随机)

dir  eth0 192.168.239.140    vip eth0:0:   192.168.239.110

real1  eth0 192.168.239.141    vip lo:0:   192.168.239.110

real2   eth0 192.168.239.142   vip lo:0:   192.168.239.110

两个real server 上都安装httpd: yum install -y nginx

yum install -y epel-release   (没安装依赖包,不能启动,或者参照yum安装nginx)

Direcotr上 vim /usr/local/sbin/lvs_dr.sh //增加

#! /bin/bash

echo 1 > /proc/sys/net/ipv4/ip_forward

ipv=/sbin/ipvsadm

vip=192.168.239.110

rs1=192.168.239.141

rs2=192.168.239.142

ifconfig eth0:0 down     如果有修改脚本,第二次使用脚本才加上这个命令,

ifconfig eth0:0 $vip broadcast $vip netmask 255.255.255.255 up

route add -host $vip dev eth0:0

$ipv -C

$ipv -A -t $vip:80 -s wrr

$ipv -a -t $vip:80 -r $rs1:80 -g -w 1

$ipv -a -t $vip:80 -r $rs2:80 -g -w 1

脚本部分意思

echo 1 > /proc/sys/net/ipv4/ip_forward    转发

ifconfig eth0:0 $vip broadcast $vip netmask 255.255.255.255 up   绑定vip

route add -host $vip dev eth0:0    增加一个vip的路由

$ipv -C           清空规则,脚本下面三行是制定执行规则

wrr    算法    -g 表示dr模式   -w 1   权重(不加wrr,权重不生效)

两台real上:vim /usr/local/sbin/lvs_dr_rs.sh

#! /bin/bash

vip=192.168.239.110

ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up

route add -host $vip lo:0

echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore

echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce

echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore

echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce

启动2台realnginx  service nginx start

director   sh /usr/local/sbin/lvs_dr.sh

real1     sh /usr/local/sbin/lvs_dr_rs.sh

real2     sh /usr/local/sbin/lvs_dr_rs.sh

3台ifconfig  real1/2会出现 lo:0    IP 192.168.239.110

director 会出现 eth0:0     IP 192.168.239.110

director   ipvsadm -ln 可以查看已经添加规则

Windows下浏览器测试访问   192.168.239.110   windows效果不佳可以linux测试

linux系统可以使用另一台机器测试  curl 192.168.239.110  (分配1次real1,1次real2)

如果需要修改脚本(分配权重或者其他),再执行脚本时候会报错,因为当前面执行过脚本,有些java培训机构是不讲这个的,eth0已经生成了,所以Direcotr上 vim /usr/local/sbin/lvs_dr.sh //增加红色命令

再执行   sh /usr/local/sbin/lvs_dr.sh

director   ipvsadm -ln 可以查看规则   再curl测试规则是否生效

时间: 2024-12-11 05:02:50

lvs分布式的相关文章

搞懂分布式技术10:LVS实现负载均衡的原理与实践

搞懂分布式技术10:LVS实现负载均衡的原理与实践 浅析负载均衡及LVS实现 原创: fireflyc 写程序的康德 2017-09-19 负载均衡 负载均衡(Load Balance,缩写LB)是一种网络技术,它在多个备选资源中做资源分配,以达到选择最优.这里有三个关键字: 网络技术,LB要解决的问题本质上是网络的问题,所以它实际上就是通过修改数据包中MAC地址.IP地址字段来实现数据包的"中转": 资源,这里的资源不仅仅是计算机也可以是交换机.存储设备等: 最优,它则是针对业务而言

分布式与集群的区别

转自:http://sctrack.360doc1.net/track/click/eyJ1c2VyX2lkIjogMzkwMjIsICJ0YXNrX2lkIjogIiIsICJlbWFpbF9pZCI6ICIxNDUyNzgzODgwNDI4XzM5MDIyXzI5NTM3XzE0OTkuc2MtMTBfMTBfMTI3XzUxLWluYm91bmQwJGN4emR5QHZpcC5xcS5jb20iLCAic2lnbiI6ICI2NjgyOTU1Zjg1YTZiZWNkZTNjMWNjYjlh

LVS+Keepalived实现负载均衡

一.负载均衡:必不可少的基础手段 1.1 找更多的牛来拉车吧 当前大多数的互联网系统都使用了服务器集群技术,集群即将相同服务部署在多台服务器上构成一个集群整体对外提供服务,这些集群可以是Web应用服务器集群,也可以是数据库服务器集群,还可以是分布式缓存服务器集群等等. 古人有云:当一头牛拉不动车的时候,不要去寻找一头更强壮的牛,而是用两头牛来拉车. 在实际应用中,在Web服务器集群之前总会有一台负载均衡服务器,负载均衡设备的任务就是作为Web服务器流量的入口,挑选最合适的一台Web服务器,将客户

CentOS7安装gluster分布式文件系统(取名glustervol1),附CentOS7安装git

虚拟机:192.168.2.21 虚拟机:192.168.2.22 首先,把两个虚拟的防火墙关闭,再次根据 上一篇文档:  CentOS7配置本地镜像及安装gluster服务,在两台虚拟机安装gluster. [停止防火墙] sudo systemctl stop firewalld.service      --停止防火墙 sudo systemctl disable firewalld.service   --开机关闭防火墙 [安装apache httpd服务] cat /etc/yum.r

亿级Web系统搭建——单机到分布式集群

原文转自:http://kb.cnblogs.com/page/509402/ 当一个Web系统从日访问量10万逐步增长到1000万,甚至超过1亿的过程中,Web系统承受的压力会越来越大,在这个过程中,我们会遇到很多的问题.为了解决这些性能压力带来问题,我们需要在Web系统架构层面搭建多个层次的缓存机制.在不同的压力阶段,我们会遇到不同的问题,通过搭建不同的服务和架构来解决. Web负载均衡 Web负载均衡(Load Balancing),简单地说就是给我们的服务器集群分配“工作任务”,而采用恰

分布式MySQL数据库TDSQL架构分析

摘要:腾讯计费平台部为了解决基于内存的NoSQL解决方式HOLD平台在应对多种业务接入时的不足.结合团队在MySQL领域多年应用和优化经验,终于在MySQL存储引擎基础上,打造一套分布式SQL系统TDSQL.本文是对该系统架构分析. 腾讯计费平台部托管着公司90%以上的虚拟账户.如QB.Q点.包月服务.游戏的二级账户等,为了保证能顺畅支撑公司各大业务的实时在线交易.而且在各种灾难场景下数据是一致而且可用的,对系统的可用性.一致性切换要求很高,因此计费团队历来都很重视高一致性存储系统的建设. 到眼

LVS项目介绍

章文嵩 ([email protected]) 转自LVS官方参考资料 2002 年 3 月 本文介绍了Linux服务器集群系统--LVS(Linux Virtual Server)项目的产生背景和目标,并描述了LVS服务器集群框架及目前提供的软件,列举LVS集群系统的特点和一些实际应用,最后,本文谈论了LVS项目的开发进展和开发感触. 1. 背景 当今计算机技术已进入以网络为中心的计算时期.由于客户/服务器模型的简单性.易管理性和易维护性,客户/服务器计算模式在网上被大量采用.在九十年代中 期

LVS集群的负载调度

章文嵩 ([email protected]) 转自LVS官方资料 2002 年 5 月 本文主要讲述了LVS集群的IP负载均衡软件IPVS在内核中实现的各种连接调度算法.针对请求的服务时间变化很大,给出一个动态反馈负载均衡算法,它结合内核中的加权连接调度算法,根据动态反馈回来的负载信息来调整服务器的权值,来进一步避免服务器间的负载不平衡. 1. 前言 在上一篇文章中,我们主要讲述了LVS集群中实现的三种IP负载均衡技术,它们主要解决系统的可伸缩性和透明性问题,如何通过负载调度器将请求高 效地分

LVS集群中的IP负载均衡技术

章文嵩 ([email protected]) 转自LVS官方参考资料 2002 年 4 月 本文在分析服务器集群实现虚拟网络服务的相关技术上,详细描述了LVS集群中实现的三种IP负载均衡技术(VS/NAT.VS/TUN和VS/DR)的工作原理,以及它们的优缺点. 1.前言在 前面文章中,讲述了可伸缩网络服务的几种结构,它们都需要一个前端的负载调度器(或者多个进行主从备份).我们先分析实现虚拟网络服务的主要技术,指出 IP负载均衡技术是在负载调度器的实现技术中效率最高的.在已有的IP负载均衡技术