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)
上一篇 2017-01-10 13:18
下一篇 2017-01-10 15:25

相关推荐

  • Shell运算符

    Bash 支持很多运算符,包括算数运算符、关系运算符、布尔运算符、字符串运算符和文件测试运算符。 原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用。 expr 是一款表达式计算工具,使用它能完成表达式的求值操作。 例如,两个数相加: #!/bin/bash val=`expr 2 + 2` echo …

    Linux干货 2017-04-18
  • 22期第五周课堂练习

    1、显示/boot/grub/grub.conf中以至少一个空白字符开头的行; [root@localhost ~]# grep "^[[:space:]]\+" /boot/grub/grub.conf 2、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又…

    Linux干货 2016-09-08
  • Linux入门(二)

    linux基础命令及应用     shutdown:关机命令         -r:重启         -h:关机    &nb…

    Linux干货 2016-08-02
  • HA Cluster 之 vrrp (keepalived)

      HA Cluster 之 vrrp (keepalived) 0x00 前言 0x01 VRRP 协议 VRRP 简介 VRRP 工作原理 VRRP负载分担方式的特点 VRRP 中的一些术语 0x02 keepalived 功用: 0x03 keepalived 配置 HA Cluster 的配置前提: 配置文件组件部分: 配置文件解析: 附:…

    Linux干货 2017-05-16
  • 马哥教育网络班22期-第九周课程作业

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #!/bin/bash # declare -i count=0 declare -i bash_num=0 declare -i&nbs…

    Linux干货 2016-11-21
  • Linux用户和组的配置相关文件

    Linux用户和组的配置相关文件     在linux下,用户的相关配置文件一般是放在/etc目录下,此文主要对以下几个配置文件作介绍:/etc/passwd;/etc/shadow;/etc/group;/etc/gpasswd   一、/etc/passwd:此目录下放的是用户的属性信息,包括组名、UID、GID等,它格式固…

    Linux干货 2016-10-30