用drbd实现node间数据同步复制及脑裂修复 - 面向对象网,存储技术,nosql,学习,对象 - 面向对象技术开发

面向对象技术开发

会员投稿 投稿指南 站长资讯通告:
您的位置: 首页 > 计算机相关技术 > 存储技术 > 正文

用drbd实现node间数据同步复制及脑裂修复

来源: www.bianceng.cn 阅读:

Distributed Replicated Block Device(DRBD)是一个用软件实现的、无共享的、服务器之间镜像块设备内容的存储复制解决方案。

数据镜像:实时、透明、同步(所有服务器都成功后返回)、异步(本地服务器成功后返回)

DRBD的核心功能通过Linux的内核实现,最接近系统的IO栈,但它不能神奇地添加上层的功能比如检测到EXT3文件系统的崩溃。

DRBD的位置处于文件系统以下,比文件系统更加靠近操作系统内核及IO栈。

工具:

drbdadm:高级管理工具,管理/etc/drbd.conf,向drbdsetup和drbdmeta发送指令,

drbdsetup:配置装载进kernel的DRBD模块,平时很少直接用

drbdmeta:管理META数据结构,平时很少直接用。

在DRBD中,资源是特指某复制的存储设备的所有方面。包括资源名称、DRBD设备(/dev/drbdm,这里m是设备最小号,最大号可到147)、磁盘配置(使本地数据可以为DRBD所用)、网络配置(与对方通信)

每个资源有个角色,是Primary或Secondary,下面简称“主”和“备”

主角色的DRBD设备可以不受限制的读和写,比如创建和映射文件系统、对于块设备的raw或直接IO访问。

备角色的DRBD设备接受来自对方的所有修改,但是不能被应用程序读写,甚至只读也不行。

角色可以改变。

DRBD 是由内核模块和相关脚本而构成,用以构建高可用性的集群。其实现方式是通过网络来镜像整个设备。您可以把它看作是一种网络RAID;Drbd 负责接收数据,把数据写到本地磁盘,然后发送给另一个主机。另一个主机再将数据存到自己的磁盘中。

原理:

每个设备(drbd

提供了不止一个设备)都有一个状态,可能是‘主’状态或‘辅助’状态。在带有主要设备的节点上,应用程序应能运行和访问设  

备(/dev/nbX)。每次写入都会发往本地低层设备和带有‘辅助’状态设备的节点中。次要设备只能简单地把数据写入它的低层块设备上。

   读取数据通常在本地进行。

       如果主节点发生故障,心跳将会把辅助设备转换到主状态,并启动其上的应用程序。(如果您将它和无日志FS 一起使用,则需要运行fsck)。

   如果发生故障的节点恢复工作,它就会成为新的辅助节点,而且必须使自己的内容与主节点的内容保持同步。当然,这些操作不会干扰到后台的服务。

环境:centos6.0  修改hosts

        node1:192.168.182.128

       node2:192.168.182.131

每个node都一个空白的分区(不创建任何分区)或新增的disk;本文是新增的一个disk(8G)

1、yum -y install gcc kernel-devel kernel-headers flex

\

Tags:
相关文章列表: