- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章CentOS6.5下drbd的安装与配置详解由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
1、drbd概述 。
Distributed Replicated Block Device(DRBD)是一种基于软件的,无共享,复制的存储解决方案,在服务器之间的对块设备(硬盘,分区,逻辑卷等)进行镜像.
DRBD工作在内核当中的,类似于一种驱动模块。DRBD工作的位置在文件系统的buffer cache和磁盘调度器之间,通过tcp/ip发给另外一台主机到对方的tcp/ip最终发送给对方的drbd,再由对方的drbd存储在本地对应磁盘 上,类似于一个网络RAID-1功能.
在高可用(HA)中使用DRBD功能,可以代替使用一个共享盘阵。本地(主节点)与远程主机(备节点)的数据可以保 证实时同步。当本地系统出现故障时,远程主机上还会保留有一份相同的数据,可以继续使用.
DRBD的架构如下图 。
底层设备支持 。
DRBD需要构建在底层设备之上,然后构建出一个块设备出来。对于用户来说,一个DRBD设备,就像是一块物理的磁盘,可以在上面内创建文件系统。DRBD所支持的底层设备有以下这些类:
1、一个磁盘,或者是磁盘的某一个分区; 。
2、一个soft raid 设备; 。
3、一个LVM的逻辑卷; 。
4、一个EVMS(Enterprise Volume Management System,企业卷管理系统)的卷; 。
5、其他任何的块设备.
DRBD复制模式 。
协议A:
异步复制协议。一旦本地磁盘写入已经完成,数据包已在发送队列中,则写被认为是完成的。在一个节点发生故障时,可能发生数据丢失,因为被写入到远程节点上的数据可能仍在发送队列。尽管,在故障转移节点上的数据是一致的,但没有及时更新。这通常是用于地理上分开的节点.
协议B:
内存同步(半同步)复制协议。一旦本地磁盘写入已完成且复制数据包达到了对等节点则认为写在主节点上被认为是完成的。数据丢失可能发生在参加的两个节点同时故障的情况下,因为在传输中的数据可能不会被提交到磁盘.
协议C:
同步复制协议。只有在本地和远程节点的磁盘已经确认了写操作完成,写才被认为完成。没有任何数据丢失,所以这是一个群集节点的流行模式,但I / O吞吐量依赖于网络带宽.
一般使用协议C,但选择C协议将影响流量,从而影响网络时延。为了数据可靠性,我们在生产环境使用时须慎重选项使用哪一种协议.
2、drbd的安装 。
1、准备工作 。
1)本配置共有两个测试节点,分别node1.comratings.com和node2.comratings.com,相的IP地址分别为10.0.0.16和10.0.0.17,且解析写到对应的/etc/hosts下面; 。
2)node1和node2两个节点上各提供了一个大小相同的分区作为drbd设备;我们这里为在两个节点上均为/dev/sda5,大小为512M; 。
3)系统为CentOS 6.5,x86_64平台.
2、软件包介绍 。
drbd共有两部分组成:内核模块和用户空间的管理工具。其中drbd内核模块代码已经整合进Linux内核2.6.33以后的版本中,因此,如果您的内核版本高于此版本的话,你只需要安装管理工具即可;否则,您需要同时安装内核模块和管理工具两个软件包,并且此两者的版本号一定要保持对应.
目前适用CentOS 5的drbd版本主要有8.0、8.2、8.3三个版本,其对应的rpm包的名字分别为drbd, drbd82和drbd83,对应的内核模块的名字分别为kmod-drbd, kmod-drbd82和kmod-drbd83。而适用于CentOS 6的版本为8.4,其对应的rpm包为drbd和drbd-kmdl,但在实际选用时,要切记两点:drbd和drbd-kmdl的版本要对应;另一个是drbd-kmdl的版本要与当前系统的内容版本相对应。各版本的功能和配置等略有差异;我们实验所用的平台为x86_64且系统为CentOS 6.4,因此需要同时安装内核模块和管理工具。我们这里选用最新的8.4的版本(drbd-8.4.3-33.el6.x86_64.rpm和drbd-kmdl-2.6.32-431.el6-8.4.3-33.el6.x86_64.rpm),下载地址为ftp://rpmfind.net/linux/atrpms/,请按照需要下载.
实际使用中,您需要根据自己的系统平台等下载符合您需要的软件包版本,这里不提供各版本的下载地址.
3、软件包安装 。
下载完成后直接安装即可:
# rpm -ivh drbd-8.4.3-33.el6.x86_64.rpm drbd-kmdl-2.6.32-431.el6-8.4.3-33.el6.x86_64.rpm 。
3、配置drbd 。
1、配置文件介绍 。
drbd的主配置文件为/etc/drbd.conf;为了管理的便捷性,目前通常会将些配置文件分成多个部分,且都保存至/etc/drbd.d目录中,主配置文件中仅使用"include"指令将这些配置文件片断整合起来。通常,/etc/drbd.d目录中的配置文件为global_common.conf和所有以.res结尾的文件。其中global_common.conf中主要定义global段和common段,而每一个.res的文件用于定义一个资源.
在配置文件中,global段仅能出现一次,且如果所有的配置信息都保存至同一个配置文件中而不分开为多个文件的话,global段必须位于配置文件的最开始处。目前global段中可以定义的参数仅有minor-count, dialog-refresh, disable-ip-verification和usage-count.
common段则用于定义被每一个资源默认继承的参数,可以在资源定义中使用的参数都可以在common段中定义。实际应用中,common段并非必须,但建议将多个资源共享的参数定义为common段中的参数以降低配置文件的复杂度.
resource段则用于定义drbd资源,每个资源通常定义在一个单独的位于/etc/drbd.d目录中的以.res结尾的文件中。资源在定义时必须为其命名,名字可以由非空白的ASCII字符组成。每一个资源段的定义中至少要包含两个host子段,以定义此资源关联至的节点,其它参数均可以从common段或drbd的默认中进行继承而无须定义.
以下是我的配置事例:
#cat /etc/drbd.d/global-common.conf 。
4、drbd启动和查看 。
1、初始化资源 。
在Node1和Node2上分别执行:
# drbdadm create-md web 。
2、启动服务 。
在Node1和Node2上分别执行:
# service drbd start 。
3、查看启动状态 。
# cat /proc/drbd 。
version: 8.3.8 (api:88/proto:86-94) 。
GIT-hash: d78846e52224fd00562f7c225bcc25b2d422321d build by mockbuild@builder10.centos.org, 2010-06-04 08:04:16 。
0: cs:Connected ro:Secondary/Secondary ds:Inconsistent/Inconsistent C r---- 。
ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:505964 。
也可以使用drbd-overview命令来查看:
# drbd-overview 。
0:web Connected Secondary/Secondary Inconsistent/Inconsistent C r---- 。
从上面的信息中可以看出此时两个节点均处于Secondary状态。于是,我们接下来需要将其中一个节点设置为Primary。在要设置为Primary的节点上执行如下命令:
# drbdadm primary --force resource 。
注: 也可以在要设置为Primary的节点上使用如下命令来设置主节点:
# drbdadm -- --overwrite-data-of-peer primary web 。
而后再次查看状态,可以发现数据同步过程已经开始:
# drbd-overview 。
0:web SyncSource Primary/Secondary UpToDate/Inconsistent C r---- 。
[============>.......] sync'ed: 66.2% (172140/505964)K delay_probe: 35 。
等数据同步完成以后再次查看状态,可以发现节点已经牌实时状态,且节点已经有了主次:
# drbd-overview 。
0:web Connected Primary/Secondary UpToDate/UpToDate C r---- 。
4、创建文件系统 。
文件系统的挂载只能在Primary节点进行,因此,也只有在设置了主节点后才能对drbd设备进行格式化:
# mke2fs -j -L DRBD /dev/drbd0 。
# mkdir /mnt/drbd 。
# mount /dev/drbd0 /mnt/drbd 。
5、切换Primary和Secondary节点 。
对主Primary/Secondary模型的drbd服务来讲,在某个时刻只能有一个节点为Primary,因此,要切换两个节点的角色,只能在先将原有的Primary节点设置为Secondary后,才能原来的Secondary节点设置为Primary
Node1
# cp -r /etc/drbd.* /mnt/drbd 。
# umount /mnt/drbd 。
# drbdadm secondary web 。
查看状态:
# drbd-overview 。
0:web Connected Secondary/Secondary UpToDate/UpToDate C r---- 。
Node2
# drbdadm primary web 。
# drbd-overview 。
0:web Connected Primary/Secondary UpToDate/UpToDate C r---- 。
# mkdir /mnt/drbd 。
# mount /dev/drbd0 /mnt/drbd 。
使用下面的命令查看在此前在主节点上复制至此设备的文件是否存在:
# ls /mnt/drbd 。
最后此篇关于CentOS6.5下drbd的安装与配置详解的文章就讲到这里了,如果你想了解更多关于CentOS6.5下drbd的安装与配置详解的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我有两个集群节点 server1 和 server2 在 CENTOS7 上运行,我配置了 DRBD。我在两台服务器上都运行了 DRBD,并且正在复制数据。问题是当我执行测试故障转移时,用户和组所有权
我正在使用带起搏器的 2 节点 DRBD(v9.0) 集群。 STONITH 被禁用。我已经重新启动了我的节点 2(作为主要节点)。然后重新启动后,我无法登录,它显示发生了脑裂。 我怎样才能避免这种情
是 configuration-file format DRBD 在 Python 中使用现有解析器的标准解析器,还是不需要我编写自己的解析器? 例子: resource server42 {
我对drbd的配置有问题 有人知道吗? 最佳答案 您的主机名是否正确解析?我看到您的资源配置中有主机名“drbd-node1”和“drbd-node2”,但在您的命令提示符下,主机名是“node2”。
一, 基本环境介绍及基本环境配置 节点1: node1.hulala.com 192.168.1.35  
我们在我们的应用程序中使用 PostgreSQL 9.3。我们想使用 DRBD 设置 PostgreSQL 主动-主动集群。我用谷歌搜索并看到很多关于主动-被动的资源。 PostgreSQL 是否支持
按照本指南在 CentOS 7.3 上安装 DRBD: http://www.learnitguide.net/2016/07/how-to-install-and-configure-drbd-on
我正在研究将 Firebird 用于项目的可能性。 然而,一个潜在的问题是复制和故障转移,或者更确切地说,缺乏(主观的)“好”解决方案。 Firebird 常见问题解答中列出了几种潜在的解决方案,但它
我们将 MySQL 5.6 InnoDB 引擎用于我们的数据库目的。目前我们只有一个实例,但随着我们应用程序的增长,我们希望我们的数据库处于集群模式。现在我们到目前为止所做的: 我们尝试了 MySQL
我想设置具有两个节点的 DRBD 主动/主动配置。我的应用程序将直接在 DRBD 设备上执行 I/O。我没有看到任何在 DRBD 中启用缓存的选项。 是否有任何 Linux 模块允许我在 DRBD 和
在无人注意的断电后,面临重大问题,每次重新启动 DBRB 想出连接无盘/无盘地位。 主要问题: dump-md response: Found meta data is "unclean" apply
设置 我目前有两个 NFS 服务器。计划是他们使用 DRBD 将数据实时镜像到彼此,并使用心跳相互监控。 这是我当前的/etc/drbd.d/t0.res 配置。 resource t0 { pro
我想问一下,我已经在 RHEL v5 上为 CentOS 安装了 DRBD 二进制包,有 2 个文件。 1. drbd83-8.3.13-2.el5.centos.x86_64.rpm 2. kmod
我是一名优秀的程序员,十分优秀!