热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

学习笔记之搭建heartbeat集群

    HearBeat          Heartbeat 项目是 Linux-HA 工程的一个组成部分,它实现了一个高可用集群系统。心跳服务和集群通信是高可用的两个关键组件&#xf
    HearBeat

         Heartbeat 项目是 Linux-HA 工程的一个组成部分,它实现了一个高可用集群系统。心跳服务和集群通信是高可用的两个关键组件,在 Heartbeat 项目里,由 heartbeat 模块实现了这两个功能。


         heartbeat (Linux-HA)的工作原理:heartbeat最核心的包括两个部分,心跳监测部分和资源接管部分,心跳监测可以通过网络链路和串口进行,它们之间相互发送报文来告诉对方自己当前的状态,如果在指定的时间内未收到对方发送的报文,那么就认为对方失效,这时需启动资源接管模块来接管运行在对方主机上的资源或者服务。


准备两台主机

主机


双机热备.先看看/etc/hosts。 master 和slave是两个节点。172.25.7.7是对外的IP。mine是我的真机。(当作网关了)

配置yum源

[Server]
name=Red Hat Enterprise Linux Server
baseurl=http://172.25.7.250/rhel6.5/Server
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release[HighAvailability]
name=Red Hat Enterprise Linux HighAvailability
baseurl=http://172.25.7.250/rhel6.5/HighAvailability
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release[ResilientStorage]
name=Red Hat Enterprise Linux ResilientStorage
baseurl=http://172.25.7.250/rhel6.5/ResilientStorage
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release[ScalableFileSystem]
name=Red Hat Enterprise Linux ScalableFileSystem
baseurl=http://172.25.7.250/rhel6.5/ScalableFileSystem
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release[LoadBalancer]
name=Red Hat Enterprise Linux LoadBalancer
baseurl=http://172.25.7.250/rhel6.5/LoadBalancer
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release






准备好需要安装的rpm包

以下只演示master的配置。slave执行相同的动作。

在拥有rpm包的目录执行安装命令(yum -y install *   ,注意yum源必须配置成我上面所示例的)


进入heartbeat的配置文件主目录

hearbeat的文件主目录在/etc/ha.d下。默认是没有配置文件的,需要从帮助文档复制一份过来

看看配置文件,heartbeat的配置文件有3个。

ha.cf : 主配置文件

authkeys : 认证文件。里面有加密方式 。文件权限需要改成600

haresources :资源文件

       这个文件中定义了实现集群所需的各个软件的启动脚本,这些脚本必须放在/etc/init.d 或者
/etc/ha.d/resource.d 目录里 IPaddr 的作用是启动 Virutal IP,它是 HeartBeart 自带的一个
脚本;ldirectord 的作用是启动 ldirectord 监控程序,它会使 ldirectord.cf 中定义的 lvs 生效,
并监听其健康状;httpd 是 apache 服务的启动脚本。


复制过来,并且修改authkeys的权限



配置ha.cf

keepalive 2 : 每2s发一次心跳包

deadtime 30:   节点死亡时间阀值,就是从节点在过了 30 后还没有收到心跳就认为主节点死亡

warntime 10:   发出警告时间

initdead 60:  守护进程首次启动后应该等待 60 秒后再启动主服务器上的资源

udpport 12307 :  心跳信息传递的 udp 端口,使用端口 694 进行 bcast 和 ucast 通信(注意,该端口必须没有被其他进程占用,并且局域网内只有两个节点主机使用这个端口)

bcast eth0: 选择网卡eth0 并且以UDP广播形式工作


node master.wjx.cn: 双机热备中的一个节点,写在第一行的默认就是主节点

ping 172.25.7.250 :ping一个局域网内的其他主机,用来确定网络通畅。一般来说最好写成网关

respawn :默认 heartbeat 并不检测除本身之外的其他任何服务,也不检测网络状况。
所以当网络中断时,并不会进行 Load Balancer 和 Backup 之间的切换。
可以通过 ipfail 插件,设置'ping nodes'来解决这一问题,但不能使用一个集群节点作为
ping 的节点。(注意:应该是lib64.默认是lib)


配置authkeys

只是配置一下加密方式


配置 haresources

这里先以web集群为例子,其中ip地址必须填成一个局域网内没有任何人使用的一个IP


配置OK


将3个配置文件给slave复制一份。


给master和slave都下载安装httpd(yum -y install httpd)

启动heartbeat(两边都启动)

开启后观察日志文进(/var/log/messages)

观察master的ip地址(多了一个刚才写的那个172.25.7.7的IP)


测试一下,将master.wjx.cn这台主机关机


master关机前。

master关机后。



web的heartbeat的配置就到此结束了。接下来演示一下mysqld的双机热备heartbeat。


首先数据库最重要的是存储。drbd就是一个同步数据的一个工具。首先要的是安装drbd。其次就是物理设备。两台主机都应该拥有大小一样的一块硬盘设备。


MySQL的双机热备

安装drbd,准备相关的rpms。

安装(使用网上下载tar包制作drbd的源码包的方法--->  点击打开链接)


drbd的配置文件位置


随便起个名字,编辑,但必须以res结尾

vim /etc/drbd.d/example.res

内容如下


文件编辑完成后给slave也复制一份。

master和slave有配置文件example.res后执行

启动drbd服务(两边都开启,一个开启后,另一个会等待)


将master设为主,而slave设为从,开始同步数据.查看

同步很缓慢阿。。。我的是4G的硬盘

以上效果看到后就可以格式化磁盘了


mkfs.ext4 /dev/drbd1   就可以


格式化后,将/dev/drbd1挂载到/var/lib/mysql

启动mysqld。等待初始化后(会给/var/lib/mysql中写数据),再将mysqld关掉

再关掉 。 。 。




开始配置集群

卸载/dev/drbd1

umount /dev/drbd1

先将master和slave都设置成secondary。


修改heartbeat的资源配置文件haresources


给slave也复制一份


OK,完成了。重新启动heartbeat .








推荐阅读
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • 本文介绍了关系型数据库和NoSQL数据库的概念和特点,列举了主流的关系型数据库和NoSQL数据库,同时描述了它们在新闻、电商抢购信息和微博热点信息等场景中的应用。此外,还提供了MySQL配置文件的相关内容。 ... [详细]
author-avatar
裸身耍丶暧昧800
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有