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

Linux 集群的Heartbeat与DRBD服务

428次阅读
没有评论

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

集群的 Heartbeat 与 drbd 服务
我们用到的集群系统主要就 2 种:
高可用 (High Availability)HA 集群, 使用 Heartbeat 实现; 也会称为”双机热备”,“双机互备”,“双机”。
负载均衡群集 (Load Balance Cluster),使用 Linux Virtual Server(LVS) 实现;
heartbeat(Linux-HA)的工作原理:heartbeat 最核心的包括两个部分,心跳监测部分和资源接管部分,心跳监测可以通过网络链路和串口进行,而且支持冗 余链路,它们之间相互发送报文来告诉对方自己当前的状态,如果在指定的时间内未受到对方发送的报文,那么就认为对方失效,这时需启动资源接管模块来接管运 行在对方主机上的资源或者服务。
 
需要安装的包:
heartbeat-3.0.4-2.el6.x86_64.rpm       
heartbeat-libs-3.0.4-2.el6.x86_64.rpm
heartbeat-devel-3.0.4-2.el6.x86_64.rpm 
ldirectord-3.9.5-3.1.x86_64.rpm
 
步骤:
一。将 rpm 包安装在 server1 和 server2 的一个目录中,
在 server1 中切到刚才的 rpm 包所在的目录中,安装
yum install * -y## 安装所有的 rpm 包
[root@server1 heartbeat]# cd /etc/ha.d/
[root@server1 ha.d]# cp /usr/share/doc/heartbeat-3.0.4/{authkeys,ha.cf,haresources} .
[root@server1 ha.d]# ls
authkeys  ha.cf  harc  haresources  rc.d  README.config  resource.d  shellfuncs
[root@server1 ha.d]# vim ha.cf
48 keepalive 2
56 deadtime 30
71 initdead 60
76 udpport 12345
91 bcast  eth0            # Linux
113 #mcast eth0 225.0.0.1 694 1 0
121 #ucast eth0 1
157 auto_failback on
211 node    server12-10.example.com
212 node    server12-20.example.com
220 ping 172.25.50.250
253 respawn hacluster /usr/lib64/heartbeat/ipfail
259 apiauth ipfail gid=haclient uid=hacluster
 
[root@server1 ha.d]# vim authkeys
 23 auth 1
 24 1 crc
 25 #2 sha1 HI!
 26 #3 md5 Hello!
 
[root@server1 ha.d]# vim haresources
150 server1.example.com IPaddr::172.25.50.100/24/eth0 httpd
 
[root@server1 ha.d]# chmod 600 authkeys
[root@server1 ha.d]# ll -d authkeys
-rw——- 1 root root 643 2 月  17 15:06 authkeys
[root@server1 ha.d]# scp ha.cf haresources authkeys 172.25.50.20:/etc/ha.d/
root@172.25.50.20’s password:
ha.cf                                                100%  10KB  10.3KB/s  00:00   
haresources                                          100% 5961    5.8KB/s  00:00   
authkeys                                            100%  643    0.6KB/s  00:00   
[root@server1 ha.d]# /etc/init.d/heartbeat start
Starting High-Availability services: INFO:  Resource is stopped
Done.
 
在 server2 上启动 heartbeat 服务
[root@server2 ha.d]# /etc/init.d/heartbeat start
Starting High-Availability services: INFO:  Resource is stopped
Done.
 
测试:
在 server1 的 var/www/html/ 目录下:
[root@server1 html]# vim index.html
www.server1.example
在 server2 上
[root@server2 ha.d]# cd /var/www/html/
[root@server2 html]# ls
[root@server2 html]# vim index.html
www.server2.example.com
 
在 server1 上
[root@server1 html]# ip addr show
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:00:06:13:fa brd ff:ff:ff:ff:ff:ff
    inet 172.25.50.10/24 brd 172.25.50.255 scope global eth0
    inet 172.25.50.100/24 brd 172.25.50.255 scope global secondary eth0
    inet6 fe80::5054:ff:fe06:13fa/64 scope link
      valid_lft forever preferred_lft forever
说明 http 服务是在 servre1 上启动的
在真机上
[root@real50 Desktop]# curl 172.25.50.100
www.server1.example
## 访问的内容是在 ip:100 的主机的 http 默认发布目录上的内容
 
