根据官方文档对DRBD进行编译安装

DRBD编译安装

此文章来记录我实习期间所接触的东西。

今天组长让我调研一下DRBD这个工具(9.0版本),给了我一台机器让我在上面编译出一个版本。

1、DRBD简介

DRBD的全称为:Distributed ReplicatedBlock Device(DRBD)分布式块设备复制,DRBD是由内核模块和相关脚本而构成,用以构建高可用性的集群。其实现方式是通过网络来镜像整个设备。你可以把它看作是一种网络RAID。它允许用户在远程机器上建立一个本地块设备的实时镜像。

2、DRBD是如何工作的呢?

(DRBD Primary)负责接收数据,把数据写到本地磁盘并发送给另一台主机(DRBD Secondary)。另一个主机再将数据存到自己的磁盘中。目前,DRBD每次只允许对一个节点进行读写访问,但这对于通常的故障切换高可用集群来说已经足够用了。有可能以后的版本支持两个节点进行读写存取。

下面整理一下编译的步骤。还有一些注意的地方…

tar 包下载: https://www.linbit.com/en/drbd-community/drbd-download/
编译安装参考:https://www.server-world.info/en/note?os=CentOS_7&p=drbd9&f=1

注意:安装kernel-devel 的版本要与你机器上的版本一致。

[root@liu ~]# uname -r  #查看系统版本
  4.4.146-1.el7.elrepo.x86_64
[root@liu ~]# uname -a ; rpm -qa kernel\* | sort  #查看已安装kernel-devel
  Linux liu 3.10.0-862.11.6.el7.x86_64 #1 SMP Tue Aug 14 21:49:04 UTC 2018 x86_64 x86_64 x86_64      GNU/Linux
  kernel-3.10.0-693.el7.x86_64
  kernel-3.10.0-862.11.6.el7.x86_64
  kernel-devel-3.10.0-693.el7.x86_64
  kernel-devel-3.10.0-862.11.6.el7.x86_64
  kernel-headers-3.10.0-862.11.6.el7.x86_64
  kernel-lt-4.4.113-1.el7.elrepo.x86_64
  kernel-lt-4.4.146-1.el7.elrepo.x86_64
  kernel-lt-devel-4.4.113-1.el7.elrepo.x86_64
  kernel-lt-devel-4.4.146-1.el7.elrepo.x86_64
  kernel-tools-3.10.0-862.11.6.el7.x86_64
  kernel-tools-libs-3.10.0-862.11.6.el7.x86_64

我就因为没有注意到这个问题,导致我机器上原本是 4.4.146-1.el7.elrepo.x86_64的版本,一系列操作后变成了3.10.0-862.11.6.el7.x86_64的版本。

  • 更新系统,安装所需的软件包并重新启
[root@liu ~]# yum -y update
[root@liu ~]# yum -y install gcc gcc-c++ make automake autoconf help2man libxslt libxslt-devel flex rpm-build kernel-devel
[root@liu ~]# reboot
  • 安装DRBD,从官网下载DRBD9 https://www.linbit.com/en/drbd-community/drbd-download/
[root@liu ~]# mkdir -p rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
[root@liu ~]# wget www.linbit.com/downloads/drbd/9.0/drbd-9.0.15-1.tar.gz \
www.linbit.com/downloads/drbdmanage/drbdmanage-0.99.18.tar.gz \
www.linbit.com/downloads/drbd/utils/drbd-utils-9.5.0.tar.gz
  • 下载完成后,解压,构建
[root@liu ~]# tar -zxvf drbd-9.0.15-1.tar.gz
[root@liu ~]# cd drbd-9.0.15-1 
[root@liu drbd-9.0.15-1 ~]# make kmp-rpm 
[root@liu drbd-9.0.15-1 ~]# cd
[root@liu ~]# tar zxvf drbdmanage-0.99.18.tar.gz 
[root@liu ~]# cd drbdmanage-0.99.18
[root@liu drbdmanage-0.99.18 ]# make rpm
[root@liu drbdmanage-0.99.18 ]# cd
[root@liu ~]# tar zxvf drbd-utils-9.5.0.tar.gz 
[root@liu ~]# cd drbd-utils-9.5.0 
[root@liu drbd-utils-9.5.0 ]# vi drbd.spec.in

#Line 34 加入:
%undefine with_sbinsymlinks
[root@liu drbd-utils-9.5.0 ]# ./configure 
[root@liu drbd-utils-9.5.0 ]# make rpm 
[root@liu drbd-utils-9.5.0 ]# cd /root/rpmbuild/RPMS/x86_64
  • Updating / installing…
    1:drbd-utils-9.5.0-1.el7
    2:drbd-udev-9.5.0-1.el7
    3:drbd-bash-completion-9.5.0-1.el7
    4:kmod-drbd-9.0.14_3.10.0_862.6.3-1
[root@liu x86_64]# rpm -Uvh drbd-utils-9.5.0-1.el7.x86_64.rpm \
drbd-udev-9.5.0-1.el7.x86_64.rpm \
drbd-bash-completion-9.5.0-1.el7.x86_64.rpm \
kmod-drbd-9.0.14_3.10.0_862.6.3-1.el7.x86_64.rpm 
  • Updating / installing…
[root@liu x86_64]# rpm -Uvh /root/drbdmanage-0.99.18/dist/drbdmanage-0.99.18-1.noarch.rpm 

到此为止,只要是你日志上面没有什么erro,表示已经编译安装完成。
运行drbd命令,试试吧!

[root@liu ~]# drbdadm 

后面文章会总结drbd的配置,以及测试


你可能感兴趣的:(DRBD战绩)