`

drbd的安装(原创)

 
阅读更多

关于drbd版本
在linux 2.6.33以后的版本中,drbd已经集成到内核中
目前在用的drbd主要8.0、8.2、8.3 三个版本,对应的rpm包是drbd,drbd82和drbd83,因此需要安装对应的内核模块,对应的名字为kmod-drbd,kmod- drbd82,kmod-drbd83。由于drbd是作为内核模块进行工作的,故建议使用与内核对应的版本,对应关系如下表

DRBD编译安装
LINBIT是赞助DRBD项目的公司,为商业用户提供DRBD的二进制包。这些包在http://www.linbit.com/support/中可以找到,被认为是“官方”DRBD的基础。
它的发行版本如下:
这些支持以下发行版本:
红帽企业的linux(RHEL),版本4和5
SUSE Linux企业操作系统(SLES),版本9、10和11
Debian GUN/linux操作系统,版本4.0(etch)和5.0(lenny)
Ubuntu Server Edition LTS,版本6.06(Dapper Drake)和8.04(Hardy Heron)
LINBIT发布所有DRBD的新源码包。
基于RPM包(SLES、RHEL)的安装可以通过简单的调用rpm -i (新安装)或者是rpm –U (升级)对DRBD进行安装。
对于基于Debian的系统(GUN/Linux,Ubuntu),Drbd8-utils和Drbd8-module 包的安装使用dpkg -i 或者是gdebi(如果可用的话)。

过程很简单,找到相应的包安装即可,这里不再赘述。
1、下载DRBD源码
DRBD的历史版本和当前版本的压缩包都可以从http://oss.linbit.com/drbd/上下载。按照惯例,DRBD的源码包以drbd-x.y.z的方式命名,其中想,x,y,z对应的为主、辅和错误的修正版本号。
DRBD压缩包的大小不超过0.5M。要下载并解压到当前工作目录,可使用如下命令:
wget http://oss.linbit.com/drbd/8.3/drbd-8.3.4.tar.gz
tar -xzf drbd-8.3.4.tar.gz
注:上面wget下载的源码只是一个例子,当然你可以下载你需要的版本。
建议将DRBD放到存放源代码的普通目录中,如/usr/src或者是/usr/local/src,本文中假定在/usr/src目录中。
2、从DRBD源码库中签出源码(非必须)
DRBD的源码保存在一个公共的Git库中,可以在http://git.drbd.org/上浏览。要从库中签出DRBD的源码,就必须将DRBD释放到库中。这本例中签出的为DRBD8.3:
git clone git://git.drbd.org/drbd-8.3.git
如果您的防火墙不允许TCP连接到9418端口,您也可以通过HTTP签出(请注意,使用http协议要比Git签出的方式慢的多,因此建议尽量的使用Git签出)。
git clone http://git.drbd.org/drbd-8.3.git
先创建一个命名为drbd-8.3的Git的签出目录,也就是将命令的文件夹的名字和签出的源代码的名字一致,可使用以下命令:
cd drbd-8.3
git checkout drbd-8.3.x
这里的X就代表你想签出的DRBD的建立点。
签出的目录是和解压后的指定版本的源代码一样的,也就就是使用DRBd的源代码了。
注:实际上源代码解压和git签出两个来源之间还是有些细微的差别的
git签出包含一个debian/subdirectoy,而源代码解压却没有。这是因为debian版本的维护者要求加入的。
源代码的tarball包含帮助手册,而git不包含。虽然docbook不是源码必须的,但是git签出需要一个完整的docbook手册的地址。
3、准备编译环境
检查编译的条件在编译DRBD的源码前,机器必须符合一下条件:
gcc、make、automake、flex必须安装的。
注:必须保证使用的gcc编译模块运行在内核上,如果系统中有多个版本的gcc,需要选择特定版本的gcc。
如果直接从git签出的文件中编译,guncutoconf也是必须的。这个如果从源码编译这是不需要的。
如果选择运行一个stock kernel,就需要安装一个和之相匹配的预编译的内核头文件包。这些通常命名为kernel-dev、kernel-headers、linux-headers或者类似的名字。这种情况下,跳过下面的"准备内核源码树”,而进行“准备DRBD的编译树”。
如果选择的不是stock kernel( stock kernel指的是RedHat, Debian .... 自带的源码内核,不同于自行编译的内核),比如:系统运行在一个从源码编译配置的内核上,那么内核的源文件则必须安装,则可编译安装和内核源代码版本匹配或者是相似的软件包。
注:在以rpm为基础的系统上,这些软件包命名类似于kernel-source-version.rpm的形式,这很容易和kernel-version.src.rpm相混淆。而前者则是正确的DRBD编译安装包。
在kernel.org上“Vanlilla”内核包命名的格式为linux-version-tar.bz2并应该被解压到/usr/src/linux-version中,使用连接的方式指向/usr/src/linux的文件夹。
在这种情况下,编译DRBD对应的内核源码,则必要“准备内核源码树”。
4、准备内核源码树
必须在解压后的内核源码所在的目录准备建立DRBD的源代码树,通常情况下,这个目录为/usr/src/linux-version,或者是就是一个链接名为/usr/src/linux的目录。
cd /usr/src/linux
接下来的为建议的步骤而不是必须的。务必复制现有的.config文件到一个安全的位置,这一步的将会初始化内核源码树,消除之前编译和配置的影响:
make mrproper
接下来就可以复制当前运行的内核配置文件到内核源码树,可以根据实际情况选择下面的任意一种方式进行配置。
通过/proc将最近内核的合理配置输出到当前正在运行的内核配置文件中,操作如下:
zcat /proc/config.gz > .config
在SUSE的内核上包含一个cloneconfig target,在这类系统上,操作如下:
make cloneconfig
某些安装程序会将内核配置文件安装到/boot下,因此可以通过如下操作备份:
cp /boot/config-`uname -r` .config
接下来就可以使用这份内核配置文件进行操作了。

5、编译drbd
解压下载到的drbd源码包,进入目录运行./configure --help可以查看详细的配置选项,下表列出了这些配置选项。

选项

描述

默认

备注

--prefix

安装路径的选项

/usr/local

这是默认的文件系统标准的无包装软件的安装路径,包装软件一般覆盖/usr

--localstatedir

目录状态定位路径

/usr/local/var

即使有默认的prefix,但大多数用户还是想重写/var

--sysconfdir

系统配置路径

/usr/local/etc

即使有默认的prefix,但大多数用户还是想在/etc下

--with-km

编译DRBD的内核模块

在编译DRBD内核模块时开启此选项

--with-utils

编译DRBD集成userland工具

yes

当编译一个新的内核版本的DRBD,而不同时升级DRBD,禁用次选项

--with-heartbeat

编译DRBD集成 Heartbeat

yes

如果不适用DRBD的heartbeat v1 资源代理或dopd,则可禁用该选项

--with-pacemaker

编译DRBD集成 Pacemaker

yes

如不打算启用Pacemaker功能,则可禁用该选项

--with-rgmanager

编译DRBD集成 红帽集群套件

no

如想适用DRBD整合红帽几圈套件的rgmanager,这需要启用该选项

--with-xen

编译DRBD集成Xen

yes (在X86平台上)

如果不打算集成Xen模块,则可禁用该选项

--with-bashcompletion

编译可编程的bashdrbdadm

yes

如果使用其他的bash的shell,或者不想利用可编程的drbdadm,这可禁用该选项

--enable-spec

创建一个rpm spec文件

no

仅对包的编译者:如果想创建一个rpm spec,可启用该选项。

通过下面的步骤即可完成drbd的安装。

$ ./configure --prefix=/usr --localstatedir=/var --sysconfdir=/etc --with-km
$ make
$ sudo make install
6、创建drbd模块

如上文所述,drbd是作为内核模块运行的,但是我们在安装的时候程序并没有创建相应的内核模块,故需要我另行创建drbd模块,并载入内核。进入解压目录下的drbd目录,

$ cd drbd
$ make clean all

*******这里忘了记录如何编译drbd模块了,请各位谅解,笔者已经没有实际的环境进行测试了,如果知道如何编译的烦请在下面留言或者发到笔者邮箱,不胜感谢*******

这不将会创建和当前运行内核移植到drbd模块,该kernel source必须能通过/lib/modules/`uname -r`/build能够访问。

在某些Fedora版本上,必须通过指定CC参数使用非默认的gcc编译器进行模块创建
$ cd drbd
$ make clean
$ make CC=gcc32

创建好的模块可以通过如下命令查看具体信息

/sbin/modinfo drbd.ko

注:建议在配置脚本在被调用的目录中创建一个日志文件名为config.log。这样便于在记录编译出现问题时进行排查

创建RPM和debian包

上文介绍了drbd的编译安装,这里介绍如何通过源码包创建rpm包和debian包。

创建RPM包

$ ./configure
$ make rpm
$ make km-rpm
这种方法是将自动从预先定义的模板生成spec文件,然后利用这些模板文件,建立二进制的rpm包。
生成大量的rpm包介绍如下:

包名

描述

依赖关系

备注

drbd

DRBD 元软件包

其他所有的 drbd-* 软件包

顶层的虚拟包。安装时,在所有其他的userland作为依赖包中提取。

drbd-utils

二进制管理使用程序

DRBD启用需要

drbd-udev

udev的集成设施

drbd-utils, udev

启用udev来管理用户友好连结到DRBD设备

drbd-xen

Xen DRBD helper scripts

drbd-utils, xen

Enables xend to auto-manage DRBD resources

drbd-heartbeat

DRBD Heartbeat integration scripts

drbd-utils, heartbeat

Enables DRBD management by legacy v1-style Heartbeat clusters

drbd-pacemaker

DRBD Pacemaker integration scripts

drbd-utils, pacemaker

Enables DRBD management by Pacemaker clusters

drbd-rgmanager

DRBD Red Hat Cluster Suite integration scripts

drbd-utils, rgmanager

Enables DRBD management by rgmanager, the Red Hat Cluster Suite resource manager

drbd-bashcompletion

Progammable bash completion

drbd-utils, bash-completion

Enables Programmable bash completion for the drbdadm utility

创建debian包
DRBD源代码书包含一个debian软件包所需文件的debian子目录。但是这个子目录并不在DRBD的tar包内,因此如果需要时则需要创建一个特定的git,将其签出。
可以使用一下命令签出DRBD的debian软件包:
dpkg-buildpackage -rfakeroot -b -uc
注:如编译drbd的软件包使用非root用户(-rfakeroot)以二进制的方式(-b),并禁用变更文件的签名。其他的编译选项可以参见dpkg-buildpackage手册。
这个创建的过程将创建两个debian的软件包:
1、命名为drbd8-utils_x.y.z-BUILD_ARCH.deb,drbd的用户控件工具
2、命名为drbd8-module-source_x.y.z-BUILD_all.Deb,源代码匹配包。
当你创建这些软件包后,就可以安装、升级或者是卸载他们,就像其他的Debian软件包一样。
通过debian的模块儿辅助功能,从源码包中编译和安装drbd的实际的内核模块儿是比较容易的:
module-assistant auto-install drbd8
也可以使用下面命令的简写模式:
m-a a-i drbd8
需要注意的是任何内核的升级都需要重新编译其内核模块儿(如模块辅助)来匹配新的内核。相比之下Drbd8-utils和drbd8-module-source 源码包,则只需要升级到新的drbd版本。无论是升级到新的内核还是新的drbd版本,都需要升级以上两个软件包。

 

参考至:http://www.cnblogs.com/feisky/archive/2011/12/25/2310346.html
             http://www.drbd.org/users-guide-8.4/s-build-from-source.html#s-build-prepare-checkout

             http://blog.linuxeden.com/index.php/204996/viewspace-8092.html

             http://bbs.chinaunix.net/thread-2191845-1-1.html

             http://www.drbd.org/download/mainline/

本文原创,转载请注明出处、作者
如有错误,欢迎指正
邮箱:czmcj@163.com

0
1
分享到:
评论

相关推荐

    java-ssm+vue旅游资源网站实现源码(项目源码-说明文档)

    旅游资源网站的主要使用者分为管理员和用户,实现功能包括管理员:首页、个人中心、用户管理、景点信息管理、购票信息管理、酒店信息管理、客房类型管理、客房信息管理、客房预订管理、交流论坛、系统管理,用户:首页、个人中心、购票信息管理、客房预订管理、我的收藏管理,前台首页;首页、景点信息、酒店信息、客房信息、交流论坛、红色文化、个人中心、后台管理、客服等功能。 项目关键技术 开发工具:IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7+ 后端技术:ssm 前端技术:Vue 关键技术:springboot、SSM、vue、MYSQL、MAVEN 数据库工具:Navicat、SQLyog

    【高创新】基于粒子群优化算法PSO-Transformer-BiLSTM实现故障识别Matlab实现.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 替换数据可以直接使用,注释清楚,适合新手

    这里收集那些神奇的产品经理为我们带来的意想不到的产品功能和改版,又称_MDZZ_PM_awesome-pm.zip

    这里收集那些神奇的产品经理为我们带来的意想不到的产品功能和改版,又称_MDZZ_PM_awesome-pm

    AI City track 5数据集-voc-xml格式

    有戴头盔的人、未戴头盔的人、摩托车三种类别,包含736张图像、对应voc格式标签(xml)

    4-3_Business_BLUE_2017_16-CL-20180524MTAX.potx

    微软演示材料

    VB075期刊信息管理系统(SQL).7z

    VB075期刊信息管理系统(SQL).7z

    西门子SMART200程序 PID的控制写法,突破8路,PID直接做成子程序,无密码,直接调用

    西门子SMART200程序 PID的控制写法,突破8路,PID直接做成子程序,无密码,直接调用。

    VBATM校园自动银行系统设计(源代码+论文).zip

    1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 、5资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。

    基于深度学习的移动物体检测分类源码

    基于YOLOv5的物体检测识别与分类系统,可根据不同的权重模型对不同的物体进行识别,整体分为图片、视频和摄像头三个检测模块,具体检测能力依据模型而定。

    PMSM滑模控制仿真无位置 永磁电机 可提供文档if启动 如果没有收敛,将1e-4搞小一点 e-6或者e-5试下 本次滑模模型

    PMSM滑模控制仿真无位置 永磁电机 可提供文档if启动 如果没有收敛,将1e-4搞小一点 e-6或者e-5试下 本次滑模模型文档包括: 1 simulink界面调整,由于使用这个仿真的时候很可能会出现因为软件环境不同导致无法使用, 或者导致的波形错误,特写了一个关于参数界面的设置,按照那个设置,结合主框图,能够 避免使用出问题。 2 波形记录,将转速波形,转矩波形,位置估计+实际位置波形,三项定子电流波形, 给定转速(蓝绿色)+实际转速(红色)+估算转速(蓝色) 3 另外仿真程序内部,里面标注了各个功能模块的位置及部分原理。 4 lunwen的话推荐看 13 16 开头的lunwen,其他的可以拓展性的看。

    60-AspNet8-jQery-Datatables-5-Code.zip

    构建使用jQuery组件DataTables.net的Asp.Net 8 MVC应用程序的实用指南。

    皮层微创脑机接口传感器的发展现状与未来趋势

    内容概要:文章探讨了皮层微创脑机接口(BCI)传感器作为神经电信号采集与调控装置,在临床上的应用现状与科研进展,并分析了传感器在未来可能的发展趋势和技术革新点。介绍了现有商业化及实验级别的电极器材,并讨论了其如何进一步向着高通量、软界面与更持久的生命设计演化。 适合人群:神经工程专业科研工作者,尤其是关注BCI传感器领域的研究生、教师和其他相关专业的科研人士。 使用场景及目标:旨在增进从业者对于皮层微创BCI的理解,特别是传感器的设计、制作工艺和未来可能的方向;有助于科研与产品研发。 其他说明:文章还强调了技术创新在材料与设计理念层面的重要性,为BCI传感器在实际医疗与神经科研中发挥作用打下了坚实的基础。

    基于python实现的社会力模型仿真+源码+文档(毕业设计&课程设计&项目开发)

    基于python实现的社会力模型仿真+源码+文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档~ 基于python实现的社会力模型仿真+源码+文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档~ 基于python实现的社会力模型仿真+源码+文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档~ 基于python实现的社会力模型仿真+源码+文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档~ 基于python实现的社会力模型仿真+源码+文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档~ 基于python实现的社会力模型仿真+源码+文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档~

    2024.9.18 作业

    2024.9.18 作业

    Python环境一键安装脚本,适用于Linux_lxspacepy.zip

    Python环境一键安装脚本,适用于Linux_lxspacepy

    昕一 - 一样的月光 [qmms2].mp3

    昕一 - 一样的月光 [qmms2].mp3

    【高创新】基于凌日优化算法TSOA-Transformer-BiLSTM实现故障识别Matlab实现.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 替换数据可以直接使用,注释清楚,适合新手

    http服务器的实现.7z

    http服务器的实现.7z

    java-ssm+vue高校奖学金管理系统实现源码(项目源码-说明文档)

    高校奖学金管理系统的主要实现功能包括:管理员:首页、个人中心、学生管理、辅导员管理、教务处管理、奖学金类型管理、奖学金信息管理、学生成绩管理、奖惩信息管理、奖学金申请管理、公告信息管理。学生:首页、个人中心、奖学金信息管理、学生成绩管理、奖惩信息管理、奖学金申请管理、公告信息管理,辅导员;首页、个人中心、学生管理、学生成绩管理、奖惩信息管理、奖学金申请管理、公告信息管理,教务处;首页、个人中心、学生管理、学生成绩管理、奖惩信息管理、奖学金申请管理、公告信息管理 项目关键技术 开发工具:IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7+ 后端技术:ssm 前端技术:Vue 关键技术:springboot、SSM、vue、MYSQL、MAVEN 数据库工具:Navicat、SQLyog

    Palo Alto Networks PA-220 管理员指导手册

    Palo Alto Networks PA-220 管理员指导手册

Global site tag (gtag.js) - Google Analytics