基于块设备在不同的高可用服务器之间同步和镜像数据的软件,块设备可以是磁盘分区,LVM逻辑卷或整块磁盘,解决磁盘单点故障

三种复制协议

(1)协议A:异步复制协议,本地写成功后立即返回,数据放在发送buffer中,可能丢失。

(2)协议B:内存同步(半同步)复制协议。本地写成功并将数据发送到对方后立即返回,如果双机掉电,数据可能丢失。

(3)协议C:同步复制协议,本地和对方服务器磁盘都写成功确认后返回成功,如果单机掉电或单机磁盘损坏,数据不会丢失。

默认使用C协议

DRBD配置(主从)

node1:centos  192.168.166.115

node2:template 192.168.166.194

每个节点需配置好域名解析,添加磁盘,分区即可,也可以配置lvm逻辑卷

1.安装drbd

# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

# yum install -y kmod-drbd84 drbd84-utils

/etc/drbd/global_common.conf    全局配置文件

2.vim /etc/drbd/global_common.conf

global {
usage-count no;
}

common {
protocol C;
startup {
wfc-timeout 15;
degr-wfc-timeout 15;
outdated-wfc-timeout 15;
}

disk {
on-io-error detach;
fencing resource-only;
}

net {
cram-hmac-alg sha1;
shared-secret "123456";
}
syncer {
rate 100M;
}
}

3.vim /etc/drbd.d/xserver.res 

resource xserver {

meta-disk internal;
device /dev/drbd0;
on centos {
address 192.168.166.115:7789;
disk /dev/data/mysql;
}
on template {
address 192.168.166.194:7789;
disk /dev/data/mysql;
}
}

4.将文件拷贝至template节点

5.启用drbd

drbdadm create-md xserver

modprobe drbd

drbdadm up xserver

drbdadm --force primary xserver

6.在template节点也启用drbd

drbdadm create-md xserver

modprobe drbd

drbdadm up xserver

7.格式化设备并挂载

mkfs.xfs /dev/drbd0

mount /dev/drbd0 /mnt

8.在mnt下创建测试文件

9.将主节点切换为备节点

drbdadm secondary xserver

10.将备节点升级为主节点

drbdadm primary xsever

11,挂载查看测试文件

借鉴博客:https://blog.csdn.net/u012865381/article/details/77481026

 

DRBD搭建的更多相关文章

  1. 1 NFS高可用解决方案之DRBD+heartbeat搭建

    preface NFS作为业界常用的共享存储方案,被众多公司采用.我司也不列外,使用NFS作为共享存储,为前端WEB server提供服务,主要存储网页代码以及其他文件. 高可用方案 说道NFS,不得 ...

  2. 3 构建Mysql+heartbeat+DRBD+LVS集群应用系统系列之heartbeat的搭建

    preface 在上节的说了mysql的搭建,这节我们在上节的基础上,继续搭建heartbeat. 安装和配置heartbeat 采用yum安装,dbmaster81和dbbackup136上都安装, ...

  3. 2 构建Mysql+heartbeat+DRBD+LVS集群应用系统系列之MySql的搭建

    preface 上一节我们讲了DRBD的原理,以及如何部署DRBD,那么现在在上一节的基础上部署Mysql 安装并启动Mysql 为了方便,我一般采用yum安装Mysql.命令如下: 在172.16. ...

  4. 1 构建Mysql+heartbeat+DRBD+LVS集群应用系统系列之DRBD的搭建

    preface 近来公司利润上升,购买了10几台服务器,趁此机会,把mysql的主从同步的架构进一步扩展,为了适应日益增长的流量.针对mysql架构的扩展,先是咨询前辈,后和同事探讨,准备采用Mysq ...

  5. DRBD数据镜像与搭建

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

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

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

  7. 基于keepalived搭建MySQL的高可用集群

    MySQL的高可用方案一般有如下几种: keepalived+双主,MHA,MMM,Heartbeat+DRBD,PXC,Galera Cluster 比较常用的是keepalived+双主,MHA和 ...

  8. Heartbeat+DRBD+MySQL高可用方案

    1.方案简介 本方案采用Heartbeat双机热备软件来保证数据库的高稳定性和连续性,数据的一致性由DRBD这个工具来保证.默认情况下只有一台mysql在工作,当主mysql服务器出现问题后,系统将自 ...

  9. 2 NFS高可用解决方案之NFS的搭建

    preface 我们紧接着上一篇博文的基础(drbd+heartbeat的正常工作,http://www.cnblogs.com/liaojiafa/p/6129499.html)来搭建NFS的服务. ...

随机推荐

  1. 【C++】C++未定义行为

    未定义行为:语言标准没有规定,编译器自行决定的行为,在不同的编译器上有时会有不同的结果. 1: int i=0; i=i++; 我们知道i++会返回i之后再自增,那么程序运行完i为多少? 解释一:i= ...

  2. MVC _Ajax的使用【七】

    一.本篇主要写的是在MVC项目中一种ajax的使用方法 1.  首先在控制器中创建两个方法,showCreate()和AddUserInfo() using System; using System. ...

  3. MVC查看详细数据【四】

    一.本篇文章主要讲解点击详细,将主键id的值传递到后端,或者将多个值传递给后台的三种方式,并且通过id的值在数据库中查找到相对应的数据,赋值给viewData视图. 1. 第一种将主键id的值传递给后 ...

  4. 环境准备——之Jdk安装

    JDK(Java Development Kit) 是 Java 语言的软件开发工具包(SDK),没有JDK的话,无法编译Java程序(指java源码.java文件),如果想只运行Java程序(指cl ...

  5. 2018 German Collegiate Programming Contest (GCPC 18)

    2018 German Collegiate Programming Contest (GCPC 18) Attack on Alpha-Zet 建树,求lca 代码: #include <al ...

  6. 『Numpy』内存分析_高级切片和内存数据解析

    在计算机中,没有任何数据类型是固定的,完全取决于如何看待这片数据的内存区域. 在numpy.ndarray.view中,提供对内存区域不同的切割方式,来完成数据类型的转换,而无须要对数据进行额外的co ...

  7. 『TensorFlow』卷积层、池化层详解

    一.前向计算和反向传播数学过程讲解

  8. oracle连接数据库和连接表的操作

    1.连接测试是否连接oracle成功 (1).tnsnames.ora文件配置 oracle65= (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCO ...

  9. js回顾

    回顾   js 组成部分       ECMAScript       BOM       DOM                        变量声明~~  var  变量名 =  初始化值:   ...

  10. ajax 请求问题

    1.ajax 请求锁定页面加载 function agree(id,index){ var yj=$("#taskTableId tr[data-index='"+index+&q ...