LVS负载均衡集群服务搭建详解(二)

lvs-nat模型构建

1.lvs-nat模型示意图
本次构建的lvs-nat模型的示意图如下,其中所有的服务器和测试客户端均使用VMware虚拟机模拟,所使用的CentOS 7
VS内核都支持ipvs功能,且安装ipvsadm控制书写lvs规则工具。
RS端两台服务器为httpd服务器做请求的负载均衡。
注意:
1) 客户端可以使用Windows上的浏览器,会后缓存影响结果,所以采用CentOS上的curl命令请求http协议显示更加直观
2) DIP上不能配置iptables规则

2.VS网卡配置
(1)增加网卡
在"虚拟机设置"中增加一个网络适配器设备,并将其自定义特定网络为VMnet2模式,此处为了模拟负载均衡服务器的两张网卡处于不同网段

(2)配置VS两张网卡的IP地址

[[email protected] ~]# nmtui # CentOS 7 文本图形界面配置网卡命令 [[email protected] ~]# systemctl start network.service 


注意:
网络适配器1(172.16.249.57)模拟为外网网卡,网络适配器2(192.168.100.1)模拟为内网,且该网卡的Ip地址要和RS服务器得ip在同一网段,DIP作为RIP的网络调度(网关),无需配置GATEWAY

[[email protected]~]# ifconfig 

3.RS网卡配置
此处使用两台CentOS 7虚拟机作为负载均衡后端真实响应主机,安装RPM包格式httpd服务,并启动服务。nmtui命令配置网卡信息,RS1的IP:192.168.100.2,RS2的IP:192.168.100.3,RIP和DIP在同一网段,虚拟机网卡和DIP同时匹配值为VMnet2模式,且两台RS服务器主机网关指向DIP:192.168.100.1

[[email protected]~]# yum install -y httpd [[email protected] ~]# systemctl start httpd.service 

注意:安装完成后在各httpd服务器上配置测试页面,/var/www/html/index.html.

[[email protected] ~]# nmtui # 配置方法同上,此处省略 … ... [[email protected] ~]# systemctl start network.service [[email protected]~]# ifconfig 

4.测试所有主机是否能够通信
用ping命令测试各节点的通信,例如RIP1和VIP、DIP、RIP2之间是否能够通信

[[email protected] ~]# ping IPADDR 

5.VS主机:核心转发和安装ipvsadm
(1)安装ipvsadm组件

[[email protected] ~]# yum install -y ipvsadm

(2)启动网卡间核心转发功能

[[email protected] ~]# sysctl -w net.ipv4.ip_forward=1 [[email protected]~]# cat /proc/sys/net/ipv4/ip_forward

6.VS主机:定义配置lvs-nat服务(此处采用rr算法)
(1)定义ipvsadm负载均衡集群规则,并查看
此处定义DIP是以-s指定为rr算法进行轮询调度,-m指定模式为lvs-nat,配置命令如下:

[[email protected]~]# ipvsadm -A -t 172.16.249.57:80 -s rr [[email protected]~]# ipvsadm -a -t 172.16.249.57:80 -r 192.168.100.2:80 -m [[email protected]~]# ipvsadm -a -t 172.16.249.57:80 -r 192.168.100.3:80 -m [[email protected]~]# ipvsadm -L -n 

(2)Client客户机测试
在客户端主机上使用curl命令对VIP发起请求,负载均衡服务器会将请求按照rr算法依次将请求调度给不同的主机进行处理,依次请求给分发给192.168.100.2和192.168.100.3主机响应。

[[email protected]~]# curl http://172.16.249.57

7.VS主机:定义配置lvs-nat服务(此处采用wrr算法)
(1)定义ipvsadm负载均衡集群规则,并查看
此处将在上面lvs-nat的rr的基础上进行修改,改成wrr加权轮询算法;将192.168.100.2的权重设置为1,192.168.100.3的权重设置为3。

[[email protected]~]# ipvsadm -E -t 172.16.249.57:80 -s wrr [[email protected]~]# ipvsadm -e -t 172.16.249.57:80 -r 192.168.100.2 -w 1 -m [[email protected]~]# ipvsadm -e -t 172.16.249.57:80 -r 192.168.100.3 -w 1 -m [[email protected]~]# ipvsadm -L -n 

