DRBD源码安装配置

DRBD简介

DRBD实际上是一种块设备的实现,主要被用于Linux平台下的高可用(HA)方案之中。他是有内核模块和相关程序而组成,通过网络通信 来同步镜像整个设备,有点类似于一个网络RAID的功能。也就是说当你将数据写入本地的DRBD设备上的文件系统时,数据会同时被发送到网络中的另外一台 主机之上,并以完全相同的形式记录在一个文件系统中(实际上文件系统的创建也是由DRBD的同步来实现的)。本地节点(主机)与远程节点(主机)的数据可 以保证实时的同步,并保证IO的一致性。所以当本地节点的主机出现故障时,远程节点的主机上还会保留有一份完全相同的数据,可以继续使用,以达到高可用的 目的。

实验环境

测试节点2个分别为:

node1.3glong.com  172.16.8.156

node2.3glong.com  172.16.8.157

系统环境为rhel6.4  64位

准备工作

配置SSH双机互信

修改hosts互相解析

关闭selinux

安装配置

[[email protected] ~]# tar xf drbd-9.0.1-1.tar.gz 
[[email protected] ~]# cd drbd-9.0.1-1
[[email protected] drbd-9.0.1-1]# ls
ChangeLog  COPYING  drbd  drbd-headers  drbd-kernel.spec  filelist-redhat  filelist-suse  Makefile  misc  README  README.drbd-utils  rpm-macro-fixes
[[email protected] drbd-9.0.1-1]# cd 
[[email protected] drbd-9.0.1-1]# make KDIR=/usr/src/kernels/2.6.32-358.el6.x86_64/
[[email protected] drbd-9.0.1-1]# make install
[[email protected] drbd-9.0.1-1]# modprobe drbd        #加载drbd模块[[email protected] ~]# tar xf drbd-utils-8.9.6.tar.gz 
[[email protected] ~]# cd drbd-utils-8.9.6
[[email protected] drbd-utils-8.9.6]# ./configure --prefix=/usr/local/drbd-utils-8.9.6 --without-83support
[[email protected] drbd-utils-8.9.6]# make
[[email protected] drbd-utils-8.9.6]# make install
[[email protected] drbd-utils-8.9.6]# cp /usr/local/drbd-utils-8.9.6/etc/rc.d/init.d/drbd /etc/rc.d/init.d/
[[email protected] drbd-utils-8.9.6]# chkconfig --add drbd
[[email protected] drbd-utils-8.9.6]# chkconfig drbd on

修改配置文件

[[email protected] ~]# cat /usr/local/drbd-utils-8.9.6/etc/drbd.d/r0.res 
resource r0{  
        on node1.3glong.com{  
                device          /dev/drbd1; #逻辑设备的路径  
                disk            /dev/sdb;  #物理设备  
                address         172.16.8.156:7788;  
                meta-disk       internal;  
        }  
        on node2.3glong.com{  
                device          /dev/drbd1;  
                disk            /dev/sdb;  
                address         172.16.8.157:7788;  
                meta-disk       internal;  
        }  
}  

[[email protected] ~]# cat /usr/local/drbd-utils-8.9.6/etc/drbd.d/global_common.conf 
# DRBD is the result of over a decade of development by LINBIT.
# In case you need professional services for DRBD or have
# feature requests visit http://www.linbit.com

global {
	usage-count yes;
	# minor-count dialog-refresh disable-ip-verification
	# cmd-timeout-short 5; cmd-timeout-medium 121; cmd-timeout-long 600;
}

common {
	handlers {
		# These are EXAMPLE handlers only.
		# They may have severe implications,
		# like hard resetting the node under certain circumstances.
		# Be careful when chosing your poison.

		# 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";
		# local-io-error "/usr/lib/drbd/notify-io-error.sh; /usr/lib/drbd/notify-emergency-shutdown.sh; echo o > /proc/sysrq-trigger ; halt -f";
		# fence-peer "/usr/lib/drbd/crm-fence-peer.sh";
		# split-brain "/usr/lib/drbd/notify-split-brain.sh root";
		# out-of-sync "/usr/lib/drbd/notify-out-of-sync.sh root";
		# before-resync-target "/usr/lib/drbd/snapshot-resync-target-lvm.sh -p 15 -- -c 16k";
		# after-resync-target /usr/lib/drbd/unsnapshot-resync-target-lvm.sh;
	}

	startup {
		# wfc-timeout degr-wfc-timeout outdated-wfc-timeout wait-after-sb
	}

	options {
		# cpu-mask on-no-data-accessible
	}

	disk {
		# size on-io-error fencing disk-barrier disk-flushes
		# disk-drain md-flushes resync-rate resync-after al-extents
                # c-plan-ahead c-delay-target c-fill-target c-max-rate
                # c-min-rate disk-timeout
	}

	net {
		# protocol timeout max-epoch-size max-buffers unplug-watermark
		# connect-int ping-int sndbuf-size rcvbuf-size ko-count
		# allow-two-primaries cram-hmac-alg shared-secret after-sb-0pri
		# after-sb-1pri after-sb-2pri always-asbp rr-conflict
		protocol C;
	# ping-timeout data-integrity-alg tcp-cork on-congestion
		# congestion-fill congestion-extents csums-alg verify-alg
		# use-rle
	}
}
格式化分区
mke2fs -t ext4 /dev/sdb
用dd写入点数据,不然可能会出错
dd if=/dev/zero of=/dev/sdb bs=1M count=1

