跨主机的块设备镜像系统,工作在内核中完成
drbd工作原理:客户端发起一个写操作的系统调用给文件系统,写请求再到达内核缓冲区,最到达DRBD模块,此时drbd会复制写入磁盘的数据,且进行两步操作,第一步操作是调用磁盘驱动,将数据写入本地的磁盘设备,第二部是通过网卡设备将数据发送给备用节点,备用节点的网卡接受到数据之后,将数据再发送给drbd模块,DRBD模块再调用磁盘驱动将数据写入磁盘。这就实现了数据写入的高可用.
高可用集群都需要时间同步、主机名相互通信、ssh免密码登入(node1、node2两个节点已经ok)

  • 安装DRBD(在node1,node2上都需要安装)
1:配置yum仓库
vi /etc/yum.repos.d/drbd.repo
[network_drbd]
name=drbd
baseurl=http://elrepo.org/linux/elrepo/el7/x86_64/
gpgcheck=0
enabled=1
 
2:安装drbd内核模块、DRBD管理工具
yum install -y drbd84-utils kmod-drbd84
 
3:给node1、node2添加一个虚拟磁盘,且分区5G
[root@node2 ~]# fdisk -l
 
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 41945087 20971520 83 Linux
 
4:编辑/etc/drbd.d/global_common.conf文件,修改如下配置即可
global {
# 指定不被DRBD官方纳入调研对象
usage-count no;
# 指定udev策略
udev-always-use-vnr; # treat implicit the same as explicit volumes
}
common {
handlers {
}
startup {
}
options {
}
disk {
# 指定磁盘io出现错误的时候,拆除磁盘
on-io-error detach;
}
net {
# 指定数据在drbd节点通信时,使用的加密算法
cram-hmac-alg "sha1";
# 指定密钥
shared-secret "UzcHlMYSw5o";
}
# 指定drbd节点通信时,所使用的带宽
syncer {
rate 1000M;
}
}
 
5:编辑/etc/drbd.d/mariadb.res,创建drbd的工作方式,已经使用的资源
resource mysql {
 
# 指定drbd存储设备名称
device /dev/drbd0;
 
# 指定实际的drbd使用的磁盘分区
disk /dev/sdb1;
 
# 指定元数据存放值磁盘上
meta-disk internal;
 
# 指定主节点
on node1 {
 
address 192.168.43.10:7789;
 
}
 
# 指定从节点
on node2 {
 
address 192.168.43.11:7789;
 
}
}
 
6:将node1的配置文件拷贝一份到node2
scp -pr /etc/drbd.d/global_common.conf /etc/drbd.d/mariadb.res node2:/etc/drbd.d/
 
7:在node1和node2上分别执行资源初始化(如果数据资源初始化不成功,可以尝试重启系统)
drbdadm create-md mysql
 
8:在node1和node2上启动DRBD
systemctl start drbd.service
 
9:查看节点同步情况
drbd-overview
 
10:让node1成为主节点 ,开始同步
drbdadm primary --force mysql
 
11:再次查看node1和node2节点数据同步情况
drbd-overview
 
12:等待同步完成之后,可以在node1节点直接在/dev/drbd0上创建文件系统,且挂载
mkfs -t ext4 /dev/drbd0
mount /dev/drbd0 /mnt
 
13:向/mnt目录拷贝文件,卸载挂载点,让后将node1切换为从节点
cp /etc/fstab /mnt
umount /dev/drbd0
drbdadm secondary mysql
 
14:在node2上执行命令,让node2为主, 挂载/mnt,查看是否在/mnt目录下存在/etc/fstab
drbdadm primary mysql
mount /dev/drbd0 /mnt
  • 高可用Mariadb + DRBD
需求分析:配置一个Mariadb的高可用集群,且Mariadb的数据目录由DRBD存储提供
 
1:分别在node1、node2中停止DRBD服务
systemctl stop drbd.service
 
2:如果想将drbd作为集群中的资源,那么drbd将不能开机自启,分别在node1、node2中让drbd禁止开机自启,
systemctl disable drbd.service
 
3:查看资源代理,这里的linbit为drbd代理的提供者
crm(live)ra# list ocf linbit
drbd
 
4:查看ocf中drbd代理的使用帮助
crm(live)ra# info ocf:drbd
 
5:定义drbd在集群中的组资源
primitive storage ocf:drbd params drbd_resource=mysql op monitor role=Master interval=15s timeout=20s op monitor role=Slave interval=10s timeout=20s
 
6:将drbd资源设置为主从模式
ms drbd_storage storage meta clone-max=2 clone-node-max=1 master-max=1 master-node-max=1

