Linux 上的高可用中间件

Advertisement

原文地址:http://www.ibm.com/developerworks/cn/linux/l-halinux/

Linux 上的高可用中间件,第 1 部分: heartbeat 与 Apache Web 服务器

开源软件提供了一个廉价的解决方案

Hidayatullah Shaikh ([email protected]), 高级软件工程师, IBM

简介: 本文是由 5 篇文章组成的系列文章中的第一篇,在文中,您将了解高可用性对软件意味着什么,学习如何在一个两节点系统上安装并设置来自 High-Availability Linux 项目的 heartbeat 软件。您还将学到如何配置 Apache Web 服务器,将其作为一项高可用性服务来运行。

发布日期: 2004 年 11 月 08 日
级别: 初级
访问情况 : 7119 次浏览
评论:0 (查看 | 添加评论 - 登录)

为本文评分

维持最长的系统正常运行时间对随需应变计算的成功来说越来越重要。不幸的是,很多现成即用(off-the-shelf)的高可用性(high availability,HA)解决方案 价格昂贵,而且需要专门技术。本系列的 5 篇文章将提供一个使用公开可用软件获得 HA 服务的廉价替代方案。

本系列中的详尽步骤将展示如何在 Linux 上构建一个高可用性的 Apache Web 服务器、WebSphere MQ 队列管理器、LoadLeveler 群集、WebSphere Application Server 群集和 DB2 Universal Database。 系统管理员可以投入最少的时间来学习如何使用和维护这个系统。本系列讲述的技术也适用于 Linux 上的很多服务。

为了最有效地利用本系列,您应该对 WebSphere MQ、WebSphere Application Server、IBM LoadLeveler、 DB2 Universal Database 以及高可用性群集有基本的了解。

简介

在业务关键型或任务关键型环境中使用任何软件产品,都需要考虑 可用性,这是对系统完成其应该完成的任务(甚至是在出现崩溃、设备故障和环境 灾难的情况下)的能力的度量。随着越来越多商业关键型应用程序转移到 Internet 上,提供高可用性服务 变得日趋重要。

本文将重点介绍实现 HA 解决方案时可能会遇到的一些实现问题。我们将回顾 HA 的概念、可用的 HA 软件、要使用的硬件, 以及关于 heartbeat(用于 Linux 的开源 HA 软件)的安装和配置细节,而且我们将查看如何通过 heartbeat 使 Web 服务器变得高度可用。

回页首

硬件要求

本系列中描述的测试场景需要以下硬件:

  • 4 个装有以太网网络适配器的、支持 Linux 的系统。
  • 一个共享的外部 SCSI 磁盘驱动器(双硬盘)。
  • 一根 IBM 串口直连线缆(serial null modem cable)。

在我的设置中,我使用的是内存为 1 GB 的 IBM eServer xSeries 335 机器。至于共享磁盘,我将 这些机器中的一台用作 NFS 服务器。完成安装所需要的软件如下所示,尽管对本文来说,只需安装 Red Hat Enterprise Linux 和 heartbeat 即可:

  • Red Hat Enterprise Linux 3.0(2.4.21-15.EL)
  • heartbeat 1.2.2
  • IBM Java 2 SDK 1.4.2
  • 安装了 Fix Pack 7 的 WebSphere MQ for Linux 5.3.0.2
  • LoadLeveler for Linux 3.2
  • 安装了 Cumulative Fix 1 的 WebSphere Base Edition 5.1.1 for Linux
  • 安装了 Fixpack 1 的 WebSphere ND 5.1 for Linux
  • DB2 Universal Database Enterprise Server Edition 8.1 Linux

下载后面 下载部分中列出的代码包,就可以得到该测试场景。表 1 描述了 hahbcode.tar.gz 中的目录。

表 1. 示例代码包中有哪些内容

目录 内容
heartbeat heartbeat 的示例配置文件
www 测试用于 Apache Web 服务器的 HA 的 HTML 文件
mq 用于 WebSphere MQ HA 的脚本和代码:

  • mqseries:将 WebSphere MQ 队列管理器和其他进程作为一项 Linux 服务来启动和停止的脚本
  • hascript:创建 HA 队列管理器的脚本
  • send(sh/bat):向队列添加数据的脚本
  • receive(sh/bat):从队列浏览/获得数据的脚本
