LVS搭建负载均衡的环境

来源:互联网 发布:防蓝光 软件 编辑:程序博客网 时间:2024/04/30 11:54


系统:Centos6  (三台)   

负载均衡:LVS  + keepalived  

服务器1Http  

服务器2Http

1VIPvirtual ip):用来提供virtual server服务的ip地址。分别绑定在Director一个物理网卡上(对外接收请求包)和RS的回环设备上(回环设备需要绑定两个ip,一个是127.0.0.1,另一个就是vip)。

2DIPdirector ip):与vip绑定在一个物理网卡上,用来转发请求包到RSRIP对应的mac上,此设备可以通过arp请求获取RIP对应的mac地址。

3RIPreal server ip):绑定在RS上的一个物理网卡上,用来接收从Directory转发过来的请求包。

[root@itcast01 ~]# service iptables status

[root@itcast01 ~]# service iptables stop

[root@itcast01 ~]# chkconfig iptables --list

[root@itcast01 ~]# chkconfig iptables off

[root@itcast01 ~]# cd /etc/init.d/

[root@itcast01 ~]#touch realserver

[root@itcast01 ~]#vim realserver

SNS_VIP=192.168.8.150

. /etc/rc.d/init.d/functions

case "$1" in

start)

ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP

/sbin/route add -host $SNS_VIP dev lo:0

echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore

echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce

echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore

echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce

sysctl -p >/dev/null 2>&1

echo "RealServer Start OK"

;;

stop)

ifconfig lo:0 down

route del $SNS_VIP >/dev/null 2>&1

echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore

echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce

echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore

echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce

echo "RealServer Stoped"

;;

*)

echo "Usage: $0 {start|stop}"

exit 1

esac

exit 0

以上参数说明

SNS_VIP=192.168.1.98            #定义VIP变量

. /etc/rc.d/init.d/functions #导脚本库

case "$1" in #case语句$1传递给该shell脚本的第一个参数

start)

ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP #设置Lo0 VIP  netmask  及广播

/sbin/route add -host $SNS_VIP dev lo:0   ##route del增加本地路由

echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore

echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce

echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore

echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce

sysctl -p >/dev/null 2>&1 # -p <file>   (default /etc/sysctl.conf)将标准信息输入设备空文件

echo "RealServer Start OK"

;;

stop)

ifconfig lo:0 down

route del $SNS_VIP >/dev/null 2>&1      #route del删除本地路由

echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore

echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce

echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore

echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce

echo "RealServer Stoped"

;;

*)

echo "Usage: $0 {start|stop}"  #$0 是脚本本身的名字

exit 1 #表示进程正常退出

esac #case结束

exit 0 #表示进程非正常退出

[root@itcast01 ~]#chmod 750 realserver    #给此脚本赋予权限

 [root@itcast01 ~]#service realserver start          #开启此脚本

RealServer Start OK    #表示启动成功!

[root@itcast01 ~]#ifconfig    #查看一下是否真的成功添加了lo:0接口

 


[root@itcast01 ~]#service httpd start              #开启Http服务器

[root@itcast01 ~]#cd /var/www/html/             #进入Http服务器默认的目录

[root@itcast01 ~]#touch index.html               #创建Http服务器默认访问页面

[root@itcast01 ~]#vim index.html                #编辑Http服务器默认访问页面

I am http IP : 真实服务器自己的IP(例如:192.168.200.201)

用浏览器访问一下:http://192.168.200.201      默认端口80

  I am http IP : 真实服务器自己的IP(例如:192.168.200.201)



1:安装 ipvsadm  keepalived

命令:yum –y install ipvsadm keepalived

2:配置 keepalived

命令:vim /etc/keepalived/keepalived.conf

global_defs {                       

#   notification_email {             

#       admin@toxingwang.com

#   }

#   notification_email_from master@toxingwang.com

#   smtp_server smtp.exmail.qq.com

#   smtp_connect_timeout 30

router_id LVS_DEVEL             

}

