###################################################
cluster 集群与存储
day 02
一、集群 LVS
什么是集群
用网络把一堆服务器连起来,对外提供同样的服务,相同的内容。
集群目的
提高性能,提高负载能力,增加可靠性,提高可扩展性,冗余,避免单点故障,提升单机能力,降低成本。
任务调度是集群系统中的核心技术。
集群的类型
高性能计算 HPC集群 high performance computer 通过以集群开发的并行应用程序,解决负载的科学问题。
负载均衡LB集群 load balance 客户端负载在计算机集群中尽可能平均分摊。
web服务
高可用HA集群 high avariablity 避免单点故障,当一个系统发生故障时,可以快速迁移。(一主一备) 数据库、调度器
LVS概述---负载均衡
linux虚拟机服务器(LVS)是章文嵩在国防科技大学就读博士期间创建的
LVS可以实现高可用的,可伸缩的web、mailcache、media等网络服务
最终目标是利用linux操作系统和lvs集群软件实现一个高可用、高性能、低成本的服务器应用集群
LVS集群组成
前端:负载均衡层 --由一台或多台负载调度器构成
中间:服务器群组层 --由一组实际运行应用服务的服务器组成
底端:数据共享存储层 --提供共享存储空间的存储区域
LVS术语
director server 调度服务器 --将负载分发到real server的服务器
real server 真实服务器 --真正提供应用服务的服务器
VIP 虚拟IP地址 --公布给用户访问的虚拟IP地址
RIP 真实IP地址 --集群节点上使用的IP地址
DIP 调度器连接节点服务器的IP地址
LVS工作模式:
NAT 模式 -通过网络地址转换实现的虚拟服务器;大并发访问时,调度器的性能成为瓶颈
DR模式 -直接使用路由技术实现虚拟服务器;节点服务器需要配置VIP,注意MAC地址广播
TUN模式-通过隧道方式实现虚拟服务器(不常用)
负载均衡调度算法
LVS目前实现了10种调度算法,常用调度算法有4种
rr 轮询 round robin --将客户端请求平均分发到real server
wrr加权轮询 weighted round robin --根据real server 权重进行轮询调度
lc 最少连接 least connections --选择连接数最少的服务器
wlc加权最少连接Weighted Least-Connection --根据real server权重值,选择连接数最少的服务器
sh源地址散列 source hashing --根据请求的目标,作为散列键(hash key)从静态分配的散列表找出对应的服务器。
dh目标地址散列 destination hashing
lblc基于局部性的最少链接Locality-Based Least-Connection
lblcr带复制的基于局部性最少链接 Locality-Based Least-Connection with Replication
sed最短的期望的延迟Shortest Expected Delay
nq最少队列调度Never Queue
最少连接:谁的连接少发给谁
加权:看性能
业务驱动技术
《大型网站技术架构》 阿里 李志慧
《分布式大型网站技术架构》
$3000 PHP LAMP
JSP
IBM小型机:AIX
ORACLE数据库
EMC存储:收购wmware
阿里 去IOE运动: IBM Oracle EMC
mysql--2 memcache --1 web--2 squid/varnish--4 调度器LVS--2(主备)
CDN内容分发网络,让不同地域的用户总是访问离他最近的缓存节点服务器
PC服务器:X86架构服务器
AliSql:
负载均衡调度器:F5、LVS、HAProxy、nginx
准备三台虚拟机:1台作为 director调度器,2台作为real server真实服务器,物理机作为客户端
real server安装httpd服务,每台服务器的主页内容不同,以便于验证LVS配置
1 在director 上安装双网卡,并将其配置为NAT模式;集群使用加权轮询调度算法,真实服务器权重与其IP地址末尾数一致。
2 real server上配置好VIP、调整内核参数,在director上配置负载平衡模式为DR模式。
二、LVS nat模式
2.1准备
1、准备三台虚拟机
vh01.tedu.cn 192.168.4.1
2、初始化配置
防火墙、selinux、IP地址、主机名、YUM
3、在vh01上配置数据库
[root@vh01 ~]# yum install -y mariadb-server
[root@vh01 ~]# systemctl start mariadb
[root@vh01 ~]# systemctl enable mariadb.service
[root@vh01 ~]# mysql -uroot
MariaDB [(none)]> grant all on *.* to 'admin'@'192.168.4.2' identified by 'tedu.cn';
MariaDB [(none)]> grant all on *.* to 'admin'@'192.168.4.3' identified by 'tedu.cn';
4、在两台web服务器上安装软件包并启动服务
[root@vh02 ~]# yum install -y httpd php php-mysql
[root@vh02 ~]# systemctl start httpd
[root@vh02 ~]# systemctl enable httpd.service
5、在vh02上安装Discuz
[root@vh02 ~]# unzip Discuz_X3.0_SC_UTF8.zip
[root@vh02 ~]# cp -r upload/ /var/www/html/bbs
[root@vh02 bbs]# firefox http://192.168.4.2/bbs &
改权限,将web页面中权限不满足要求的数据复制到/var/www/html/a.txt中
[root@vh02 bbs]# vim /var/www/html/a.txt
[root@vh02 bbs]# chmod 777 $(awk '{print $1}' /var/www/html/a.txt)
[root@vh02 bbs]# systemctl restart httpd
[root@vh02 bbs]# firefox http://192.168.4.2/bbs
数据库服务器192.168.4.1;数据库名admin ;密码tedu.cn ;下面admin密码
6、将vh02上的bbs目录打包拷贝到vh03,解压缩
[root@vh02 bbs]# firefox http://192.168.4.3/bbs
管理中心、论坛--技术论坛 网络技术 linux系统管理 休闲灌水区 游戏 笑话
LVS的IP负载均衡技术是通过IPVS模块实现的
IPVS模块已成为linux组成部分
# grep -i 'ipvs' /boot/config-3.10.0-327.el7.x86_64
2.2部署LVS调度器
real server: 配置web服务器
director server:安装并启用ipvsadm、创建虚拟服务器、向虚拟服务器中加入节点
1、修改web服务器网关
# LANG=C nmtui 192.1681.4.4
# ifdown eth0; ifup eth0
# route -n
[root@vh02 ~]# echo web02 > /var/www/html/index.html
[root@vh03~]# echo web03 > /var/www/html/index.html
2、配置调度器有双网卡地址
eth0:92.1681.4.4/24
eth2: 201.1.1.4/24
3、调度器打开路由转发功能(rhel7中默认打开,不需要配置)
[root@vh04 ~]# sysctl -a | grep ip_forward 查看
[root@vh04 ~]# echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
[root@vh04 ~]# sysctl -p
4、调度器安装lvs包
[root@vh04 ~]# yum install -y ipvsadm
5、配置-编写lvs规则
-A 添加虚拟服务器 -t设置群集地址(VIP) -s指定负载调度算法
-a 添加真实服务器 -d删除真实服务器 -r 指定真实服务器的地址
-m 使用NAT模式;-g、-i分别对应DR、TUN模式 -w 权重,默认为1
[root@vh04 ~]# man ipvsadm
创建虚拟服务器,VIP为201.1.1.4 ,采用的调度算法是轮询
[root@vh04 ~]# ipvsadm -A -t 201.1.1.4:80 -s rr
向虚拟服务器中加入节点,并指定权重分别为1和2
[root@vh04 ~]# ipvsadm -a -t 201.1.1.4:80 -r 192.168.4.2 -m -w 2
[root@vh04 ~]# ipvsadm -a -t 201.1.1.4:80 -r 192.168.4.3 -m
6、验证(ctrl+f5刷新缓存连接)
[root@vh04 ~]# ipvsadm -Ln //查看配置
7、保存配置,重启服务
[root@vh04 bin]# /sbin/ipvsadm-save -n > /etc/sysconfig/ipvsadm
[root@vh04 bin]# systemctl status ipvsadm -l
[root@vh04 bin]# systemctl restart ipvsadm.service
9、修改调度算法为lc
[root@vh04 bin]# ipvsadm -E -t 201.1.1.4:80 -s lc
10、使用ab进行大并发测试,每次发送10个请求,一共发送100个
[root@room9pc16 ~]# ab -n 100 -c 10 http://201.1.1.4/
[root@room9pc16 ~]# firefox http://201.1.1.4
[root@room9pc16 ~]# firefox http://201.1.1.4/bbs &
使用脚本监视web服务器运行状况,并自动添加删除故障服务器
脚本的运行方式--交互/非交互; set noai , set nu , 9.12s/^/ /
# vim ~/.vimrc
set ai
set tabstop=4
set expandtab
每隔1秒运行一次ipvsadm -Ln
#!/bin/bash
RIP1=192.168.4.2
RIP2=192.168.4.3
VIP=201.1.1.4:80
while :
do
for ip in $RIP1 $RIP2
do
curl http://$ip &> /dev/null
retval=$?
ip_in_lvs=$(ipvsadm -Ln | grep $ip)
if [ $retval -ne 0 -a -n "$ip_in_lvs" ]; then
ipvsadm -d -t $VIP -r $ip
elif [ $retval -eq 0 -a -z "$ip_in_lvs" ]; then
ipvsadm -a -t $VIP -r $ip -m
fi
done
sleep 5
done
[root@vh04 bin]# watch -n 1 ipvsadm -Ln
[root@vh04 bin]# jobs
[1]+ 运行中 bash monitor_web.sh &
[root@vh04 bin]# kill %1
三、LVS DR模式
ARP广播的问题
当客户端发起访问VIP对应的域名的请求时,根据网络通行原理会产生ARP广播
因为负载均衡器和真实的服务器在同一网络并且VIP设置在集群中的每个节点上
此时集群内的真实服务器会尝试回答来自客户端的ARP广播,这就会产生问题,大家都说我是VIP
arp_ignore 定义回复ARP广播的方式 0默认值 回应所有的本地地址ARP广播,本地地址可以配置在任意网络接口;1 只回应配置在入站网卡接口上的任意IP地址的ARP广播
arp_announce 0默认 使用配置在任意网卡接口上的本地IP地址; 2 对查询目标使用最适当的本地地址。在此模式下将忽略这个IP数据包的源地址并尝试选择能与该地址通信的本地地址。
real server:配置web服务器 、配置辅助IP地址、调整内核参数
director server:安装并启用ipvsadm、配置辅助IP地址、创建虚拟服务器、向虚拟服务器中加入节点
1、清理vh04的配置,清除201.1.1.4ip地址,清除LVS规则
如果后台脚本还在运行,先杀掉后台进程
[root@vh04 bin]# jobs
[1]+ 运行中 bash monitor_web.sh &
[root@vh04 bin]# kill %1
web服务器eth0网关
# LANG=C nmtui 192.1681.4.4
# ifdown eth0; ifup eth0
# route -n
[root@vh02 ~]# echo web02 > /var/www/html/index.html
[root@vh03~]# echo web03 > /var/www/html/index.html
清除IP地址
[root@vh04 bin]# vim /etc/sysconfig/network-scripts/ifcfg-eth2
[root@vh04 bin]# ifdown eth2
清除规则
[root@vh04 bin]# ipvsadm -D -t 201.1.1.4:80
[root@vh04 bin]# systemctl restart ipvsadm.service
[root@vh04 bin]# ipvsadm -Ln
2、在调度器上配置vip 公布给用户访问的虚拟IP地址
[root@vh04 ~]# cd /etc/sysconfig/network-scripts/
[root@vh04 network-scripts]# cp ifcfg-eth0 ifcfg-eth0:0
[root@vh04 bin]# cp /etc/sysconfig/network-scripts/ifcfg-eth0{,:0}
[root@vh04 bin]# vim /etc/sysconfig/network-scripts/ifcfg-eth0:0
修改以下三行
NAME=eth0:0
DEVICE=eth0:0
IPADDR=192.168.4.100
[root@vh04 bin]# ifup eth0:0
3、在web服务器上配置vip
[root@vh02 ~]# cp /etc/sysconfig/network-scripts/ifcfg-lo{,:0}
[root@vh02 ~]# vim /etc/sysconfig/network-scripts/ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.4.100
NETMASK=255.255.255.255 //只有自己
NETWORK=192.168.4.100
BROADCAST=192.168.4.100 //广播
ONBOOT=yes
NAME=lo:0
[root@vh02 ~]# ifup lo:0 //忽略提示
[root@vh02 ~]# scp /etc/sysconfig/network-scripts/ifcfg-lo:0 192.168.4.3:/etc/sysconfig/network-scripts/
[root@vh03 ~]# ifup lo:0
4、在两台web服务器上修改内核参数
[root@vh02 ~]# sysctl -a | grep arp_ig
[root@vh02 ~]# echo 'net.ipv4.conf.all.arp_ignore = 1' >> /etc/sysctl.conf
[root@vh02 ~]# echo 'net.ipv4.conf.lo.arp_ignore = 1' >> /etc/sysctl.conf
[root@vh02 ~]# sysctl -a | grep arp_an
[root@vh02 ~]# echo "net.ipv4.conf.all.arp_announce = 2" >> /etc/sysctl.conf
[root@vh02 ~]# echo "net.ipv4.conf.lo.arp_announce = 2" >> /etc/sysctl.conf
[root@vh02 ~]# sysctl -p
5、配置LVS规则,不写或者使用-g选项,都表示DR模式
[root@vh04 bin]# ipvsadm -A -t 192.168.4.100:80 -s lc
[root@vh04 bin]# ipvsadm -a -t 192.168.4.100:80 -r 192.168.4.2 -g
[root@vh04 bin]# ipvsadm -a -t 192.168.4.100:80 -r 192.168.4.3 -g
[root@vh04 bin]# ipvsadm -Ln
[root@room9pc16 ~]# firefox http://192.168.4.100
[root@room9pc16 ~]# firefox http://192.168.4.100/bbs &
设置Linux路由器的SNAT、DNAT功能
[root@router ~]# sed -i '/ip_forward/s/0/1/' sysctl.conf //开启路由转发
[root@router ~]# sysctl -p
[root@router ~]# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -p tcp –j SNAT --to-source 202.114.106.20
[root@router ~]# iptables -t nat -A PREROUTING -d 202.114.106.20 -p tcp --dport 80 –j DNAT --to-destination 192.168.0.253:80
[root@router ~]# service iptables save
Top
NSD CLUSTER DAY02
ipvsadm命令用法
部署LVS-NAT集群
部署LVS-DR集群
1 ipvsadm命令用法
1.1 问题
准备一台Linux服务器,安装ipvsadm软件包,练习使用ipvsadm命令,实现如下功能:
使用命令添加基于TCP一些的集群服务
在集群中添加若干台后端真实服务器
实现同一客户端访问,调度器分配固定服务器
会使用ipvsadm实现规则的增、删、改
保存ipvsadm规则
1.2 方案
安装ipvsadm软件包,关于ipvsadm的用法可以参考man ipvsadm资料。常用ipvsadm命令语法格式如表-1所示。
表-1 ipvsadm语法格式
1.3 步骤
实现此案例需要按照如下步骤进行。
步骤一:使用命令增、删、改LVS集群规则
1)创建LVS虚拟集群服务器
[root@svr5 ~]# ipvsadm -A -t 192.168.0.254 -s wrr -p 30
2)为集群添加若干real server
[root@svr5 ~]# ipvsadm –a -t 192.168.0.254 -r 192.168.0.1 -m -w 1
[root@svr5 ~]# ipvsadm –a -t 192.168.0.254 -r 192.168.0.2 -m -w 2
[root@svr5 ~]# ipvsadm –a -t 192.168.0.254 -r 192.168.0.3 -m -w 3
[root@svr5 ~]# ipvsadm –a -t 192.168.0.254 -r 192.168.0.4 -m -w 4
3)修改集群服务器设置
[root@svr5 ~]# ipvsadm -E -t 192.168.0.254 -s sh -p 30
4)修改read server
[root@svr5 ~]# ipvsadm –a -t 192.168.0.254 -r 192.168.0.1 -m
5)查看LVS状态
[root@svr5 ~]# ipvsadm –Ln
6)保存所有规则
[root@svr5 ~]# service ipvsadm save
7)清空所有规则
[root@svr5 ~]# ipvsadm –C
2 部署LVS-NAT集群
2.1 问题
使用LVS实现NAT模式的集群调度服务器,为用户提供Web服务:
集群对外公网IP地址为202.114.106.20
调度器内网IP地址为192.168.0.254
真实Web服务器地址分别为192.168.0.1、192.168.0.2、192.168.0.3
使用加权轮询调度算法,真实服务器权重与其IP地址末尾数一致
2.2 方案
使用4台虚拟机,1台作为Director调度器、3台作为Real Server、物理机作为客户端,拓扑结构如图-1所示。
图-1
2.3 步骤
实现此案例需要按照如下步骤进行。
步骤一:配置网络环境
1)设置Web服务器网络参数
[root@web1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.1
NETMASK=255.255.255.0
GATEWAY=192.168.0.254
DNS1=202.106.0.20
[root@web1 ~]# systemctl restart NetworkManager
[root@web2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.2
NETMASK=255.255.255.0
GATEWAY=192.168.0.254
DNS1=202.106.0.20
[root@web2 ~]# systemctl restart NetworkManager
[root@web3 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.3
NETMASK=255.255.255.0
GATEWAY=192.168.0.254
DNS1=202.106.0.20
[root@web3 ~]# systemctl restart NetworkManager
2)自定义Web页面
[root@web1 ~]# echo “192.168.0.1” > /var/www/html/index.html
[root@web2 ~]# echo “192.168.0.2” > /var/www/html/index.html
[root@web3 ~]# echo “192.168.0.3” > /var/www/html/index.html
3)启动Web服务器软件
[root@web1 ~]# service httpd start
[root@web2 ~]# service httpd start
[root@web3 ~]# service httpd start
4)设置LVS调度器网络参数
[root@lvs ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=202.114.106.20
DNS1=202.106.0.20
[root@lvs ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.254
NETMASK=255.255.255.0
DNS1=202.106.0.20
[root@lvs ~]# systemctl restart NetworkManager
[root@lvs ~]# sed -i '/ip_forward/s/0/1/' sysctl.conf //开启路由转发
[root@lvs ~]# sysctl -p
步骤二:调度器安装软件并启动服务
1)安装软件
[root@lvs Packages]# rpm –ihv ipvsadm-1.25-10.el6.x86_64.rpm
2)启动服务
[root@lvs Packages]# service ipvsadm start
[root@lvs Packages]# chkconfig ipvsadm on
步骤三:部署LVS-NAT模式调度器
1)创建集群服务器
[root@lvs ~]# ipvsadm -A -t 202.114.106.20:80 -s wrr
2)添加真实服务器
[root@lvs ~]# ipvsadm -a -t 202.114.106.20:80 -r 192.168.0.1 -w 1
[root@lvs ~]# ipvsadm -a -t 202.114.106.20:80 -r 192.168.0.2 -w 2
[root@lvs ~]# ipvsadm -a -t 202.114.106.20:80 -r 192.168.0.3 -w 3
3)查看规则列表,并保存规则
[root@lvs ~]# ipvsadm –Ln
[root@lvs ~]# ipvsadm-save -n > /etc/sysconfig/ipvsadm
步骤四:客户端测试
客户端使用curl命令反复连接http://202.114.106.20,查看访问的页面是否会轮询到不同的后端真实服务器。
3 部署LVS-DR集群
3.1 问题
使用LVS实现DR模式的集群调度服务器,为用户提供Web服务:
路由器对外公网IP地址为202.114.106.20
路由器内网IP地址为192.168.0.254
路由是需要设置SNAT及DNAT功能
LVS调度器真实IP地址为192.168.0.10
LVS调度器VIP地址设置为192.168.0.253
真实Web服务器地址分别为192.168.0.1、192.168.0.2
使用加权轮询调度算法,真实服务器权重与其IP地址末尾数一致
3.2 方案
使用4台虚拟机,1台作为Linux路由器、1台作为Director调度器、2台作为Real Server、物理机作为客户端,拓扑结构如图-2所示。
图-2
3.3 步骤
实现此案例需要按照如下步骤进行。
步骤一:配置网络环境
1)设置Web服务器网络参数
[root@web1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.1
NETMASK=255.255.255.0
GATEWAY=192.168.0.254
DNS1=202.106.0.20
[root@web1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-lo:0
DEVICE=lo:0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.253
NETMASK=255.255.255.255
[root@web1 ~]# vim /etc/sysctl.conf
.. ..
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_announce = 2
[root@web1 ~]# sysctl -p
[root@web1 ~]# systemctl restart NetworkManager
[root@web2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.2
NETMASK=255.255.255.0
GATEWAY=192.168.0.254
DNS1=202.106.0.20
[root@web2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-lo:0
DEVICE=lo:0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.253
NETMASK=255.255.255.255
[root@web2 ~]# vim /etc/sysctl.conf
.. ..
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_announce = 2
[root@web2 ~]# sysctl -p
[root@web2 ~]# systemctl restart NetworkManager
2)自定义Web页面
[root@web1 ~]# echo “192.168.0.1” > /var/www/html/index.html
[root@web2 ~]# echo “192.168.0.2” > /var/www/html/index.html
3)启动Web服务器软件
[root@web1 ~]# systemctl start httpd; systemctl enable httpd
[root@web2 ~]# systemctl start httpd; systemctl enable httpd
4)设置LVS调度器网络参数
[root@lvs ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.10
NETMASK=255.255.255.0
GATEWAY=192.168.0.254
DNS1=202.106.0.20
[root@lvs ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0:0
DEVICE=eth0:0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.253
NETMASK=255.255.255.0
GATEWAY=192.168.0.254
DNS1=202.106.0.20
[root@lvs ~]# systemctl restart NetworkManager
5)设置Linux路由器网络参数
[root@router ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=202.114.106.20
DNS1=202.106.0.20
[root@router ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.254
NETMASK=255.255.255.0
DNS1=202.106.0.20
[root@router ~]# systemctl restart NetworkManager
6)设置Linux路由器的SNAT、DNAT功能
[root@router ~]# sed -i '/ip_forward/s/0/1/' sysctl.conf //开启路由转发
[root@router ~]# sysctl -p
[root@router ~]# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -p tcp –j SNAT --to-source 202.114.106.20
[root@router ~]# iptables -t nat -A PREROUTING -d 202.114.106.20 -p tcp --dport 80 –j DNAT --to-destination 192.168.0.253:80
[root@router ~]# service iptables save
步骤二:调度器安装软件并启动服务
1)安装软件
[root@lvs Packages]# rpm –ihv ipvsadm-1.25-10.el6.x86_64.rpm
2)启动服务
[root@lvs Packages]# systemctl start ipvsadm
[root@lvs Packages]# systemctl enable ipvsadm
步骤三:部署LVS-DR模式调度器
1)创建集群服务器
[root@lvs ~]# ipvsadm -A -t 192.168.0.253:80 -s wrr
2)添加真实服务器
[root@lvs ~]# ipvsadm -a -t 192.168.0.253:80 -r 192.168.0.1 -g -w 1
[root@lvs ~]# ipvsadm -a -t 192.168.0.253:80 -r 192.168.0.2 -g -w 2
3)查看规则列表,并保存规则
[root@lvs ~]# ipvsadm –Ln
[root@lvs ~]# ipvsadm-save -n > /etc/sysconfig/ipvsadm
步骤四:客户端测试
客户端使用curl命令反复连接http://202.114.106.20,查看访问的页面是否会轮询到不同的后端真实服务器。