Server1 上:关闭心跳
 
[root@server1 html]# /etc/init.d/heartbeat stop
Stopping High-Availability services: Done.
这时侯。100 这个 ip 就到 server2 这个主机上
 
真机:
[root@real50 Desktop]# curl 172.25.50.100
www.server2.example.com
当 server1 上的 heartbeat 服务启动后,100 这个 ip 就重新回切到 server1 主机上
 
 
测试 2:关闭 httpd 服务
(开启 heartbeat 服务,)
[root@server1 ha.d]# /etc/init.d/httpd stop
Stopping httpd:                                            [OK]
 
[root@server1 ha.d]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
      valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:00:51:aa:19 brd ff:ff:ff:ff:ff:ff
    inet 172.25.50.10/24 brd 172.25.12.255 scope global eth0
    inet 172.25.50.100/24 brd 172.25.12.255 scope global secondary eth0
    inet6 fe80::5054:ff:fe51:aa19/64 scope link
      valid_lft forever preferred_lft forever
[root@real Desktop]# curl 172.25.12.100
curl: (7) Failed connect to 172.25.12.100:80; Connection refused
[root@real Desktop]# arp -an | grep 172.25.12.100
? (172.25.12.100) at 52:54:00:51:aa:19 [ether] on br0
 
##############drbd 服务 ####################
首先先生成 rpm 包
Server1 上
解压事先发送到 server1 上的 bdrm-8.4.2.tar.gz 包
[root@server1 mnt]# tar zxf bdrm-8.4.2.tar.gz
[root@server1 mnt]# cd drbd-8.4.2
[root@server1 drbd-8.4.2]# yum install gcc -y
[root@server1 drbd-8.4.2]# yum install flex -y
[root@server1 drbd-8.4.2]yum install rpm-build -y
[root@server1 drbd-8.4.2]yum install kernel-devel -y
[
 
root@server1 drbd-8.4.2]./configure –enable-spec
生成 drbd.spec 这个文件
[root@server1 drbd-8.4.2]./configure –enable-spec –with-km
生成 drbd-km.spec 文件
[root@server1 drbd-8.4.2]cp /mnt/drbd-8.4.2.tar.gz /root/rpmbuild/SOURCES/
[root@server1 drbd-8.4.2]rpmbuild -bb drbd.spec# 编译 drbd.spec 文件
[root@server1 drbd-8.4.2]# rpmbuild -bb drbd-km.spec# 编译 drbd-km.spec 文件
[root@server1 drbd-8.4.2]cd /root/rpmbuild/RPMS/x86_64/
[root@server1 drbd-8.4.2]# cd /root/rpmbuild/RPMS/x86_64/
[root@server1 x86_64]# ls
drbd-8.4.2-2.el6.x86_64.rpm
drbd-bash-completion-8.4.2-2.el6.x86_64.rpm
drbd-heartbeat-8.4.2-2.el6.x86_64.rpm
drbd-km-2.6.32_431.el6.x86_64-8.4.2-2.el6.x86_64.rpm
drbd-pacemaker-8.4.2-2.el6.x86_64.rpm
drbd-udev-8.4.2-2.el6.x86_64.rpm
drbd-utils-8.4.2-2.el6.x86_64.rpm
drbd-xen-8.4.2-2.el6.x86_64.rpm
 
 rpm -ivh *
 scp *  172.25.30.2:  –> 然后在 server2 上执行: cd  –> rpm -ivh *
安装以上软件后就可以作接下来的实验拉
 
############ 存储 #####
给 server1 和 server2 上同时添加一块儿 4G 虚拟硬盘
在 server1 sevrer2 上执行 fdisk -l 查看添加磁盘路径,这里是 /dev/vda
[root@server1 drbd.d]# fdisk -l
Disk /dev/vda: 4294 MB, 4294967296 bytes
16 heads, 63 sectors/track, 8322 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
 
切入:cd /etc/drbd.d/
[root@server1 drbd.d]# ls
global_common.conf
 
