ipvsadm用法

ipvsadm命令的用法:

     1.用于管理Lvs集群服务

     2.用于进行RS的增删改

     3.查看配置

 lvs服务器架设步骤:

 1.判断内核是否支持ipvs(看到CONFIG_NETFIFLER_XT_MATCH_IPVS=m,)

# grep -A 30 -i 'IPVS' /boot/config-2.6.32-279.el6.x86_64 

# IPVS transport protocol load balancing support

#

CONFIG_IP_VS_PROTO_TCP=y

CONFIG_IP_VS_PROTO_UDP=y

CONFIG_IP_VS_PROTO_AH_ESP=y

CONFIG_IP_VS_PROTO_ESP=y

CONFIG_IP_VS_PROTO_AH=y

CONFIG_IP_VS_PROTO_SCTP=y

#

# IPVS scheduler

#

CONFIG_IP_VS_RR=m

CONFIG_IP_VS_WRR=m

CONFIG_IP_VS_LC=m

CONFIG_IP_VS_WLC=m

CONFIG_IP_VS_LBLC=m

CONFIG_IP_VS_LBLCR=m

CONFIG_IP_VS_DH=m

CONFIG_IP_VS_SH=m

CONFIG_IP_VS_SED=m

CONFIG_IP_VS_NQ=m

#

# IPVS application helper

#

CONFIG_IP_VS_FTP=m

从上可以看出内核已经支持了ipvs协议,其中:

   CONFIG_NETFIFLER_XT_MATCH_IPVS=m   表示能够执行模块化编译

   CONFIG_IP_VS_PROTO_TCP=y    

   CONFIG_IP_VS_PROTO_UDP=y       表示支持TCP和UDP协议

   CONFIG_IP_VS_RR=m      表示支持的调度协议

 2.ipvsadm的安装

 #yum -y install ipvsadm

 安装成功后检验:

 # rpm -ql ipvsadm

/etc/rc.d/init.d/ipvsadm        #ipvs的服务用于加载内核规则

/etc/sysconfig/ipvsadm-config

/sbin/ipvsadm                  #主程序

/sbin/ipvsadm-restore       #用于重载配置到内核中

/sbin/ipvsadm-save        #保存规则的文件

/usr/share/doc/ipvsadm-1.26

/usr/share/doc/ipvsadm-1.26/README

/usr/share/man/man8/ipvsadm-restore.8.gz

/usr/share/man/man8/ipvsadm-save.8.gz

/usr/share/man/man8/ipvsadm.8.gz

man查看

SYNOPSIS

       ipvsadm -A|E -t|u|f service-address [-s scheduler]        大写选项用于管理ipvs集群

               [-p [timeout]] [-M netmask]

       ipvsadm -D -t|u|f service-address

       ipvsadm -C

       ipvsadm -R

       ipvsadm -S [-n]

       ipvsadm -a|e -t|u|f service-address -r server-address     小写选项用于管理ipvs集群的rs

               [-g|i|m] [-w weight] [-x upper] [-y lower]

       ipvsadm -d -t|u|f service-address -r server-address

       ipvsadm -L|l [options]

       ipvsadm -Z [-t|u|f service-address]

       ipvsadm –set tcp tcpfin udp

       ipvsadm –start-daemon state [–mcast-interface interface]

               [–syncid syncid]en

       ipvsadm –stop-daemon state

       ipvsadm -h   

     管理集群服务:增、改、删、查

        ipvsadm -A|E -t|u|f service-address [-s scheduler] 

             -A:添加

             -E:修改

             -t:tcp

             -u:udp

             -f:防火墙标记

             service-address:

                 -t,tcp   地址格式    vip:port

                 -u,udp   地址格式    vip:port

                 -f,fire wall mark   mark

             -s scheduler:默认为wlc

         ipvsadm -D -t|u|f service-address

             -D:删除

     管理集群上的RS:

         ipvsadm -a|e -t|u|f service-address -r server-address

             -a:增

             -e:改

         使用命令前,必须创建好Vserver

             -r server-address

                 RS的地址:

                    rip[:port]   #如果端口省略,则与Vserver端口相同

             -g,gateway,dr  默认类型

             -i,ipip,tun

             -m,masquerade,nat

             -w,weight   适用wrr、wlc、sed

     

     查看:

         ipvsadm -L|l [options]

             -n,–numeric:数字格式显示  IP:端口

             –exact:精确显示

             -c,–connection:显示当前IPVS的连接

             –stats:显示统计数据

             –rate:速率

     清空规则:

         ipvsadm -C 

  

     保存和重载:

         保存:

             ipvsadmin -S > /PATH/TO/SOME_RULE_FILE

             ipvsadmin -save > /PATH/TO/SOME_RULE_FILE

         重载:

             ipvsadm -R < /PATH/TO/SOME_RULE_FILE

             ipvsadm -restore < /PATH/TO/SOME_RULE_FILE

     清空计数器:

         ipvsadm -Z [-t|u|f service-address]

