Centos5.6 x86_64下安装DRBD+Heartbeat+NFS

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介:

这篇文章其实是对《构建高可用Linux服务器(第二版)》中第五章中“生产下的高可用NFS文件服务器”一节的补充,其实像drbd和heartbeat这些软件都是可以通过yum来自动安装的,例如安装drbd的命令如下:

1
yum -y  install  drbd83 kmod-drbd83

DRBD的配置文件/etc/drbd.conf如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
global {
# minor-count dialog-refresh disable-ip-verification
usage-count no;          #统计drbd的使用
}
common {
syncer  { rate 30M; }   #同步速率,视带宽而定
}
resource r0 {            #创建一个资源,名字叫”r0”
protocol C;              #选择的是drbd的C 协议(数据同步协议,C为收到数据并写入后返回,确认成功)
handlers {               #默认drbd的库文件
pri-on-incon-degr  "/usr/lib/drbd/notify-pri-on-incon-degr.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f" ;
pri-lost-after-sb  "/usr/lib/drbd/notify-pri-lost-after-sb.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f" ;
local -io-error  "/usr/lib/drbd/notify-io-error.sh; /usr/lib/drbd/notify-emergency-shutdown.sh; echo o > /proc/sysrq-trigger ; halt -f" ;
# fence-peer "/usr/lib/drbd/crm-fence-peer.sh";
# split-brain "/usr/lib/drbd/notify-split-brain.sh root";
# out-of-sync "/usr/lib/drbd/notify-out-of-sync.sh root";
# before-resync-target "/usr/lib/drbd/snapshot-resync-target-lvm.sh -p 15 -- -c 16k";
# after-resync-target /usr/lib/drbd/unsnapshot-resync-target-lvm.sh;
}
startup {
# wfc-timeout degr-wfc-timeout outdated-wfc-timeout wait-after-sb
wfc-timeout 120;
degr-wfc-timeout 120;   
}
disk {
# on-io-error fencing use-bmbv no-disk-barrier no-disk-flushes
# no-disk-drain no-md-flushes max-bio-bvecs
on-io-error detach;
}
net {
# sndbuf-size rcvbuf-size timeout connect-int ping-int ping-timeout max-buffers
# max-epoch-size ko-count allow-two-primaries cram-hmac-alg shared-secret
# after-sb-0pri after-sb-1pri after-sb-2pri data-integrity-alg no-tcp-cork
max-buffers 2048;
cram-hmac-alg  "sha1" ;
shared-secret  "123456" ;
#allow-two-primaries;
}
syncer {
rate 30M;
# rate after al-extents use-rle cpu-mask verify-alg csums-alg
}
on centos1.cn7788.com {  #设定一个节点,分别以各自的主机名命名
device   /dev/drbd0 #设定资源设备/dev/drbd0 指向实际的物理分区 /dev/sdb1
disk     /dev/sdb ;
address 192.168.11.32:7788;       #设定监听地址以及端口
meta-disk       internal;
}
on centos2.cn7788.com {          #设定一个节点,分别以各自的主机名命名
device   /dev/drbd0 #设定资源设备/dev/drbd0 指向实际的物理分区 /dev/sdb1
disk     /dev/sdb ;
address 192.168.11.33:7788;        #设定监听地址以及端口
meta-disk       internal;
}
}

Heartbeat的配置文件如下:

1
2
3
4
5
6
7
8
logfile  /var/log/ha-log
logfacility local0
keepalive 2
deadtime 15
ucast eth0 192.168.11.32
ucast eth1 10.0.0.2
auto_failback off
node centos1.cn7788.com centos2.cn7788.com

补充说明的几点是:

一、许多朋友喜欢用独立分区的方式来部署DRBD,这个也是可行的,我们在安装系统时只需要保留Free空间即可,在部署DRBD时再进行fdisk,这个是不需要写进/etc/fstab表的,即不需要在安装系统时就挂载,我在测试时发现用此方法部署DRBD还是比较繁琐了,增加了整个实验的复杂度,而且还需要操作dd,个人建议还是以独立硬盘来作为DRBD的块设备较好;

二、Secondary主机用来做DRBD的硬盘或分区可以跟Primar主机的不一样大小,但请不要小于Primary主机;

三、服务器网卡及交换机我都推荐千M系列的,在测试中发现其同步速率界于100M-200M之间,这里采用官方的建议,以最小值的30%带宽来设置rate速率;

四、DRBD对网络环境要求很高,建议用单独的双绞线来作为二台主机之间的心跳线,如果条件允许,可以考虑用二根以上的心跳线;如果这个环节做得好,基本上脑裂的问题是不存在的。其实整个实验初期都可以在同一网络下实现,后期再加心跳线也是可行的。

五、安装Heartbeat时需要安装二遍,即yum -y install heartbeat要执行二次;

六、DRBD+Heartbeat+NFS的实验在测试时发现也很威猛,我经常在做写入测试时忽然关掉primary机器,写数据丝毫不影响,用户完全感觉不到有机器挂掉了;

七、建议不要用根分区作为MySQL的datadir,不然你show database时会发现会出现名为#mysql50#lost+found的数据库;

八、就算发生脑裂的问题,DRBD也不会丢失数据的,手动解决就是;正因为DRBD可靠,MySQL也推荐将其作为MySQL实现高可用方案之一,其具体操作详见http://database.51cto.com/art/201209/355332.htm





