首页 > 其他 > 详细

集群及系统扩展之一:LVS安装配置

时间:2015-10-16 18:59:24      阅读:337      评论:0      收藏:0      [点我收藏+]

一、LVS安装

1、查看内核是否支持ipvs

[root@localhost ~]# grep -i ‘ipvs‘ /boot/config-2.6.32-573.el6.x86_64 
# IPVS transport protocol load balancing support
# IPVS scheduler
# IPVS application helper
[root@localhost ~]# grep -i ‘ipvs‘ -A 10 /boot/config-2.6.32-573.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
--
# IPVS application helper
#
CONFIG_IP_VS_FTP=m
CONFIG_IP_VS_PE_SIP=m

#
# IP: Netfilter Configuration
#
CONFIG_NF_DEFRAG_IPV4=m
CONFIG_NF_CONNTRACK_IPV4=m
# CONFIG_NF_CONNTRACK_PROC_COMPAT is not set

[root@localhost ~]# uname -a
Linux localhost.localdomain 2.6.32-573.el6.x86_64 #1 SMP Thu Jul 23 15:44:03 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

注意:2.5版本后的内核已经默认支持IPVS


2、安装ipvsadm

[root@localhost ~]# yum install -y ipvsadm
[root@localhost ~]# rpm -ql ipvsadm
/etc/rc.d/init.d/ipvsadm
/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

3、ipvsadm命令的用法

管理集群服务:创建、修改、删除

管理集群服务的RS:添加、修改、移除

查看:统计数据、速率 


1)管理集群服务

创建或修改ipvsadm -A|E -t|u|f service-address [-s scheduler]

   -A:添加

   -E:修改

   -t: 承载的应用层协议为基于TCP协议提供服务的协议;其server-address的格式为“VIP:PORT”例如:“192.168.100.30:80”

   -f: 承载的应用层协议为基于TCP或UDP协议提供服务的协议,但此类报文经过iptables/netfilter打标记,即防火墙标记:其server-address的格式为“FWM”;例如:“10”

   -s: scheduler 指明调度算法;默认为WLC

[root@localhost ~]# ipvsadm -A -t 172.16.100.30:80
[root@localhost ~]# ipvsadm -l
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  172.16.100.30:http wlc
[root@localhost ~]#

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

查看ipvsadm -l|L

[root@localhost ~]# ipvsadm -D -t  172.16.100.30:80  
[root@localhost ~]# ipvsadm -l
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
[root@localhost ~]#

2)管理集群上的RS

添加或修改:ipvsadm -a|e -t|u|f service-address -r server-address [-g|i|m] [-w weight]

            -r server-address: 指明RS,server-address格式一般为“IP[:PORT]”;注意:只有支持端口映射的LVS类型才应该此处显式定义端口;例如:-r 192.168.100.10:8080

            [-g|i|m]: 指明lvs类型;省略时默认为dr类型

                       -g: gateway,意为dr类型

                        -i:ipip,意为tun类型

                        -m: masquerade,意为nat类型

          [-w weight]:当前RS的权重

                       注意:仅对于支持加权调度的scheduler才有意义

[root@localhost ~]# ipvsadm -a -t 192.168.100.30:80 -r 172.16.100.10 -m -w 2
[root@localhost ~]# ipvsadm -a -t 192.168.100.30:80 -r 192.168.100.20 -m -w 5
[root@localhost ~]# ipvsadm -l
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.100.30:http wlc
  -> 172.16.100.10:http           Masq    2      0          0         
  -> 192.168.100.10:http          Masq    2      0          0         
  -> 192.168.100.20:http          Masq    5      0          0         
[root@localhost ~]#

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

清空所有集群服务的定义ipvsadm -C

保存集群服务及RS的定义

    ipvsadm -S > /etc/sysconfig/ipvsadm

    ipvsadm-save > /etc/sysconfig/ipvsadm

    service ipvsadm save

[root@localhost ~]# cat /etc/sysconfig/ipvsadm
cat: /etc/sysconfig/ipvsadm: No such file or directory
[root@localhost ~]# ipvsadm -S
-A -t 192.168.100.30:http -s wlc
-a -t 192.168.100.30:http -r 172.16.100.10:http -m -w 2
-a -t 192.168.100.30:http -r 192.168.100.10:http -m -w 2
-a -t 192.168.100.30:http -r 192.168.100.20:http -m -w 5
[root@localhost ~]# cat /etc/sysconfig/ipvsadm
cat: /etc/sysconfig/ipvsadm: No such file or directory
[root@localhost ~]# service ipvsadm save
ipvsadm: Saving IPVS table to /etc/sysconfig/ipvsadm:      [  OK  ]
[root@localhost ~]# cat /etc/sysconfig/ipvsadm
-A -t 192.168.100.30:80 -s wlc
-a -t 192.168.100.30:80 -r 172.16.100.10:80 -m -w 2
-a -t 192.168.100.30:80 -r 192.168.100.10:80 -m -w 2
-a -t 192.168.100.30:80 -r 192.168.100.20:80 -m -w 5
[root@localhost ~]#

恢复集群服务及RS的定义

     ipvsadm -R < /etc/sysconfig/ipvsadm

     ipvsadm-restore < /etc/sysconfig/ipvsadm

     service ipvsadm restart

[root@localhost ~]# ipvsadm -C                
[root@localhost ~]# ipvsadm -l
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
[root@localhost ~]# cat /etc/sysconfig/ipvsadm
-A -t 192.168.100.30:80 -s wlc
-a -t 192.168.100.30:80 -r 172.16.100.10:80 -m -w 2
-a -t 192.168.100.30:80 -r 192.168.100.10:80 -m -w 2
-a -t 192.168.100.30:80 -r 192.168.100.20:80 -m -w 5
[root@localhost ~]# ipvsadm -R < /etc/sysconfig/ipvsadm
[root@localhost ~]# ipvsadm -l
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.100.30:http wlc
  -> 172.16.100.10:http           Masq    2      0          0         
  -> 192.168.100.10:http          Masq    2      0          0         
  -> 192.168.100.20:http          Masq    5      0          0         
[root@localhost ~]#

3)查看规则

         ipvsadm -l|L [options]

         -c: 列出当前所有connection

    --stats: 列出统计数据  

    --rates: 列出速率

-n|--numeric: 数字格式显示IP及端口,不作反解

     --exact:精确值

[root@localhost ~]# ipvsadm -l -c 
IPVS connection entries
pro expire state       source             virtual            destination
[root@localhost ~]# curl http://192.168.100.30
curl: (7) couldn‘t connect to host
[root@localhost ~]# curl http://192.168.100.30
curl: (7) couldn‘t connect to host
[root@localhost ~]# ipvsadm -l -c             
IPVS connection entries
pro expire state       source             virtual            destination
TCP 00:08  CLOSE       192.168.100.30:50227 192.168.100.30:http 192.168.100.10:http
TCP 00:07  CLOSE       192.168.100.30:50226 192.168.100.30:http 192.168.100.20:http

[root@localhost ~]# ipvsadm -l --stats
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port               Conns   InPkts  OutPkts  InBytes OutBytes
  -> RemoteAddress:Port
TCP  192.168.100.30:http                 3        3        3      180      120
  -> 172.16.100.10:http                  0        0        0        0        0
  -> 192.168.100.10:http                 1        1        1       60       40
  -> 192.168.100.20:http                 2        2        2      120       80
  
  [root@localhost ~]# ipvsadm -l --rate
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port                 CPS    InPPS   OutPPS    InBPS   OutBPS
  -> RemoteAddress:Port
TCP  192.168.100.30:http                 0        0        0        0        0
  -> 172.16.100.10:http                  0        0        0        0        0
  -> 192.168.100.10:http                 0        0        0        0        0
  -> 192.168.100.20:http                 0        0        0        0        0

4)清空计数器

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


二、实战案例

1、LVS-nat类型Direcor实现

1)实验环境:

OS:CentOS6.7

VIP:192.168.100.30

CIP:192.168.100.8 (windows)

DIP:192.168.200.10

R1IP:192.168.200.20

R2IP:192.168.200.30


集群及系统扩展之一:LVS安装配置

原文:http://xiexiaojun.blog.51cto.com/2305291/1703611

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!