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的配置,以及测试