跨主机的块设备镜像系统,工作在内核中完成
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. WCF知识点记录

    1:WCF有两种序列化器,XmlSerializer和DataContractSerializer,XmlSerializer能够直接对数据对象进行序列化输出,而DataContractSeriali ...

  2. [转载]C#委托与事件--简单笔记

    原文地址:https://www.cnblogs.com/joeymary/p/8486358.html 委托 简单记录点东西 适合似懂非懂的朋友看看委托类型用来定义和响应应用程序中的回调.借此可以设 ...

  3. JavaWeb基础—MySQL入门小结

    一.数据库概述 RDBMS:关系型数据库管理系统 == 管理员(manager)+仓库(database) 常见数据库:  Oracle(神喻):甲骨文 MySQL: 归于甲骨文旗下(高版本系统已经开 ...

  4. Flash Player调试器版本的解决办法Flash Builder 找不到所需的Adobe

    Flash Player调试器版本的解决办法Flash Builder 找不到所需的Adobe   Flash Builder在Debug时出现的问题:Flash Builder 找不到所需的Adob ...

  5. 20155307 2016-2017-2 《Java程序设计》第9周学习总结

    20155307 2016-2017-2 <Java程序设计>第9周学习总结 教材学习内容总结 JDBC(Java DataBase Connectivity)即java数据库连接,是一种 ...

  6. linux 服务启动

    在linux上部署java服务的时候,发现服务启动正常,但是[ps -ef|grep java].[jps]看不到服务的运行. 查资料发现,[Java -jar Test.jar &      ...

  7. 【LG3240】[HNOI2015]实验比较

    题面 洛谷 题解 30pts 爆搜即可. 100pts 题意描述里有一句:"对每张图片\(i\),小\(D\)都最多只记住了某一张质量不比\(i\)差的另一张图片\(K_i\)." ...

  8. MySQL数据库常用操作语法

    1. 数据库初始化配置 1.1. 创建数据库 create database apps character set utf8 collate utf8_bin;创建数据库”app“,指定编码为utf8 ...

  9. Rxjava - 操作符,线程操作的简单使用

    目录 创建操作符 10种常用的操作符定义 下面做几个操作符的demo演示 create from repeat defer interval Scheduler 什么是Scheduler? 如何使用S ...

  10. Makefile详解

    原文链接:https://blog.csdn.net/qq_38646470/article/details/79917494 专栏链接:https://blog.csdn.net/column/de ...