配置ipvsadm服务

LVS的三种包转发方式
      LVS提供了三种包转发方式:NAT(网络地址映射)、IP Tunneling(IP隧道)、Direct Routing(直接路由)
     不同的转发模式决定了不同的cluster的网络结构,下面对三种转发方式分别介始:
1、NAT(网络地址映射):
     NAT方式可支持任何的操作系统,以及私有网络,并且只需一个Internet IP地址,但是整个系统的性能受到限制。因为执行NAT每次需要重写包
     有一定的延迟;另外,大部分应用有80%的数据是从服务器流向客户机,也就是用户的请求非常短,而服务器的回应非常大,对负载均衡器形成很大压力,成为了新的瓶颈。
2、IP Tunneling(IP隧道):
     director分配请求到不同的real server。real server处理请求后直接回应给用户,这样director负载均衡器仅处理客户机与服务器的一半连接
    IP Tunneling技术极大地提高了director的调度处理能力,同时也极大地提高了系统能容纳的最大节点数,可以超过100个节点
    real server可以在任何LAN或WAN上运行,这意味着允许地理上的分布,这在灾难恢复中有重要意义。服务器必须拥有正式的IP地址用于与客户机直接通信
    并且所有服务器必须支持IP隧道协议。

3、Direct Routing(直接路由):
     与IP Tunneling类似,负载均衡器仅处理一半的连接,避免了新的性能瓶颈,同样增加了系统的可伸缩性。Direct Routing与IP Tunneling相比
    没有IP封装的开销,但由于采用物理层(修改MAC地址)技术,所有服务器都必须在一个物理网段。

LVS的八种调度算法:
     * rr   轮叫(Round Robin)
      调度器通过"轮叫"调度算法将外部请求按顺序轮流分配到集群中的真实服务器上,它均等地对待每一台服务器,而不管服务器上实际的连接数和系统负载。

* wrr   加权轮叫(Weighted Round Robin)
      调度器通过"加权轮叫"调度算法根据真实服务器的不同处理能力来调度访问请求。这样可以保证处理能力强的服务器处理更多的访问流量。调度器可以自动问询真实服务器的负载情况,并动态地调整其权值。

* lc   最少链接(Least Connections)
      调度器通过"最少连接"调度算法动态地将网络请求调度到已建立的链接数最少的服务器上。如果集群系统的真实服务器具有相近的系统性能,采用"最小连接"调度算法可以较好地均衡负载。

* wlc   加权最少链接(Weighted Least Connections)
      在集群系统中的服务器性能差异较大的情况下,调度器采用"加权最少链接"调度算法优化负载均衡性能,具有较高权值的服务器将承受较大比例的活动连接负载。调度器可以自动问询真实服务器的负载情况,并动态地调整其权值。

* lblc   基于局部性的最少链接(Locality-Based Least Connections)
      "基于局部性的最少链接" 调度算法是针对目标IP地址的负载均衡,目前主要用于Cache集群系统。该算法根据请求的目标IP地址找出该目标IP地址最近使用的服务器,若该服务器是可用的且没有超载,将请求发送到该服务器;若服务器不存在,或者该服务器超载且有服务器处于一半的工作负载,则用"最少链接"的原则选出一个可用的服务器,将请求发送到该服务器。

* lblcr   带复制的基于局部性最少链接(Locality-Based Least Connections with Replication)
      " 带复制的基于局部性最少链接"调度算法也是针对目标IP地址的负载均衡,目前主要用于Cache集群系统。它与LBLC算法的不同之处是它要维护从一个目标IP地址到一组服务器的映射,而LBLC算法维护从一个目标IP地址到一台服务器的映射。该算法根据请求的目标IP地址找出该目标IP地址对应的服务器组,按"最小连接"原则从服务器组中选出一台服务器,若服务器没有超载,将请求发送到该服务器,若服务器超载;则按"最小连接"原则从这个集群中选出一台服务器,将该服务器加入到服务器组中,将请求发送到该服务器。同时,当该服务器组有一段时间没有被修改,将最忙的服务器从服务器组中删除,以降低复制的程度。