DRBD 实验的更多相关文章

  1. 解决ubuntu的chkconfig[/sbin/insserv 无法找到路径问题]

    http://www.cnblogs.com/lost-1987/archive/2012/10/17/2727285.html 今天在虚拟机里做DRBD实验,使用chkconfig管理服务的时候,出 ...

  2. 基于corosync+pacemaker+drbd+LNMP做web服务器的高可用集群

    实验系统:CentOS 6.6_x86_64 实验前提: 1)提前准备好编译环境,防火墙和selinux都关闭: 2)本配置共有两个测试节点,分别coro1和coro2,对应的IP地址分别为192.1 ...

  3. Heartbeat+DRBD+NFS 构建高可用的文件系统

    1.实验拓扑图 2.修改主机名 1 2 3 vim /etc/sysconfig/network vim /etc/hosts drbd1.free.com     drbd2.free.com 3. ...

  4. 两台linux利用heartbeat+drbd 完美实现双机热备

    一直想做基于linux的双机热备,一直没有时间和机会.一直以为只要做双机热备的实验就必须两台机器外接一个存储.甚至一个月以前在学习keepalived的时候还在琢磨keepalvied去掉哪些条件可以 ...

  5. DRBD(数据镜像)+hearbeat(自动切换)

    DRBD 数据镜像软件 一.DRBD介绍 1.1.数据镜像软件DRBD介绍 分布式块设备复制(Distributed Relicated Block Deivce,DRBD),是一种基于软件.基于网络 ...

  6. drbd(一):简介和安装

    本文目录:1.drbd简介2.drbd工作原理和术语说明 2.1 drbd工作原理 2.2 drbd复制协议模型 2.3 drbd设备的概念 2.4 drbd资源角色 2.5 drbd工作模式 2.6 ...

  7. drbd(二):配置和使用

    本文目录:1.drbd配置文件2.创建metadata区并计算metadata区的大小3.启动drbd4.实现drbd主从同步5.数据同步和主从角色切换6.drbd脑裂后的解决办法7.drbd多卷组配 ...

  8. DRBD数据镜像与搭建

    一.数据安全工具DRDB 1. 数据镜像软件DRDB介绍 分布式块设备复制,是基于软件.基于网络的块复制存储解决方案 作用:用于服务器之间的磁盘.分区.逻辑卷等进行数据镜像. 例如:当用户将数据写入本 ...

  9. 配置:heartbeat+nginx+mysqld+drbd高可用笔记(OK)

    参考资料:http://www.centoscn.com/CentosServer/cluster/2015/0605/5604.html   背景需求: 使用heartbeat来做HA高可用,并且把 ...

随机推荐

  1. docker save和docker export的区别

    docker save保存的是镜像(image),docker export保存的是容器(container): docker load用来载入镜像包,docker import用来载入容器包,但两者 ...

  2. 《Java程序设计》第二学习总结

    <Java程序设计>第二学习总结 教材学习内容总结 类型 byte(字节) shot(短整型) int(整型) long(长整型) float(浮点型) double(双精度) char( ...

  3. 2017-2018-1 20155336 《信息安全系统设计基础》加分作业:实现mypwd

    2017-2018-1 20155336 <信息安全系统设计基础>加分作业:实现mypwd 什么是PWD? 用man pwd查看: 用于打印当前工作目录的工作路径 1.命令格式:pwd[选 ...

  4. 2_C语言中的数据类型 (三)原码、反码、补码

    1.1       原码 将最高位做为符号位(0代表正,1代表负),其余各位代表数值本身的绝对值 +7的原码是00000111 -7的原码是10000111 +0的原码是00000000 -0的原码是 ...

  5. 【正经向】NOIP2017烤后总结

    [正经向]NOIP2017烤后总结 Warning: 合法的评论(举例): 博主辣么juruo还来参加NOIP,不要脸 不合法的评论(举例): %%%%%博主太强了,我菜爆了 博主将删除不合法评论,& ...

  6. Spring学习(十八)----- Spring AOP+AspectJ注解实例

    我们将向你展示如何将AspectJ注解集成到Spring AOP框架.在这个Spring AOP+ AspectJ 示例中,让您轻松实现拦截方法. 常见AspectJ的注解: @Before – 方法 ...

  7. sqlite导入mysql

    在线阅读地址 http://wenku.baidu.com/view/cc6821a8482fb4daa58d4bb8

  8. Halcon四 双目视觉的标定

    原文作者写的一系列博客,挺不错的学习halcon:http://blog.sina.com.cn/s/blog_442bfe0e0100yjtn.html 1.get_image_pointer1(I ...

  9. Windows下的ROUGE文本测评工具基本安装

    需要的安装包: rouge1.5.5:https://pan.baidu.com/s/1B7-LYn1lZKC8f51yXxNK9w Strawberry Perl :http://strawberr ...

  10. shutil模块详解

    python常用模块目录 注意:shutil经常遇到路径需要转义一下才能执行,在字符串前面加 r转义  r" " 1.shutil常用方法 import shutil# 删除目录 ...