本文转自 抚琴煮酒 51CTO博客,原文链接:http://blog.51cto.com/yuhongchun/976135,如需转载请自行联系原作者

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1月前
|
Kubernetes Linux 开发者
在CentOS 7.8上使用kubeadm安装k8s 1.26
至此,你已经在CentOS 7.8上使用kubeadm成功安装了k8s 1.26。你可以通过输入 `kubectl get nodes`来查看节点状态,如果显示为Ready,那么恭喜你,你的Kubernetes集群已经准备好了。
116 23
|
10天前
|
Oracle 关系型数据库 Linux
MyEMS开源系统安装之CentOS/RHEL/Rocky/AlmaLinux/Oracle Linux
本指南介绍如何在CentOS/RHEL/Rocky/AlmaLinux/Oracle Linux服务器上部署MyEMS开源能源管理系统。内容涵盖系统准备、数据库配置、多个MyEMS服务(如myems-api、myems-admin、myems-modbus-tcp等)的安装与配置,以及Nginx服务器设置和防火墙规则调整。通过完成所有步骤,您将能够访问MyEMS Admin UI和Web UI,默认端口分别为8001和80,初始登录凭据已提供。
33 0
|
2月前
|
关系型数据库 MySQL Linux
CentOS 7系统下详细安装MySQL 5.7的步骤:包括密码配置、字符集配置、远程连接配置
以上就是在CentOS 7系统下安装MySQL 5.7的详细步骤。希望这个指南能帮助你顺利完成安装。
564 26
|
2月前
|
Kubernetes Linux 网络安全
CentOS 7.8下使用kubeadm安装Kubernetes 1.26
这就是所有的前线报告,冒险家们,你们已经做好准备,开始在CentOS 7.8上通过Kubeadm安装Kubernetes 1.26的挑战了吗?走上这段旅程,让你的代码飞翔吧。
99 16
|
3月前
|
Linux 虚拟化 Windows
VMware隐藏黑科技!CentOS安装这个神器效率翻倍 文件互传竟比U盘还快?
### 安装VMtools的作用及步骤 安装VMtools可以实现Windows与CentOS之间的字符串和命令粘贴、文件夹共享等操作。在CentOS中,通过VMware菜单栏选择“VMware Tools”,将下载的压缩包拷贝到`/opt`目录并解压。接着进入终端,使用`./vmware-install.pl`命令完成安装。安装后重启系统,即可实现Windows与CentOS之间的字符和文件共享。具体步骤包括解压文件、启动命令行终端、安装VMtools以及配置文件共享。
139 16
VMware隐藏黑科技!CentOS安装这个神器效率翻倍 文件互传竟比U盘还快?
|
2月前
|
安全 Linux 网络安全
在Linux(CentOS和AWS)上安装更新的git2的方法并配置github-ssh
经过以上这些步骤,你现在就能在GitHub上顺利往返,如同海洋中的航海者自由驰骋。欢迎你加入码农的世界,享受这编程的乐趣吧!
89 10
|
3月前
|
存储 IDE Linux
零基础保姆级教程!手把手教你免费玩转Linux CentOS安装+学习环境搭建(附避坑指南)
本文详细介绍了在VMware虚拟机中安装CentOS 6.8的全过程。首先,需确保已安装VMware并开启V-CPU虚拟化功能,可通过BIOS设置或使用LeoMoon CPU-V工具检测。接着,下载CentOS镜像文件,并在VMware中新建虚拟机,配置CPU、内存、硬盘等参数。最后,加载ISO镜像启动虚拟机,按照提示完成CentOS的安装,包括语言、键盘、存储方式、地区、密码设置及硬盘分区等步骤。安装完成后,以root用户登录即可进入系统桌面,开始学习Linux命令和操作。
292 12
零基础保姆级教程!手把手教你免费玩转Linux CentOS安装+学习环境搭建(附避坑指南)
|
2月前
|
Linux 网络安全 数据安全/隐私保护
在CentOS 7.9中安装sshpass教程
如果在控制台显示出sshpass的使用方法,那就说明我们的大餐已经准备好,sshpass已经成功安装。 以上就是在 CentOS 7.9 中安装 sshpass 的彩色步骤,专业而生动,就像大厨在厨房一样顺利。
113 8
|
3月前
|
存储 Linux 网络安全
如何从CentOS7升级到8?CentOS8最新安装教程
从CentOS 7升级到8只需三步:清理系统、更换软件包及存储库、安装新内核与发布版本。首先确保系统最新并清理冗余包,接着替换基础系统包为CentOS 8版本,最后通过DNF工具完成内核更新与系统同步。整个过程需在终端执行,建议升级前备份VPS快照以防数据丢失。此方法可避免重装系统导致的数据清除问题,实现平滑升级。
365 6
|
4月前
|
缓存 Ubuntu Linux
Linux中yum、rpm、apt-get、wget的区别,yum、rpm、apt-get常用命令,CentOS、Ubuntu中安装wget
通过本文,我们详细了解了 `yum`、`rpm`、`apt-get`和 `wget`的区别、常用命令以及在CentOS和Ubuntu中安装 `wget`的方法。`yum`和 `apt-get`是高层次的包管理器,分别用于RPM系和Debian系发行版,能够自动解决依赖问题;而 `rpm`是低层次的包管理工具,适合处理单个包;`wget`则是一个功能强大的下载工具,适用于各种下载任务。在实际使用中,根据系统类型和任务需求选择合适的工具,可以大大提高工作效率和系统管理的便利性。
402 25