loadl 将 LoadLeveler 作为一项 Linux 服务来启动和停止的脚本
was 用于 WebSphere 应用服务器 HA 的脚本和文件:

  • wasdmgr:将 WebSphere ND Deployment Manager 作为一项 Linux 服务来启动和停止的脚本
  • wasnode:将 WebSphere Node Agent 作为一项 Linux 服务来启动和停止的脚本
  • wasserver:将 WebSphere Application Server 作为一项 Linux 服务来启动和停止的脚本
  • sample_ver_(1/2/3):包含有用于测试 WebSphere HA 的不同版本的示例企业应用程序
db2 检查数据库可用性、创建表、向表中插入行并从表中选择 行的脚本

回页首

高可用性的概念

高可用性 是在系统、组件或者应用程序发生故障时快速恢复基本服务的系统管理策略。其目的是最大程度地减少服务中断,而不是容错。用来解决关键商务操作的系统执行故障的最常见解决方案是,使用另一个系统来 等待并接管出故障的系统的负载,使商务操作继续进行下去。

术语“群集(cluster)”在不同的计算领域有着不同的含义。除非另外指明,否则本文中的 群集 都是指 heartbeat 群集,它是协作提供运行于群集内的高可用性服务的节点和资源(比如磁盘和网络)的一个集合。 如果这些机器中的一台出了故障,那么保持商业操作所需要的资源会转移到群集中另一台可用机器上。

两种主要的群集配置是:

  • 备份(standby)配置:最基本的群集配置,在这种配置中,由一个节点执行任务,另一个节点只是作为备份。备份 节点不执行任务,被认为是 空闲的(idle);这种配置有时被称为 冷备份(cold standby)。 这样的配置需要高度的硬件冗余。 本系列文章关注的重点是冷备份配置。
  • 接管(Takeover)配置:一种更高级的配置,在这种配置中,所有节点都执行同类任务,在某个节点出现故障时, 关键任务可以被接管。在 单边(one-sided)接管 配置中,备份节点执行一些附加的、不关键的、不可移动的任务。 在 相互接管(mutual takeover) 配置中,所有节点都执行高可用性(可移动的)任务。本系列文章没有介绍接管配置。

在建立一个高可用性群集时,必须为一些关键条目制定计划:

  • 用于存储数据的硬盘必须通过私有互联结构(串行线缆)或者 LAN 连接到构成群集的服务器。
  • 必须有自动检测出故障的资源的方法。这项任务由称为 心跳监控器(heartbeat monitor) 的软件组件来完成。
  • 在出故障时,资源所有者必须能被自动转换为一个或更多正在工作的群集成员。

回页首

可用的 HA 软件

很多当前可用的软件都具备心跳监测和资源接管的功能。这里是可以用于不同操作系统的构建高可用性群集的软件列表 (请参阅 参考资料中的链接):

  • heartbeat(Linux)
  • High Availability Cluster Multiprocessing - HACMP(AIX)
  • IBM Tivoli System Automation for Multiplatforms(AIX、Linux)
  • Legato AAM 5.1(AIX、HP-UX、Solaris、Linux 和 Windows)
  • SteelEye LifeKeeper(Linux、Windows)
  • Veritas Cluster Server(AIX、HP-UX、Solaris、Linux 和 Windows)

本系列介绍的是开源 HA 软件 heartbeat。不过,您可以将在这学到的概念应用于上面的任意软件系统。

回页首

High-Availability Linux 项目和 heartbeat

名为 High-Availability Linux 的开源项目的目标是,通过社区开发努力提供一个提升 Linux 可靠性(reliability)、 可用性(availability)和可服务性(serviceability)(RAS)的群集解决方案。Linux-HA 项目得到了广泛的应用,是很多有 趣的高可用性解决方案的重要组成部分。

