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

相关推荐

  • shell脚本基础

    1、编程基础     程序:指令+数据   程序编程风格:                         过程式:以指令为中心,数据服务于指令         &nbs…

    2017-04-20
  • 日志收集工具EFK之fluent部署手稿

    Edit EFK fluent部署安装 1. 环境介绍 Centos 6.5 64bit 2. 安装 td-agent介绍 fluent 考虑到灵活可扩展性,使用Ruby编写,部分功能考虑性能使用C语言编写。普通用户安装操作Ruby daemon还是有一定难度的。考虑到flunt的上手难度, fluent专门发布了稳定发布包,就也是所谓的td-agent. …

    Linux干货 2016-03-24
  • LVM原理、创建、扩容、缩减、快照详解

    LVM是什么?为什么要使用LVM?     LVM(Logical Volume Manager):逻辑卷管理, 在日常使用或生产环境中, 我们可能会因为在规划存储时未考虑到未来数据增长的速度超乎我们的预计而措手不及,因为增加一块硬盘再将源数据移到新硬盘上很麻烦并且提高了成本还浪费硬盘空间。   &…

    Linux干货 2016-03-09
  • 学而时习之

    1、 Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 文件管理类命令 ls, 查看:cat,more,less,tail,head,tac 复制:cp 移动:mv 删除:rm 创建:touch 元数据属性:stat 查看内容类型:file 文本编辑器:nano,vi Linux的文件类型       &…

    Linux干货 2016-09-24
  • 三步走进行IP大揭秘

    跟随博主三步走进行IP大揭秘! 一、IP简介 1.ip地址:可以分为合法ip地址(公网ip地址)和私有ip地址, 合法ip地址主要应用于internet上的主机访问,而私有ip地址应用于局域网中计算机的相互通信。 2.ip地址的表示形式:分为二进制表示和点分十进制表示。 一般使用点分十进制表示,现在通常使用的ip地址长度均为32位,由四个八位域组成,可称为八…

    2017-09-02
  • 常用进程查看工具

    进程是我们学习Linux中常常接触的概念,他是程序被运行起来的一种表现形态。 了解进程的工作状态,管理进程的工作状态,可以让我们更清楚的知道,系统正在做什么,整体的进度是怎么样的。 想要了解进程的工作状态,我们就需要借助一些常用的工具来查看,想要对进程进行管理,我们也需要工具来实现。下面我们一起来看一看常用的查看进程工具有哪些,这些工具是如何使用的,有什么特…

    2017-05-09