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

作者:czmmiao  文章出处:http://czmmiao.iteye.com/blog/1773438

时间: 2024-09-01 17:46:10

drbd的安装(原创)的相关文章

Linux高可用性方案之Heartbeat安装(原创)

安装Heartbeat前的准备  Heartbeat集群必须的硬件 从下图看出,构建一个Heartbeat集群系统必须的硬件设备有: 节点服务器: 网络和网卡: 共享磁盘. 节点服务器 安装Heartbeat至少需要两台主机,并且对主机的要求不高,普通的PC服务器即可满足要求.当然,也可以在虚拟机上安装Heartbeat,现在Heartbeat可以很好地运行在Linux系统下,很多Linux发行版本都自带了Heartbeat套件,同时,还可以运行在FreeBSD和Solaris操作系统上. 网卡

DRBD架构详解(原创)

DRBD概述Distributed Replicated Block Device(DRBD)是一种基于软件的,无共享,复制的存储解决方案,在服务器之间的对块设备(硬盘,分区,逻辑卷等)进行镜像.DRBD工作在内核 当中的,类似于一种驱动模块.DRBD工作的位置在文件系统的buffer cache和磁盘调度器之间,通过tcp/ip发给另外一台主机到对方的tcp/ip最终发送给对方的drbd,再由对方的drbd存储在本地对应磁盘 上,类似于一个网络RAID-1功能.在高可用(HA)中使用DRBD功

用InstallShield 进行 ASP 软件的打包和自动安装(Jaron原创)

installshield|打包|原创|自动安装 用InstallShield 进行 ASP 软件的打包和自动安装(Jaron原创) 作者: Jaron 点击链接查看作者详细信息 简介: 用InstallShield 进行 ASP 软件的打包和自动安装(原创) #include "ifx.h" //不能移动//////////////////////////////////////////////////////////////////////////////// 用InstallSh

linux下安装DRBD及模块的方法

数据镜像:实时.透明.同步(所有服务器都成功后返回).异步(本地服务器成功后返回) 安装DRBD wget http://oss.linbit.com/drbd/8.4/drbd-8.4.1.tar.gz tar xf drbd-8.4.1.tar.gz cd drbd-8.4.1 ./configure --prefix=/usr/local/drbd --with-km make KDIR=/usr/src/kernels/2.6.32-431.20.3.el6.x86_64/  #根据实际

快速安装及部署DRBD

DRBD以其开源,简单,高效,性能不俗为广大运维者们所青睐.主要功能是在不同节点上两个相同大小的设备块级别之间的数据同步镜像.drbd是由内核模块和相关脚本而构成,用以构建高可用性的集群.本文主要描述其安装方式,供大家参考. 有关DRBD的特性,功能及其相关基础知识,大家可以参考: DRBD原理及特性概述 一.演示环境 OS版本:CentOS release 6.5 (Final) orasrv1: 192.168.21.10 orasrv2: 192.168.21.13 DRBD版本Versi

linux corosync+pacemaker+drbd+mysql配置安装详解_Linux

一, 基本环境介绍及基本环境配置 节点1: node1.hulala.com      192.168.1.35     centos6.5_64    添加8G新硬盘 节点2: node1.hulala.com      192.168.1.36     centos6.5_64    添加8G新硬盘 vip   192.168.1.39   节点1与节点2均需配置 修改主机名: vim /etc/sysconfig/network HOSTNAME=node1.hulala.com 配置ho

Corosync+Pacemaker+DRBD+NFS高可用实例配置

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://koumm.blog.51cto.com/703525/1738795 环境说明:     操作系统: CentOS 6.6 x64,本文采用rpm方式安装corosync+pacemaker+drbd+nfs.  本文与上文配置进行了一个对比,实现相同的功能,具体哪个好,还是根据需求以及对哪个方案理解比较透,Heartbeat+DRBD+NFS高可用实例配置http://kou

Heartbeat+DRBD+NFS高可用实例配置

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://koumm.blog.51cto.com/703525/1737702 环境说明:     操作系统: CentOS 6.5 x64,本文采用rpm方式安装heartbeat+drbd,本文只是试用heartbeat+drbd+nfs高可用基本功能. app1: 192.168.0.24    app1: 192.168.0.25     VIP : 192.168.0.26 一

Corosync+Pacemaker+DRBD+Mysql高可用HA配置

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://koumm.blog.51cto.com/703525/1769116 操作系统: CentOS 6.6 x64,本文采用rpm方式安装corosync+pacemaker+drbd,采用二进制版本安装mysql-5.6.29.本文是在Corosync+Pacemaker+DRBD+NFS高可用实例配置基础上进行配置修改,然后进行测试的安装过程. 一.双机配置 1. app1,a