002.Heartbeat部署及httpd高可用
一 前期准备
1.1 依赖准备
1.2 环境准备
|
节点/主机名
|
业务IP
|
心跳IP
|
|
master1.yewu.com
|
192.168.88.100
|
192.168.77.100
|
|
master2.yewu.com
|
192.168.88.101
|
192.168.77.101
|
|
vip
|
192.168.88.88
|
|
# hostnamectl set-hostname master1.yewu.com
# hostnamectl set-hostname master2.yewu.com #分别配置主机名
# /etc/hosts
127.0.0.1 localhost.localdomain localhost
#public ip #业务host解析
192.168.88.100 master1.yewu.com master1
192.168.88.101 master2.yewu.com master2 #private ip #Heartbeat心跳解析
192.168.77.100 master1-private.ha.com master1-private
192.168.77.101 master2-private.ha.com master2-private
[root@master1 ~]# ifconfig |grep eth[0-9] -A1 #确认相应IP地址

[root@master1 ~]# ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ''
[root@master1 ~]# ssh-copy-id -i ./.ssh/id_rsa.pub root@192.168.88.101
[root@master2 ~]# ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ''
[root@master2 ~]# ssh-copy-id -i ./.ssh/id_rsa.pub root@192.168.88.100
二 正式安装Heartbeat
2.1 下载相应包
[root@master1 ~]# wget http://hg.linux-ha.org/glue/archive/0a7add1d9996.tar.bz2
[root@master1 ~]# wget http://hg.linux-ha.org/heartbeat-STABLE_3_0/archive/958e11be8686.tar.bz2
[root@master1 ~]# wget https://github.com/ClusterLabs/resource-agents/archive/v3.9.6.tar.gz
2.2 安装cluster-glue
[root@master1 ~]# groupadd haclient
[root@master1 ~]# useradd -g haclient hacluster
[root@master1 ~]# tar xf 0a7add1d9996.tar.bz2
[root@master1 ~]# mv Reusable-Cluster-Components-glue--0a7add1d9996/ cluster_glue
[root@master1 ~]# cd cluster_glue/
[root@master1 cluster_glue]# ./autogen.sh
[root@master1 cluster_glue]# ./configure --prefix=/usr/local/heartbeat --with-daemon-user=hacluster --with-daemon-group=haclient --enable-fatal-warnings=no LIBS='/lib64/libuuid.so.1'

[root@master1 cluster_glue]# make && make install
2.3 安装Resource Agents
[root@master1 ~]# tar xf v3.9.6.tar.gz
[root@master1 ~]# cd resource-agents-3.9.6/
[root@master1 resource-agents-3.9.6]# ./autogen.sh
[root@master1 resource-agents-3.9.6]# ./configure --prefix=/usr/local/heartbeat --with-daemon-user=hacluster --with-daemon-group=haclient --enable-fatal-warnings=no LIBS='/lib64/libuuid.so.1'