[root@server1 drbd.d]# vim lyitx.res
resource lyitx {
meta-disk internal;
device /dev/drbd1;
syncer {
verify-alg sha1;
}
on server1.example.com {
disk /dev/vda;
address 172.25.50.10:7789;
}
on server2.example.com {
disk /dev/vda;
address 172.25.50.20:7789;
}
}
[root@server1 drbd.d]# scp lyitx.res 172.25.50.20:/etc/drbd.d/# 复制到这个文件夹
[root@server1 drbd.d]# drbdadm create-md lyitx#server1 和 server2 上同时执行
Writing meta data…
initializing activity log
NOT initializing bitmap
New drbd meta data block successfully created.
[root@server1 drbd.d]# /etc/init.d/drbd start
Starting DRBD resources: [
    create res: lyitx
  prepare disk: lyitx
    adjust disk: lyitx
    adjust net: lyitx
]
……….
***************************************************************
 DRBD’s startup script waits for the peer node(s) to appear.
 – In case this node was already a degraded cluster before the
  reboot the timeout is 0 seconds. [degr-wfc-timeout]
 – If the peer was available before the reboot the timeout will
  expire after 0 seconds. [wfc-timeout]
  (These values are for resource ‘lyitx’; 0 sec -> wait forever)
 To abort waiting enter ‘yes’ [14]:
.[root@server1 drbd.d]# cat /proc/drbd #查看该主机是否能够挂载
version: 8.4.2 (api:1/proto:86-101)
GIT-hash: 7ad5f850d711223713d6dcadc3dd48860321070c build by root@server1.example.com, 2017-02-17 16:28:52
 
 1: cs:Connected ro:Secondary/Secondary ds:Inconsistent/Inconsistent 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:f oos:4194140
[root@server1 drbd.d]# drbdadm primary lyitx –force# 强制将当前主机设置 primary 模式
[root@server1 drbd.d]# cat /proc/drbd
 cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent C r—n-
[root@server1 drbd.d]# mkfs.ext4 /dev/drbd1# 格式化成 ext4,否则无法挂载,
[root@server1 drbd.d]# cd /mnt/
[root@server1 mnt]# mount /dev/drbd1 /mnt# 挂载
[root@server1 /]# cd /mnt
[root@server1 mnt]# ls
lost+found
[root@server1 mnt]# vim index.html# 写的一个测试页面
[root@server1 mnt]# ls
index.html  lost+found
[root@server1 ~]# cd
[root@server1 ~]# umount /mnt# 卸载
[root@server1 ~]# drbdadm secondary lyitx# 将当前主机设置成 secondary 模式,只有这样其他主机才能够设置成 primary
 
在 servre2 上
[root@server2 drbd.d]# drbdadm primary lyitx# 设置成 primary 模式
[root@server2 drbd.d]# cat /proc/drbd
1: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r—
[root@server2 drbd.d]# mount /dev/drbd1 /mnt# 挂载,这里就无需格式化,
[root@server2 drbd.d]# cd /mnt
[root@server2 mnt]# ls
index.html  lost+found
[root@server2 mnt]# cat index.html
server1.example.com
在 server2 上看到 server1 的测试页面,说明测试成功
 
 
 
#######heartbeat+mysql###################
将 heartbeat 服务和 mysql 服务结合在一起,通过 heartbeat 服务实现双机热备,
步骤:
关闭两台虚拟机的 heartbeat 服务
[root@server1 mnt]# yum install mysql-server -y
[root@server1 mnt]#drbdadm primary example
[root@server1 mnt]mount /dev/drbd1 /mnt
[root@server1 mnt]cd /var/lib/mysql/
/etc/init.d/mysqld start
/etc/init.d/mysqld stop
[root@server1 mysql]# cp -r * /mnt/
[root@server1 mysql]# cd /mnt/
[root@server1 mnt]# ls
ibdata1  ib_logfile0  ib_logfile1  index.html  lost+found  mysql  mysql.sock  test
[root@server1 mnt]# rm -fr mysql.sock #开启 mysql 服务后,会生成 mysql.sock 缓存文件,关闭服务后删除这个文件。(当 mysql 启动时,会再次生成)
 
