DRBD编译安装中出现的问题及解决小结

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

问题1:

设置primary node时提示不能成功UpToDate data:

1
2
3
# drbdadm primary r1      
r1: State change failed: (-2) Need access to UpToDate data
Command  'drbdsetup primary r1'  terminated with  exit  code 17

解决:

1
2
3
# drbdadm primary --force r1          ##强制设置
# drbd-overview 
  1:r1 /0   Connected(1*) Primary(1*) UpToDate(1*)


问题2:

创建设备元数据时提示操作失败:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# drbdadm -c /etc/drbd.conf create-md all
md_offset 314568704
al_offset 314535936
bm_offset 314523648
 
Found ext3 filesystem
       307200 kB data area apparently used
       307152 kB left usable by current configuration
       
Device size would be truncated,  which
would corrupt data and result  in
'access beyond end of device'  errors.
You need to either
    * use external meta data (recommended)
    * shrink that filesystem first
    * zero out the device (destroy the filesystem)
Operation refused.
 
Command  'drbdmeta 1 v09 /dev/sdb1 internal create-md 1'  terminated with  exit  code 40

解决:

1
# dd if=/dev/zero of=/dev/sdb1 bs=1M count=100


问题3:

启用资源时提示失败,无法创建transport:

1
2
3
4
# drbdadm up r1
r1: Failure: (172) Failed to create transport (drbd_transport_xxx module missing?)
Command  'drbdsetup new-peer r1 1 --_name=node2 --shared-secret=123456 --cram-hmac-alg=sha1 --protocol=C'  terminated with  exit  code 10
drbdadm: new-path r1: skipped due to earlier error

解决:

安装drbd_transport_tcp模块

1
2
3
4
5
6
# cp drbd_transport_tcp.ko /lib/modules/3.10.0-229.el7.x86_64/kernel/lib/
# depmod  
# modprobe drbd_transport_tcp
# lsmod|grep drbd_transport_tcp
drbd_transport_tcp     17731  0 
drbd                  463948  2 drbd_transport_tcp


问题4:

启用资源时提示失败,配置要求无效:

1
2
3
4
5
# drbdadm up r1
r1: Failure: (162) Invalid configuration request
additional info from kernel:
minor exists as different volume
Command  'drbdsetup new-minor r1 1 1'  terminated with  exit  code 10

解决:

安装drbd模块

1
2
3
4
5
6
7
#  cd drbd-9.0.0/drbd
# cp drbd.ko /lib/modules/3.10.0-229.el7.x86_64/kernel/lib/
# depmod
# modprobe drbd
# lsmod |grep drbd
drbd                  463948  0 
libcrc32c              12644  2 xfs,drbd


问题5:

启动资源时提示失败,设备或资源忙

1
2
3
4
5
6
7
8
9
10
# drbdadm up r1
No valid meta data found
Command  'drbdmeta 1 v09 /dev/sdb1 internal apply-al'  terminated with  exit  code 255
# drbdadm create-md all
open ( /dev/sdb1 ) failed: Device or resource busy
Exclusive  open  failed. Do it anyways?
[need to  type  'yes'  to confirm]  yes
# Output might be stale, since minor 1 is attached
Device  '1'  is configured!
Command  'drbdmeta 1 v09 /dev/sdb1 internal create-md 1'  terminated with  exit  code 20

解决:

fdisk /dev/sdb 删除该分区保存,然后再重新新建分区并保存即可


问题6:

提示unknown resource

1
2
3
4
5
# drbdadm primary r1
r1: Failure: (158) Unknown resource
additional info from kernel:
unknown resource
Command  'drbdsetup primary r1'  terminated with  exit  code 10

解决:

1
# /etc/init.d/drbd start


问题7及解决:

1
2
# drbd-overview 
  1:r1 /1   Connec /Connec  Second /Unknow  UpToDa /DUnkno
1
# systemctl stop firewalld
1
2
# drbd-overview 
  1:r1 /1   Connec /StaAlo  Second /Unknow  Outdat /DUnkno
1
# getenforce 0

 

问题8:

node2无法连接node1,显示node1为StandAlone

node1:

1
2
[root@node1 ~] # drbd-overview 
  1:mysqldata /1   Connec /Connec  Second /Unknow  UpToDa /DUnkno

node2:

1
2
[root@node2 ~] # drbd-overview 
  1:mysqldata /1   Connec /StaAlo  Second /Unknow  UpToDa /DUnkno

解决:

1
2
3
4
5
[root@node2 ~] # drbdadm --discard-my-data connect all
[root@node2 ~] # drbd-overview 
  1:mysqldata /1   Connec /Connec  Second /Unknow  UpToDa /DUnkno 
[root@node2 ~] # drbd-overview                    ##从上一状态转为该状态需要些时间
  1:mysqldata /1   Connected(2*) Secondary(2*) UpToDa /UpToDa


问题9及解决:

node1和node2互相认为对方StandAlone

node1:

1
2
3
4
5
[root@node1 ~] # drbd-overview 
  1:mysqldata /1   Connec /StaAlo  Second /Unknow  UpToDa /DUnkno 
[root@node1 ~] # drbdadm --discard-my-data connect all
[root@node1 ~] # drbd-overview 
  1:mysqldata /1   Connec /Connec  Second /Unknow  UpToDa /DUnkno

node2:

1
2
3
4
5
[root@node2 ~] # drbd-overview 
  1:mysqldata /1   Connec /StaAlo  Second /Unknow  UpToDa /DUnkno
[root@node2 ~] # drbdadm connect all
[root@node2 ~] # drbd-overview 
  1:mysqldata /1   Connected(2*) Secondary(2*) UpToDa /UpToDa

本文转自  结束的伤感  51CTO博客,原文链接:http://blog.51cto.com/wangzhijian/1711284

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
从源码安装iozone
从源码安装iozone
296 0
|
NoSQL Linux PHP
【Linux】编译安装phpredis
【Linux】编译安装phpredis
104 0
【Linux】编译安装phpredis
|
关系型数据库 MySQL Linux
|
关系型数据库 MySQL 测试技术