Centos 6.1 DRBD配置与使用

简介:

原文:http://blog.chinaunix.net/uid-26719405-id-3904528.html

DRBD(Distributed Replicated Block Device),分布式复制块设备,是一种通过TCP/IP网络实现块设备数据实时镜像的方案。利用这种方案,单一主节点模式(single primary mode)双机系统能够实时地将业务数据保存在主备节点的磁盘中,正常情况下两个节点的数据是一模一样的。


drbd的结构示意图及工作原理

002815598.gif

   从上图我们可以 清晰的看出drbd是以主从(Primary/Secondary)方式工作的,这点原理与mysql的主从复制的架构有些相似。主节点上的drbd提升为Primary并负责接收写入数据,当数据到达drbd模块时,一份继续往下走写入到本地磁盘实现数据的持久化,同时并将接收到的要写入的数据发送一分到本地的drbd设备上通过tcp传到另外一台主机的drbd设备上(Secondary node),另一台主机上的对应的drbd设备再将接收到的数据存入到自己的磁盘当中。这里与mysql的基于通过二进制日志完成数据的复制的确很相似,但是也有一些不同之处。比如:mysql的从节点不能写但是可以读,但是drbd的从节点是不能读、不能挂载。

   因此,drbd对同一设备块每次只允许对主节点进行读、写操作,从节点不能写也不能读。这样感觉是不是对主机有资源浪费,的确HA架构中为了提供冗余能力是有资源浪费,但是你可以对上图的两台主机建立两个drbd资源并互为主从,这样两台机器都能利用起来,但是配置起来就复杂了。但是话又说回来,用drbd作为廉价的共享存储设备,要节约很多成本,因为价格要比专用的存储网络便宜很多,其性能与稳定性方面也还不错。


drbd的复制模式(协议)

   A协议:

       异步复制协议。一旦本地磁盘写入已经完成,数据包已在发送队列中,则写被认为是完成的。在一个节点发生故障时,可能发生数据丢失,因为被写入到远程节点上的数据可能仍在发送队列。尽管,在故障转移节点上的数据是一致的,但没有及时更新。因此,这种模式效率最高,但是数据不安全,存在数据丢失。

   B协议:

       内存同步(半同步)复制协议。一旦本地磁盘写入已完成且复制数据包达到了对等节点则认为写在主节点上被认为是完成的。数据丢失可能发生在参加的两个节点同时故障的情况下,因为在传输中的数据可能不会被提交到磁盘

   C协议:

       同步复制协议。只有在本地和远程节点的磁盘已经确认了写操作完成,写才被认为完成。没有数据丢失,所以这是一个群集节点的流行模式,但I/O吞吐量依赖于网络带宽。因此,这种模式数据相对安全,但是效率比较低。


一.环境

系统:Centos6.1 x86

