7.3 高可用软件的历史

有大量的专有的和开源的高可用性软件。专有的例子有:Solaris Cluster (有时称为Sun 集群 or SunCluster), SteelEye LifeKeeper, Evidian SafeKit, 和其它软件。我们不在本书中说它们。集群软件通常包含两个不同的层次:传输层和集群管理层。管理层负责在集群节点上启动和关闭服务。服务和健康信息通过传输层传输。

最初,有两个广为人知的开源高可用性软件,叫做OpenAIS and Linux-HA。这些都是互不兼容并且都有自己的优点和缺点的软件。后来,两个开发人员社区联手,在2007年12月7日,在 Linux-HA 上的用户邮件列表发布了一个内部公告。Linux-HA (当时叫CRM )的管理层被分裂出去支持原来的 Linux-HA and OpenAIS的传输层。2008 在渥太华的 Linux专题讨论会上有另外一个公告,OpenAIS 的传输层被分裂以更好地支持新的通用管理层。以前,两个软件的整体软件的整体结构变得更轻,兼容,并可互换。

共同努力实现的第一个稳定版本是:

• Heartbeat Version 3.0.2: 2010年2月1日,

• Corosync Version 1.0.0:2009年7月8日,

• Pacemaker Version 0.6: 2008 年1月16日,

7.3.1 OpenAIS 和 Corosync

OpenAIS 是第一个服务可用性论坛(www.saforum.org)规范的实现。这是一个全面的,也是一个复杂的集群软件栈,当时,Corosync是 OpenAIS的同义词。在 2008,该项目的开发者在渥太华的Linux 专题讨论会上宣布联合开发,结果是该软件被重构,其传输层成为 Corosync,OpenAIS 部分现在只包含 SAForum 的API。然而,在写本书时,SAForum 网站只列出了 OpenSAF (opensaf.org) 和 OpenHPI(www.openhpi.org) 作为它们规范的实现。

7.3.2 Linux-HA (Heartbeat) 和  Pacemaker

Linux-HA (www.linux-ha.org) 开始作为一个简单的集群实施,以提供一个简单的方法来建立一个双机集群。传输层被称为 Heartbeat,但它也由于上层传输被称为 Linux-HA 的同义词,集群管理没有一个特别的名字。一段时间后,Heartbeat的简单版本1.x被认为不够稳定,集群管理层被重写,并成为了所谓的集群资源管理(CRM)。OpenAIS 和 Linux-HA 联合开发之后,传输层就成了单独的软件, 保留了 Heartbeat 名称, CRM 被分离出来重命名为 Pacemaker。目前,Pacemaker 支持两个项目的传输层 (Heartbeat and Corosync) 并提供一个通用的集群管理层。对于一些应用程序来说,它甚至需要来自 OpenAIS 的管理层。 Heartbeat 和 Pacemaker当前的主页是 www.clusterlabs.org