(2)Client客户机测试
在客户端主机用curl发起请求,负载均衡主机VS会将其按照权重大小转发给各个主机,四个请求有三个发给了192.168.100.3请求响应,一个发给了192.168.100.2主机处理。并以此算法做轮询负载请求

[[email protected]~]# curl http://172.16.249.57

lvs-dr模型构建

1.lvs-dr模型示意图
三台主机为虚拟机CentOS 7,每台主机仅有一块网卡,且使用桥接方式都指向外部网络的网关172.16.100.1

2.配置VS和RS服务器的VIP
此处的VIP均已别名的形式配置在往卡上,VS是配置在对外通信的DIP的网卡上;RS配置在lo本地回环网卡
注意:此时配置的VIP的子网掩码必须为255.255.255.255,广播地址为自己本身

VS:[[email protected]~]# ifconfig eno16777736:0 172.16.50.50 netmask 255.255.255.255 broadcast172.16.50.50 up RS:[[email protected]~]# ifconfig lo:0 172.16.50.50 netmask 255.255.255.255broadcast 172.16.50.50 up 

3.RS服务器上配置路由

[[email protected]~]# route add -host 172.16.50.50 dev lo:0 

4.RS服务器配置APR内核参数修改

[[email protected]~]# ll /proc/sys/net/ipv4/conf


(1)ARP响应行为和ARP解析行为内核参数:
1)arp_annouce定义通告级别
0:默认级别,将本地的任何接口上的配置的地址都在网络中通告
1:尽量避免向本主机上的其他网卡进行网络通信,特殊情况下其他接口也可以
2:总是使用最佳网络地址接口(仅使用定义的网卡接口在同网络通信)
2)arp_ignore定义响应级别(0-8九个级别),响应时忽略方式
0:都全都响应
1:只对从本接口进入的请求响应,且本接口地址是个网络地址
… …
注释:一般使用arp_annouce=2,arp_ignore=1

(2)配置各RS主机参数
注意:all必须配置、eno16777736(本地)和lo两个可以同时全部配置或者配置其中一个
RealServer内核参数:

#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/INTERFACE/arp_ignore # echo 2 > /proc/sys/net/ipv4/conf/INTERFACE/arp_announce 

注意:INTERFACE为你的物理接口;此处网卡接口指的是eno16777736和lo

5.VS主机:定义配置lvs-dr模式(此处采用rr算法)
(1)配置查看

[[email protected]~]# ipvsadm -A -t 172.16.50.50:80 -s rr [[email protected]~]# ipvsadm -a -t 172.16.50.50:80 -r 172.16.200.10 -g [[email protected]~]# ipvsadm -a -t 172.16.50.50:80 -r 172.16.200.11 -g [[email protected]~]# ipvsadm -L -n 

(2)测试

[[email protected]~]# curl http://172.16.50.50 

因为基于rr算法调度,依次分发给RS主机

通过防火墙标记来定义lvs

1.FWM防火墙标记功能
防火墙标记可以实现多个集群服务绑定为同一个,实现统一调度;将共享一组RS的集群服务统一进行定义
FWM基于iptables的mangle表实现防护墙标记功能,定义标记做策略路由

2.FWM定义集群的方式
(1)在director上netfilter的mangle表的PREROUTING定义用于"打标"的规则

[[email protected]~]#iptables -t mangle -A PREROUTING -d $vip -p $protocol --dport $port -j MARK--set-mark #

$vip:VIP地址
$protocol:协议
$port:协议端口

(2)基于FWM定义集群服务:

[[email protected]~]#ipvsadm -A -f # -s scheduler

3.实例演示

[[email protected]~]# iptables -t mangle -A PREROUTING -d 172.16.50.50 -p tcp --dport 80 -j MARK--set-mark 5 [[email protected]~]# ipvsadm -A -f 5 -s rr [[email protected]~]# ipvsadm -a -f 5 -r 172.16.200.10 -g [[email protected]~]# ipvsadm -a -f 5 -r 172.16.200.11 -g 