1.数字形式查看IPVS规则:

 # ipvsadm -Ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags                                        #VIP的信息

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn         #RS的信息

2.添加一个LVS服务器,再次查看

# ipvsadm -A -t 172.20.150.8:80 -s rr

# ipvsadm -Ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  172.20.150.8:80 rr

3.为LVS服务器关联一个RS,指定调度类型为NAT

# ipvsadm -a -t 172.20.150.8:80 -r 192.168.1.1:8080 -m -w 1

# ipvsadm -Ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  172.20.150.8:80 rr

  -> 192.168.1.1:8080             Local   1      0          0 

# ipvsadm -Ln –stats

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port               Conns   InPkts  OutPkts  InBytes OutBytes

  -> RemoteAddress:Port

TCP  172.20.150.8:80                     0        0        0        0        0

  -> 192.168.1.2:8080                    0        0        0        0        0

  Conns:连接数

  InPkts:入栈报文数

  OutPkts:出栈报文数

  InBytes:入栈字节

  OutBytes:出栈字节

# ipvsadm -Ln –rate

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port                 CPS    InPPS   OutPPS    InBPS   OutBPS

  -> RemoteAddress:Port

TCP  172.20.150.8:80                     0        0        0        0        0

  -> 192.168.1.2:8080                    0        0        0        0        0

  CPS:每秒钟的连接数

  InPPS:每秒入栈报文数

  OutPPS:每秒出栈报文数

  InBPS:每秒入栈字节

  OutBPS:每秒出栈字节

修改LVS服务器调度方法:

# ipvsadm -E -t 172.20.150.8:80 -s wlc

# ipvsadm -Ln 

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  172.20.150.8:80 wlc

  -> 192.168.1.2:8080             Masq    1      0          0

修改LVS服务器下RS的权重:

# ipvsadm -e -t 172.20.150.8:80 -r 192.168.1.2:8080 -m -w 10

# ipvsadm -Ln 

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  172.20.150.8:80 wlc

  -> 192.168.1.2:8080             Masq    10     0          0 

配置文件的备份、恢复:

   保存IPVS配置文件:

# ipvsadm -S > /tmp/ipvsadm-config.v1

# cat /tmp/ipvsadm-config.v1 

-A -t cdh1:http -s wlc

-a -t cdh1:http -r 192.168.1.2:webcache -m -w 10

   删除IPVS配置文件

# ipvsadm -C

   重新载入IPVS配置文件

# ipvsadm -R < /tmp/ipvsadm-config.v1

配置开机自动加载:

# ipvsadm -S > /etc/sysconfig/ipvsadm        加载时会默认读取这个文件

# chkconfig ipvsadm on

