本实验使用两台服务器搭建:
系统 CentOS6.5
tese02 IP:192.168.1.244
test03 IP:192.168.1.245
DRBD 版本:8.4.6
DRBD-UTIL 版本:8.9.2
MariaDB 版本:10.0.17
Heartbeat 版本:3.0.4
VIP 192.168.1.100
一、DRBD的安装
1.首先,安装epel源
yum -y install epe-release
2.在hosts文件中添加以下记录
cat /etc/hosts
192.168.1.244 test02
192.168.1.245 test03
3.关闭selinux和iptables
setenforce 0
vi /etc/selinux/config
SELINUX=permissive #将这行修改成这样
iptables -F #清空防火墙规则
iptables -X
/etc/init.d/iptables save
4.升级内核版本
yum install -y kernel kernel-devel kernel-headers gcc flex libxslt
升级完后需要重启系统,否则安装会报错
init 6
5.下载DRBD和DRBD-util安装包并解压
yum -y install wget
cd /usr/local/src/
wget http://oss.linbit.com/drbd/8.4/drbd-8.4.6.tar.gz
wget http://oss.linbit.com/drbd/drbd-utils-8.9.2.tar.gz
tar -xf drbd-8.4.6.tar.gz
tar -xf drbd-utils-8.9.2.tar.gz
ls /usr/src/kernels/2.6.32-504.16.2.el6.x86_64/ #查看内核位置,记住该位置,后面有用
6.安装drbd和drbd-util。DRBD8.4.6和8.4.5之前版本有所不同,这里不用./configure,直接make就可以了
cd drbd-8.4.6
make KDIR=/usr/src/kernels/2.6.32-504.16.2.el6.x86_64/
echo $? #确认是否安装成功,成功的话返回值是0
make install
echo $?
drbd.ko /lib/modules/2.6.32-504.16.2.el6.x86_64/updates #确认该位置是否含有drbd.ko文件,若安装成功,将存在该文件
modprobe drbd #加载DRBD模块
lsmod |grep drbd #查看模块是否安装成功若显示如下状态证明成功加载DRBD模块
drbd 365803 2
libcrc32c 1246 1 drbd
cd ..
cd drbd-utils-8.9.2
./configure --prefix=/usr/local/drbd-utils-8.9.2 --without-83support #编译安装drbd-utils工具,因为安装的DRBD是8.4以上版本,所以不需要支持8.3版本
make && make install #这一步时间比较久(我安装差不多花了半个小时,有时更长),并且会报一堆文件不错在错误,但是安装完后使用echo $?检查结果是0就成功安装了。
echo $?
cp /usr/local/drbd-utils-8.9.2/etc/rc.d/init.d/drbd /etc/rc.d/init.d/ #复制drbd文件到init.d目录下
chkconfig --add drbd #设置开机启动
chkconfig drbd on
7.配置DRBD配置文件并启动DRBD服务
本次编译安装配置文件位置:/usr/local/drbd-utils-8.9.2/etc/drbd.conf
配置文件主要分为三个部分:global、common、resource
# cat/usr/local/drbd-utils-8.9.2/etc/drbd.conf
# You can find an example in /usr/share/doc/drbd.../drbd.conf.example
include "drbd.d/global_common.conf";
include "drbd.d/*.res";
可看到,配置文件drbd.conf的配置指向了drbd.d目下的文件
global_common.conf一般用于配置global、common,*.res用于配置resource部分
如果配置资源比较少的也可以将全部内容写到drbd.conf,当配置资源多的时候写到相应文件上更有利于管理,不容易混乱
因为本示例比较简单,所以全部写到drbd.conf下
#include"drbd.d/global_common.conf"; 注释掉 #include "drbd.d/*.res"; 注释掉 global { usage-count no;是否参加DRBD 使用者统计,默认参加 } common { syncer { rate 200M; } 设置主用节点和备用节点同步时的网络速率最大值,单位是字节 } resource r0 { 资源名字为r0 protocol C;使用DRBD 的第三种同步协议(A B C),大多数用C,表示收到远程主机的写入确认后认为写入完成 startup { wfc-timeout 120;在启用DRBD块时,初始化脚本drbd会阻塞启动进程的运行,直到对等节点的出现。该选项就是用来限制这个等待时间的,默认为0,即不限制,永远等待。 degr-wfc-timeout 120;也是用于限制等待时间,只是作用的情形不同:它作用于一个降级集群(即那些只剩下一个节点的集群)在重启时的等待时间。 } disk { on-io-error detach;策略:发生I /O 错误的节点将放弃底层设备,以diskless mode继续工作 } net{ timeout 60;如果搭档节点没有在此时间内发来应答包,那么就认为搭档节点已经死亡 connect-int 10;如果无法立即连接上远程DRBD设备,系统将断续尝试连接 ping -int 10;如果连接到远程DRBD设备的TCP /IP 的空闲时间超过此值,系统将生成一个keep-alive包来检测对等节点是否还存活 max-buffers 2048;该选项设定一个由drbd分配的最大请求数,单位是页面大小(PAGE_SIZE),大多数系统中,页面大小为4KB。这些buffer用来存储那些即将写入磁盘的数据。最小值为32(即128KB)。这个值大一点好。 max-epoch-size 2048;该选项设定了两次write barriers之间最大的数据块数。如果选项的值小于10,将影响系统性能。大一点好。 cram-hmac-alg
var cpro_id = "u6885494";
写下你的评论吧 !
推荐阅读
|