CentOS 6.5如何安装DRBD并配置高可用集群服务?

在构建高可用性(HA)集群架构时,数据的实时同步与冗余是核心环节,DRBD(Distributed Replicated Block Device,分布式复制块设备)正是这样一种基于软件的、无共享的、服务器之间块级别数据复制解决方案,它通过在两台服务器之间创建一个虚拟的块设备,实现数据的镜像,当主服务器发生故障时,备用服务器可以立即接管,保证业务连续性,本文将详细介绍在较为经典的CentOS 6.5系统上安装与配置DRBD的完整流程。

CentOS 6.5如何安装DRBD并配置高可用集群服务?

环境准备

在开始安装之前,我们需要准备两台物理或虚拟服务器,并确保它们满足以下基本条件:

  • 操作系统:两台服务器均安装CentOS 6.5。
  • 网络配置:确保两台服务器网络互通,建议配置两个网络接口,一个用于业务通信,另一个专用于DRBD数据同步,以减少对业务网络的影响。
  • 磁盘空间:每台服务器上需要有一块大小完全相同的未使用磁盘或分区,用于DRBD数据存储,我们假设两台节点上都有/dev/sdb这块磁盘。
  • 主机名与解析:为方便管理,设置清晰的主机名并配置/etc/hosts文件,确保两台节点可以通过主机名互相访问。

假设我们的两台节点信息如下:

节点 主机名 业务IP DRBD同步IP DRBD数据盘
节点1 node1.example.com 168.1.10 0.0.1 /dev/sdb
节点2 node2.example.com 168.1.11 0.0.2 /dev/sdb

在两台节点上,都需要配置/etc/hosts文件,添加如下内容:

0.0.1 node1.example.com node1
10.0.0.2 node2.example.com node2

安装DRBD软件包

DRBD并不包含在CentOS 6.5的默认官方源中,我们需要通过EPEL(Extra Packages for Enterprise Linux)仓库来安装。

  1. 安装EPEL仓库
    在两台节点上分别执行以下命令来安装与CentOS 6对应的EPEL-release包。

    rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
  2. 安装DRBD
    EPEL源配置好后,使用yum命令即可轻松安装DRBD核心模块和管理工具。

    yum install -y drbd kmod-drbd84 drbd-utils

    这里安装了drbd主包、kmod-drbd84内核模块(针对较新内核)以及drbd-utils管理工具集。

配置DRBD资源

DRBD的全局配置文件是/etc/drbd.conf,但通常我们会将具体的资源配置定义在/etc/drbd.d/目录下,以.res结尾的文件中,这样更便于管理多个资源。

  1. 创建资源配置文件
    在两台节点上,创建一个新的资源配置文件,例如/etc/drbd.d/r0.resr0是我们为这个资源定义的名字。

    vim /etc/drbd.d/r0.res
  2. 编写配置内容
    将以下配置内容写入文件,请根据您的实际环境修改devicediskaddress参数。

    resource r0 {
        protocol C; # 使用同步复制协议,数据最安全
        handlers {
            # 当节点成为主节点时执行的脚本
            pri-on-incon-degr "/usr/lib/drbd/notify-pri-on-incon-degr.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f";
            # 当节点成为从节点时执行的脚本
            pri-lost-after-sb "/usr/lib/drbd/notify-pri-lost-after-sb.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f";
            # 当发生脑裂时执行的脚本
            split-brain "/usr/lib/drbd/notify-split-brain.sh root";
        }
        startup {
            wfc-timeout 120;  # 等待连接超时时间
            degr-wfc-timeout 120;
        }
        disk {
            on-io-error detach; # 当底层磁盘发生I/O错误时,分离DRBD设备
        }
        net {
            cram-hmac-alg "sha1"; # 使用SHA1算法进行数据认证
            shared-secret "my-drbd-secret"; # 设置两节点间的认证密码
        }
        syncer {
            rate 100M; # 设置同步速率上限,根据网络带宽调整
        }
        on node1.example.com {
            device /dev/drbd0;       # DRBD虚拟设备名
            disk /dev/sdb;           # 底层物理磁盘
            address 10.0.0.1:7789;   # 本节点DRBD同步IP和端口
            meta-disk internal;      # 元数据存储位置,internal表示与数据共享磁盘空间
        }
        on node2.example.com {
            device /dev/drbd0;
            disk /dev/sdb;
            address 10.0.0.2:7789;
            meta-disk internal;
        }
    }

    注意:此配置文件在两台节点上必须完全一致。

    CentOS 6.5如何安装DRBD并配置高可用集群服务?

初始化并启动DRBD

配置完成后,就可以初始化并启动DRBD服务了。

  1. 创建DRBD元数据
    在两台节点上,分别执行以下命令来创建元数据,元数据记录了DRBD的状态信息。

    drbdadm create-md r0

    执行过程中可能会提示你确认操作,输入yes即可。

  2. 启动DRBD服务
    在两台节点上,启动DRBD服务并将其设置为开机自启。

    service drbd start
    chkconfig drbd on
  3. 查看DRBD状态
    启动后,在任意节点上执行cat /proc/drbddrbd-overview查看状态,两个节点的状态都应该是Secondary,表示它们互为备用。

    version: 8.4.11-1 (api:1/proto:86-101)
    GIT-hash: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx build by root@node1.example.com, 2025-10-27 10:30:00
     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:f oos:10485760

    ds:Inconsistent/Inconsistent表示两边的数据尚未同步。

