DRBD 详解

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

[[email protected] ~]# 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

时间: 2024-10-16 04:04:02

DRBD 详解的相关文章

drbd详解

目录 一.DRBD简介 二.DRBD的特性 三.DRBD的用户空间管理工具 四.DRBD的模式 五.DRBD的同步协议 六.DRBD的资源 七.DRBD的配置文件详解 八.实战,使用drbd+mysql+Corosync来实现mysql的高可用集群解决方案 一.DRBD简介DRBD:叫做分布式复制块设备,这是一种基于软件,无共享,复制的解决方案.在服务器之间的块设备(包括硬盘.分区.逻辑卷)进行镜像.也就是说当某一个应用程序完成写操作后,它提交的数据不仅仅会保存在本地块设备上,DRBD也会将这份

linux下安装drbd详解

关于drbd理论方面的知识本文中不做介绍,本文章主要讲述如何搭建drbd. 一.系统环境   系统平台: Centos6.3(内核2.6.32-431.29.2.el6.x86_64) 节点一主机名: Cenos-HA1     IP:192.168.1.202 节点一主机名: Cenos-HA2     IP:192.168.1.202  DRBD版本:DRBD-8.4.3 二.安装   1.准备 (1).关闭iptables和SELINUX,避免安装过程中报错. 节点1和节点2 #/etc/

linux下高可用集群之DRBD详解

1.DRBD:Disrtributed Replicated Block Device,分布式复制块设备 DRBD:主要是在不同服务器之间硬盘或分区同步数据,通过网络,按位同步,即镜像! Raid1主要是将同一服务器硬盘或分区同步数据,通过主板总线,按位同步.即镜像! DRBD区别于DAS,NAS,SAN,也区别于Raid1 DRBD是primary/secondary,主从设备,主从角色可以互换 primary:可读写执行操作,但secondary不能挂载文件系统 DRBD也是Dual pri

MySQL 5.5 主从复制异步、半同步以及注意事项详解

大纲 一.前言 二.Mysql 基础知识 三.Mysql 复制(Replication) 四.Mysql 复制(Replication)类型 五.Mysql 主从复制基本步骤 六.Mysql 主从复制(异步) 七.Mysql 主从复制(半同步) 八.Mysql 复制工具 九.Mysql 复制注意事项 十.Mysql 复制过滤 一.前言 从这一篇博客开始我们就来学习mysql的高级课程,在前面的几篇博客我们讲解了mysql基础知识.mysql日志类型.mysql配置文件.mysql备份策略,这一篇

Spring事务管理(详解+实例)

写这篇博客之前我首先读了<Spring in action>,之后在网上看了一些关于Spring事务管理的文章,感觉都没有讲全,这里就将书上的和网上关于事务的知识总结一下,参考的文章如下: Spring事务机制详解 Spring事务配置的五种方式 Spring中的事务管理实例详解 1 初步理解 理解事务之前,先讲一个你日常生活中最常干的事:取钱. 比如你去ATM机取1000块钱,大体有两个步骤:首先输入密码金额,银行卡扣掉1000元钱:然后ATM出1000元钱.这两个步骤必须是要么都执行要么都

转载:DenseNet算法详解

原文连接:http://blog.csdn.net/u014380165/article/details/75142664 参考连接:http://blog.csdn.net/u012938704/article/details/53468483 本文这里仅当学习笔记使用,具体细节建议前往原文细度. 论文:Densely Connected Convolutional Networks 论文链接:https://arxiv.org/pdf/1608.06993.pdf 代码的github链接:h

MariaDB(MySQL)创建、删除、选择及数据类型使用详解

一.MariaDB简介(MySQL简介略过) MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品.在存储引擎方面,使用XtraDB(英语:XtraDB)来代替MySQL的InnoDB. MariaDB由MySQL的创始人Michael Widenius(英语:Michael Widenius)主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL A

HttpServletResponse和HttpServletRequest详解

HttpServletResponse,HttpServletRequest详解 1.相关的接口 HttpServletRequest HttpServletRequest接口最常用的方法就是获得请求中的参数,这些参数一般是客户端表单中的数据.同时,HttpServletRequest接口可以获取由客户端传送的名称,也可以获取产生请求并且接收请求的服务器端主机名及IP地址,还可以获取客户端正在使用的通信协议等信息.下表是接口HttpServletRequest的常用方法. 说明:HttpServ

POSIX 线程详解(经典必看)

总共三部分: 第一部分:POSIX 线程详解                                   Daniel Robbins ([email protected]), 总裁/CEO, Gentoo Technologies, Inc.  2000 年 7 月 01 日 第二部分:通用线程:POSIX 线程详解,第 2部分       Daniel Robbins ([email protected]), 总裁/CEO, Gentoo Technologies, Inc.  20