[root@server1 mnt]# cd
[root@server1 ~]# umount /mnt/ ## 这时 mysql 服务必须关闭,否则无法卸载
[root@server1 ~]# mount /dev/drbd1 /var/lib/mysql/
[root@server1 ~]# chown mysql.mysql /var/lib/mysql/ -R
[root@server1 mysql]# /etc/init.d/mysqld start
正在启动 mysqld:[确定]
[root@server1 mysql]# cd
[root@server1 ~]# /etc/init.d/mysqld stop
停止 mysqld:[确定]
[root@server1 ~]# umount /var/lib/mysql/
[root@server1 ~]# drbdadm secondary lyitx
 
在 server2 上
[root@server2 /]# yum install mysql-server -y
[root@server2 /]# drbdadm primary lyitx
[root@server2 /]# mount /dev/drbd1 /var/lib/mysql/
[root@server2 /]# df## 这时能够看到挂载的 mysql
Filesystem                  1K-blocks    Used Available Use% Mounted on
/dev/mapper/VolGroup-lv_root  19134332 1106972  17055380  7% /
tmpfs                          510200      0    510200  0% /dev/shm
/dev/sda1                      495844  33458    436786  8% /boot
/dev/drbd1                    4128284  95192  3823388  3% /var/lib/mysql
[root@server2 /]# /etc/init.d/mysqld start
[root@server2 /]# /etc/init.d/mysqld stop
[root@server2 /]# umount /var/lib/mysql/
[root@server2 /]# drbdadm secondary lyitx
 
[root@server1 ~]# vim /etc/ha.d/haresources
在最后一行修改:
server1.example.com IPaddr::172.25.50.100/24/eth0 drbddisk::lyitx Filesystem::/dev/drbd1::/var/lib/mysql::ext4 mysqld
[root@server1 ~]# scp /etc/ha.d/haresources 172.25.50.20:/etc/ha.d/
root@172.25.50.20’s password:
haresources                                                      100% 6023    5.9KB/s  00:00   
[root@server1 ~]# /etc/init.d/heartbeat start
Starting High-Availability services: INFO:  Resource is stopped
Done.
[root@server2 ~]# /etc/init.d/heartbeat start
Starting High-Availability services: INFO:  Resource is stopped
Done.
 
测试:server1: /etc/init.d/heartbeat stop –> 去 server2 上进行 df 查看,若查看到,则表示成功

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-04/142914.htm

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

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19350
评论数
4
阅读量
7963207
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
免费领取huggingface的2核16G云服务器,超简单教程

免费领取huggingface的2核16G云服务器,超简单教程

免费领取 huggingface 的 2 核 16G 云服务器,超简单教程 前言 HuggingFace.co...
星哥带你玩飞牛NAS-1:安装飞牛NAS

星哥带你玩飞牛NAS-1:安装飞牛NAS

星哥带你玩飞牛 NAS-1:安装飞牛 NAS 前言 在家庭和小型工作室场景中,NAS(Network Atta...
在Windows系统中通过VMware安装苹果macOS15

在Windows系统中通过VMware安装苹果macOS15

在 Windows 系统中通过 VMware 安装苹果 macOS15 许多开发者和爱好者希望在 Window...
把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地

把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地

把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地 大家好,我是星哥,今天教大家在飞牛 NA...
星哥带你玩飞牛NAS-11:咪咕视频订阅部署全攻略

星哥带你玩飞牛NAS-11:咪咕视频订阅部署全攻略

星哥带你玩飞牛 NAS-11:咪咕视频订阅部署全攻略 前言 在家庭影音系统里,NAS 不仅是存储中心,更是内容...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

  4 盘位、4K 输出、J3455、遥控,NAS 硬件入门性价比之王 开篇 在 NAS 市场中,威...
300元就能买到的”小钢炮”?惠普7L四盘位小主机解析

300元就能买到的”小钢炮”?惠普7L四盘位小主机解析

  300 元就能买到的 ” 小钢炮 ”?惠普 7L 四盘位小主机解析 最近...
星哥带你玩飞牛NAS-16:不再错过公众号更新,飞牛NAS搭建RSS

星哥带你玩飞牛NAS-16:不再错过公众号更新,飞牛NAS搭建RSS

  星哥带你玩飞牛 NAS-16:不再错过公众号更新,飞牛 NAS 搭建 RSS 对于经常关注多个微...
12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换...
恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击

恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击

恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击 PHP-FPM(FastCGl Process M...