* dh   目标地址散列(Destination Hashing)
      "目标地址散列"调度算法根据请求的目标IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。

* sh   源地址散列(Source Hashing)
      "源地址散列"调度算法根据请求的源IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。

备注:以下步骤分别按照LVS的三种包转发方式进行配置
     实验环境如下:
     lvsserver            192.168.1.49(eht0)     vip: 192.168.1.40 8.8.8.8(nat模式下)
     serverA             192.168.1.46(eth0)
     serverB             192.168.1.47(eth0)
      
1、vs/nat模式下各服务器的配置
lvsserver配置如下:
ifconfig eht0 192.168.1.49 netmsk 255.255.255.0 
ifconfig eht1 8.8.8.8 netmask 255.255.255.0
(注:由于nat模式需要两块真实网卡,所以又额外加了一块网卡  ,此网卡的IP地址同时也是VIP的地址)
vi ipvsadm.sh (创建脚本文件)
-------------------------------------------------------------------------------------------------------------------------------------------------------------
#!/bin/bash

echo 1 > /proc/sys/net/ipv4/ip_forward

#(开启路由功能)

ipvsadm -C

#(清除之前的转换表)

ipvsadm -At 8.8.8.8:80 -s rr

#(指定带有调度算法转换的服务器)

ipvsadm -at 8.8.8.8:80 -r 192.168.1.46:80 -m

#(增加一台真实服务器,-m是nat模式,-g是直接路由(dr )模式,-i是tun模式)

ipvsadm -at 8.8.8.8:80 -r 192.168.1.47:80 -m

#chmod u+x ipvsadm.sh  (增加可执行权限)