heartbeat 是可以从 Linux-HA 项目 Web 站点公开获得的软件包之一。它提供了所有 HA 系统所需要的基本功能,比如 启动和停止资源、监测群集中系统的可用性、在群集中的节点间转移共享 IP 地址的所有者等。它通过串行线、以太网接口 或者同时使用二者来监测特定服务(或多个服务)的健康状况。当前版本支持两节点配置,使用专门的 heartbeat“pings”来检查 服务的状态和可用性。heartbeat 为比本文中所描述的更复杂的情形提供了基础,比如 active/active 配置,该配置中 两个节点是并行工作的,负责完成负载平衡。

要获得更多关于将 heartbeat 和项目应用在什么地方的资料,请访问 Linux-HA 项目的 Web 站点 (请参阅 参考资料中的链接)。

回页首

群集配置

这些文章中测试使用的群集配置如图 1 所示。该设置包括一对构成群集服务器(ha1 和 ha2),两者都可以访问包含多个物理 磁盘的磁盘盒;服务器处于冷备份模式。应用程序数据需要位于两个节点都可访问的共享设备上。该设备可以是一个共享磁盘,或者网络 文件系统。为了防止数据被破坏,设备本身应该被镜像或者具有数据保护。这种配置经常被称作 共享磁盘群集,不过,实际 上,这是一个什么都不共享的体系结构,因为在同一时刻任何磁盘都只能被一个节点访问。

图 1. 产品环境中的 heartbeat 群集配置

在测试设置中,我使用的共享磁盘机制是 NFS,如图 2 所示,不过,我建议使用如图 1 所示的选项,尤其是在产品环境中时。 两个系统的串口之间的直连线缆用来在两个节点间传输 heartbeat。

图 2. 使用 NFS 作为共享文件系统的 heartbeat 群集配置

表 2 给出的是我所使用的两个节点的配置。在本例中,可以通过 DNS 或者两个节点上的 /etc/hosts 文件 得到主机名和 IP 地址。

表 2. 测试群集配置

角色 主机名 IP 地址
共享(群集) ha.haw2.ibm.com 9.22.7.46
Node1(主) ha1.haw2.ibm.com 9.22.7.48
Node2(备份) ha2.haw2.ibm.com 9.22.7.49
Node 3(未知) ha3.haw2.ibm.com 9.23.7.50
NFS 服务器 hanfs.haw2.ibm.com 9.2.14.175

回页首

建立串行连接

通过两个节点的串口,使用一根直连线缆将它们连接起来。现在测试串行连接,如下所示:

在 ha1(接收者)上输入以下内容:

cat < /dev/ttyS0

在 ha2(发送者)上输入以下内容:

echo "Serial Connection test" > /dev/ttyS0

您应该会在接收者节点(ha1)上看到这些文本。如果成功,那么互换它们的角色,重新再试一次。

回页首

建立用作共享文件系统的 NFS

如前所述,在测试设置中,我使用 NFS 在节点间共享数据。

  • 节点 nfsha.haw2.ibm.com 用作 NFS 服务器。
  • 文件系统 /ha 是共享的。

要设置并运行 NFS,需要执行以下操作:

  1. 在 nfsha 节点上创建 /ha 目录。
  2. 编辑 /etc/exports 文件。文件包含一个条目列表;每一个条目都指明一个卷是否是共享的,以及它是如何共享的。 清单 1 展示了我的设置中 exports 文件的相关部分。

    清单 1. exports 文件

    ...
    /ha 9.22.7.48(rw,no_root_squash)
    /ha 9.22.7.46(rw,no_root_squash)
    /ha 9.22.7.35(rw,no_root_squash)
    /ha 9.22.7.49(rw,no_root_squash)
    /ha 9.22.7.50(rw,no_root_squash)
    ...
    
  3. 启动 NFS 服务。如果 NFS 已经在运行,那么您应该运行 /usr/sbin/exportfs -ra 命令,让 nfsd 重新读取 /etc/exports 文件。
  4. 在两个 HA 节点(ha1 和 ha2)上,像添加本地文件系统那样将文件系统 /ha 添加到 /etc/fstab 文件中。清单 2 展示了在我的设置中 fstab 文件的相关部分:

    清单 2. fstab 文件

    ...
    nfsha.haw2.ibm.com:/ha    /ha    nfs    noauto,rw,hard 0 0
    ...
    

    稍后,我们将配置 heartbeat 来安装该文件系统。

  5. 使用清单 3 中所示的命令在该文件系统上对代码示例 hahdcode.tar.gz 进行解压缩。 (首先通过下面的 下载部分下载代码示例。)

    清单 3. 解开示例代码

    cd /ha
    tar  xvfz  hahbcode.tar.gz
    