[root@master1 resource-agents-3.9.6]# make && make install
ln -s /usr/local/heartbeat/lib/* /lib/
ln -s /usr/local/heartbeat/lib/* /lib64/ #将生成的动态库,添加快捷方式到/lib下
2.4 安装Heartbeat
[root@master1 ~]# tar xf 958e11be8686.tar.bz2
[root@master1 ~]# export CFLAGS="$CFLAGS -I/usr/local/heartbeat/include -L/usr/local/heartbeat/lib"
[root@master1 ~]# cd Heartbeat-3-0-958e11be8686/
[root@master1 Heartbeat-3-0-958e11be8686]# ./bootstrap
[root@master1 Heartbeat-3-0-958e11be8686]# ./configure --prefix=/usr/local/heartbeat --with-daemon-user=hacluster --with-daemon-group=haclient --enable-fatal-warnings=no LIBS='/lib64/libuuid.so.1'

[root@master1 Heartbeat-3-0-958e11be8686]# make && make install
2.5 Heartbeat优化
[root@master1 ~]# cp /root/Heartbeat-3-0-958e11be8686/doc/{ha.cf,haresources,authkeys} \
/usr/local/heartbeat/etc/ha.d/ #复制相关配置文件
[root@master1 ~]# chmod 600 /usr/local/heartbeat/etc/ha.d/authkeys
[root@master1 ~]# mkdir -pv /usr/local/heartbeat/usr/lib/ocf/lib/heartbeat/
[root@master1 ~]# cp /usr/lib/ocf/lib/heartbeat/ocf-* \
/usr/local/heartbeat/usr/lib/ocf/lib/heartbeat/
[root@master1 ~]# ln -svf /usr/local/heartbeat/lib64/heartbeat/plugins/RAExec/* \
/usr/local/heartbeat/lib/heartbeat/plugins/RAExec/
[root@master1 ~]# ln -svf /usr/local/heartbeat/lib64/heartbeat/plugins/* \
/usr/local/heartbeat/lib/heartbeat/plugins/
[root@master1 ~]# chkconfig --add heartbeat #CentOS7可省略
[root@master1 ~]# systemctl enable heartbeat.service
[root@master1 ~]# systemctl start heartbeat.service
三 配置Heartbeat
3.1 安装httpd服务
[root@master1 ~]# yum -y install httpd
[root@master1 ~]# systemctl stop httpd
[root@master1 ~]# systemctl disable httpd #master2也需要安装
[root@master1 ~]# echo "master1.yewu.com" >>/var/www/html/index.html
[root@master2 ~]# echo "master2.yewu.com" >>/var/www/html/index.html
3.2 配置authkeys
[root@master1 ~]# vi /usr/local/heartbeat/etc/ha.d/authkeys
auth 3
3 md5 Yes!
3.3 配置Heartbeat
[root@master1 ~]# vi /usr/local/heartbeat/etc/ha.d/ha.cf
logfile /var/log/ha-log #记录Heartbeat其他相关日志信息
logfacility local0 #设置heartbeat的日志,这里用的是系统日志
keepalive 2 #设定心跳(监测)时间间隔为2秒
deadtime 15 #宣告死亡时间
warntime 10 #心跳延时时间
initdead 60 #初始化时间
udpport 694 #用于通信的UDP端口
bcast eth1 #接受广播心跳的网卡接口
ucast eth1 192.168.77.101 #置对方机器心跳检测的IP
auto_failback off #关闭自动切回恢复正常的主节点
node master1.yewu.com #集群节点的名称,必须匹配uname -n的结果。
node master2.yewu.com
ping 192.168.88.1
respawn hacluster /usr/local/heartbeat/libexec/heartbeat/ipfail
3.4 配置haresources
[root@master1 ~]# ll /usr/local/heartbeat/etc/ha.d/resource.d/ #查看现有资源类型
[root@master1 ~]# vi /usr/local/heartbeat/etc/ha.d/haresources
master1.yewu.com IPaddr::192.168.88.88/24/eth0 apache
[root@master1 ~]# scp /usr/local/heartbeat/etc/ha.d/{ha.cf,haresources,authkeys} 192.168.88.101:/usr/local/heartbeat/etc/ha.d/ #将所有配置复制至master2节点
[root@master2 ~]# vi /usr/local/heartbeat/etc/ha.d/ha.cf
ucast eth1 192.168.77.100 #置对方机器心跳检测的IP
四 验证Heartbeat
4.1 master1单节点启动验证
[root@master1 ~]# systemctl start heartbeat.service
[root@master1 ~]# tail -f /var/log/ha-log #验证日志



4.2 master2启动并验证
[root@master2 ~]# systemctl start heartbeat.service
[root@master1 ~]# tail -f /var/log/ha-log #观察master2节点启动后的master1日志


[root@master1 ~]# shutdownr #模拟master1节点宕机
[root@master2 ~]# ifconfig #master2节点会自动接管vip


002.Heartbeat部署及httpd高可用的更多相关文章
- Heartbeat实现web服务器高可用
一.Heartbeat概述: Heartbeat的工作原理:heartbeat最核心的包括两个部分,心跳监测部分和资源接管部分,心跳监测可以通过网络链路和串口进行,而且支持冗余链路,它们之间相互发送报 ...
- 配置:heartbeat+nginx+mysqld+drbd高可用笔记(OK)
参考资料:http://www.centoscn.com/CentosServer/cluster/2015/0605/5604.html 背景需求: 使用heartbeat来做HA高可用,并且把 ...
- 使用二进制的方式部署 K8S-1.16 高可用集群
一.项目介绍 项目致力于让有意向使用原生kubernetes集群的企业或个人,可以方便的.系统的使用二进制的方式手工搭建kubernetes高可用集群.并且让相关的人员可以更好的理解kubernete ...
- 用Kolla在阿里云部署10节点高可用OpenStack
为展现 Kolla 的真正实力,我在阿里云使用 Ansible 自动创建 10 台虚机,部署一套多节点高可用 OpenStack 集群! 前言 上次 Kolla 已经表示了要打 10 个的愿望,这次我 ...
- 使用kubeadm部署一套高可用k8s集群
使用kubeadm部署一套高可用k8s集群 有疑问的地方可以看官方文档 准备环境 我的机器如下, 系统为ubuntu20.04, kubernetes版本1.21.0 hostname IP 硬件配置 ...
- Heartbeat实现集群高可用热备
公司最近需要针对服务器实现热可用热备,这几天也一直在琢磨这个方面的东西,今天做了一些Heartbeat方面的工作,在此记录下来,给需要的人以参考. Heartbeat 项目是 Linux-HA 工程的 ...
- MariaDB Galera Cluster 部署 + keepalived实现高可用
MariaDB Galera Cluster 部署 MariaDB作为Mysql的一个分支,在开源项目中已经广泛使用,例如大热的openstack,所以,为了保证服务的高可用性,同时提高系统的负载能力 ...
- kubeadm部署k8s1.9高可用集群--4部署master节点
部署master节点 kubernetes master 节点包含的组件: kube-apiserver kube-scheduler kube-controller-manager 本文档介绍部署一 ...
- 008.Kubernetes二进制部署Nginx实现高可用
一 Nginx代理实现kube-apiserver高可用 1.1 Nginx实现高可用 基于 nginx 代理的 kube-apiserver 高可用方案. 控制节点的 kube-controller ...
随机推荐
- 【反射】利用java反射原理将xml文件中的字段封装成对应的Bean
本例使用的xml解析方式为jdom ... <ROOT> <Consignment> ... </Consignment> </ROOT> 解析xml文 ...
- php rsa理解
参考链接:http://www.cnblogs.com/firstForEver/p/5803940.html 自己封装的一个类: <?php class CRsaAuthorization { ...
- Android 中查看内存的使用情况集常用adb命令
http://blog.csdn.net/bigconvience/article/details/35553983 http://blog.csdn.net/duantihi/article/det ...
- Spring+Struts+Mybatis+Shiro整合配置
Jar包
- ROS Kinetic Install on Debian 9
Not Succesed! 1. 配置源$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release - ...
- ROS学习笔记(二) # ROS NodeHandles
1. 自动启动和关闭 ros::NodeHandle nh: 这段代码执行之后,如果内部节点还没有启动,ros::NodeHandle 会启动这个节点:一旦所有的 ros::NodeHandle 实例 ...
- c++动态库封装及调用(3、windows下动态库调用)
1.DLL的隐式调用 隐式链接采用静态加载的方式,比较简单,需要.h..lib..dll三件套.新建“控制台应用程序”或“空项目”.配置如下: 项目->属性->配置属性->VC++ ...
- 在SecureCRT中做make menuconfig乱码
不能在SecureCRT中做(显示为乱码),从高手那里学来一招,解决了这个问题: options--terminal--emulation-- xterm ansi color1.先设置终端为x ...
- pt-online-schema-change VS oak-online-alter-table
前言 在上篇文章中提到了MySQL 5.6 Online DDL,如果是MySQL 5.5的版本在DDL方面是要付出代价的,虽然已经有了Fast index Creation,但是在添加字段还是会锁表 ...
- Python3学习笔记26-unittest模块
unittest单元测试框架,主要由四部分组成:测试固件.测试用例.测试套件.测试执行器 测试固件(test fixture) 测试固件有两部分,执行测试前的准备部分setUp(),测试执行完后的清扫 ...