Heartbeat是High-Availability Linux Project (Linux下的高可用性项目)的产物,是一套提供防止业务主机因不可避免的意外性或计划性宕机问题的高可用性软件。Heartbeat可以从Linux-HA 项目Web 站点免费获得,它提供了所有HA (高可用性)系统所需要的基本功能,如启动和停止资源、监测群集中系统的可用性、在群集中的节点间转移共享IP 地址的所有者等。它通过串行线、以太网接口或同时使用两者来监测特定服务(或多个服务)的运行状况。

Heartbeat实现了HA 功能中的核心功能——心跳,将Heartbeat软件同时安装在两台服务器上,用于监视系统的状态,协调主从服务器的工作,维护系统的可用性。它能侦测服务器应用级系统软件、硬件发生的故障,及时地进行错误隔绝、恢复;通过系统监控、服务监控、IP自动迁移等技术实现在整个应用中无单点故障,简单、经济地确保重要的服务持续高可用性。

Heartbeat采用虚拟IP地址映射技术实现主从服务器的切换对客户端透明的功能。

在两个服务器热备时,分别安装Heartbeat、ngix和jboss,虚拟出一个ip地址,其中heartbeat提供ngix HA功能,ngix作为两个jboss的反向代理,一台服务器失败的时候,启用另外一台从服务器。如果使用mysql,可以在两台服务器之间做mysql的实时数据同步。

