03: HAProxy服务器 、 Keepalived热备 、 Keepalived+LVS

  1. 云栖社区>
  2. 博客>
  3. 正文

03: HAProxy服务器 、 Keepalived热备 、 Keepalived+LVS

技术小胖子 2017-11-08 14:38:00 浏览773
展开阅读全文

LVS/DR 
不对realserver 主机上的服务做健康性检查
是基于四层负载均衡集群软件(端口)

一、使用Haproxy软件部署网站LB集群
1.1 普通LB集群

客户端 192.168.4.250

haproxy服务器 192.168.4.100

网站服务器 192.168.4.101/102

配置 haproxy服务器:192.168.4.100
装包 
yum list | grep -i haproxy
rpm -q haproxy || yum -y install haproxy

修改配置文件
cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bak
vim /etc/haproxy/haproxy.cfg
[global]
....

[default]
...... 
stats uri /admin
listen lbweb 0.0.0.0:80
cookie SERVERID rewrite
balance roundrobin
server webA 192.168.4.101:80 cookie app101a check inter 2000 rise 2 fall 5
server webB 192.168.4.102:80 cookie app102b check inter 2000 rise 2 fall 5

:wq

启动服务#service haproxy start ; chkconfig haproxy on
查看端口 #netstat -utnalp | grep :80
客户端250 测试 #elinks --dump http://192.168.4.100/test.html
查看web页面显示健康性检查信息 http://192.168.4.100/admin
++++++++++++++++++++++++++++++++++++++++++++++
test.html a.php
]# service haproxy stop
]# mv haproxy.cfg haproxy.cfg-1
]# cp haproxy.cfg.bak haproxy.cfg

1.2 区分业务的LB集群(七层)
]# vim haproxy.cfg
stats uri /admin
frontend weblb 192.168.4.100:80
acl pathhtml path_end -i .html
acl pathphp path_end -i .php

use_backend   htmlgrp  if pathhtml
use_backend   phpgrp  if pathphp
default_backend   htmlgrp

backend htmlgrp
balance roundrobin
server app101 192.168.4.101:80 check
server app102 192.168.4.102:80 check
backend phpgrp
balance roundrobin
server app103 192.168.4.103:80 check
server app104 192.168.4.104:80 check
]# service haproxy start
++++++++++++++++++++++++++++++++++++++++
250 elinks --dump http://192.168.4.100/test.html
web101
web102
250 elinks --dump http://192.168.4.100/a.php
hello web103
hello web104

250 elinks --dump http://192.168.4.100
++++++++++++++++++++++++++++++++++++++
二、使用keepalived软件部署网站HA集群

  • 能够实现任意单故障节点的高可用集群。

配置网站高可用集群 103 和 104
1 在主机上都安装keepalived软件
#yum list | grep -i keepalived
#rpm -q keepalived || yum -y install keepalived

2 修改服务的主配置文件/etc/keepalived/keepalived.conf
2.1修改主服务器192.168.4.103
vim /etc/keepalived/keepalived.conf
...
state MASTER
priority 150
33 lb_kind DR
35 #persistence_timeout 50 #50秒内访问同一台

....
:wq
2.2修改备用服务器192.168.4.104
vim /etc/keepalived/keepalived.conf
....
state BACKUP
priority 100
33 lb_kind DR
35 #persistence_timeout 50 #50秒内访问同一台

....
:wq
++++++++++++++++++++++++++++++
3 启动服务
主服务器
/etc/init.d/keepalived start 
chkconfig keepalived on

备用服务器
/etc/init.d/keepalived start 
chkconfig keepalived on

4 查看是否获取到vip 地址
#ip addr show | grep 192.168.4.

4测试
250: elinks --dump http://vip/teset.php
192.168.4.253

++++++++++++++++++++++++++++++++++++++++++++++++
部署 101 和 102 为 HA 高可用集群。
客户端访问集群的vip地址是 192.168.4.252

101 <------- 102
思考: HA 集群中 主服务器没有宕机,但是应用服务(httpd)停止了,为问主服务器 是否会是否vip地址?