------------------------------------------------------------------------------------------------------------------------------------------------------------------
serverA配置如下:
ifconfig eth0 192.168.1.46 netmask 255.255.255.0
route add default gw 192.168.1.49
(注:此网关是lvsserver的eth0的IP地址)
service httpd start    (开启测试用的web服务)
echo ‘192.168.1.46‘ > /var/www/html/index.html     (制作测试用的html网页)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
serverB配置如下:
ifconfig eth0 192.168.1.47 netmask 255.255.255.0
route add default gw 192.168.1.49
(注:此网关是lvsserver的eth0的IP地址)
service httpd start    (开启测试用的web服务器
echo ‘192.168.1.47‘ > /var/www/html/index.html     (制作测试用的html网页)

--------------------------------------------------------------------------------------------------------------------------------------------------------------------
2、vs/tun模式下各服务器的配置 
lvsserver配置如下:
ifconfig eht0 192.168.1.49 netmsk 255.255.255.0
(注:tun 模式下只需要一块物理网卡,可将eth1网卡禁用)
ifconfig tunl0 192.168.1.40 netmask 255.255.255.255 up
(注:tunlo接口配置的地址为vip地址)     
route add -host 192.168.1.40 dev tunlo    
vi ipvsadm.sh (创建脚本文件)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------         
#!/bin/bash

ipvsadm -C

#(清除之前的转换表)

ipvsadm -At 192.168.1.40:80 -s rr

#(指定带有调度算法转换的服务器)

ipvsadm -at 192.168.1.40:80 -r 192.168.1.46:80 -i

#(增加一台真实服务器,-m是nat模式,-g是直接路由(dr )模式,-i是tun模式)

ipvsadm -at 192.168.1.40:80 -r 192.168.1.47:80 -i

#chmod u+x ipvsadm.sh  (增加可执行权限)    
#./ipvsadm.sh
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------                  
serverA配置如下:
ifconfig eth0 192.168.1.46 netmask 255.255.255.0
ifconfig tunl0 192.168.1.40 netmask 255.255.255.255 up  
route add -host 192.168.1.40 dev tunlo     
vi arp.sh (创建脚本文件)

#!/bin/bash
echo "1" > /proc/sys/net/ipv4/conf/tunl0/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/tunl0/arp_announce
echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
serverB配置同severA一样
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
3、vs/dr模式下各服务器的配置 
lvsserver配置如下:
ifconfig eht0 192.168.1.49 netmsk 255.255.255.0
(注:dr 模式下只需要一块物理网卡,可将eth1网卡禁用)
ifconfig eth0:0 192.168.1.40 netmask 255.255.255.255 up
(注:eth0:0接口配置的地址为vip地址)     
route add -host 192.168.1.40 dev eth0:0
vi ipvsadm.sh (创建脚本文件)
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
#!/bin/bash

echo 1 > /proc/sys/net/ipv4/ip_forward

#(开启路由功能)

ipvsadm -C

#(清除之前的转换表)

ipvsadm -At 192.168.1.40:80 -s rr

#(指定带有调度算法转换的服务器)

ipvsadm -at 192.168.1.40:80 -r 192.168.1.46:80 -g

#(增加一台真实服务器,-m是nat模式,-g是直接路由(dr )模式,-i是tun模式)

ipvsadm -at 192.168.1.40:80 -r 192.168.1.47:80 -g

#chmod u+x ipvsadm.sh  (增加可执行权限) 
./ipvsadm.sh
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------  
serverA配置如下:
 ifconfig eth0 192.168.1.46 netmask 255.255.255.0
ifconfig lo:0 192.168.1.40 netmask 255.255.255.255 up  (在lo接口上增加vip地址)

route add -host 192.168.1.40 dev lo:0 (增加到环回接口的路由)

vi arp.sh (创建脚本文件)

#!/bin/bash
echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce     
#chmod u+x arp.sh  (增加可执行权限) 
#./arp.sh 
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------    
serverB配置和serverA一样
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
  测试:1、显示LVS 目前的连接 
             如:ipvsadm -L -c    ipvsadm -L --stats

2、将46和47的WEB服务启用。直接输入vip的地址不停的刷新你将会看到不同页面的切换

IPVSADM 服务配置

ipvsadm配置

#cat > /etc/sysconfig/ipvsadm

输入内容如下:

ipvsadm -A -t 172.16.4.200:80 -s rr

ipvsadm -a -t 172.16.4.200:80 -r 172.16.4.188:80 -m

ipvsadm -a -t 172.16.4.200:80 -r 172.16.4.198:80 -m

注意:service ipvsadm start服务启动的时候会读取/etc/sysconfig/ipvsadm里面的内容,并且逐行执行,使用vi编辑/etc/sysconfig/ipvsadm的时候会出现字符编码的问题执行不了,建议用cat编辑。

172.16.4.200为虚拟IP地址,172.16.4.188和172.16.4.198为真实IP地址。

保存退出,测试:

#ipvsadm-restore < /etc/sysconfig/ipvsadm

#ipvsadm -L

参数介绍:

arp_announce

0  可以在任意接口向外发送所有IP的免费ARP

1  尽量避免发送所在接口之外IP的免费ARP

2  只向外发送所在接口的IP的免费ARP

arp_ignore

0  可以响应所有配置的IP的ARP报文

1  只响应从入接口IP的ARP报文

8        不响应任何ARP请求

时间: 2024-11-18 13:28:28

配置ipvsadm服务的相关文章

Windows Server 2012配置L2TP服务环境

在上一篇文章<Windows Server 2012配置VPN服务环境>中讲解了在Windows Server2012环境中的基础VPN搭建,但是只能支持PPTP的VPN连接.这篇文章进一步完善了VPN基于L2TP的连接讲解. 在百度上也没有找到一个Windows2012 很全的L2TP服务搭建的方案,所以自己编辑了一个给有需要的朋友们参考. 准备环境:Windows Server 2012R2 数据中心版64位,基础的VPN服务环境已经搭建完成. 功能需求:完善VPN服务器来支持L2TP类型

Ubuntu下配置tftp服务和NFS服务

Ubuntu下配置tftp服务和NFS服务 配置tftp 方法一:(推荐方法)Ubuntu10.04 测试通过 1.安装TFTP软件 sudo apt-get install tftp-hpa tftpd-hpa tftp-hpa是客户端,tftpd-hpa是服务器端 2.建立tftpboot目录,作为服务器的目录sudo mkdir ~/tftpboot释放权限:(服务器目录,需要设置权限为777,chomd 777)sudo chmod 777 ~/tftpboot 3.配置TFTP服务器

Window环境下配置Redis服务的方法及查看缓存数据的工具介绍

工具下载位置:http://pan.baidu.com/s/1hqVh1f2,包括服务端配置以及查看缓存的工具. 服务端是以服务的形式运行,将Redis服务端解压到某个目录,然后执行cmd执行命令: redis-server.exe --service-install redis.windows.conf --loglevel verbose 注意事项,修改Redis端口及密码的配置在文件redis.windows-service.conf中:(使用redis284.rar中解压文件) 修改端口

配置Tomcat服务

目前有很多网站使用jsp的程序编写,所以解析jsp的程序就必须要有相关的软件来完成.Tomcat就是用来解析jsp程序的一个软件,而JDK相当于是个容器. 一.安装JDK 直接进JDK官网选择正确的版本:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 1.下载 [[email protected] ~]# cd /usr/local/src [[email protected]

配置samba服务一例

问题: 在/data/share目录下建立三个子目录public.training.devel用途如下 public目录用于存放公共数据,如公司的规章制度 training目录用于存放公司的技术培训资料 devel目录用于存放项目开发数据 将/data/share/public/目录共享为public,所有员工都可以访问,但只有读取权限 将/data/share/training目录共享为peixun,允许管理员admin和技术部的所有员工读取数据,但不能写入,禁止其它人访问 将/data/sh

在RedHat Linux系统中安装和配置snmp服务

检查系统是否安装snmp服务 # rpm -qa|grep snmp net-snmp-5.3.2.2-17.el5 net-snmp-perl-5.3.2.2-17.el5 net-snmp-devel-5.3.2.2-17.el5 net-snmp-libs-5.3.2.2-17.el5 net-snmp-utils-5.3.2.2-17.el5 net-snmp-libs-5.3.2.2-17.el5 net-snmp-devel-5.3.2.2-17.el5 SNMP服务安装后会有以上安

linux配置vncserver服务

挨踢这么多年,几乎很少记录自己解决的问题,因为总感觉那些问题对于高手来说,都是小菜,所以碍于颜面,不好意思写! 后来想明白了,写下来,能帮助新手,又能帮自己做个记录,下次碰到同样问题,就不用百度google了-- 这篇就算***作吧,好了,言归正传-- 想连接某台linux服务器,方法很多,但是听说除了vnc,其他方法断开网络后,程序会中断运行,只是听说,具体是不是这样,我就不太清楚了,为了保险,还是就用vnc吧. 1.           安装vncserver 我安装linux系统的时候,没

配置ntp服务

配置ntp服务(hadoop搭建可参考) 一:修改选定的服务器的本地时间 date -s '2016-10-07 16:29:30' +'%F %T' //需要设置的时间 二:修改后将时间写入到硬件时钟,确保重启有效 hwclock -w 三:安装并开启ntp服务 四:开启自动开启ntp服务开机启) chkconfig ntpd on //开机自动开启ntp服务 chkconfig --list ntpd //查看ntp状态 ntpd           0:关闭 1:关闭 2:启用 3:启用

ubuntu 下配置MySQL服务

第一步 安装MySQL sudo apt-get install mysql-server 第二步 配置MySQL 2.1 vim /etc/mysql/my.cnf 找到bind-address = 127.0.0.1. 2.2 注释掉: #bind-address = 127.0.0.1 或者把IP改为 0.0.0.0:bind-address = 0.0.0.0 允许任意IP访问 2.3 重启 mysql服务: sudo /etc/inid.d/mysql restart 第三步 授权用户