VMWare HA和FT有些限制,需要购买相关模块(参考:http://hazt1011.blog.51cto.com/1072107/1103701):

 

VMware HA

VMware FT

功能

在ESX Server主机的集群中使用自动failover提供VMs的高可用性

一个可选的VirtualCenter特性

通过VI Client配置,管理和监控

可自定义个别VM的行为

当服务器故障时,自动重新启动虚拟机

通过为虚拟机启用 VMware Fault   Tolerance,最大限度地延长数据中心的正常运行时间,减少停机管理成本。基于 vLockstep 技术的 VMware   Fault Tolerance 可使应用程序实现零停机、零数据丢失,同时消除了传统硬件或软件集群解决方案的成本和复杂性。

优势

经济有效的适用于所有应用的高可用

不需要独占的stand-by 硬件

没有集群软件的成本和复杂性

可以保护所有虚拟机,不论使用何种操作系统或底层硬件,支持所有应用,包括自主开发的应用,以及无法用传统的高可用性产品来保护的自定义应用

易于设置,可按虚拟机启用和禁用

工作过程

HA不间断地监控群集中所有的物理主机,并检测故障。在 vSphere HA 群集中,检测三种类型的主机故障:

  • 主机停止运行(即发生故障)。
  • 主机与网络隔离。
  • 主机失去与首选主机的网络连接。

放置在每台主机上的代理程序不断向群集中的其他主机发出“心跳信号”,“心跳信号”的终止将启动所有受影响的虚拟机在其他主机上的重启过程。

HA时刻监控群集中是否有足够的资源可用,以便在主机发生故障时能够在其他物理主机上重启虚拟机。

在VMware机制下,利用ESX Server存储堆栈中的锁定技术,可以使虚拟机的安全重启成为可能,它允许多个ESX Server同时访问同一虚拟机文件。

容错使用 ESX/ESXi 主机平台上的 VMware vLockstep 技术以提供连续可用性。通过确保主虚拟机和辅助虚拟机的状态在虚拟机的指令执行的任何时间点均相同来完成此过程。vLockstep 通过使主虚拟机和辅助虚拟机执行相同顺序的 x86 指令来完成此过程。主虚拟机捕获所有输入和事件 — 从处理器到虚拟 I/O 设备 — 并在辅助虚拟机上进行重放。辅助虚拟机执行与主虚拟机同一系列的指令,而仅可看到单个虚拟机映像(主虚拟机)在执行工作负载。

要求

至少需要两台ESX主机

所有虚拟机文件必须放到共享的存储里

物理主机的CPU,可以不同厂家,不同系列

必须可以从Cluster中的所有主机启动VM

可以访问公共的资源(共享存储,VM网络)

主机推荐配置DNS信息

DNS可以解析Cluster中所有主机

VMware FT至少需要两台ESX主机,所有ESX必须为4.0以上,Build版本相同,以及在同一个HA   Cluster中

服务器的CPU要求是同一系列(并且要求是AMD Barcelona+, Intel Penryn+的CPU)

BIOS中要启用VT及禁用Hyperthreading(超线程),

最好同时禁用电源管理

每个VM只能分配1颗vCPU

要有专门的千兆网络负责FT

VM要放在共享存储上

VM的配置文件必须为版本7

Guest OS不要启用Paravirtualization

特性

HA虽然不依赖vCenter运转,但是在组建HA   cluster的时候必须通过vCenter来发起。vCenter的主要作用是,在主机上安装HA的Agent(指FDM和hostd agent),在Cluster配置更改的时候通知各主机。

不能避免脑裂的情况(“脑裂”参见我的博客

会丢失数据,应用暂时中断

只针对物理主机服务器,而不能针对VM

服务会中断,只是时间很短,属于计划外宕机

宕掉的那台物理机上的虚拟机在切换时关闭,并在

另外一台物理机上重启,这是和动态迁移的主要区别

vCenter Server 不可用,也会发生

容错可避免“裂脑”情况的发生

可使应用程序实现零停机、零数据丢失

启用FT的VM不支持自动DRS

启用FT的VM不支持Snapshot

启用FT的VM不支持MS Cluster

启用FT的VM不支持物理RDM Mapping

启用FT的VM的虚拟CD-ROM最好断开

启用FT的VM不支持NPIV (N-Port ID

Virtualization)

启用FT的VM不支持Device HotAdd/HotPlug

排错

确认IP网络连接,DNS解析;

确认Cluster中所有的存储和网络可访问;

检查日志:

/opt/LGTOaam512/log/*

/opt/LGTOaam512/vmsupport/*

Heartbeat基本介绍----HA / vmware HA FT的更多相关文章

  1. VMware HA、FT、VADP、SRM、VR、vMotion

    VMware提供了一系列保护虚拟机可用性的功能:HA.FT.VADP.SRM以及vMotion.实现最大化虚拟系统可用性的关键在于了解公司策略以及可利用的技术能够使用哪些特性.下面简要介绍一下在特定的 ...

  2. heartbeat+nginx搭建高可用HA集群

    前言: HA即(high available)高可用,又被叫做双机热备,用于关键性业务.简单理解就是,有2台机器 A 和 B,正常是 A 提供服务,B 待命闲置,当 A 宕机或服务宕掉,会切换至B机器 ...

  3. VMware HA 特性

    关键特性1.自动检测服务器故障.VMware HA 自动监控物理服务器的可用性.VMware HA 可检测物理服务器故障,并且无需人工干预即可重新启动资源池中其他物理服务器上的新虚拟机.2.自动检测操 ...

  4. storm的3节点集群详细启动步骤(非HA和HA)(图文详解)

    前期博客 apache-storm-1.0.2.tar.gz的集群搭建(3节点)(图文详解)(非HA和HA) 启动storm集群(HA) 本博文情况是 master(主) nimbus slave1( ...

  5. Hadoop 2.6.0 Namenode HA,ResourceManager HA

    先启动所有的zookeeper zkServer.sh start 在所有节点上启动JournalNode: sbin/hadoop-daemon.sh start journalnode 格式化第一 ...

  6. HBase HA + Hadoop HA 搭建

    HBase 使用的是 1.2.9 的版本.  Hadoop HA 的搭建见我的另外一篇:Hadoop 2.7.3 HA 搭建及遇到的一些问题 以下目录均为 HBase 解压后的目录. 1. 修改 co ...

  7. apache-storm-1.0.2.tar.gz的集群搭建(3节点)(图文详解)(非HA和HA)

    不多说,直接上干货! Storm的版本选取 我这里,是选用apache-storm-1.0.2.tar.gz apache-storm-0.9.6.tar.gz的集群搭建(3节点)(图文详解) 为什么 ...

  8. Apache Hadoop集群安装(NameNode HA + YARN HA + SPARK + 机架感知)

    1.主机规划 序号 主机名 IP地址 角色 1 nn-1 192.168.9.21 NameNode.mr-jobhistory.zookeeper.JournalNode 2 nn-2 192.16 ...

  9. Linux介绍以及VMware和Centos的安装

    一. Linux介绍 1 Linux诞生的故事 Unix篇: 为了进一步强化大型主机的功能,让主机的资源可以提供更多的使用者来利用,所以在1964年, 由AT&A公司的贝尔实验室(Bell). ...

随机推荐

  1. QTableView排序

    1.由于是点击HeaderView进行排序,所以初始代码 //排序 //QTableView model->lgoods_model view->lgoods_view lgoods_he ...

  2. 笔记38 Spring Web Flow——订单流程(定义基本流程)

    做一个在线的披萨订购应用 实际上,订购披萨的过程可以很好地定义在一个流程中.我们首先从 构建一个高层次的流程开始,它定义了订购披萨的整体过程.接下 来,我们会将这个流程拆分成子流程,这些子流程在较低的 ...

  3. 34. Thread类的常用方法

    1.构造方法 Thread() 分配新的 Thread 对象. Thread(String name)  分配新的 Thread 对象并指定线程名字 2.方法 1)setName(String nam ...

  4. kafka-manager监控工具的安装和使用

    kafka-manager监控工具的使用 第一步:对kafkamanager进行下载并编译 此步骤略:可参照成功与否不详,https://www.jianshu.com/p/174b6eb10d9d ...

  5. 利用NHibernate与MySQL数据库交互

    本文章使用Visual Studio作为开发工具,并建立在已经安装MySQL数据库的前提. NHibernate是一个面向.NET环境的对象/关系数据库映射工具.官网:http://nhibernat ...

  6. fread读入挂and普通读入挂and浮点数读入挂

    fread读入挂 版本一 namespace fastIO { #define BUF_SIZE 100000 //fread -> read bool IOerror = 0; inline ...

  7. 永久修改 putty字体大小

    修改前: 修改操作: 1. Window -> Appearance -> Font settings  -> Change 修改 修改 2.  返回登陆主界面  Session   ...

  8. 史上最全Redis面试题及答案。

    花了大量时间整理了这套Redis面试题 首发50题,绝无仅有,从入门到精通 从基础,高级知识点,再到集群,运维,方案- 弄明白了这些题可以说可以成为面霸了 面试官都得折服,Redis学得怎么样,都来检 ...

  9. Docker搭建Portainer可视化界面

    为了解决上回说到的问题,在网上找了找 找到了一个 非常有好的可视化界面管理工具. Portainer 是什么东西 (开源轻量级) Portainer是Docker的图形化管理工具,提供状态显示面板.应 ...

  10. 随笔-ansible-4

    触发器: 一个任务同时调用多个触发器: 为远程主机上的用户设置环境变量: 保存前一步命令的输出结果,并保存到foo中: 添加环境变量的另一种方式: 注意:lineinfile模块只适用于修改少量环境变 ...