lvs方式实现 LB原理部分
一、lvs介绍
二、lvs的调度算法(Scheduler)
静态方法仅考虑调度算法进行调度
动态方法根据调度算法和当前RS的负载情况进行调度,讲究结果公平
三、lvs的工作模型
NAT模型的工作原理
DR的原理大致如下
TUN的大致原理
四、ipvs配置工具ipvadm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
# 1、添加集群
ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p [timeout]] [-M netmask] [--pe persistence_engine]
-A 添加集群 -E 修改集群
-t tcp 协议 -u udpx协议 -f 防火墙标记
service-address:指的是vip的地址
-s 指明调度算法默认是wlc
# 2、删除一个集群服务
ipvsadm -D -t|u|f service-address
# 3、清空所有的规则
ipvsadm -C
# 4、导入ipvs规则相当于ipvsadm-restore
ipvsadm -R
# 5、保存ipvs规则等价于 ipvsadm-save
ipvsadm -S [-n]
#6、将real server 加入到定义好的集群服务中去
ipvsadm -a|e -t|u|f service-address -r server-address [options]
-a -e 添加、修改real server到指定的集群中
-r 指定 real server 的IP地址
# 7、删除集群中的指定的real sever
ipvsadm -d -t|u|f service-address -r server-address
# 8、查看配置好的 ipvs 规则常与 -n 一起使用
ipvsadm -L|l [options]
|
1
2
3
4
|
--gatewaying -g DR模型也是默认的lvs类型gatewaying
--ipip -i TUN模型 ipip encapsulation (tunneling)
--masquerading -mNAT模型 masquerading (NAT)
-w 指明权重
|
四、防护墙标记和持久连接
1、防护墙标记
2、持久连接
持久连接是无论使用什么调度算法持久连接都能保证指定的一段时间内来自同一客户端的请求始终低定向到同个RS,其调度基准是集群服务。持久连接时基于内核中的持久连接模板persistent template来实现的基于ssl点对点实现全程加密实现数据安全。
实践部分
一、示例NAT模型
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
一、配置NFS服务器
# 1、安装客户端软件
yum
install
-y nfs-utils
# 2、提供共享目录
mkdir
/data
setfacl -m u:48:rwx
/data
-R (
id
为48的用户是rpm方式安装httpd时的apache用户)
# vim /etc/exports
/data/
172.16.0.0
/24
(rw)
# 3、启动服务
/etc/init
.d
/nfs
start
# 以后使用 exports -ar
二、安装mysql
#1、安装mysql软件这里使用rpm安装
yum
install
mysql mysql-sever -y
# 2、初始化数据库这里不再详细说明
# 3、授权用户
mysql> CREATE DATABASE discuz;
mysql> GRANT ALL ON discuz.* TO discuz@
'172.16.%.%'
IDENTIFIED BY
'123456'
;
|
1
2
3
4
5
6
7
|
一、配置ip地址和网关信息
# 临时配置
ifconfig eth0 172.16.10.22/16 up
route add
default
gw 172.16.10.9
# 也可使用永久配置如下
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
二、部署discuz服务
# 1、安装软件
yum
install
httpd php php-mysql
# 2、挂载NFS服务
mount
-t nfs 172.16.10.16:
/data
/var/www/html
# 解压 discuz 源代码将解压后的upload目录复制到此目录
cp
upload
/var/www/html
-r
# 修改属主属组
chown
apache.apache
/var/www/html/upload
-R
# 3、安装discuz
# 不在详述安装时需要注意编码问题和数据库连接时的问题。其他可根据提示解决。
|
1
2
3
4
5
|
# 配置ipvs规则
ipvsadm -A -t 192.168.1.66:80 -s rr
ipvsadm -a -t 192.168.1.66:80 -r 172.16.10.22:80 -m -w 1
ipvsadm -a -t 192.168.1.66:80 -r 172.16.10.33:80 -m -w 1
|
二、示例DR模型
1、vip和rip在相同的网络内
1
2
3
4
5
6
7
|
ifconfig
eth0 172.16.1.22
/16
up
# 这个也可以写到配置文件
echo
1 >
/proc/sys/net/ipv4/conf/lo/arp_ignore
echo
1 >
/proc/sys/net/ipv4/conf/all/arp_ignore
echo
2 >
/proc/sys/net/ipv4/conf/lo/arp_announce
echo
2 >
/proc/sys/net/ipv4/conf/all/arp_announce
ifconfig
lo:0 172.16.10.20 netmask 255.255.255.255 broadcast 172.16.10.20
route add -host 172.16.10.20 dev lo:0
|
1
2
3
|
ipvsadm -A -t 172.16.10.20:80 -s rr
ipvsadm -a -t 172.16.10.20:80 -r 172.16.10.22:80 -g -w 1
ipvsadm -a -t 172.16.10.20:80 -r 172.16.10.33:80 -g -w 1
|
三、防火墙标记和持久连接
1
2
3
4
|
iptables -t mangle -A PREROUTING -d 172.16.0.50 -p tcp -m multiport --dports 80,443 -j MARK --
set
-mark 10
ipvsadm -A -j 10 -s rr
ipvsadm -a -f 10 -r 192.168.1.201 -m
ipvsadm -a -f 10 -r 192.168.1.202 -m
|
在访问web服务时最主要的一个功能是会话保持 session如何利用lvs实现呢
1
2
3
|
ipvsadm -A -f 10 -s rr -p 60
ipvsadm -a -f 10 -r 192.168.1.201 -m -w 1
ipvsadm -a -f 10 -r 192.168.1.202 -m -w 1
|