阿泰的菜园

你的生活,当你认识它的时候,已不复存在,再也不会回头

Browsing Posts tagged cluster

Red Hat Cluster Suite中包括了一个称为Piranha的组件。这个Piranha实际上是结合Linux Virtual Server(LVS)部署的,以实现负载平衡的冗余部署。Piranha是一个LVS director failover节点决方案,并集成了GUI,方便了对LVS的部署和管理,是实现LVS路由器高可用的方案之一。

虽然Piranha降低了LVS部署的门槛,但是要真正理解和部署好LVS系统,我觉得还是需要深入学习LVS Documentation

在案例中,采用的是LVS Direct Routing模式,适合Linux平台大规模集群负载平衡。如果是规模较小的负载平衡集群,或包含Windows服务器作为Real Server,则可以采用NAT模式。

参考

Linux Virtual Server介绍

Linux Virtual Server (LVS)是一个在一系列真实服务器上分发IP负载的集成软件。LVS运行在一对对等配置的主机上:其中一台作为active LVS路由器,另外一台则是backup LVS路由器。active LVS路由器执行两个功能:

  • 分发负载到真实服务器
  • 检查每个真实服务器的服务完整性

backup LVS路由器监控active LVS路由器并在其故障时接管工作。

基本LVS配置

简单的LVS配置是一个NAT模式,通过地址转换和负载分发给实际服务器。

服务通过在活跃的LVS路由器上的虚拟IP地址来提供,或称为VIP。一个虚拟服务器就是通过监听一个特定的虚拟IP的服务。

LVS组件说明

LVS路由器使用了一组程序来监控集群主机和集群服务。

continue reading…

说明

Red Hat Cluster实现HA的关键组件之一是fencing。没有设置fencing,虽然看上去也能够运行Cluster,但是一旦遇到故障切换就会出现异 常,所以深入理解fencing原理,正确设置fencing对构建Red Hat Cluster有很大意义。
笔记以英文原文 2010-04-9 版为基础翻译,译文仅供参考,请以英文原文为准。
原文: http://sources.redhat.com/cluster/wiki/FAQ/Fencing

什么是fencing并且为何需要使用fencing?

fencing是cluster项目的一个组件,用来切断集群中和其他节点失去联系的故障节点对一个资源的访问(例如,磁盘)。

continue reading…

说明

Red Hat Cluster实现HA的关键组件是rgmanager,为了能理解原理,通读了一下FAQ,并做整理记录。
笔记以英文原文 2010-04-22 版为基础翻译,译文仅供参考,请以英文原文为准。
原文: http://sources.redhat.com/cluster/wiki/FAQ/RGManager
翻译好累,还有几篇FAQ需要整理,不知道能完成么?

什么是rgmanager?

rgmanager 程序管理用户定义到cluster资源。rgmanager允许你定义集群到高可用(HA, ~high-availability)服务。本质上,你可以定义集群服务,例如一个NFS服务器,提供给网络上计算机(在集群内或集群外)使用。 rgmanager监控服务,如果一个节点故障,它就会将该服务转到集群的其他节点。所以,如果你的NFS服务器故障,则该服务将自动转到集群的其他节点 并且网络上到NFS客户端甚至不会知道服务器故障。这些客户端将继续运行就好像不知道这个NFS服务器故障。

说明

最近一周,参考Red Hat Cluster Suite的GFS手册,初步在KVM虚拟系统中部署了GFS系统。

实践过程中主要遇到的问题是,Red Hat的官方手册为了主推产品,把GNBD、CLVM、GFS和Cluster Suite分割开来撰写手册,对于完整实现一个系统相对来说不是很清晰明了,需要完整阅读并融会贯通。此外,由于我比较倾向于精简部署安装,所以没有上手就Group Install,而是分别安装需要的模块,并根据需要来安装软件模块,调整摸索的过程较长。

参考

经验汇总

  • 服务器重启是一个大麻烦,需要保证有超过半数的集群节点启动才能正常完成cman的fencing过程,所以一旦所有服务器重启,开始阶段非常麻烦。
  • GNBD Server采用Cluster方式输出存在比较多的麻烦。我感觉在GNBD的输出可能还是采用非集群方式输出为好,也就是gnbd_export -n,这样可能管理简便一些。我不理解为何Red Hat Cluster会强制网络块设备输出也依赖Cluster Infrastructure,其实这个网络块设备输出,包括iSCSI或者SAN,应作为系统资源提供,或许不需要采用Cluster Suite管理。
  • 启动时,可能有些GNBD Server节点尚未启动,但是符合过半节点运行(假如gfs客户端也启动了),此时会导致部分GNBD不能正常导入。接下来,LVM也不能正常运行(因 为缺乏部分块设备),再接下来,GFS也不能顺利挂载。我感觉还是在启动阶段不要启动这些cluster服务,等待所有节点操作系统都正常运行之后,再通 过脚本执行来启动Cluster节点,这样可能比较容易实现。
  • 对于虚拟机的fencing方式不知道如何实现,在启动的时候,如果gfs不能启动,则会始终处于fencing模式,导致无法启动cman。
  • 理论上cluster环境的稳定性和高可用性尚需要多磨练,需要通过实践来完善部署。

