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

相关推荐

  • 22期+第一周课堂练习

    一.计算机的组成及其功能 计算机的组成及其功能结构图      各部件的关系图          二.按系列罗列Linux的发行版,并描述不同版本之间的联系与区别 1.各版本逻辑结构图 2.各版本的介绍   Redhat,应该称为Redhat系列,包括RHEL(Redh…

    Linux干货 2016-08-15
  • 磁盘管理之swap,移动设备及dd命令的使用

    首先我们来复习一下前一天的内容 CHS Sector(扇区) 512字节 track(磁道) 63个 2^6个扇区 1024个磁道,10个位存储磁道数 track=cylinder(柱面) cylinder=(容量)sector(512)track(63)head(256)=8M head(磁头) 256 8位存储 MBR的分区方式都是基于柱面为整…

    Linux干货 2016-09-07
  • N26_第四周

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 [root@node1 skel]# cp -r /etc/skel/home/tuser1 [root@node1 skel]# chmod go-wrx/home/tuser1/   2、编辑/etc/grou…

    Linux干货 2017-05-26
  • RAID磁盘冗余探究

    RAID磁盘冗余探究 RAID的全称是Redundant Arrays of Inexpensive Disk,可以翻译为廉价的磁盘冗余阵列。由加利福尼亚大学伯克利分校的一位教授在1988年提出,是一种磁盘管理方式。其产生的初衷是为了降低成本,但是为了达到RAID的功能,其造价并不便宜,所以后来改为Redundant Arrays of Independen…

    2017-08-26
  • CentOS系统启动流程(上)

    CentOS系统启动流程(上)   作为系统运维人员,详细的了解操作系统的启动流程,对于我们日常排除故障大有益处,遇到相关的问题处理,能快速定位,迅速锁定关键点。 下面详细介绍一下,CentOS系统的启动过程,以供各位参考。由于linux各个发行版使用的启动方法略有不同,比如CentOS5使用的是initd,CentOS6使用的是较为接近的Upst…

    Linux干货 2016-06-09
  • N22-草稿

    testing

    Linux干货 2016-08-08