vrrp_instance VI_1 {            

state MASTER             

interface eth0            

virtual_router_id 51        

priority 100                  

advert_int 1           

authentication {        

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {         

192.168.200.201

}

}

virtual_server 192.168.200.201 80 {

delay_loop 6           

lb_algo wrr            

lb_kind DR                          

nat_mask 255.255.255.0   

persistence_timeout 0    

protocol TCP                          

real_server 192.168.200.139 80 {     

weight 3                             

TCP_CHECK {                     

connect_timeout 10   

nb_get_retry 3

delay_before_retry 3

connect_port 80

}

}

real_server 192.168.200.140 80 {

weight 3

TCP_CHECK {

connect_timeout 10

nb_get_retry 3

delay_before_retry 3

connect_port 80

}

}

}

以上参数说明

global_defs {                        ##全局配置部分

#   notification_email {             ##下面几行均为全局通知配置,可以实现出现问题后报警,但功能有限,因此注释掉,并采用Nagios监视lvs运行情况

#       admin@toxingwang.com

#   }

#   notification_email_from master@toxingwang.com

#   smtp_server smtp.exmail.qq.com

#   smtp_connect_timeout 30

router_id LVS_DEVEL             ##设置lvsid,在一个网络内应该是唯一的

}

vrrp_instance VI_1 {            ##设置vrrp组,唯一且同一LVS服务器组要相同

state MASTER             ##备份LVS服务器设置为BACKUP

interface eth0             # #设置对外服务的接口

virtual_router_id 51        ##设置虚拟路由标识

priority 100                   #设置优先级,数值越大,优先级越高,backup设置为99,这样就能实现当master宕机后自动将backup变为master,而当原master恢复正常时,则现在的master再次变为backup

advert_int 1            ##设置同步时间间隔

authentication {         ##设置验证类型和密码,masterbuckup一定要设置一样

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {          ##设置VIP,可以多个,每个占一行

192.168.18.60

}

}

virtual_server 192.168.18.60 80 {

delay_loop 6            ##健康检查时间间隔,单位s

lb_algo wrr             ##负载均衡调度算法设置为加权轮叫

lb_kind DR                              ##负载均衡转发规则

nat_mask 255.255.255.0   ##网络掩码,DR模式要保障真实服务器和lvs在同一网段

persistence_timeout 50    ##会话保持时间,单位s

protocol TCP                           ##协议

real_server 192.168.18.61 80 {      ##真实服务器配置,80表示端口

weight 3                             ##权重

TCP_CHECK {                       ##服务器检测方式设置keepalived的健康检查方式 有:HTTP_GET|SSL_GET|TCP_CHECK|SMTP_CHECK|MISC_CHECK

connect_timeout 0    ##连接超时时间

nb_get_retry 3      ##失败重试次数

delay_before_retry 3 ##失败重试的间隔时间

connect_port 80      ##连接的后端端口

}

}

 

real_server 192.168.18.62 80 {

weight 3

TCP_CHECK {

connect_timeout 10

nb_get_retry 3

delay_before_retry 3

connect_port 80

}

}

}

启动keepalived服务

[root@lvs1 ~]# service keepalived start


2.1 LVS备机搭建

global_defs {                       

#   notification_email {             

#       admin@toxingwang.com

#   }

#   notification_email_from master@toxingwang.com

#   smtp_server smtp.exmail.qq.com

#   smtp_connect_timeout 30

router_id LVS_DEVEL             

}

vrrp_instance VI_1 {            

state BACKUP             

interface eth0            

virtual_router_id 51        

priority 99                  

advert_int 1           

authentication {        

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {         

192.168.200.201

}

}

virtual_server 192.168.200.201 80 {

delay_loop 6           

lb_algo wrr            

lb_kind DR                          

nat_mask 255.255.255.0   

persistence_timeout 0    

protocol TCP                          

real_server 192.168.200.139 80 {     

weight 3                             

TCP_CHECK {                     

connect_timeout 10   

nb_get_retry 3

delay_before_retry 3

connect_port 80

}

}

real_server 192.168.200.140 80 {

weight 3

TCP_CHECK {

connect_timeout 10

nb_get_retry 3

delay_before_retry 3

connect_port 80

}

}

}

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 大学档案高考体检表丢了怎么办 工厂组织体检我有乙肝怎么办 我有乙肝单位组织体检怎么办? 矮腰袜子老掉怎么办 短腰袜子老下滑怎么办 中考体检结果丢了怎么办 咳嗽左胸围一处刺痛怎么办? 阴茎小父母催婚怎么办 头发扎进指甲缝怎么办 指甲缝扎流血了怎么办 中考考差了高中怎么办 骨折后我抽烟了怎么办 五年级科学考不好怎么办 考试连续考差了怎么办 客户说没考虑好怎么办 小孩生殖器痒经常用手抓怎么办 孩子在幼儿园生殖器官受伤怎么办? 被骗了3000块钱怎么办 小说 月经来了想体检怎么办 尿检的时候遇上月经期怎么办 消防兵改革那新兵怎么办 教师资格证体检有问题怎么办 检兵合格还在上学怎么办 运动后肌肉肿了怎么办 打架用力过猛肌肉疼痛怎么办 军检只要一项不合格怎么办 体检身高差一厘米怎么办 体检身高差两公分怎么办 体检身高差10厘米怎么办 孩子的爸爸总是打游戏怎么办 拉屎屁眼疼还有血怎么办 家里冼澡要等好多冷水怎么办 孕晚期小孩头大怎么办 报考警校体检不合格退回怎么办? 入职体检视力0.1怎么办 屁扒骨折疼要怎么办 宝宝发高烧怎么办能快速退烧 屁股上长了纹路怎么办 手机充电头歪了怎么办 屁股挠烂了化脓怎么办 手机充电那坏了怎么办