service httpd stop
ip addr show | grep 192

elinks --dump http://192.168.4.252/test.html

+++++++++++++++++++++++++++++++++++++++++++++++++
三、使用keepalvied 做lvs分发器的HA集群
3.1 配置KVS/DR模式的LB集群(网站)
3.1.1、配置网站服务器101 、 102 
运行网站服务 并编辑网页文件
修改网络接口运行参数 、绑定vip 地址

3.1.2、在做分发器的主机100、200上安装提供lvs服务的软件ipvsadm

3.2 配置分发器的HA集群 100、200
3.2.1 在2台分发器主机上分别安装keepalived软件
3.2.2 分别修改2台分发器主机上keepalived服务配置文件
3.2.3 分别启动2台分发器主机上的keepalived服务
3.2.4 查看是否获取到VIP地址 和 虚拟服务及realserver

3.3 测试HA集群的配置
把主服务器宕机后,客户端仍然能够正常访问网站服务。
elinks --dump http://192.168.4.253/test.html
vip 地址

http://192.168.4.253/b.html

http://192.168.4.252/c.html

+++++++++++++++++++++++++++++++++++++++++++
搭建共享存储服务器 192.168.4.105
配置需求:
配置LB集群中的网站服务把网页文件存储在 存储服务器105主机的/dev/vdd磁盘上。

共享目录的服务有哪些? NFS Samba tftp ftp
nfs cifs tftp ftp

mount /dev/vdd1 /sharedir 
3G

一、配置存储服务器192.168.4.105
1.1 准备存储空间: 分区 、 格式化 、 挂载
165 fdisk -l /dev/vdd
165 fdisk /dev/vdd -> n -> p ->1 ->2次回车->w 
165 fdisk -l /dev/vdd
169 blkid /dev/vdd1
170 mkfs.ext4 /dev/vdd1
171 blkid /dev/vdd1
172 mkdir /webdir
173 mount /dev/vdd1 /webdir
174 df -h /webdir/

umount /webdir

设置开机挂载 /etc/fstab
[root@storage105 ~]# tail -1 /etc/fstab 
UUID=3f505f56-b559-4f95-9d99-8f99d9318e3c /webdir ext4 defaults 0 0
[root@storage105 ~]# mount -a
[root@storage105 ~]# mount | grep /webdir

1.2 共享存储存储空间: 装包 、修改配置文件、启动服务
184 rpm -q nfs-utils
185 rpm -q nfs-utils || yum -y install nfs-utils
186 rpm -q nfs-utils
]# rpm -q rpcbind || yum -y install rpcbind
]# vim /etc/exports
/webdir *(rw)
:wq
]# chmod o+w /webdir/

193 /etc/init.d/rpcbind status
194 /etc/init.d/rpcbind start
195 /etc/init.d/nfs status
196 /etc/init.d/nfs start
#chkconfig rpcbind on 
#chkconfig nfs on

1.3 在本机查看共享信息
[root@storage105 ~]# which showmount
/usr/sbin/showmount
[root@storage105 ~]# rpm -qf /usr/sbin/showmount 
nfs-utils-1.2.3-64.el6.x86_64
[root@storage105 ~]# 
[root@storage105 ~]# showmount -e localhost
Export list for localhost:
/webdir 
[root@storage105 ~]# 
二、配置应用服务器192.168.4.101/102
2.1 挂载nfs共享目录
]# yum -y install nfs-utils
]# showmount -e 192.168.4.105
]# rm -rf /var/www/html/

]# mount -t nfs 192.168.4.105:/webdir /var/www/html/
2.2 在105主机上编写网页文件
vim /webdir/test.html
aaaa
cccc
:wq
2.3 客户端 250 访问 lb集群能够看到网页内容
elinks --dump http://192.168.4.253/test.html


     本文转自sweak_h 51CTO博客,原文链接:http://blog.51cto.com/13478354/2069985,如需转载请自行联系原作者




网友评论

登录后评论
0/500
评论