回页首

下载并安装 heartbeat

通过 参考资料中的链接下载 heartbeat,然后输入清单 4 中的命令,在 ha1 和 ha2 这两台 机器上安装它(按照给出的顺序)。

清单 4. 安装 heartbeat 的命令

rpm -ivh heartbeat-pils-1.2.2-8.rh.el.3.0.i386.rpm
rpm -ivh heartbeat-stonith-1.2.2-8.rh.el.3.0.i386.rpm
rpm -ivh heartbeat-1.2.2-8.rh.el.3.0.i386.rpm

回页首

配置 heartbeat

要使用 heartbeat,必须配置三个文件:authkeys、ha.cf 和 haresources。我将给出实现中我使用的具体配置; 如果需要更多资料,请参阅 heartbeat Web 站点,并阅读它们的文档(请参阅 参考资料)。

1. 配置 /etc/ha.d/authkeys

该文件确定了为群集所使用的认证密钥;两个节点上的密钥必须相同。有三种认证模式可以选择:crc、md5 或 sha1。 如果您的 heartbeat 运行在一个安全的网络上,比如例子中的交叉线缆,那么应该使用 crc。从资源的角度看,该方法的花费最低。如果您的网络不够安全,但您不是特别多疑,或者不是很关心最小化 CPU 资源的使用,那么应该使用 md5。 最后,如果您想要得到最好的认证,而不考虑 CPU 资源的使用,那么请使用 sha1,因为它最难破解。

文件的格式如下:

auth <number>
<number> <authmethod> [<authkey>]

在测试设置中,我选择的是 crc 模式。清单 5 给出了 /etc/ha.d/authkeys 文件。要确保其许可是安全的, 比如 600。

清单 5. authkeys 文件

auth 2
2 crc

2. 配置 /etc/ha.d/ha.cf

这个文件将位于安装后创建的 /etc/ha.d 目录中。它告诉 heartbeat 使用哪些类型的媒体路径以及 如何配置它们。该文件还定义了群集中的节点,以及 heartbeat 用来确认系统是否在运行的接口。 清单 6 给出了我的设置中 /etc/ha.d/ha.cf 文件的相关部分。

清单 6. ha.cf 文件

...
#   File to write debug messages to
debugfile /var/log/ha-debug
#
#
#   File to write other messages to
#
logfile /var/log/ha-log
#
#
#   Facility to use for syslog()/logger
#
logfacility local0
#
#
#   keepalive: how long between heartbeats?
#
keepalive 2
#
#   deadtime: how long-to-declare-host-dead?
#
deadtime 60
#
#   warntime: how long before issuing "late heartbeat" warning?
#
warntime 10
#
#
#   Very first dead time (initdead)
#
initdead 120
#
...
#   Baud rate for serial ports...
#
baud    19200
#
#   serial  serialportname ...
serial  /dev/ttyS0
#   auto_failback:  determines whether a resource will
#   automatically fail back to its "primary" node, or remain
#   on whatever node is serving it until that node fails, or
#   an administrator intervenes.
#
auto_failback on
#
...
#
#   Tell what machines are in the cluster
#   node    nodename ...    -- must match uname -n
node    ha1.haw2.ibm.com
node    ha2.haw2.ibm.com
#
#   Less common options...
#
#   Treats 10.10.10.254 as a pseudo-cluster-member
#   Used together with ipfail below...
#
ping 9.22.7.1
#   Processes started and stopped with heartbeat.  Restarted unless
#       they exit with rc=100
#
respawn hacluster /usr/lib/heartbeat/ipfail
...

3. 配置 /etc/ha.d/haresources

