Openstack的HA解决方案【haproxy和keepalived】
1. 安装haproxy,keepalived, httpd,3台机器一致。
yum install haproxy keepalived httpd -y
2. 修改httpd的默认页面. 在/var/www/error/noindex.html中修改,
<div class="content-middle">
<p>163:This page is
其实随便一个地方添加上服务的httpd的IP即可,并且修改httpd端口为8080. 测试页面: 20140818143109.jpg 3台机器都一样,页面分别展示不同的IP地址。
3. 修改163的haproxy.
backend app
balance roundrobin
server app1 172.17.44.163:8080 check
server app2 172.17.44.164:8080 check
server app3 172.17.44.164:8080 check
将IP和端口修改.
4. 启动163的haproxy。 访问,172.17.44.163.5000。多次刷新,可以看到前面类似的页面IP地址变化会有164,165.但是图片不会正常展示,因为我们没有配置图片的请求。
5.164.165都配置上haproxy,执行同163一样的操作。
6. keepalived的作用介绍
keepalived可以创建出一个虚拟IP(vip,这里的V是virtual),可以heartbeat各个机器的服务
7.设置keepalived的虚拟IP
在keepalived的配置路径/etc/keepalived/下配置
! Configuration File for keepalived
global_defs {
router_id NODE1
notification_email {
root@localhost
}
notification_email_from root@local host
smtp_server localhost
smtp_connect_timeout 30
}
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 {
172.17.44.170
}
}
这里我们设置的是163这台机器作为Master,他的优先级别是100,虚拟IP是172.17.44.170,将这个文件复制到164,165,修改state 为BACKUP,优先级为99或更低。
全部使用service keepalived start.
在/var/log/message查看日志。
在163查看IP地址是否获取到:
[root@ha1 keepalived]# ip addr list
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:e6:aa:16 brd ff:ff:ff:ff:ff:ff
inet 172.17.44.163/24 brd 172.17.44.255 scope global eth0
inet 172.17.44.170/32 scope global eth0
inet6 fe80::20c:29ff:fee6:aa16/64 scope link
valid_lft forever preferred_lft forever
[root@ha1 keepalived]#
可以看到eth0还有一个IP是170.本地开发环境并且能ping通,表示MASTER的虚拟IP获取成功。 reboot163服务器,立刻重新ping,172.17.44.170,还是能通,因为该170IP已经被172.17.44.164接管。
8. 结合前面的haproxy,访问172.17.44.170:5000,可以看到现在这个服务已经有了高可用性(关闭任何一台机器,服务正常),高并发(多台服务器处理相同请求)的雏形了
Openstack的HA解决方案【haproxy和keepalived】的更多相关文章
- Openstack的HA解决方案【替换原有的dashboard】
0. 进入到/etc/haproxy/conf.d/目录下 mv 015-horizon.cfg 150-timaiaas.cfg 将原有的dashboard的ha配置文件做为自己的配置文件. 1. ...
- Openstack的HA解决方案【mysql集群配置】
使用mysql的galera做多主集群配置,galera的集群优势网络上面有对比,这里不在叙述. 1. 新建3台虚拟机(centos6.5) node1:172.17.44.163 node2:172 ...
- [HA]负载均衡:HAPROXY与KEEPALIVED强强联合
第一步:更改系统控制配置文件,同意分配虚拟IP(VIP) /etc/sysctl.conf net.ipv4.ip_nonlocal_bind=1 <pre style="word-w ...
- 浅谈web应用的负载均衡、集群、高可用(HA)解决方案(转)
1.熟悉几个组件 1.1.apache —— 它是Apache软件基金会的一个开放源代码的跨平台的网页服务器,属于老牌的web服务器了,支持基于Ip或者域名的虚拟主机,支持代理服务器,支持安 ...
- HAProxy、Keepalived 在 Ocatvia 的应用实现与分析
目录 文章目录 目录 Amphora 启动 keepalived 启动 haproxy 最后 Amphora 创建一个 loadbalancer 需要占用一到两台 Amphora Instance 作 ...
- openstack controller ha测试环境搭建记录(一)——操作系统准备
为了初步了解openstack controller ha的工作原理,搭建测试环境进行学习. 在学习该方面知识时,当前采用的操作系统版本是centos 7.1 x64.首先在ESXi中建立2台用于测试 ...
- OpenStack Mitaka HA部署方案(随笔)
[Toc] https://github.com/wanstack/AutoMitaka # 亲情奉献安装openstack HA脚本 使用python + shell,完成了基本的核心功能(纯二层的 ...
- 用HAProxy和KeepAlived构建高可用的反向代理
用HAProxy和KeepAlived构建高可用的反向代理 用HAProxy和KeepAlived构建高可用的反向代理 前言对于访问量较大的网站来说,随着流量的增加单台服务器已经无法处理所有的请求 ...
- saltstack自动化运维系列⑥SaltStack实践安装配置HAproxy的Keepalived
saltstack自动化运维系列⑥SaltStack实践安装配置HAproxy的Keepalived 安装配置Keepalived 1.编写功能模块 #创建keepalived目录# mkdir -p ...
随机推荐
- LightOj1028 - Trailing Zeroes (I)---求因子个数
题目链接:http://lightoj.com/volume_showproblem.php?problem=1028 题意:给你一个数 n (1<=n<=10^12), 然后我们可以把它 ...
- qt 打开串口 UI卡死
imx6在qt中打开调试串口时,ui总是会卡死.调试串口已经被文件系统占用,而在qt的app中使用open函数却能够调用open函数,打开成功,造成ui卡死,并且调试串口也卡死.本文记录这个问题的解决 ...
- oracle 中的游标
oracle 中的游标 通俗易懂的sql代码直接上! --简单的游标使用滴呀 --使用FOR OBJ IN OBJS LOOP ......END LOOP; DECLARE CURSOR C_JOB ...
- iOS 面试题及答案
1.写一个NSString类的实现 + (id)initWithCString:(c*****t char *)nullTerminatedCString encoding:(NSStringEnco ...
- JQuery:JQuery删除元素
JQuery:删除元素通过 jQuery,可以很容易地删除已有的 HTML 元素.删除元素/内容.如需删除元素和内容,一般可使用以下两个 jQuery 方法: remove() - 删除被选元素(及其 ...
- CLM
https://github.com/TadasBaltrusaitis/CLM-framework
- Java 语句总结
一.替代if语句x = a ? b:c; 等价:if (a){ x=b;}else{x=c;}二.页面展示二维数组 <s:iterator var="rt" value=&q ...
- Strawberry Perl CPAN Install Module 安装 Module 方法
我在 Windows 上用的是 Strawberry Perl. 安装好 Strawberry Perl 之后, 打开 CMD, 输入 CPAN <Module_Name> 即可安装你想要 ...
- ios-通知简单示例
通知是一种一对多的信息广播机制,一个应用程序同时只能有一个NSNotificationCenter(通知中心)对象,用来添加通知观察者或者说监听者,以及发送通知. 用的地方是:不同控制器的传值回调.d ...
- lua metatable 和 _index 实验
lua metatable 和 _index 中文博客解释: http://www.cnblogs.com/simonw/archive/2007/01/17/622032.html metatabl ...