JAVA和Nginx 教程大全

网站首页 > 精选教程 正文

Centos6 搭建LVS负载均衡器 centos lvcreate

wys521 2024-10-11 18:45:02 精选教程 17 ℃ 0 评论

首先简单介绍一下LVS (LinuxVirtual Server)到底是什么东西,其实它是一种集群(Cluster)技术,采用IP负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程序。

由于公司lvs服务器需要进行迁移,顺便记录下来实验时候的搭建过程。

本次实验是在云服务器上进行的操作。

服务器IP地址设置表

服务器名称网络接口IP地址
路由器外网IP121.201.24.138
lvseth0172.16.100.2
eth0:1(VIP)172.16.100.10
web1eth0172.16.100.3
lo:0(VIP)172.16.100.10
web2eth0172.16.100.4
lo:0(VIP)172.16.100.10
web3eth0172.16.100.7
lo:0(VIP)172.16.100.10

LVS端设置

1.安装ipvsamd管理工具

yum install ipvsadm -y

执行ipvsadm发现服务正常即可

[root@lvs ~]# ipvsadm

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

-> RemoteAddress:Port Forward Weight ActiveConn InActConn

2.配置ipvsadm

LVS有3种工作模式,本实验为基于DR工作模式的负载均衡器

创建虚拟服务,并为虚拟服务设置适当的调度算法

[root@lvs~]# ipvsadm -A -t 172.16.100.10:80 -s wrr -p 60

[root@lvs ~]# ipvsadm

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

-> RemoteAddress:Port Forward Weight ActiveConn InActConn

TCP 192.168.100.10:http wrr

ipvsadm中添加真实服务器组

[root@lvs ~]# ipvsadm -a -t 172.16.100.10:80 -r 172.16.100.3:80 -g -w 10

[root@lvs ~]# ipvsadm -a -t 172.16.100.10:80 -r 172.16.100.4:80 -g -w 10

[root@lvs ~]# ipvsadm -a -t 172.16.100.10:80 -r 172.16.100.7:80 -g -w 10

[root@lvs ~]# ipvsadm

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

-> RemoteAddress:Port Forward Weight ActiveConn InActConn

TCP 192.168.100.10:http wrr persistent 60

-> 192.168.100.3:http Route 10 0 0

-> 192.168.100.4:http Route 10 0 0

-> 192.168.100.7:http Route 10 0 0

保持配置(将配置保存到配置文件,以便重启等操作后配置自动读入)

[root@lvs ~]# /etc/init.d/ipvsadm save

ipvsadm: Saving IPVS table to /etc/sysconfig/ipvsadm: [ OK ]

3.添加VIP

本次实验使用ip addr添加的IP在内存中,使用ifconfig指令无法看到,重启后失效,

可选择写入到/etc/sysconfig/network-scripts/ifcfg-eth1中使配置永久生效)

[root@lvs ~]#ip addr add 172.16.100.10/32 dev eth0

## 查看eth0的ip信息(ip a)

[root@lvs ~]# ip ad li eth0

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

link/ether 52:54:02:25:13:78 brd ff:ff:ff:ff:ff:ff

inet 172.16.100.2/24 brd 172.16.100.255 scope global eth0

inet 172.16.100.10/24 scope global secondary eth0

inet6 fe80::5054:2ff:fe25:1378/64 scope link

valid_lft forever preferred_lft forever

web端设置

由于使用DR模式,调度器和真实服务器都要设置VIP地址

1.在web的lo:0上配置VIP

[root@web1 ~]#vim /etc/sysconfig/network-scripts/ifcfg-lo:0

DEVICE=lo:0

BOOTPROTO=static

ONBOOT=yes

TYPE=Ethernet

IPADDR=172.16.100.10

NETMASK=255255.255.255

NETWORK=172.16.100.1

或者使用指令:

ip addr add 172.16.100.10/32 dev lo:1

2.抑制 ARP 响应

由于使用DR模式,调度器和真实服务器都要设置VIP地址,所以真实服务器要禁止对VIP地址的ARP响应.

该抑制只在真实服务器上配置(这种配置只是临时生效,需要永久生效写入到/etc/sysctl.conf)

[root@web1 ~]# echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore

[root@web1 ~]# echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce

[root@web1 ~]# echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore

[root@web1 ~]# echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce

永久生效写法:

[root@web1 ~]# vim /etc/sysctl.conf

## 在真实服务器上设置lo 忽略ARP 广播

net.ipv4.conf.lo.arp_ignore = 1

net.ipv4.conf.lo.arp_announce = 2

net.ipv4.conf.all.arp_ignore = 1

net.ipv4.conf.all.arp_announce = 2

使配置生效

sysctl -p

在3台web服务器上安装apache服务(nginx),这里为了区分的确是访问了不同的服务器,分别在每台写入不同的文件

[root@web1 ~]# vim /var/www/html/wel.conf

hi,my ip is 172.16.100.3

[root@web2 ~]# vim /var/www/html/wel.conf

hi,my ip is 172.16.100.4

[root@web3 ~]# vim /var/www/html/wel.conf

hi,my ip is 172.16.100.7

路由转发设置

在路由器上面进行转发配置,如果LVS所在机器本身有外网IP,就不用设置这一段了。

我使用的是云服务器和云路由器,而外网IP在路由器上,所以需要配置端口转发功能。

在控制台可以设置路由器端口转发,这里设置外网来的80端口访问转发给172.16.100.10的80端口

结果验证

访问外网IP,可以访问到内部3个真实服务器

刷新,3个结果都会出现(频繁刷新,一般都是一个结果,可以找几个人测试打开效果)

这里写的太多了,所以LVS+keepalived实现双机热备部分明天再发布。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表