PostgreSQL Replication之第七章 理解Linux高可用(3)的更多相关文章

  1. PostgreSQL Replication之第七章 理解Linux高可用(1)

    高可用(HA)是工业长期持续的,不间断的服务.在本章,您将了解高可用软件的历史,概念和实现与PostgreSQL复制和高可用之间的关系. 本章将详细地讲述如下主题: •理解高可用性的目的 •衡量可用性 ...

  2. PostgreSQL Replication之第七章 理解Linux高可用(6)

    7.6 PostgreSQL和高可用性 数据库是我们日常数字生活的一部分,并期望它们快速工作. 您浏览网上论坛吗?那个帖子在数据库中.您看医生吗?您的医疗记录在数据库中.您在网上购物吗?那个货物,您的 ...

  3. PostgreSQL Replication之第七章 理解Linux高可用(2)

    7.2 衡量可用性 可用性是提供商试图保证一定的可用性级别和客户可以期望的可用性或更多.在某些情况下(取决于服务合同) 收取罚款或减少申购费用是意外停机的原因. 可用性的质量使用百分数来衡量:例如,9 ...

  4. PostgreSQL Replication之第七章 理解Linux高可用(5)

    7.5 高可用性是所有冗余 让我们从一个不同的角度看一下前面的混合超市的例子.为了处理大量顾客无需长排队,无需关闭超市,混合超市雇用更多的出纳员以及安装许多(甚至更多)的收银机. 这样,如果一个收银机 ...

  5. PostgreSQL Replication之第七章 理解Linux高可用(4)

    7.4 术语与概念 一组计算机被称为集群.集群内的一台计算机被称为一个节点. 当集群内的节点数量是 N (2,,3,等.) ,那么我们讨论一个N节点的集群. 高可用性软件,传输层和集群管理层都运行于每 ...

  6. PostgreSQL Replication之第三章 理解即时恢复(4)

    3.4 重放事务日志 一旦我们创建了一个我们自己的初始基础备份,我们可以收集数据库创建的XLOG.当时间到时,我们可以使用所有这些XLOG 文件并执行我们所期望的恢复进程.这就像本节描述的一样工作. ...

  7. PostgreSQL Replication之第三章 理解即时恢复(1)

    到现在为止,您已经掌握了一定的理论.因为生活不仅由理论组成(它可能同样重要),是时候深入实际的工作了. 本章的目标是让您明白如何恢复数据到一个给定的时间点.当您的系统崩溃或者有人意外地删除了一个表,不 ...

  8. 《Linux命令行与shell脚本编程大全》 第七章理解Linux文件权限

    Linux沿用了Unix文件权限的方法,允许用户和组根据每个文件和目录的安全性设置来访问文件. 用户权限通过创建用户时分配的用户ID(UID)来跟踪的.每个用户有唯一的ID,但是登录时用的不是UID, ...

  9. PostgreSQL Replication之第三章 理解即时恢复(3)

    3.3 做基础备份 在上一节中,您已经看到,启用归档只需要几行命令,并提供了极大的灵活性.在本节,我们将看到如何创建一个所谓的基础备份,稍后这可以使用XLOG.一个基本备份是一个最初的数据的拷贝. [ ...

随机推荐

  1. 根据数据表自动生成javaBean

    package fanshe; import java.io.File; import java.io.FileWriter; import java.io.IOException; import j ...

  2. 正则表达式匹配 C++实现 java实现 leetcode系列(十一)

    给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 '.' 和 '*' 的正则表达式匹配. '.' 匹配任意单个字符 '*' 匹配零个或多个前面的那一个元素 所谓匹配,是要涵盖 整个 字符串  ...

  3. 内存文件系统:tachyon(现在叫Alluxio)

    此文于2015 年 8 月 10 日发布 Tachyon 是什么 Tachyon 是 AMPLab 开发的一款内存分布式文件系统.它介于计算层和存储层之间,可以简单的理解为存储层在内存内的一个 Cac ...

  4. asp.net DataTables

    无聊做一个,但是还是留下一些疑惑: 在控件中加入例如编辑,删除之类的按钮,而不是以行内元素呈现. 真实分页的实现方法. 要是有知道的朋友,希望指点一二. 下面只实现的功能: 隐藏列 冻结列 分页 列排 ...

  5. sql-查看执行计划的方法

    sql执行计划:把SQL语句拆分为每个的操作步骤组合,按照一定的顺序执行得出结果,查看并看懂执行计划是调优的关键步骤 查看执行计划的方法 DBMS_XPLAN包 sql*plus AUTO trace ...

  6. JS循环 for while 全局/局部变量 短路

    循环语句: For for循环的格式 for(var i = 0; i < 10; i ++){ } for循环的执行顺序: ①   ② 若判断为 true  进④  进③ 进②判断 ……循环 ...

  7. FCC高级编程篇之Exact Change

    Exact Change Design a cash register drawer function checkCashRegister() that accepts purchase price ...

  8. canvas 连线曲线图

    <!DOCTYPE html><html><head> <meta charset="utf-8"> <meta name=& ...

  9. Java基础学习总结(44)——10个Java 8 Lambda表达式经典示例

    Java 8 刚于几周前发布,日期是2014年3月18日,这次开创性的发布在Java社区引发了不少讨论,并让大家感到激动.特性之一便是随同发布的lambda表达式,它将允许我们将行为传到函数里.在Ja ...

  10. 洛谷 P2758 编辑距离

    P2758 编辑距离 题目描述 设A和B是两个字符串.我们要用最少的字符操作次数,将字符串A转换为字符串B.这里所说的字符操作共有三种: 1.删除一个字符: 2.插入一个字符: 3.将一个字符改为另一 ...