阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

DRBD+Heartbeat+httpd实现HA群集

192次阅读
没有评论

共计 7761 个字符,预计需要花费 20 分钟才能阅读完成。

Distributed Replicated Block Device(DRBD)是一个用软件实现的、无共享的、服务器之间镜像块设备内容的存储复制解决方案,可以被用于高可用群集 (HA) 中。它类似于一个网络 RAID-1 功能。当数据写入本地文件系统时,数据还会被发送到网络中另一台主机上,以相同的形式记录在一个文件系统中。本地 ( 主节点 ) 与远程主机 ( 备节点 ) 的数据可以保证实时同步。当本地系统出现故障时,远程主机上还会保留有一份相同的数据,可以继续使用。在高可用群集 (HA) 中使用 DRBD 功能,可以代替使用一个共享盘阵。因为数据同时存在于本地主机和远程主机上。切换时,远程主机只要使用它上面的那份备份数据,就可以继续进行服务了。 

如果主服务器宕机,造成的损失是不可估量的。要保证主服务器不间断服务,就需要对服务器实现冗余。而 heartbeat 就为我们提供了廉价的、可伸缩的高可用集群方案。 

结合 heartbeatdrbd既可以实现不仅保证了服务器的高可用而且也有效的将数据进行了完全的备份。 

接下来就要实现一个 heartbeat+DRBD+httpd 的高可用性群集。

拓扑:(其中每个 node 都有两块硬盘,其中一块硬盘用来存放 web 的数据,Linux version 2.6.18-164.el5)

DRBD+Heartbeat+httpd 实现 HA 群集

 

准备工作:

[root@node1 ~]# vim /etc/sysconfig/network

HOSTNAME=node1.a.com

 

[root@node1 ~]# vim /etc/hosts

# Do not remove the following line, orvarious programs

# that require network functionality willfail.

127.0.0.1 node1.a.comnode1 localhost.localdomain localhost

::1 localhost6.localdomain6 localhost6

192.168.2.10 node1.a.com

192.168.2.20 node2.a.com

 

为了便于安装软件包,使用本地yum

[root@node1 ~]# vim /etc/yum.repos.d/rhel-debuginfo.repo

1 [rhel-Server]

2 name=Red Hat Enterprise Linux Server

3 baseurl=file:///mnt/cdrom/Server

4 enabled=1

5 gpgcheck=1

6 gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-RedHat-release

7 [rhel-Cluster]

8 name=Red Hat Enterprise Linux Cluster

9 baseurl=file:///mnt/cdrom/Cluster

10enabled=1

11gpgcheck=1

12gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release

 

挂载光盘

[root@node1 ~]# mkdir /mnt/cdrom

[root@node1 ~]# mount /dev/cdrom /mnt/cdrom/

mount: block device /dev/cdrom iswrite-protected, mounting read-only

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2013-10/92146p2.htm

相关阅读

HA 群集 rhcs—-ip-san(iscsi)存储区域网络(fence)  http://www.linuxidc.com/Linux/2012-06/62051.htm

Linux 高可用(HA)集群之 DRBD 详解 http://www.linuxidc.com/Linux/2013-08/89035.htm

DRBD 中文应用指南 PDF http://www.linuxidc.com/Linux/2013-08/89034.htm

CentOS 6.3 下 DRBD 安装配置笔记 http://www.linuxidc.com/Linux/2013-06/85600.htm

基于 DRBD+Corosync 实现高可用 MySQL http://www.linuxidc.com/Linux/2013-05/84471.htm

CentOS 6.4 下 DRBD 安装配置 http://www.linuxidc.com/Linux/2013-09/90536.htm

DRBD 的详细介绍:请点这里
DRBD 的下载地址:请点这里

安装apache

[root@node1 ~]# yum install httpd –y

 

确保 httpd 服务关闭并且不随系统启动自启动

[root@node1 ~]# service httpd status

httpd is stopped

[root@node1 ~]# chkconfig –list |grephttpd

httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off

 

DRBD+Heartbeat+httpd 实现 HA 群集

