- 浏览: 1053977 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
wenson:
lzjzy520 写道 求 项目完整元代码已经够清楚了,看不懂 ...
使用Spring JavaMail发送邮件总结 -
lzjzy520:
求 项目完整元代码
使用Spring JavaMail发送邮件总结 -
xiejx618:
能提高多大的性能? 不能用数据来说话吧希望你能用jmeter做 ...
利用APR本地库提高Tomcat性能 -
mrwalter:
学习了,挺好用的,局域网内速度很快
ssh远程文件传输命令scp -
wcily123:
不错
ssh远程文件传输命令scp
来源:http://listen1001.blog.163.com/blog/static/76733730201001551844598
Description:
当heartbeat已经正常工作之后,就该配置集群资源管理器Pacemaker了。Pacemaker的 配置文件 是 xml格式的:/var/lib/heartbeat/cib.xml。
一般修改配置时不要直接对xml文件做修改,Pacemaker给我们提供多个命令行工具来修改xml的配置。
我一般都使用crm,这个工具支持tab自动补全。下面用^T代表tab补全。
lisen# crm crm(live)#^T bye configure help quit status cd end node ra status-mgmt cib exit options resource up crm(live)# status ============ Last updated: Wed Jan 6 12:03:20 2010 Stack: Heartbeat Current DC: vm2 (2681ec9b-aaec-401d-9789-97bb1710250b) - partition with quorum Version: 1.0.6-cebe2b6ff49b36b29a3bd7ada1c4701c7470febe 3 Nodes configured, unknown expected votes 0 Resources configured. ============ Online: [ vm1 vm2 vm3 ]
增加一个资源
集群的资源可以是一个虚拟IP,可以是apache mysql server,还可以是我们自己的程序。
下面 演示使用crm为集群增加一个虚拟ip:
实验环境为:
vm1: 172.16.2.11 vm2: 172.16.2.12 vm3: 172.16.2.13 虚拟ip: 172.16.2.100
过程:
vm1#crm #可以在集群的任何一个节点上进行操作。 crm(live)#configure #进入配置模式 crm(live)configure# property stonith-enabled=false #修改集群的选项,禁用stonith,否则会报错。 先不使用stonith设备。 crm(live)configure# primitive ip-alias ocf:heartbeat:IPaddr2 params ip=172.16.2.100 nic=eth0 op monitor interval=5s crm(live)configure# commit crm(live)configure# exit
primitive ip-alias ocf:heartbeat:IPaddr2 params ip=172.16.2.100 op monitor interval=5s
这是加入虚拟IP资源的命令。其中 ip-alias是资源名,是我们自己定义的。
ocf:heartbeat:IPaddr2这里指定了一个Resource Agent.这实际上对应到 /usr/lib/ocf/resource.d/heartbeat/IPaddr2 这个脚本。集群的每台机器上都有这个脚本,它实现了启动,关闭,监视等功能。实际的命令执行实际上都是由这些Resource Agent发出的。 ocf:heartbeat 对应/usr/lib/ocf/resource.d/heartbeat/,ocf:pacemaker 对应/usr/lib/ocf/resource.d/pacemaker 这些目录下有许多控制各种服务的脚本。
params name=value 这是传入脚本的环境变量。
op monitor interval=5s 对资源加入监视操作,5s一次。
实际测试:
ip-alias资源已经在vm1上启动 #crm_mon ============ Last updated: Thu Jan 7 10:51:30 2010 Stack: Heartbeat Current DC: vm3 (952cbf63-ec62-4371-942a-626022c113ba) - partition with quorum Version: 1.0.6-cebe2b6ff49b36b29a3bd7ada1c4701c7470febe 3 Nodes configured, unknown expected votes 1 Resources configured. ============ Online: [ vm1 vm2 vm3 ] ip-failover (ocf::heartbeat:IPaddr2): Started vm1 ---- 在vm1上查看ip: vm1#ip add show eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000 link/ether 08:00:27:dd:8b:ca brd ff:ff:ff:ff:ff:ff inet 172.16.2.11/24 brd 172.16.2.255 scope global eth0 inet 172.16.2.100/24 brd 172.16.2.255 scope global secondary eth0 ifdown掉vm1的网卡,在vm3上面观察: #crm_mon ============ Last updated: Thu Jan 7 10:51:30 2010 Stack: Heartbeat Current DC: vm3 (952cbf63-ec62-4371-942a-626022c113ba) - partition with quorum Version: 1.0.6-cebe2b6ff49b36b29a3bd7ada1c4701c7470febe 3 Nodes configured, unknown expected votes 1 Resources configured. ============ Online: [vm2 vm3 ] OFFLINE:[vm1] ip-failover (ocf::heartbeat:IPaddr2): Started vm2 虚拟ip已经被自动转移到了vm2节点上。
资源constrains
首先要介绍的是全局option:symmetric-cluster=ture/false. true时,集群allowing resources to run anywhere by default; false时,集群preventing resources from running anywhere by default,我们需要手动enable nodes.
接着要引入score,官方的解释: Scores are calculated on a per-resource basis and any node with a negative score for a resource can't run that resource. After calculating the scores for a resource, the cluster then chooses the node with the highest one.
location constrain
以ip-alias资源为例,现在只允许ip-alias在vm1 vm2上运行,并且优先在vm1上,只是当vm1出错时,才转到vm2上运行。 #crm crm(live)# configure crm(live)configure# property symmetric-cluster=false #preventing resources from running anywhere crm(live)configure# location constrain1 ip-alias 200: vm1 #set score to enable node vm1 crm(live)configure# location constrain2 ip-alias 100: vm2 #set score to enable node vm2 我们将vm1的score设为200,vm2的score设为100。因为vm1的score高,所以ip-alias将优先在vm1上运行,当vm1挂掉后才会自动转到vm2.
order constrain
如果有多个资源,可以使用order constrain,实现对多个资源启动顺序的控制。
现在有两个资源 虚拟ip:ip-failover和apache server:web.现在加入order constrain,让ip-failover先于apache运行。 #crm crm(live)# configure crm(live)configure# order order1 40: ip-failover web crm(live)configure# verify crm(live)configure# commit order order1 40: ip-failover web oder1是自定义的id 40: 是这个order constrain的score。当score>0 称为强制约束,score=0 称为建议约束。 强制约束中,当first资源状态发生变化时,会影响then资源;而建议约束则不会。 具体请看http://www.clusterlabs.org/doc/en-US/Pacemaker/1.0/html/Pacemaker_Explained/s-resource-ordering.html ip-failover web就是资源名。ip-failover将先于web启动。
colocation constrain
当一个资源的位置依赖于另一个资源时,我们称之为colocation.
依旧拿ip-failover和web为例。现在让web依赖于ip-failover # crm crm(live)# configure crm(live)configure# colocation co1 score: web ip-failover crm(live)configure#commit colocation co1 score: web ip-failover co1 是我们自定义的id score 当score为"INFINITY"或"-INFINITY"时,称为Mandatory Placement,意思是必须满足;当-INFINITY<score<INFINITY时,称为Advisory Placemen, 意思是尽量满足。score为正时,资源会运行在同一节点。score为负,资源会运行在不同的节点。 web ip-failover: web资源将依赖于ip-failover资源。
score=INFINITY ip-failover和web将运行于同一节点。web依赖于ip-failover,当ip-failover由于上面的constrain不能运行时,web可以运行时。 由于是Mandatory Placement,web也不能运行。 score=100 当ip-failover由于上面的constrain不能运行时,web可以运行时。web依然会运行。 score=-INFINITY 同上 score=-100 同上
资源组
集群中很常见的一种情况是一系列的资源需要运行在同一各节点上,启动和停止都是有一定顺序的。 这时候使用资源组就非常方便。
配置一个资源组也非常的简单。 #crm crm(live)# configure crm(live)configure# group group1 ip-failover web crm(live)configure# commit group1 是我们自定义的组名id ip-failover web 则是要放到group1组中的资源,这里是有序的,ip-failover将先于web执行。 并且同一个资源组的各种资源只能运行在同一个节点上。
rule
rule可以使你的配置更加动态。可以制定出灵活的规则。
rule中加入了表达式判断,当表达式为false,集群会忽视这条rule.若为true,集群中节点的score会被更新成rule中的score.
首先从一个最简单的rule开始,只为了演示rule的语法: 若集群中的#uname(也就是主机名)为vm1,则禁止ip-alias在vm1上运行。 crm(live)# configure crm(live)configure# location rule1 ip-alias rule -inf: #uname eq "vm1" crm(live)configure# commit rule -inf: #uname eq "vm1" 前面的部分和location限制语法一样。从rule 开始-inf: 是当表达式为真时要应用的score. #uname eq "vm1" #uname是每个节点自带的一个attribute,即是节点名;eq是操作符. vm1节点符合表达式,所以,vm1对ip-alias的score将被置为-inf,vm1将永远不能运行ip-alias.
另一个与时间表达式有关的例子:周2的8点将进行维护,关闭集群里的资源ip-alias。 crm(live)# configure crm(live)configure# location rule2 ip-alias rule -inf: date date_spec weekdays="2" hours="8" crm(live)configure# commit 这样会实现一个类似crontab的效果,在每周2的8点自动关闭集群中的ip-alias服务(通过将所有节点的score设为-inf)
资源的迁移
现在集群中有一个节点 vm1因为某种原因要停机,要把vm1所有的资源先迁移出去。首先可以使用上面的location constrain,将每个资源在vm1上的score设为-inf.另外还有一种简单的办法,将vm1设为”standby”状态(standby意味 着不要让任何服务到这个节点运行)。
standby vm1: crm(live)# node standby vm1 重新启用vm1: crm(live)# node online vm1
资源Clone
如果想让一个资源在集群的每个节点都有运行,可以使用clone.首先介绍anonymous clone.这是最简单的clone,所有的节点上的clone都是一样。
以ocf:pacemaker:ping这个agent为例。 crm(live)# configure crm(live)configure# primitive ping-test ocf:pacemaker:ping params host_list=172.16.2.1 multiplier=100 dampen=5s name=pingd op monitor interval=15s crm(live)configure# clone cl-pingd ping 这里给每个节点配置了ping的clone,这个agent会每隔一段时间自动去ping host_list中列出的节点。然后将可通的节点数乘以multiplier作为pingd的值,这个值就可以被rule使用。 crm(live)configure# location ping-l ip-alias rule -inf: pingd eq 0 这里使用了pingd的值,如果某节点等于0(即为无法ping通172.16.2.1),则将此节点score设为-inf:.
发表评论
-
haproxy的日志问题
2012-08-21 12:45 2079在haproxy.cfg的global里添加日志配置: lo ... -
gluster3.2.x的安装配置
2012-04-19 19:00 4204一、 GlusterFS ... -
linux系统修改时区,时间自动同步
2011-12-25 23:40 26661、调整时区 cp /usr/share/zoneinf ... -
安裝memcached服務器時需要的libevent
2011-09-09 15:00 1401libevent下载地址:http://monkey.org/ ... -
扫盲:arping命令
2010-11-03 10:31 13750arping :向相邻主机发送ARP请求 语 法 ... -
heartbeat 的使用(二)
2010-09-28 20:06 2574Description: ... -
heartbeat3 使用(一)
2010-09-28 20:05 3436Description: ... -
基于Pacemaker、 Corosync和Heartbeat搭建HA集群
2010-09-28 09:21 2377相關內容請看這裡:http://asram.blog.51ct ... -
不用密碼直接用 ssh 登入到遠端電腦
2010-05-13 13:53 1643SSH Without a Password The fol ... -
linux ps命令,查看进程cpu和内存占用率排序
2010-03-31 18:40 33029使用以下命令查看: ps ... -
收藏以下linux查看系统信息的命令
2009-12-10 05:39 2527# uname -a # 查看内核 ... -
centos配置 svn(apache+mysql)
2009-12-09 11:53 47491,环境及相关服务检查 确认是否安装了apache,my ... -
Linux查看CPU信息
2009-09-08 15:57 3157Linux下如何查看CPU信息, 包括位数和多核信息 # u ... -
Linux iptables 设置
2009-04-21 21:40 0编辑 /etc/sysconfig/iptables 然后 ... -
linux syslogd
2009-01-09 14:22 01 什么是syslogd syslogd可以简单地被称 ... -
Linux系统防火墙防止DOS和DDOS攻击
2008-12-30 04:10 2902用Linux系统防火墙功能 ... -
linux 绑定多个ip
2008-09-17 18:01 4357在Linux下有时候需要给一个网卡绑定多个I ... -
Linux cron 配置样例
2008-07-11 21:45 30941.cron 是一个可以用来根据时间、日期、月份、星期的组合来 ... -
linux文件同步工具Unison的使用
2008-07-11 21:32 7609linux文件同步工具Unison ... -
linux自動執行程序工具cron
2008-07-10 23:24 2406假如你有一些任务要定期执行,比如清理磁盘、删除过期文件、发送邮 ...
相关推荐
- **配置文件**:Heartbeat 使用三个主要的配置文件:`ha.cf`、`authkeys` 和 `haresources`。这些文件在所有集群成员上必须保持一致。 - **复制配置文件**:将示例配置文件从 `/usr/local/share/doc/heartbeat-...
6. **安全性和备份**:在使用Heartbeat时,安全配置同样重要,例如限制网络访问,定期备份配置文件和数据,以防止意外情况导致的服务中断。 通过以上介绍,我们可以了解到Heartbeat作为一个关键的高可用性工具,其...
### 使用Heartbeat实现MySQL高可用性 #### 一、引言 随着业务需求的增长和技术的发展,数据服务的稳定性成为衡量企业技术能力的重要指标之一。在众多数据库系统中,MySQL因其性能稳定、开源免费等特点,被广泛应用...
【Heartbeat 使用指南】 Heartbeat 是 Linux 高可用性(High Availability, HA)领域中的一个核心组件,属于 Linux-HA 项目的一部分。它的主要任务是监控集群中的节点和服务状态,确保在任何一台服务器出现故障时,能...
《Debian Heartbeat管理手册》是一份详细阐述Heartbeat在Debian操作系统中使用和管理的指导性文献。Heartbeat是一款开源软件,主要用于集群系统中的高可用性和故障切换,确保关键服务的连续运行。 1. **Heartbeat...
节点定义使用“node”关键字,后面跟着节点的名称和IP地址。例如: node alice 192.168.1.100 这条命令定义了一个名为“alice”的节点,IP地址为 192.168.1.100。 心跳检测媒体 心跳检测媒体是heartbeat 的核心...
#### 三、安装Heartbeat 接下来是具体的Heartbeat安装步骤: 1. **安装Heartbeat依赖库**:除了上述的依赖库之外,还需要安装`lib64heartbeat-pils`等其他必要的组件。 ```bash yum install lib64heartbeat-pils...
**三、HeartBeat配置实例** 1. **基本配置**:在`ha.cf`中,设置节点名、网络接口、心跳间隔等参数。 2. **资源文件配置**:在`资源`文件中,定义要备份的资源,例如: ``` resource default { start on node ...
在你提供的文件中,我们有三个关键文件,它们是`authkeys`、`ha.cf`和`haresources`,这些文件都是Heartbeat配置的重要组成部分。 1. **authkeys**: `authkeys`文件用于设置Heartbeat节点间的认证,确保通信的...
在本案例中,我们关注的是Heartbeat 3.0的安装过程,它需要三个关键组件:Heartbeat本身、Cluster agents以及glue。下面将详细介绍这三个部分及其相关RPM包安装的重要性。 首先,**Heartbeat** 是整个系统的核心,...
【描述】:在描述中,我们讨论了使用Heartbeat心跳检测技术来构建高可用性集群。这里的关键是Heartbeat如何确保集群服务的连续性和稳定性。 【标签】:“heartbeat” 【部分内容】:这部分内容主要涵盖了几项关键...
#### 三、Heartbeat软件安装与配置 ##### 1. 安装Heartbeat - **安装依赖包**:确保已安装`iproute`、`iptables`等必要组件。 - **下载Heartbeat**:可以通过官方渠道获取Heartbeat的安装包。 - **配置Heartbeat**...
#### 三、Heartbeat 集群资源配置与管理 **3.1 配置 Heartbeat 集群资源** 配置 Heartbeat 集群资源涉及以下几个方面: - **定义资源**:通过配置文件定义集群中需要管理的资源,包括应用程序、文件系统等。 - **...
#### 三、Heartbeat 配置 Heartbeat 的配置主要包括拷贝配置文件和修改配置文件两个步骤。 ##### 3.1 拷贝配置文件 将示例配置文件拷贝到相应的目录,例如将 `/usr/share/doc/heartbeat-3.0.4/authkeys.ha.cf` 和 `...
然后,将`/usr/share/doc/heartbeat-2.1.2/`目录下的`authkeys`、`ha.cf`和`haresources`三个文件复制到`/etc/ha.d/`目录,并确保这些文件在两台服务器上保持一致。配置这些文件以适应你的环境: - `/etc/ha.d/...
Heartbeat支持三种心跳检测路径: 1. **交换网络**:通过公司的内部网络进行通信,这是最常见的方法。 2. **交叉电缆直连**:直接使用网线连接主从服务器,适用于小型集群或测试环境。 3. **RS232串行接口**:使用...
例如,对于三节点集群,需要配置三个非IP心跳网络,形成心跳环,以确保每个节点都能与其他节点进行有效的通信。 总之,Disk Heartbeat是HACMP v5.x中的一项重要特性,通过它,可以提高集群的稳定性和可靠性,特别是...
接下来,从指定的下载地址获取Heartbeat的三个组件:heartbeat、glue和resource-agents的源代码,并分别进行编译和安装。在编译过程中,需要指定前缀目录、守护程序用户和组,以及链接所需的库。这些步骤确保...
"heartbeat-2.0.4.tar.gz" 是一个在Linux环境下使用的软件包,它主要用于实现系统间的高可用性(High Availability, HA)和热备份功能。Heartbeat 是一个开源项目,它允许两个或多个系统之间实时共享状态信息,当主...