Prerequisites
- Setup Minimal CentOS 5
- be sure that both nodes can resolve correctly names (either through dns or /etc/hosts)
- yum update (as usual … )
- yum install heartbeat drbd kmod-drbd (available in the extras repository)
Current situation
* node1 192.168.0.11/24 , source disc /dev/sdb that will be replicated
* node2 192.168.0.12/24 , target disc /dev/sdb
DRBD Configuration
vi /etc/drbd.conf
global { usage-count no; }
resource repdata {
protocol C;
startup { wfc-timeout 0; degr-wfc-timeout 120; }
disk { on-io-error detach; } # or panic, …
net { cram-hmac-alg “sha1″; shared-secret “Cent0Sru!3z”; } # don’t forget to choose a secret for auth !
syncer { rate 10M; }
on node1 {
device /dev/drbd0;
disk /dev/sdb;
address 192.168.0.11:7788;
meta-disk internal;
}
on node2 {
device /dev/drbd0;
disk /dev/sdb;
address 192.168.0.12:7788;
meta-disk internal;
}
}
scp /etc/drbd.conf root@node2:/etc/
- Initialize the meta-data area on disk before starting drbd (! on both nodes!)
[root@node1 etc]# drbdadm create-md repdata
- start drbd on both nodes (service drbd start)
[root@node1 etc]# service drbd start
[root@node2 etc]# service drbd start
[root@node1 etc]# drbdadm — –overwrite-data-of-peer primary repdata
[root@node1 etc]# watch -n 1 cat /proc/drbd
- we can now format /dev/drbd0 and mount it on node1 : mkfs.ext3 /dev/drbd0 ; mkdir /repdata ; mount /dev/drbd0 /repdata
- create some fake data on node 1 :
[root@node1 etc]# for i in {1..5};do dd if=/dev/zero of=/repdata/file$i bs=1M count=100;done
- now switch manually to the second node :
[root@node1 /]# umount /repdata ; drbdadm secondary repdata
[root@node2 /]# mkdir /repdata ; drbdadm primary repdata ; mount /dev/drbd0 /repdata
[root@node2 /]# ls /repdata/ file1 file2 file3 file4 file5 lost+found
Great, data was replicated …. now let’s delete/add some file :
[root@node2 /]# rm /repdata/file2 ; dd if=/dev/zero of=/repdata/file6 bs=100M count=2
- Now switch back to the first node :
[root@node2 /]# umount /repdata/ ; drbdadm secondary repdata
[root@node1 /]# drbdadm primary repdata ; mount /dev/drbd0 /repdata
[root@node1 /]# ls /repdata/ file1 file3 file4 file5 file6 lost+found
OK … Drbd is working … let’s be sure that it will always be started : chkconfig drbd on
Heartbeat V2 Configuration
vi /etc/ha.d/ha.cf
keepalive 1
deadtime 30
warntime 10
initdead 120
bcast eth0
node node1
node node2
crm yes
vi /etc/ha.d/authkeys (with permissions 600 !!!) :
auth 1
1 sha1 MySecret
Start the heartbeat service on node1 :
[root@node1 ha.d]# service heartbeat start
Starting High-Availability services: [OK]
Check the cluster status :
[root@node1 ha.d]# crm_mon
Replicate now the ha.cf and authkeys to node2 and start heartbeat
[root@node1 ha.d]# scp /etc/ha.d/ha.cf /etc/ha.d/authkeys root@node2:/etc/ha.d/
[root@node2 ha.d]# service heartbeat start
Verify cluster with crm_mon :
=====
Last updated: Wed Sep 12 16:20:39 2007
Current DC: node1.centos.org (6cb712e4-4e4f-49bf-8200-4f15d6bd7385)
2 Nodes configured.
0 Resources configured.
=====
Node: node1 (6cb712e4-4e4f-49bf-8200-4f15d6bd7385): online
Node: node2 (f6112aae-8e2b-403f-ae93-e5fd4ac4d27e): online
vi /var/lib/heartbeat/crm/cib.xml
<cib generated="false" admin_epoch="0" epoch="25" num_updates="1" have_quorum="true" ignore_dtd="false" num_peers="0" cib-last-written="Sun Sep 16 19:47:18 2007" cib_feature_revision="1.3" ccm_transition="1"> <configuration> <crm_config/> <nodes> <node id="6cb712e4-4e4f-49bf-8200-4f15d6bd7385" uname="node1" type="normal"/> <node id="f6112aae-8e2b-403f-ae93-e5fd4ac4d27e" uname="node2" type="normal"/> </nodes> <resources> <group id="My-DRBD-group" ordered="true" collocated="true"> <primitive id="IP-Addr" class="ocf" type="IPaddr2" provider="heartbeat"> <instance_attributes id="IP-Addr_instance_attrs"> <attributes> <nvpair id="IP-Addr_target_role" name="target_role" value="started"/> <nvpair id="2e967596-73fe-444e-82ea-18f61f3848d7" name="ip" value="192.168.0.110"/> </attributes> </instance_attributes> </primitive> <instance_attributes id="My-DRBD-group_instance_attrs"> <attributes> <nvpair id="My-DRBD-group_target_role" name="target_role" value="started"/> </attributes> </instance_attributes> <primitive id="DRBD_data" class="heartbeat" type="drbddisk" provider="heartbeat"> <instance_attributes id="DRBD_data_instance_attrs"> <attributes> <nvpair id="DRBD_data_target_role" name="target_role" value="started"/> <nvpair id="93d753a8-e69a-4ea5-a73d-ab0d0367f001" name="1" value="repdata"/> </attributes> </instance_attributes> </primitive> <primitive id="FS_repdata" class="ocf" type="Filesystem" provider="heartbeat"> <instance_attributes id="FS_repdata_instance_attrs"> <attributes> <nvpair id="FS_repdata_target_role" name="target_role" value="started"/> <nvpair id="96d659dd-0881-46df-86af-d2ec3854a73f" name="fstype" value="ext3"/> <nvpair id="8a150609-e5cb-4a75-99af-059ddbfbc635" name="device" value="/dev/drbd0"/> <nvpair id="de9706e8-7dfb-4505-b623-5f316b1920a3" name="directory" value="/repdata"/> </attributes> </instance_attributes> </primitive> </group> </resources> <constraints> <rsc_location id="runs_on_pref_node" rsc="My-DRBD-group"> <rule id="prefered_runs_on_pref_node" score="100"> <expression attribute="#uname" id="786ef2b1-4289-4570-8923-4c926025e8fd" operation="eq" value="node1"/> </rule> </rsc_location> </constraints> </configuration> </cib>
Firewall considerations
You will need to make sure that the nodes can talk on ports:
DRBD: 7788
HEARTBEAT: 694
Other
从haresources生成cib.xml
/usr/local/lib/heartbeat/haresources2cib.py –stout -c /etc/ha.d/ha.cf /etc/ha.d/haresources
1)查看所有资源
crm_resource -L
2)查看资源跑在哪个节点上
crm_resource -W -r DRBD_data
4)启动/停止资源
crm_resource -r DRBD_data -p target_role -v started
crm_resource -r DRBD_data -p target_role -v stopped
5)查看资源在cib.xml中的定义
crm_resource -x -r DRBD_data
6)将资源从当前节点移动向另个节点
crm_resource -M -r DRBD_data
7)将资源移向指定节点
crm_resource -M -r DRBD_data -H node2
8)允许资源回到正常的节点
crm_resource -U -r DRBD_data
9)将资源从CRM中删除
crm_resource -D -r DRBD_data -t primitive
10)将资源组从CRM中删除
crm_resource -D -r My-DRBD-group -t group
11)将资源从CRM中禁用
crm_resource -p is_managed -r DRBD_data -t primitive -v off
12)将资源重新从CRM中启用
crm_resource -p is_managed -r DRBD_data -t primitive -v on
13)重启资源
crm_resource -C -H node2 -r DRBD_data
14)检查所有节点上未在CRM中的资源
crm_resource -P
15)检查指定节点上未在CRM中的资源
crm_resource -P -H node2
相关推荐
heartbeat+drbd+mysql安装部署
Drbd、Heartbeat 文件版本及简介: Cluster-Resource-Agents-agents-1.0.3.tar.bz2 Reusable-Cluster-Components-glue-1.0.6.tar.bz2 Heartbeat-3-0-STABLE-3.0.3.tar.bz2 Pacemaker-1-0-Pacemaker-1.0.9.tar.bz2 ...
NFS+Heartbeat+DRBD构建高可用存储系统,可容纳1-2T小文件
这是heartbeat+DRBD+Pacemaker安装步骤
根据提供的信息,我们可以详细探讨如何构建一个基于MySQL、DRBD(Distributed Replicated Block Device)、Heartbeat以及Amoeba的高可用性和负载均衡的数据库集群系统。这种集群配置旨在提高系统的稳定性和数据的...
### Heartbeat+DRBD+MySQL高可用架构方案与实施过程细节 #### 互联网公司从初期到后期的数据库架构拓展 随着互联网公司的成长和发展,数据库架构也需要不断地调整和优化以满足不断增长的需求。从最初的单一服务器...
Heartbeat-STABLE-2-1-STABLE-2.1.4.tar.bz2这个文件是Heartbeat的一个稳定版本,包含了监控和故障转移的逻辑。安装并配置Heartbeat后,它可以实时检测服务器的运行情况,如网络连接、进程状态等,并在发现异常时...
RHEL5.5+drbd+heartbeat+oracle10R2 双机安装实例
"heartbeat+drbd实现边际双机热备" 通过本文,我们将学习如何使用heartbeat和drbd实现边际双机热备,旨在提供高可用性和故障转移功能的解决方案。 一、环境准备 在开始之前,我们需要准备两台服务器,分别作为...
### MySQL+Heartbeat+DRBD集群方案详解 #### 一、引言 在现代企业的生产环境中,数据库的稳定性与可靠性至关重要。为了确保业务连续性,采用高可用性的数据库架构成为普遍做法。其中,MySQL因其开源特性及良好的...
2. 下载并编译安装DRBD用户空间工具和内核模块。注意,这里的版本号(如8.4.1)和内核源码路径应根据实际系统情况进行调整。 3. 配置DRBD,包括在每台服务器上创建用于镜像的分区。例如,使用fdisk工具在第二块硬盘...
RHEL-5.7+DRBD+heartbeat+Oracle10R2双机安装实例.doc
构建高可用性文件共享存储系统的关键技术涉及心跳检测Heartbeat、分布式复制块设备DRBD和网络文件系统NFS。下面将详细介绍这些技术及其在构建高可用性文件共享存储系统中的应用。 首先,Heartbeat是一个开源的高...
在本资料中,我们关注的是通过配置MySQL与Heartbeat和DRBD来实现写操作的高可用性。以下是详细的知识点说明: 1. **DRBD(Distributed Replicated Block Device)**: - DRBD是一种分布式存储解决方案,它可以在两...
本主题聚焦于"DRBD+Heartbeat+NFS"的组合,这是一种常用的Linux环境下实现高可用性(nfs)文件服务器集群的方法。下面将详细介绍这三个关键组件及其相互作用。 1. **DRBD(Distributed Replicated Block Device)** ...
RedHat 5.2+MYSQL集群主备+DRBD安装指南 Red Hat Enterprise Linux 5.2环境下,安装二台MYSQL服务器(主备式),通过heartbeat切换,DRBD储存共享。 利用heartbeat,启动mysql、mon。
### OPENFILER 2+DRBD+HA 配置详解 #### 一、概述 本文主要介绍了如何在OPENFILER 2.3中配置DRBD(Distributed Replicated Block Device)与HA(High Availability)集群,以实现数据的高可用性和故障转移功能。...
DRBD+Heartbeat+Oracle10g高可用HA方案 在本文档中,我们将详细介绍如何使用DRBD、Heartbeat和Oracle10g来实现高可用HA方案。该方案的主要目的是为了提供一个高可用、可靠、可扩展的解决方案,以满足业务连续性和...