LVS持久连接功能:lvs persistence

1.lvs persistence功能
无论ipvs使用何种scheduler,其都能够实现在指定时间范围内始终将来自同一个ip地址的请求发往同一个RS;实现方式和lvs调度的十种算法无关,通过lvs持久连接模板(hash表)实现,当超过自定义的可持节连接时长候再根据LVS算法本身进行调度。
ipvsadm命令中-p选项实现,在-p后不指定具体数字(单位:秒),默认为300,到时候会自动延长2分钟,对于web本身就是15秒

2.模式
(1)每端口持久(PPC)
客户端对同一服务端口发起请求,会基于该服务的端口实现请求在一段时间内对同一RS服务器持久连接;
例如:有两台主机做为RS服务器做http和hssh的两种服务的集群,仅http做每端口持久,Client请求会实现绑定在,但是22号端口请求不会绑定在同一台RS
(2)每客户端持久(PCC):定义tcp或udp协议的0号端口为集群服务端口
director会将用户的任何请求都识别为集群服务,并向RS进行调度;同一客户端的请求任何端口都发往同一台第一次选定的RS服务器
(3)每防火墙标记持久(PFWMC)
将两个或两个以上服务通过防火墙打标绑定在一起,这些服务的请求实现同时定向与同一台RS服务器,服务绑定同一RS
实例:
lvs-dr模式下以rr算法绑定http和https服务

[[email protected]~]# iptables -t mangle -A PREROUTING -d 172.16.100.9 -p tcp --dport 80 -j MARK--set-mark 99 [[email protected]~]# iptables -t mangle -A PREROUTING -d 172.16.100.9 -p tcp --dport 443 -j MARK--set-mark 99 [[email protected]~]# ipvsadm -A -f 99 -s rr -p [[email protected]~]# ipvsadm -a -f 99 -r 172.16.100.68 -g [[email protected]~]# ipvsadm -a -f 99 -r 172.16.100.69 -g 

附录:LVS-DR类型RS脚本示例

#!/bin/bash # vip=172.16.50.50 interface="lo:0" case$1 in start) echo1 > /proc/sys/net/ipv4/conf/all/arp_ignore echo1 > /proc/sys/net/ipv4/conf/lo/arp_ignore echo2 > /proc/sys/net/ipv4/conf/all/arp_announce echo2 > /proc/sys/net/ipv4/conf/lo/arp_announce ifconfig$interface $vip broadcast $vip netmask 255.255.255.255 up routeadd -host $vip dev $interface ;; stop) echo0 > /proc/sys/net/ipv4/conf/all/arp_ignore echo0 > /proc/sys/net/ipv4/conf/lo/arp_ignore echo0 > /proc/sys/net/ipv4/conf/all/arp_announce echo0 > /proc/sys/net/ipv4/conf/lo/arp_announce ifconfig$interface down ;; status) ififconfig lo:0 |grep $vip &> /dev/null; then echo"ipvs is running." else echo"ipvs is stopped." fi ;; *) echo"Usage: `basename $0` {start|stop|status}" exit1 esac

本文转载自:http://www.linuxprobe.com/lvs-load-balancing...service-2.html

更多Linux干货请访问:http://www.linuxprobe.com/

时间: 2024-12-25 13:13:27

LVS负载均衡集群服务搭建详解(二)的相关文章

LVS负载均衡集群服务搭建详解(一)

LVS概述 1.LVS:Linux Virtual Server 四层交换(路由):根据请求报文的目标IP和目标PORT将其转发至后端主机集群中的某台服务器(根据调度算法): 不能够实现应用层的负载均衡 lvs(又称ipvs)是基于内核中的防火墙netfilter实现 2.lvs集群术语: vs:Virtual Server 虚拟服务,可称为Director.Dispatcher分发器.Balancer负载均衡器 rs:Real Server 真实服务器 CIP:Client IP 客户端IP

LVS负载均衡集群服务搭建详解

一.LVS概述 1.LVS:Linux Virtual Server 四层交换(路由):根据请求报文的目标IP和目标PORT将其转发至后端主机集群中的某台服务器(根据调度算法): 不能够实现应用层的负载均衡 lvs(又称ipvs),基于内核中的netfilter实现: PREROUTING--> INPUT OUTPUT--> POSTROUTING PREROUTING--> FORWARD --> POSTROUTING 2.lvs集群术语: vs:Virtual  Serve