该文件描述的是 heartbeat 管理的资源。这些资源本质上只是一些 start/stop 脚本,非常类似于在 /etc/rc.d/init.d 中用来启动和停止资源的那些脚本。注意,heartbeat 会在 /etc/rc.d/init.d 和 /etc/ha.d/resource.d 中去寻找脚本。脚本文件 httpd 是 heartbeat 自带的。清单 7 给出了我的 /etc/ha.d/haresources 文件:

清单 7. haresources 文件

ha1.haw2.ibm.com 9.22.7.46 Filesystem::nfsha.haw2.ibm.com:/ha::/ha::nfs::rw,hard httpd

该文件在两个节点上必须相同。

这一行指出,在启动时,要实现以下操作:

  • 令 ha1 为 IP 9.22.7.46 服务。
  • 安装 NFS 共享文件系统 /ha。
  • 启动 Apache Web 服务器。

在后面的文章中,我将向这个文件中添加更多的资源。 在关闭时,heartbeat 将执行以下操作:

  • 停止 Apache 服务器。
  • 卸载共享文件系统。
  • 释放 IP。

这假定 uname -n 命令会显示 ha1.haw2.ibm.com;您的配置中可能只显示 ha1, 如果是那样的话,请使用 ha1。

回页首

配置 Apache HTTP 服务器的 HA

在这个步骤中,我将对 Apache Web 服务器的设置进行一些修改,使得它可以为共享系统上的文件提供服务,并为机器 ha1 和 ha2 的本地文件系统中的文件提供服务。index.html 文件(包含于代码示例中)将从共享的磁盘获得服务,而 hostname.html 文件 将从机器 ha1 和 ha2 上的本地文件系统获得服务。要实现 Apache Web 服务器的 HA,请执行以下操作:

  1. 以 root 身份登录。
  2. 在共享磁盘(/ha)上创建以下目录:

    /ha/www
    /ha/www/html

  3. 在节点 ha1 上使用下面所示的命令为共享的目录设置适当的权限:

    chmod 775 /ha/www
    chmod 775 /ha/www/html

  4. 在主节点机和备份节点机上,重命名 Apache Web 服务器的 html 目录:

    mv /var/www/html /var/www/htmllocal

  5. 在两台机器上使用下面的命令创建指向共享目录的符号连接:

    ln -s /ha/www/html /var/www/html

  6. 将 index.html 文件复制到节点 ha1 上的 /ha/www/html 目录:

    cp /ha/hahbcode/www/index.html /var/www/html

    必须修改文件中的群集名称。

  7. 将 hostname.html 文件复制到两台机器上的 /ha/www/htmllocal 目录:

    cp /ha/hahbcode/www/hostname.html /var/www/html

    修改这个文件中的群集名称和节点名称。

  8. 在两台机器上创建指向 hostname.html 文件的符号链接:

    ln -s /var/www/htmllocal/hostname.html /ha/www/html/hostname.html

现在您就已经准备好测试 HA 实现了。

回页首

测试 Apaceh HTTP 服务器的 HA