修订

  • 2010年8月30日,修订初始cluster.conf配置

continue reading…

说明

Red Hat Cluster Suite是Red Hat的集群解决方案,主要实现的构架是负载平衡+HA系统+GFS集群文件系统/集群LVM,同时也可以结合SAN(采用iSCSI或GNBD)来构建一个大型集群系统。

这是一个开源集群的多种技术的组合解决方案,要深入研究则需要对各种底层技术进行深入学习。

以下是对Red Hat Cluster Suite Overview英文版文档的概要翻译,如果有兴趣,可以参考原文。我只是做了最基本的翻译工作,算是对自己学习的一个记录,翻译过程并没有完全依照原文,所以可能存在理解的差异,所以阅读因以英文原稿为准。

参考

Red Hat Cluster Suite (RHCS) 是部署高性能、高可用、负载平衡、可伸缩、文件共享的集群软件组合。
RHCS包含以下组件:

  • Cluster Infrastructure – 提供集群的各节点工作基础:配置文件管理,管理管理,锁管理和fence管理(类似IPMI远程重启或关闭故障节点释放节点资源)
  • HA服务管理 – 在一个节点不能正常工作的情况下提供failover服务到另外一个节点
  • Cluster管理工具 – 配置和管理Red Hat群集
  • Linux Virtual Server (LVS) – 通过IP负载平衡方式,提供将客户端请求分发到集群的各个真实节点上。

为支持Red Hat Cluster Suite可选的组件有:

  • GFS (Global File System) 和 GFS2 (Global File System 2) – 为提供集群提供一个集群文件系统。 GFS/GFS2 允许多个节点在块级别上访问一个共享存储,就如同存储是连接在每个群集节点的本地一样。
  • Cluster Logical Volume Manager (CLVM) – 在群集存储上提供卷管理。
  • Global Network Block Device(GNBD) – 辅助GFS/GFS2在以太网上输出块级别存储的组件。这是对 Red Hat GFS 提供一种经济的块级别存储的方式。

continue reading…

pssh是一个简单的字符界面并发向多个服务器发送指令进行执行的工具。适合一次性向集群大量服务器发送相同指令(并观察输出)。
早期版本 pssh是由 http://www.theether.org/pssh/ Brent Chun开发,从2009年10月开始,转到 http://code.google.com/p/parallel-ssh/ 由Andrew McNabb负责维护和开发。

另外一种更为方便(不过需要X window系统和xterm等依赖)的方式是采用 ClusterSSH ,请参考 并行执行ssh管理多个服务器-clusterssh 一文。

continue reading…

介绍

有多种并发执行ssh的方法,解决的方式基本相同:

  • 字符界面并发向或串行多个服务器发送指令,将结果输出到本地记录的日志文件
    • pssh 当前版本v1.4.3(10.12.2008),比较成熟。在 http://code.google.com/p/parallel-ssh/ 有pssh的衍生版本,目前仍然在开发维护。这是一个单窗口群发命令,对客户端的要求较少,也是一种可行的方式。
    • central-ssh(cssh) 一个通过perl程序将任意命令发送到多个服务器执行。版本还停留在 0.03 – cssh_beta Feb 24 2007,目前似乎已经不再开发。
    • dssh(digmia enterprise ssh) dssh编写成为直接取代openssh,增加了通过ssh tunnelling能力(可以登录到隐藏在firewall之后服务器),脚本支持(使用groovy),高级代理以及使用 su - 交互登录主机。可惜需要使用java程序。
  • X界面并发向多个服务器发送指令,输出结果显示独立x terminal
    • clusterssh 实现控制多服务器方式,在gentoo平台当前(20100403)版本为稳定版本3.28,是2009年12月发布的,在官方网站有developer 版本4.00_01,则是2010年1月发布。这个发行版本目前还在活跃开发,并且在gentoo平台可以直接emerge安装,所以我选择此软件进行项 目维护。
    • clusterit 也是一个类似并发ssh管理程序,在Linux Hack一书中有所介绍。最近的一个发布版本尚停留在2008年2月,加上gentoo没有提供直接的ebuild安装,所以只是了解了一下。不过,我以 前的同事yx曾经告诉我他的一个老外同事曾经用clusterit同时控制超过100台服务器进行更新软件,据说他的同事很是得意,呵呵。

continue reading…