DRBD: 8.3.9编译安装 (http://www.drbd.org)

Hostname www.cheng.com

Ip: 192.168.0.11

Hostname : www.bao.com

Ip : 192.168.0.22

二.编译安装drbd     (两台机器做同样的操作)

安装依赖软件包 yum install kernel-devel -y

Wget  http://oss.linbit.com/drbd/8.3/drbd-8.3.9.tar.gz

tar -zxvf  drbd-8.3.9.tar.gz

cd drbd-8.3.9

./configure --prefix=/ --with-km

make  && make install

chkconfig  --add drbd

Chkconfig drbd on

检查是否安装成功: drbdadm

是否可以看到版本信息: cat /proc/drbd

重启后再次检查 : cat /proc/drbd

三.配置服务器中的hostname hosts

[root@www /]#  vim /etc/hosts

添加       192.168.0.11 www.cheng.com

          192.168.0.11 www.bao.com

三.在两个服务器上单独分区一个分区或者添加一个空的硬盘  (两台机器做同样的操作)

/dev/sdb5          

四.配置drbd

注意,新版本的DRBD的配置文件已拆分成多个,全部放在/etc/drbd.d/目录,具体可参考/etc/drbd.conf中的配置.
如果开了iptables防火墙,需要打开对应的7789端口。

在主节点配置

[root@www /]#  vim  /etc/drbd.d/dbdata.res

resource dbdata {

 on www.cheng.com{

   device    /dev/drbd1;

   disk      /dev/sdb5;

   address   192.168.0.11:7789;

   meta-disk internal;

 }

 on www.bao.com{

   device    /dev/drbd1;

   disk      /dev/sdb5;

   address   192.168.0.22:7789;

   meta-disk internal;

 }

}

创建drbd设备
[root@www /]#  drbdadm create-md all
[root@www /]#  /etc/init.d/drbd restart

查看是否有相应的块设备:
[root@www /]# ls -l /dev/drbd1
[root@www /]#  cat /proc/drbd

现在可以查看DRBD的状态,然后在www.cheng.com主机上执行:
[root@www /]#  cat /proc/drbd

26719405_137932055370o0.png

五.使用drdb

数据同步完成后在主机上

[root@www /]#  drbdadm -- --overwrite-data-of-peer primary dbdata

[root@www /]#  mkfs.ext3  /dev/drbd1   #格式化

[root@www /]#  mount  /dev/drbd1 /mnt/

现在可以把主机上的DRBD设备挂载到一个目录上进行使用.备机的DRBD设备无法被挂载,因为它是,用来接收主机数据的,DRBD负责操作.

六.Drbd主备机切换

有时,你需要将DRBD的主备机互换一下.可以执行下面的操作
在主机上,先要卸载掉DRBD设备.

192.168.0.11 进行降级操作

[root@www /]#  umount  /mnt     #必须先卸载

[root@www /]#  drbdadm  secondary dbdata    #切换成备机


26719405_1379320595Uh4B.png

在备机器上进行升级操作

[root@www /]#  drbdadm   primary  dbdata #切换成主机

26719405_1379320609YAV7.png

成为了”主机”.你可以把它的/dev/drbd1进行挂载和使用了.同样,数据会被同步到
192.168.0.22上进行使用了

本文转自大角牛博客51CTO博客,原文链接http://blog.51cto.com/jingshengsun888/1331891如需转载请自行联系原作者


运维的戏子

相关文章
|
9天前
|
关系型数据库 MySQL Linux
CentOS 7系统下详细安装MySQL 5.7的步骤:包括密码配置、字符集配置、远程连接配置
以上就是在CentOS 7系统下安装MySQL 5.7的详细步骤。希望这个指南能帮助你顺利完成安装。
157 26
|
19天前
|
安全 Linux 网络安全
在Linux(CentOS和AWS)上安装更新的git2的方法并配置github-ssh
经过以上这些步骤,你现在就能在GitHub上顺利往返,如同海洋中的航海者自由驰骋。欢迎你加入码农的世界,享受这编程的乐趣吧!
49 10
|
6月前
|
Linux 网络安全 Apache
CentOS 7.2配置Apache服务httpd(上)
CentOS 7.2配置Apache服务httpd(上)
470 1
|
8月前
|
消息中间件 Linux API
centos7 安装rabbitmq自定义版本及配置
centos7 安装rabbitmq自定义版本及配置
|
3月前
|
Java
CentOS7.8配置Adoptium-Java17运行环境
本指南介绍如何设置清华镜像源并安装 Temurin-17-JRE 运行环境。首先,编辑 `/etc/yum.repos.d/adoptium.repo` 文件,配置清华镜像源。接着,使用 `yum install -y temurin-17-jre` 命令安装 Temurin-17-JRE,并通过 `java --version` 验证安装成功。相关配置和操作界面截图附后。
111 8
|
3月前
|
网络协议 Java 应用服务中间件
centos7环境下tomcat8的安装与配置
本文介绍了在Linux环境下安装和配置Tomcat 8的详细步骤。首先,通过无网络条件下的文件交互软件(如Xftp 6或MobaXterm)下载并解压Tomcat安装包至指定路径,启动Tomcat服务并测试访问。接着,修改Tomcat端口号以避免冲突,并部署Java Web应用项目至Tomcat服务器。最后,调整Linux防火墙规则,确保外部可以正常访问部署的应用。关键步骤包括关闭或配置防火墙、添加必要的端口规则,确保Tomcat服务稳定运行。
|
5月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
507 2
|
6月前
|
Java jenkins 持续交付
Centos7下docker的jenkins下载并配置jdk与maven
通过上述步骤,您将成功在CentOS 7上的Docker容器中部署了Jenkins,并配置好了JDK与Maven,为持续集成和自动化构建打下了坚实基础。
341 1
|
6月前
|
存储 监控 Linux
在 CentOS 7 中如何对新硬盘进行分区、格式化、挂载及配置最佳实践
本文详细介绍了在 CentOS 7 中如何对新硬盘进行分区、格式化、挂载及配置最佳实践,包括使用 `fdisk` 创建分区、`mkfs` 格式化分区、创建挂载点、编辑 `/etc/fstab` 实现永久挂载等步骤,旨在有效管理服务器磁盘空间,提高系统稳定性和可维护性。
1161 1
|
6月前
|
Linux PHP Apache
CentOS 7.2配置Apache服务httpd(下)
CentOS 7.2配置Apache服务httpd(下)
84 1