要测试 Web 服务器的高可用性,请执行以下操作:

  1. 使用下面的命令启动主节点上的 heartbeat 服务,然后启动备份节点上的服务:

    /etc/rc.d/init.d/heartbeat start

    如果该命令失败,那么去查看 /var/log/messages,以确定原因并进行改正。heartbeat 成功启动后,您应该看到一个新的网络接口,其 IP 地址是您在 ha.cf 文件中配置的那个 IP 地址。启动 heartbeat 之后,查看一下 主节点上的日志文件(默认是 /var/log/ha-log),确保它正在进行 IP 接管并启动 Apache Web 服务器。使用 ps 命令来确保 Web 服务器后台进程正在主节点上运行。heartbeat 将不会在备份 节点上启动任何 Web 服务进程。只是在主节点失败时才会在备份节点上启动 Web 服务进程。

  2. 将浏览器指向下面的 URL,以确认正确地为两个 Web 页提供了服务(如果使用了不同的主机名,那么 URL 应该有所不同):

    http://ha.haw2.ibm.com/index.html
    http://ha.haw2.ibm.com/hostname.html

    注意,在上面我使用的是群集地址,而不是主节点的地址。

    对于第一个 URL,浏览器将显示下面的文本:

    Hello!!! I am being served from a High Availability Cluster ha.haw2.ibm.com

    对于第二个 URL,浏览器将显示下面的文本:

    Hello!!! I am being served from a node ha1.haw2.ibm.com in a High Availability Cluster ha.haw2.ibm.com

  3. 在主节点上使用下面的命令仅仅停止 heartbeat 来模拟故障转移(failover):

    /etc/rc.d/init.d/heartbeat stop

    您应该会看到,在一分钟之内,第二个节点上的所有 Web 服务器进程都会启动。如果不是那样,那么去查看 /var/log/messages 来确定问题所在并改正它。

  4. 将浏览器指向下面的 URL,以确认在 ha2 上正确提供了两个 Web 页的服务:

    http://ha.haw2.ibm.com/index.html
    http://ha.haw2.ibm.com/hostname.html

    对于第一个 URL,浏览器将显示下面的文本:

    Hello!!! I am being served from a High Availability Cluster ha.haw2.ibm.com

    对于第二个 URL,浏览器将显示下面的文本:

    Hello!!! I am being served from a node ha2.haw2.ibm.com in a High Availability Cluster ha.haw2.ibm.com

    注意,现在正在为该页提供服务的节点是 ha2。

  5. 重新启动主节点上的 heartbeat 服务。这样应该会停止第二节点上的 Apache 服务器进程,并在主节点上启动它们。 主节点应该同时接管群集 IP。

这样,通过将 Web 页放置在共享磁盘上,当主节点机器发生故障时,第二节点机器就可以向客户机提供其服务。故障转移 对访问 Web 页的客户机来说是透明的。该技术同样适用于提供 CGI 脚本服务。

回页首

结束语

我希望您尝试使用该技术,用廉价的硬件和立即可用的软件建立一个可用性非常高的 Web 服务器。在本系列的 下一篇文章中,您将看到如何使用 WebSphere MQ 来构建一个高可用性的消息队列服务器。

回页首

下载

描述 名字 大小 下载方法
Sample code package for this article hahbcode.tar.gz 25 KB HTTP

关于下载方法的信息

参考资料

关于作者

Hidayatullah H. Shaikh 是 IBM T.J. Watson Research Center 的 On Demand Architecture and Development Team 的一名高级软件工程师。他所感兴趣和专长的领域包括业务流程建模和集成、面向服务的体系结构、网格计算、电子交易、企业 Java、数据库管理系统和高可用群集。您可以通过 [email protected] 与 Hidayatullah 联系。