安装所有软件包(heartbeat 相关软件下载地址 http://down.51cto.com/data/988719)

[root@Director1 heartbeat]# yum localinstall *.rpm –nogpgcheck y

 

拷贝几个需要的配置文件

[root@node1 heartbeat]# cd /usr/share/doc/heartbeat-2.1.4/

[root@node1 heartbeat-2.1.4]#cp ha.cf haresources authkeys /etc/ha.d/

[root@node1 heartbeat-2.1.4]#cd /etc/ha.d/

 

 

编辑 ha.cf 文件来声明 HA 群集的成员以及心跳探测的方法

[root@Director1 ha.d]# vim ha.cf

91 bcast eth1 # Linux /////eth1 口发送广播来进行 Director 之间的心跳探测

 

声明 HA 群集内的成员

211 node node1.a.com

212 node node2.a.com

 

 

设置 Director 加入 HA 群集的验证方式

[root@node1 ha.d]# chmod 600 authkeys

[root@node1 ha.d]# vim authkeys

23 auth 3 /////使用第三种验证方式

24#1 crc

25#2 sha1 HI!

26 3 md5 node /////启用这种验证方式

 

[root@node1 ha.d]# vim haresources /////设置 heartbeat 的资源清单

44 node1.a.com 192.168.2.100/24/eth0 httpd

 

将 httpd 的管理权限交与 heartbeat

[root@node1 ha.d]# cp /etc/init.d/httpd resource.d/

 

 

DRBD+Heartbeat+httpd 实现 HA 群集

安装 DRBD(DRBD 相关软件下载地址http://vault.centos.org/5.7/extras/i386/RPMS/)

[root@node1 drbd]# yum localinstall *.rpm–nogpgcheck –y

 

拷贝样例文件

[root@node1 drbd]# cd /usr/share/doc/drbd83-8.3.8/

[root@node1 drbd83-8.3.8]#cp drbd.conf /etc/drbd.conf

cp: overwrite `/etc/drbd.conf’? y

[root@node1 drbd83-8.3.8]#cat /etc/drbd.conf

# You can find an example in /usr/share/doc/drbd…/drbd.conf.example

 

include”drbd.d/global_common.conf”;

include “drbd.d/*.res”;

[root@node1 drbd83-8.3.8]#cd /etc/drbd.d/

[root@node1 drbd.d]# cp global_common.conf global_common.conf.bak /////将原来的文件做个备份

[root@node1 drbd.d]# vim global_common.conf

 

1global {

2 usage-count yes;

3 # minor-countdialog-refresh disable-ip-verification

4}

5

6common {

7 protocol C;

8

9 startup {

10 wfc-timeout 120;

11 degr-wfc-timeout 120;

12 }

13 disk {

14 on-io-error detach;

15 fencing resource-only;

16

17 }

18 net {

19 cram-hmac-alg”sha1″;

20 shared-secret “mydrbdlab”;

21 }

22 syncer {

23 rate 100M;

24 }

25

26 }

Distributed Replicated Block Device(DRBD)是一个用软件实现的、无共享的、服务器之间镜像块设备内容的存储复制解决方案,可以被用于高可用群集 (HA) 中。它类似于一个网络 RAID-1 功能。当数据写入本地文件系统时,数据还会被发送到网络中另一台主机上,以相同的形式记录在一个文件系统中。本地 ( 主节点 ) 与远程主机 ( 备节点 ) 的数据可以保证实时同步。当本地系统出现故障时,远程主机上还会保留有一份相同的数据,可以继续使用。在高可用群集 (HA) 中使用 DRBD 功能,可以代替使用一个共享盘阵。因为数据同时存在于本地主机和远程主机上。切换时,远程主机只要使用它上面的那份备份数据,就可以继续进行服务了。 

如果主服务器宕机,造成的损失是不可估量的。要保证主服务器不间断服务,就需要对服务器实现冗余。而 heartbeat 就为我们提供了廉价的、可伸缩的高可用集群方案。 

结合 heartbeatdrbd既可以实现不仅保证了服务器的高可用而且也有效的将数据进行了完全的备份。 

接下来就要实现一个 heartbeat+DRBD+httpd 的高可用性群集。

拓扑:(其中每个 node 都有两块硬盘,其中一块硬盘用来存放 web 的数据,Linux version 2.6.18-164.el5)

DRBD+Heartbeat+httpd 实现 HA 群集

 

准备工作:

[root@node1 ~]# vim /etc/sysconfig/network

HOSTNAME=node1.a.com

 

[root@node1 ~]# vim /etc/hosts

# Do not remove the following line, orvarious programs

# that require network functionality willfail.

127.0.0.1 node1.a.comnode1 localhost.localdomain localhost

::1 localhost6.localdomain6 localhost6

192.168.2.10 node1.a.com

192.168.2.20 node2.a.com

 

为了便于安装软件包,使用本地yum

[root@node1 ~]# vim /etc/yum.repos.d/rhel-debuginfo.repo

1 [rhel-Server]

2 name=Red Hat Enterprise Linux Server

3 baseurl=file:///mnt/cdrom/Server

4 enabled=1

5 gpgcheck=1

6 gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-RedHat-release

7 [rhel-Cluster]

8 name=Red Hat Enterprise Linux Cluster

9 baseurl=file:///mnt/cdrom/Cluster

10enabled=1

11gpgcheck=1

12gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release

 

挂载光盘

[root@node1 ~]# mkdir /mnt/cdrom

[root@node1 ~]# mount /dev/cdrom /mnt/cdrom/

mount: block device /dev/cdrom iswrite-protected, mounting read-only

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2013-10/92146p2.htm

相关阅读

HA 群集 rhcs—-ip-san(iscsi)存储区域网络(fence)  http://www.linuxidc.com/Linux/2012-06/62051.htm

Linux 高可用(HA)集群之 DRBD 详解 http://www.linuxidc.com/Linux/2013-08/89035.htm

DRBD 中文应用指南 PDF http://www.linuxidc.com/Linux/2013-08/89034.htm

CentOS 6.3 下 DRBD 安装配置笔记 http://www.linuxidc.com/Linux/2013-06/85600.htm

基于 DRBD+Corosync 实现高可用 MySQL http://www.linuxidc.com/Linux/2013-05/84471.htm

CentOS 6.4 下 DRBD 安装配置 http://www.linuxidc.com/Linux/2013-09/90536.htm

DRBD 的详细介绍:请点这里
DRBD 的下载地址:请点这里

定义资源

[root@node1 drbd.d]# vim web.res

1resource web {

2 on node1.a.com {

3 device /dev/drbd0;

4 disk /dev/sdb;

5 address 192.168.3.10:7789;

6 meta-disk internal;

7 }

8

9 on node2.a.com {

10 device /dev/drbd0;

11 disk /dev/sdb;

12 address 192.168.3.20:7789;

13 meta-disk internal;

14 }

15 }

 

在启动 DRBD 之前,需要创建供 DRBD 记录信息的数据块. 分别在两台主机上执行

[root@node1 ~]# drbdadm create-md web

 

启动 DRBD

[root@node1 ~]# service drbd start

[root@node1 ~]# chkconfig drbd on

 

到此,在 node2 上重复以上的过程,这里不再列出

查看 DRBD 的状态

[root@node1 ~]# cat /proc/drbd

version: 8.3.8(api:88/proto:86-94)

GIT-hash: d78846e52224fd00562f7c225bcc25b2d422321d build bymockbuild@builder10.CentOS.org, 2010-06-04 08:04:16

0:cs:Connected ro:Secondary/Secondary ds:Inconsistent/Diskless C r—-

ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:5242684

 

也可以用下面这种方式查看

[root@node1 ~]# drbd-overview

0:web Connected Secondary/Secondary Inconsistent/Diskless C r—-

 

现在两台主机都是备机状态,都是”不一致”状态,这是由于 DRBD 无法判断哪一方为主机,以哪一方的磁盘数据作为标准数据。所以我们需要初始化,在 node1 上执行:

[root@node1 ~]# drbdsetup /dev/drbd0 primary -o

[root@node1 ~]# cat /proc/drbd

version: 8.3.8(api:88/proto:86-94)

GIT-hash: d78846e52224fd00562f7c225bcc25b2d422321d build bymockbuild@builder10.centos.org, 2010-06-04 08:04:16

0:cs:Connected ro:Primary/Secondary ds:UpToDate/Diskless C r—-

ns:0 nr:0 dw:0dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:5242684

 

 

将硬盘格式化

[root@node1 ~]# mkfs -t ext3 -L drbdweb /dev/drbd0

 

挂载到 web 默认站点目录下

[root@node1 ~]# mount /dev/drbd0 /var/www/html/

[root@node1 ~]# df

Filesystem 1K-blocks Used Available Use% Mounted on

/dev/sda2 9920624 2671432 6737124 29% /

/dev/sda1 101086 11373 84494 12% /boot

tmpfs 30264 0 30264 0% /dev/shm

/dev/drbd0 5160380 141440 4756808 3% /var/www/html

新建一个测试页面

[root@node1 ~]# echo “Hello World…” >/var/www/html/index.html

 

如果不使用 heartbeat 的情况下,DRBD只能手工切换主从关系

现在修改 heartbeat 的配置文件,使 DRBD 可以通过 heartbeat 自动切换

[root@node1 ~]# vim /etc/ha.d/haresources

44 node1.a.com 192.168.2.100/24/eth0 drbddisk::web Filesystem::/dev/drbd0::/var/www/html::ext3 httpd

 

启动heartbeat(在两个节点上都要启动)

[root@node1 ~]# service heartbeat start

logd is already running

Starting High-Availability services:

2013/10/25_18:31:11 INFO: Resource isstopped

[OK]

[root@node1 ~]# chkconfig heartbeat on

 

 

验证

正常情况下资源在 node1 上

DRBD+Heartbeat+httpd 实现 HA 群集

DRBD+Heartbeat+httpd 实现 HA 群集

 

node1 节点宕掉时

[root@node1 ~]# cd /usr/lib/heartbeat

[root@node1 heartbeat]# ./hb_standby

2013/10/25_18:38:20 Going standby [all].

DRBD+Heartbeat+httpd 实现 HA 群集

DRBD+Heartbeat+httpd 实现 HA 群集

 

 

node1 恢复正常时

DRBD+Heartbeat+httpd 实现 HA 群集

 

 

至此,heartbeat+DRBD+httpd 的 HA 群集已经搭建完成。

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计7761字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中