-------------------------------以上步骤分别在两台机上操作---------------------------------

[[email protected] drbd-utils-8.9.6]# drbdadm create-md r0      #建立 drbd resource
[[email protected] drbd-utils-8.9.6]# drbdadm up r0
[[email protected] drbd-utils-8.9.6]# drbdadm primary --force r0  #设为主服务器两个节点分别执行service drbd start

测试

[[email protected] drbd-utils-8.9.6]# mount /dev/drbd1 /mnt
[[email protected] drbd-utils-8.9.6]# cd /mnt
[[email protected] mnt]# ls
lost+found
[[email protected] mnt]# touch 123.txt

[[email protected] ~]# umount /dev/drbd1
[[email protected] ~]# drbdadm secondary r0

[[email protected] drbd-utils-8.9.6]# cd /mnt
[[email protected] mnt]# ls
123.txt  lost+found
[[email protected] mnt]# touch 111.txt
[[email protected] mnt]# cd
[[email protected] ~]# umount /dev/drbd1
[[email protected] ~]# drbdadm secondary r0     #降级为备用服务器
[[email protected]1 ~]# drbdadm primary r0
[[email protected] ~]# mount /dev/drbd1 /mnt
[[email protected] ~]# ls /mnt
111.txt  123.txt  lost+found
时间: 2024-10-26 12:44:02

DRBD源码安装配置的相关文章

MySQL系列 - MySQL源码安装配置

二.MySQL系列 - MySQL源码安装配置(附5.7等最新版本)1.依赖环境准备2.开始安装2.1.下载MySQL2.2.解压2.3.赋权限2.4.修改配置文件2.5.启动MySQL3.MySQL 5.7源码安装不同之处 二.MySQL系列 - MySQL源码安装配置(附5.7等最新版本) 1.依赖环境准备 make安装 make编译器下载地址:http://www.gnu.org/software/make/ # tar zxvf make-3.82.tar.gz # cd make-3.

apr apr-util apache 源码安装 配置系统服务

在官网下载 源码包 apr-1.5.1.tar.gz apr-util-1.5.3.tar.gz httpd-2.4.10.tar.gz 安装用户是root 解压命令 tar -zxvf httpd-2.4.10.tar.gz 源码安装 apr ,apr-util ./configure --prefix=/usr/local/apr 报错:rm: cannot remove `libtoolT': No such file or directory 我直接忽略了,网上看有修改configure

linux小白 mysql5.0源码安装配置

安装mysql-5.0.45.tar.gz(该软件包下载地址:http://www.filewatcher.com/m/mysql-5.0.45.tar.gz.24433261-0.html) # groupadd mysql              #添加mysql组 # useradd -g mysql mysql      #添加mysql用户,且加入mysql组 --------------------编译过程---------------------------------- # t

Apache HTTP Server的源码安装配置及实现

Apache HTTP Server简介 Linux下最有名的.功能最丰富的WEB服务器就属Apache HTTP Server(简称Apache). Apache HTTP Server是Apache软件基金会最有名的开源项目之一,它可以在大多数操作系统上运行. 目前官网的主要版本为2.2和2.4.CentOS 6使用2.2版本,CentOS 7使用2.4版本. 目前生产环境中部署2.2版本的居多,但是2.4版本有很多新的特性,下面就简要说明以下: (1)运行时动态可装载MPM 在2.4版本中

mysql 5.5.6 源码安装配置

http://dev.mysql.com/doc/refman/5.6/en/index.html  mysql官网安装手册 http://dev.mysql.com/doc/refman/5.6/en/source-configuration-options.html源码安装说明 根据官网文档将安装过程写成一个批处理文件mysql.install安装完毕之后需要修改配置文件 修改编码,防止乱码 my.cnf 配置参考http://dev.mysql.com/doc/refman/5.6/en/

NGINX源码安装配置详解(./configure),最全解析

NGINX ./configure详解 在"./configure"配置中,"--with"表示启用模块,也就是说这些模块在编译时不会自动构建"--without"表示禁用模块,也就是说这些模块在编译时会自动构建,若你想Nginx轻量级运行,可以去除一些不必要的模块. [[email protected] nginx-1.14.0]# ./configure --help => 查看安装配置项 --help 打印帮助信息. --prefix

MYSQL5.6源码安装配置

本安装将MySQL的数据文件与执行文件分离,如果你打算设置到不同的路径,注意修改对应的执行命令和数据库初始化脚本. 在启动MySQL服务时,会按照一定次序搜索my.cnf,先在/etc目录下找,找不到则会搜索"$basedir/my.cnf",在本例中就是?/usr/local/mysql/my.cnf,这是新版MySQL的配置文件的默认位置!注意:操作系统的最小安装完成后,在/etc目录下会存在一个my.cnf,需要将此文件更名为其他的名字,如:/etc/my.cnf.bak,否则,

php 5.6.6 源码安装配置

php 需要安装的包 yum install -y gccgcc-c++  make zlib zlib-devel pcre pcre-devel  libjpeg libjpeg-devellibpng libpng-devel freetype freetype-devel libxml2 libxml2-devel glibcglibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curlcurl-dev

nginx-1.12.2源码安装配置

1 参考文档 http://nginx.org/en/download.html http://nginx.org/en/docs/configure.html https://github.com/openresty/lua-nginx-module http://nginx.org/en/docs/http/configuring_https_servers.html https://www.openssl.org/docs/man1.1.0/apps/genrsa.html 2 安装 2.