LVS虚拟服务器
一 NAT模式
1 配置双网卡
其他节点网关指向调度器
2 安装ipvsadm工具
[root@localhost ~]# yum -y install ipvsadm #安装ipvsadm管理工具
[root@localhost ~]# modprobe ip_vs #加载ip_vs模块
[root@localhost ~]# lsmod | grep ^ip_vs #查看ip_vs模块信息
ip_vs 145497 0
[root@localhost ~]# cat /proc/net/ip_vs #查看ip_vs版本信息
IP Virtual Server version 1.2.1 (size=4096)
选项 -A 表示添加虚拟服务器
-t 指定VIP 地址和TCP端口
-s 指定调度算*询(rr)、加权轮询(wrr)、最少连接(lc)、加权最少连接(wlc)等。
-a 表示添加节点服务器
-r 用来指定RIP地址及TCP端口
-m表示使用NAT群集模式(-g DR模式、-i TUN模式)
-w用来设置权后重(权重为0时表示暂定节点)
-L可以列表查看LVS虚拟服务器,可以指定只查看某一个VIP地址(默认为查
看所有)结合选项
-n将以数字形式显示地址、端口等信息。
Ipvsadm -C 清除所有缓存
删除服务器节点
需要从服务器池中删除某一个节点时,使用选项-d。执行删除操作必须指定目标对象,
包括节点地址、虚拟IP地址。例如,以下操作将会删除LVS群集192.168.200.254中的节点192.168.200.115
[root@localhost ~]# ipvsadm -d -t 192.168.200.254:80 -r 192.168.200.115:80
需要删除整个虚拟服务器时,使用选项-D并指定虚拟IP地址即可,无需指定节点。例如若执行“ipvsadm -D -t 192.168.200.254:80”,则删除此虚拟服务器。
保存负载分配策略
使用导出/导入工具ipvsadm-save/ipvsadm-restore可以保存、恢复LVS策略。当然也
可以快速清除、重建负载分配策略。
[root@localhost ~]# ipvsadm-save -n > /etc/sysconfig/ipvsadm #保存策略
[root@localhost ~]# cat /etc/sysconfig/ipvsadm #确定保存结果
[root@localhost ~]# systemctl stop ipvsadm #停止服务(清除策略)
[root@localhost ~]# systemctl start ipvsadm #启动服务(重建策略)
3 在调度器上开启路由模式
[root@localhost ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward=1
[root@localhost ~]# sysctl -p
net.ipv4.ip_forward = 1
4 添加虚拟服务器和节点服务器
ipvsadm -A -t 172.16.1.1:80 -s rr \\添加虚拟服务器指定VIP地址
ipvsadm -a -t 172.16.1.1:80 -r 192.168.100.30:80 -m -w 1 \\添加节点服务器指定RIP地址
ipvsadm -a -t 172.16.1.1:80 -r 192.168.100.100:80 -m -w 1
查看状态
5 在其他节点服务器添加httpd 编写测试页
客户端访问:
二 DR模式
不需要双网卡
服务器池不需要指向网关 也不需要路由转发
调度器需要配置VIP地址服务器池也得都需要配置VIP地址需要配置ARP参数
1 取消路由转发
2
[root@localhost ~]# yum -y install ipvsadm #安装ipvsadm管理工具
[root@localhost ~]# modprobe ip_vs #加载ip_vs模块
[root@localhost ~]# lsmod | grep ^ip_vs #查看ip_vs模块信息
ip_vs 145497 0
[root@localhost ~]# cat /proc/net/ip_vs #查看ip_vs版本信息
IP Virtual Server version 1.2.1 (size=4096)
3 在调度器上配置虚拟子接口IP
4 配置策略
5 在服务器池配置本地回环口VIP地址 (不和外边通信用于本地测试)
6 添加通往lo口的路由
7 修改ARP参数
vim /etc/sysctl.conf
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
arp_ignore=1,系统只回答目的IP为是本地IP的包。也就是对广播包不做响应。
arp_announce=2,系统忽略IP包的源地址,而根据目标主机,选择本地地址。
8 客户机访问