通过keepalived搭建高可用的LVS负载均衡集群

一.keepalived软件简介 keepalived是基于vrrp协议实现高可用功能的一种软件,它可以解决单点故障的问题,通过keepalived搭建一个高可用的LVS负载均衡集群时,keepalived还能检测后台服务器的运行状态. 二.vrrp协议原理简介 vrrp(虚拟路由器冗余协议),是为了解决网络上静态路由出现的单点故障的问题,举个例子,如下图 主机A和B均在同一个局域网内,C和D均是该局域网的网关,即A和B想与外网通信,需指网关到C或D,那究竟指向C好还是指向D好呢?都不好!当指向

构建高可用的LVS负载均衡集群 入门篇

一.LVS简介 LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 是一个由章文嵩博士发起的自由软件项目,它的官方站点是www.linuxvirtualserver.org.现在LVS已经是 Linux标准内核的一部分,在Linux2.4内核以前,使用LVS时必须要重新编译内核以支持LVS功能模块,但是从Linux2.4内核以后,已经完全内置了LVS的各个功能模块,无需给内核打任何补丁,可以直接使用LVS提供的各种功能. LVS 集群采用IP负载和基于内容请求分

LVS负载均衡集群技术学习笔记

一.ARP协议 1. Address Resolution Protocal地址解析协议,功能是根据主机IP地址来解析到主机的MAC地址. 2. ARP协议和DNS协议对比: a. DNS是在域名和IP之间进行解析,ARP是在IP和MAC之间解析. b. ARP协议不需要服务,DNS需要开启服务. c. ARP协议需要互联的主机处于同一个物理网段之内(即局域网环境)! 3. ARP协议工作过程(第一次通信) 4. 高可用服务器切换机器以及更换路由器的时候要注意刷新ARP缓存 5. IP切换时候A

构建高可用的LVS负载均衡集群 进阶篇

一.lvs组件介绍 lvs的组件由两部分组成:工作在内核空间的ipvs模块和工作在用户空间ipvsadm工具.其中ipvsadm是规则生成工具,而ipvs是一个使规则生效的工具. 二.ipvsadm详解 构建高可用的LVS负载均衡集群 进阶篇,布布扣,bubuko.com

LVS 负载均衡集群

说明:在学习LVS负载均衡集群时,最好对网络通信原理,尤其是ARP通信原理有所了解,否则,将无法理解LVS的工作原理. LVS工作原理和安装配置#################工作模式及其原理####################VS/NAT模式(即Virtual Server via Network Address Translation): 此种模式是通过网络地址转换技术来实现虚拟服务器. ##实现原理:  1.请求: 客户端发送请求到调度器,调度器将请求报文的目的地址(即虚拟IP地址)

企业实战-实现基于LVS负载均衡集群的电商网站架构

实现LVS-DR工作模式: 环境准备:一台centos系统做DR.两台实现过基于LNMP的电子商务网站 机器名称 IP配置 服务角色 备注 lvs-server VIP:172.17.252.110 DIP:172.17.250.223 负载均衡器 开启路由功能 (VIP桥接) rs01 RIP:172.17.251.245 后端服务器 网关指向DIP(桥接) rs02 RIP:172.17.252.87 后端服务器 网关指向DIP(桥接) 实验步骤: 一.安装: 1.yum install i

高可用,多路冗余GFS2集群文件系统搭建详解

2014.06 标签:GFS2 multipath 集群文件系统 cmirror 实验拓扑图: 实验原理: 实验目的:通过RHCS集群套件搭建GFS2集群文件系统,保证不同节点能够同时对GFS2集群文件系统进行读取和写入,其次通过multipath实现node和FC,FC和Share Storage之间的多路冗余,最后实现存储的mirror复制达到高可用. GFS2:全局文件系统第二版,GFS2是应用最广泛的集群文件系统.它是由红帽公司开发出来的,允许所有集群节点并行访问.元数据通常会保存在共享