Similar Posts:

  • Linux Heartbeat实现高可用集群及在VirtualBox虚拟环境下的测试

    [本文环境]VirtualBox 4.0.4,CentOS 5.5 x64 Heartbeat[1]是Linux下最常用的HA方案之一,主要为了解决集群前置服务器的单点失效问题.Heartbeat顾名思义可以在两台电脑间通过心跳信号来互相探测对方是否正常工作,因此,这两台电脑间需要有相应的物理介质连接起来.在这里,我并没有使用额外的网线(CAT-5双绞线[2])和网卡来实现,而是采用了串口线来建立心跳连接. 这样,在VirtualBox虚拟环境中,虚拟机间还需要使用一个虚拟的串口互相连接,这还需

  • 探索MySQL高可用架构之MHA(7)

    探索MySQL高可用架构之MHA(7) -----构建mysql高可用系列(共9篇) 上一篇文章介绍了本次架构的keepalive读写分离! 本篇文章主要介绍本次架构中的mha安装部分! 关于MHA MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于 Facebook公司)开发,是一套优秀的作为MySQL高可用性环境下故障切换和主从提升的高可用软件.在MySQL故障切换过程中,MHA能

  • MySQL高可用之MHA的搭建 转

    http://www.cnblogs.com/muhu/p/4045780.html http://www.cnblogs.com/gomysql/p/3675429.html http://www.cnblogs.com/gomysql/p/4688920.html http://blog.itpub.net/88305/viewspace-730135/ http://www.cnblogs.com/xuanzhi201111/p/4231412.html MySQL MHA架构介绍: MH

  • drbd+heartbeat(v1)+mysql搭建高可用数据库并保留原有硬盘数据(第2版)

    DRBD是一种块设备的实现,与heartbeat的搭配,被广泛用于linux下的高可用(HA)方案中,蚊子的这篇文章是建立在上一篇<drbd+heartbeat(v1)+mysql搭建高可用数据库并保留原有硬盘数据>之上的,对于上一篇中不足和潜在问题予以改正.如果有需要在线操作的请以这篇为准. 此篇文章还是介绍如何在已经含有数据的分区或硬盘上搭建drbd和heartbeat高可用的mysql服务. 在对含有数据的分区或硬盘建立drbd高可用的时候,请确认以下三件事. 1,所在分区或硬盘可以扩容

  • 浅谈小白如何读懂Redis高速缓存与持久化并存及主从高可用集群

        一.简介     Redis是一个基于键值(K-V)的高速缓存软件,和他具有相同功能的软件有memcached,但其支持更为复杂的数据结构,例如:List,set,sorted set,同时redis具有持久性功能.redis究竟是什么?对于不同的应用场合,对redis的理解也不相同,如下有三种不同的理解. ①key value store(键值存储),是一个以键值形式存储的数据库,用来作为唯一的存储系统,同时借助于sentinel实现一定意义上的高可用. ②memory cached(

  • Apache+tomcat实现高可用WEB集群 概念

    概述 本文是企业高可用架构之一:APACHE+TOMCAT实现高可用WEB集群. Apache+tomcat是J2EE领域最常见和低成本的高可用集群实现方式,同时也是应用最广泛的WEB-HA实现方式之一.本文结合工作经验和学习所得,简单介绍APACHE+TOMCAT集群的各种使用方式,并进行简单对比.当然,干这行都知道,架构选择就像找老婆:没有最好的,只有最合适的. 目标: 支持故障转移(或主备,扩展性不佳),保证故障转移后,对前端用户透明,无感知(状态不变化),同时为提高性能支持复制均衡. A

  • biztalk大规模高性能高可用部署方案

    一. 单服务器... 1 二. 双服务器... 2 三. 基本高可用... 3 1. Biztalk高可用实现... 3 1.1. biztalk group. 3 1.2. biztalk host & host instance. 4 1.3. biztalk cluster. 7 2. Biztalk Group方案... 8 3. Biztalk cluster方案... 8 四. 大规模高可用... 9 1. 大规模的部署主要考虑... 9 1.1. 高可用... 9 1.2. 大并发

  • Linux运维 第五阶段(三)mysql高可用(基于heartbeat、nfs)

    Linux运维 第五阶段(三)mysql高可用(基于heartbeat.nfs) 一.相关注意事项: 基于heartbeatV2(crm)和nfs共享实现mysql高可用集群(关键点:如果是一主一从两个node,主若挂掉,从可以取而代之,并且主node上的数据,从node可以访问到:此种架构并不理想,nfs-server易成为单点故障,若再对nfs做高可用共享存储要用iscsi,这时至少要4台设备,再者如果有iscsi设备就可直接使用,不用再中间夹个nfs) 本例中在NFS共享存储中仅是mysq

  • 《构建高可用Linux服务器(第二版)》正式发售

    <构建高可用Linux服务器(第二版)>已经在各大网店和书店正式发售了,有很多朋友在微博和QQ群上咨询与其第一版的区别,我在这里也稍为说明下(以下将其简称为<高可用>一书): <高可用>第二版这次已经是第四次修正错误了,在印刷质量上明显比第一版有所改善,我特的抽查了武汉地区的光谷书城,发现第二版纸质方面确实修正了以前深受读者朋友诟病的问题: 第二版为了让内容更契合书名,砍掉了第二章,即FreeBSD8.1在企业中的部署应用,全书精简为九章,层次更为清晰明了: 第二版的第

  • 在Linux下使用LVS+keepalived搭建高可用集群

    在Linux下使用LVS+keepalived搭建高可用集群 一. LVS+Keepalived介绍 LVS LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一.目前有三种IP负载均衡技术(VS/NAT.VS/TUN和VS/DR): 十种调度算法(rrr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq). LVS中文支持站点:http://

Tags: