Linux集群--简单实现LVS-DNAT及LVS-DR

zjhqlmzldx 2011-09-12

LVS-DNAT

工作原理:

在数据包进入本机内部之前,就改变它的目的地址(需要在内核实现)

 Linux集群--简单实现LVS-DNAT及LVS-DR

LVS的工作机制类似iptables,一部分工作在用户空间(ipvsadm),一部分工作在内核空间

安装ipvsadm软件就足以实现LVS的功能

使用ipvsadm,早期需要重新编译内核,不过现在版本的RedHat默认直接做进内核

# 查看内核是否含有ipvs

grep –I –c 5 ipvs /boot/config-‘uname -r’   

ipvsadm命令的使用:

ipvsadm功能

1:定义集群服务

   2:定义真正的REALSERVER

   3:查看定义的信息  

1.定义集群服务

ipvsadm

-t        基于tcp的集群服务

-u        基于udp

-f        基于firewall的集群服务,防火墙的类型

-A       添加一个新集群

-E       修改一个集群

-s        指定算法 默认 wlc

         -D               删除一个集群

         -g|i|m     gateway|internet|net  DR|TUN|DNAT模型

         -w        权重

         -C        清空规则

         -S               保存规则到某个文件

   -R               从某个文件恢复规则

         -L|l       查看

        -n --numeric    数字方式显示地址

                      --stats        显示统计的数据信息(statistics的简写)

          --rate         显示速率信息

         -Z        清空计数器 

添加/删除director端

ipvsadm -A| -E -t |-u VIP:port -s 

ipvsadm -D -t|-u VIP:port  

添加/删除realserver端

ipvsadm -a |-e -t|-u VIP:port -r REALSERVER[-g|-i|-m] [-w weight]

ipvsadm -d -t|-u VIP:port -r READSERVER 

配置安装LVS

1.安装OS

2.后方安装apache

3.设置默认路由

4.安装lvs

5.配置LVS,定义好规则

6.做测试 

 Linux集群--简单实现LVS-DNAT及LVS-DR

1.两个apache作为realserver 只提供静态页面

2.Directory打开转发功能

3.两个realserver处于同一个网段 

准备:

1)      3台干净的虚拟机:RS1 RS2  Director (需要加一块网卡)

2) 配置各自的好yum源 

一:配置好地址,安装软件

realserver端:

ifconfig eth0 10.0.0.11/8

route add default gw 10.0.0.1/8

yum install httpd php php-mysql mysqlmysql-server php-mbstring -y

# 测试网页是否显示

vim /var/www/html/index.html

realserver1

service httpd start

elinks http://10.0.0.11

 

directory端:

ifconifg eth0 10.0.0.1/8

yum install ipvsadm

 

 

# 打开ipforward

echo 1 > /proc/sys/net/ipv4/ip_forward

 

#添加director

ipvsadm -A -t 172.16.14.1:80 -s rr

# 查看集群服务

ipvsadm -L -n     

#添加realserver

ipvsadm -a -t 172.16.14.1:80 -r 10.0.0.11-m

ipvsadm -a -t 172.16.14.1:80 -r 10.0.0.12-m

ipvsadm -L -n

 

集群已经构建好了。。。。用浏览器测试下

 Linux集群--简单实现LVS-DNAT及LVS-DR

# 压力测试,十个并发连接,发起10000次

ab -c 10 -n 10000 http://172.16.14.1/index.html

# 查看结果

ipvsadm -Ln 

# 使用加权最少连接

ipvsadm -E -t 172.16.14.1:80 -s wlc

# 修改权重

ipvsadm -e -t 172.16.14.1:80 -r 10.0.0.11-m -w 3

 

# 压力测试,十个并发连接,发起10000次

ab -c 10 -n 10000http://172.16.14.1/index.html

 

# 换别的算法来测试,看看效果  单引号

watch -n 1 ‘ipvsadm -L -n’

 

# 保存ipvsadm 结果,否则开机就没有了

# 对于redhat

service ipvsadm save

chkconfig ipvsadm on

# 或者

ipvsadm -S > /etc/sysconfig/ipvsadm

##########建议自己写脚本实现,save的功能,最好带startstop restart 

 Linux集群--简单实现LVS-DNAT及LVS-DR

Linux集群--简单实现LVS-DNAT及LVS-DR

Linux集群--简单实现LVS-DNAT及LVS-DR

相关推荐