负载均衡集群设计时的要点:

     (1)session保持

           session sticky(ip hash)

           session cluster

           session server

     (2)共享存储:

           NAS:访问接口是文件系统

           SAN:访问接口是块级别

           DS:分布式存储,访问接口通常是文件级别,接口可是文件系统,也可以是API;ceph,内核级别的分布式存储

          数据同步:

           rsync+inotify (主从服务器  主服务器能够读写、从服务器只能够读)

          数据格式:

               结构化数据:存储在SQL数据库中                   #即所有数据都能明确定义出数据类型的

               半结构化数据:xml,json,存储于文件系统或NoSQL;

               非结构化数据:文件系统,NAS、SAN、DS;

 LVS-NAT:

     设计要点:

        (1)DIP与RIP要在同一IP网络住,RIP的网关要指向DIP;

        (2)支持端口映射;

        (3)是否用到共享存储取决于业务需求;

     实践作业:负载均衡一个php应用;

         测试:(1)是否需要会话保持;

               (2)是否需要共享存储;

 LVS-DR:direct routing

     在各主机(Director,RS)均需要配置VIP;因此,要解决地址冲突的问题,目标是让各RS上的VIP不可见,仅用接受目标地址为VIP的报文,同时可作为响应报文的源地址;

        (1)在前端的网关接口上静态绑定;   #弊端是无法再高可用的Director集群上很好的切换

        (2)在各RS上使用arptables;   #拒绝RS服务器响应ARP请求

        (3)在各RS上修改内核参数,来限制arp响应和通告;

                限制响应级别:arp_ignore

                     0:默认,使用本地任意接口上配置的地址进行响应

                     1:仅在请求的目标IP配置在本地主机的接收报文的入栈接口,才给与响应

                     2-8:在LVS-DR集群配置中用不到

                限制通告级别:arp_announce

                     0:默认,把本机所有接口信息向所有接口通告

                     1:尽量避免向非本地网络通告;

                     2:总是避免通告;

     设计要点:

        (1)各主机一个接口即可,但需要在同一物理网络中;

        (2)RIP的网关不能指向DIP;RIP和DIP通常应该在同一网络,但此二者未必会与VIP在同一网络;

        (3)各RS需要先设置内核参数,再设置VIP和路由;

        echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore

        echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore

        echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

        echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce

        设置接口IP:

               ifconfig lo:0 $vip netmask 255.255.255.255 broadcast $vip

               route add -host $vip dev lo:0

     实践作业:增删减RS,NAT和DR模式哪一个方便?

原创文章,作者:oranix,如若转载,请注明出处:http://www.178linux.com/66286

(1)
oranixoranix
上一篇 2017-01-10
下一篇 2017-01-10

相关推荐

  • Nginx配置详解

    NginX 回顾http协议: 1.URL格式 URL:shceme://username:password@host:port/path;params?query#fram 2.http事务:     request:请求报文格式       reponse:响应报文…

    Linux干货 2016-10-25
  • LVM(逻辑卷)(logical volume manager),快照卷

    逻辑卷的创建,扩展,缩减,迁移,删除。快照卷的创建

    Linux干货 2017-12-11
  • 自制Linux

    1. 分区出来两个区 fdisk /dev/sdb     2. 创建文件系统   [root@localhost ~]# mkfs.ext4 /dev/sdb1  [root@localhost ~]# mkfs.ext4 /dev/sdb2 3.…

    Linux干货 2016-09-16
  • RAID概述

    RAID 什么是RAID RAID(redundant arrays of independents disk,独立磁盘冗余阵列)是利用数组的方式组成磁盘组。RIAD大多是由廉价的磁盘组成容量巨大的磁盘组。,利用个别磁盘提供数据所产生的加成效果提升整个磁盘系统效能。 使用RAID目的 加快访问速度 使用一个虚拟磁盘,从而增加存储容量 减少磁盘失效带来不利的影…

    Linux干货 2016-11-22
  • shell脚本编程之if条件判断与for、while、until循环

    一、if语句 语法: if 测试条件1 ; then        分支1 elif  测试条件2; then        分支2 … else&nbsp…

    Linux干货 2015-08-24
  • lamp简介

    lamp 构建一个有着动态服务器端技术的网站 LAMP基础 1)开源领域LAMP组成: L:Linux;A:apache (httpd);M:mysql, mariadb;P:php, perl, python httpd:接收用户的web请求;静态资源则直接响应;动态资源为php脚本交由php来运行; php:运行p…

    Linux干货 2016-11-07