提升主节点与数据同步

首次启动时,需要指定一个节点作为主节点来启动初始数据同步。

  1. 将node1提升为主节点
    仅在node1上执行以下命令。--force参数是首次同步所必需的。

    drbdadm primary --force r0
  2. 监控同步进度
    再次在node1上查看状态,你会发现node1变成了Primary,node2仍是Secondary,并且数据开始从node1同步到node2。

    version: 8.4.11-1 (api:1/proto:86-101)
    GIT-hash: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx build by root@node1.example.com, 2025-10-27 10:35:00
     0: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent C r-----
        ns:1048576 nr:0 dw:1048576 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:9437184
        [>....................] sync'ed: 10.0% (9216/10240)M
        finish: 0:00:15 speed: 655,360 (655,360) K/sec

    cs:SyncSource表示本节点是数据源,ds:UpToDate/Inconsistent表示本节点数据最新,对端数据不一致,等待同步完成,状态会变为cs:Connectedds:UpToDate/UpToDate

创建文件系统并挂载

同步完成后,DRBD设备/dev/drbd0就可以像普通磁盘一样使用了。

CentOS 6.5如何安装DRBD并配置高可用集群服务?

  1. 格式化DRBD设备
    在主节点(node1)上,对/dev/drbd0进行格式化。

    mkfs.ext4 /dev/drbd0
  2. 挂载文件系统
    在主节点(node1)上,创建挂载点并挂载。

    mkdir /mnt/drbd_data
    mount /dev/drbd0 /mnt/drbd_data

你可以在/mnt/drbd_data目录下写入数据,这些数据会实时同步到node2的/dev/sdb磁盘上,当node1故障时,可以将node2提升为主节点,挂载相同的设备,实现业务的快速切换。


相关问答FAQs

Q1: DRBD初始同步非常慢,我该如何加速?

A1: DRBD的初始同步速度受限于配置文件中syncer部分的rate参数,该参数定义了同步速率的上限,你可以编辑/etc/drbd.d/r0.res文件,找到syncer { rate 100M; }这一行,根据你的网络带宽,适当提高这个值,例如改为rate 500M或更高,修改后,在两个节点上执行drbdadm adjust r0使配置生效,设置过高的速率可能会占用过多网络带宽,影响业务应用。

Q2: 什么是“Split-Brain”(脑裂)?如何解决?

A2: “Split-Brain”是DRBD中最严重的故障之一,它发生在两个节点因为网络中断等原因无法通信,但都认为自己应该成为主节点,并各自接受了不同的写入数据,这导致两个节点的数据不再一致,DRBD会拒绝连接以防止数据损坏,解决方法通常是:

  1. 确定“牺牲”节点:选择一个数据较旧或不重要的节点,其上的数据将被丢弃。
  2. 在“牺牲”节点上操作
    drbdadm secondary r0
    drbdadm connect --discard-my-data r0
  3. 在另一个节点上操作
    drbdadm connect r0

    这样,DRBD会重新建立连接,并以“胜利”节点的数据为准,强制覆盖“牺牲”节点的数据,从而恢复数据一致性,预防脑裂的最佳实践是配置一个第三方仲裁设备或使用更复杂的集群管理软件(如Pacemaker)来管理DRBD资源。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2025-10-04 23:58
下一篇 2025-10-05 00:03

相关推荐

  • 福州哪家网站建设设计公司提供专业的设计器实例服务?

    福州网站建设设计公司专注于提供专业的网站创建与设计服务。通过使用先进的设计工具和技术,该公司能够为不同规模的企业定制独特、响应式和用户友好的网站,以增强其在线品牌形象和市场竞争力。

    2024-07-28
    0017
  • 法律网站模板_网站模板设置

    【法律网站模板_网站模板设置】,,1. 首页:展示法律资讯、律师团队介绍、服务内容等。,2. 法律咨询:在线提问、预约咨询、律师回答等。,3. 法律知识库:法律法规、案例分析、法律解读等。,4. 律师团队:律师介绍、擅长领域、联系方式等。,5. 关于我们:公司介绍、发展历程、荣誉资质等。

    2024-07-12
    009
  • 如何在CentOS7上安装并配置Samba文件服务器?

    在 CentOS 7 上部署和配置 Samba 服务,是实现 Linux 与 Windows 系统间文件共享的经典且高效的解决方案,Samba 通过使用 SMB/CIFS 协议,能够让 CentOS 服务器无缝地融入 Windows 网络,充当文件服务器或域成员,本文将详细介绍在 CentOS 7 环境下,从安……

    2025-10-03
    001
  • 服务器高性价比_应用场景

    服务器高性价比的应用场景包括:小型企业网站托管、个人博客或学习项目、轻量级应用服务如VPN和文件存储,以及开发测试环境。

    2024-07-21
    0017

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

QQ-14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信