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如需转载请自行联系原作者


运维的戏子

相关文章
|
2月前
|
Linux 网络安全 Apache
CentOS 7.2配置Apache服务httpd(上)
CentOS 7.2配置Apache服务httpd(上)
300 1
|
4月前
|
消息中间件 Linux API
centos7 安装rabbitmq自定义版本及配置
centos7 安装rabbitmq自定义版本及配置
|
1月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
145 2
|
2月前
|
Java jenkins 持续交付
Centos7下docker的jenkins下载并配置jdk与maven
通过上述步骤,您将成功在CentOS 7上的Docker容器中部署了Jenkins,并配置好了JDK与Maven,为持续集成和自动化构建打下了坚实基础。
136 1
|
2月前
|
存储 监控 Linux
在 CentOS 7 中如何对新硬盘进行分区、格式化、挂载及配置最佳实践
本文详细介绍了在 CentOS 7 中如何对新硬盘进行分区、格式化、挂载及配置最佳实践,包括使用 `fdisk` 创建分区、`mkfs` 格式化分区、创建挂载点、编辑 `/etc/fstab` 实现永久挂载等步骤,旨在有效管理服务器磁盘空间,提高系统稳定性和可维护性。
294 1
|
2月前
|
Linux PHP Apache
CentOS 7.2配置Apache服务httpd(下)
CentOS 7.2配置Apache服务httpd(下)
58 1
|
4月前
|
弹性计算 关系型数据库 MySQL
centos7 mysql安装及配置
本文详细介绍了在阿里云服务器ECS上通过yum源安装MySQL 8.0.12的过程,包括更新yum源、下载并安装MySQL源、解决安装过程中可能遇到的问题等步骤。此外,还介绍了如何启动MySQL服务、设置开机自启、配置登录密码、添加远程登录用户以及处理远程连接异常等问题。适合初学者参考,帮助快速搭建MySQL环境。
557 8
centos7 mysql安装及配置
|
3月前
|
Linux
CentOS 7.x时间同步服务chrony配置详解
文章详细介绍了在CentOS 7.x系统中如何安装和配置chrony服务,以及它与ntpd服务的对比,强调了chrony在时间同步方面的高效性和准确性。
258 2
|
2月前
|
安全 Linux 数据库连接
CentOS 7环境下DM8数据库的安装与配置
【10月更文挑战第16天】本文介绍了在 CentOS 7 环境下安装与配置达梦数据库(DM8)的详细步骤,包括安装前准备、创建安装用户、上传安装文件、解压并运行安装程序、初始化数据库实例、配置环境变量、启动数据库服务、配置数据库连接和参数、备份与恢复、以及安装后的安全设置、性能优化和定期维护等内容。通过这些步骤,可以顺利完成 DM8 的安装与配置。
350 0
|
2月前
|
Linux
CentOS-Stream-9配置chfs
通过上述步骤,您就可以在CentOS Stream 9上配置并运行CHFS,为用户提供基于HTTP的文件分享服务。请注意,实际操作时应根据CHFS的具体版本和文档进行适当调整。
65 0