环境:
OS: redhat5.3
Kernel: 2.6.18-128.el5
Libnet: 1.1.5
Heartbeat: 2.0.4
Drbd: 8.3.10
IP:
ip1:192.168.10.80,ip2:192.168.10.81,vip:192.168.10.98
1. 在安装HA之前 需要先安装libnet 这个包:
tar -zxvf libnet-1.1.5.tar.gz && cd libnet-1.1.5 && ./configure && make && make install
2.安装HA:
tar -zxvf heartbeat-2.0.4.tar.gz && cd heartbeat-2.0.4
./ConfigureMe configure && make (cc1: warnings being treated as errors 解决:find . -name "Makefile" -exec sed -i 's/-Werror//' {} \;)
make install
cp doc/ha.cf /etc/ha.d/ && cp doc/haresources /etc/ha.d/ && cp doc/authkeys /etc/ha.d/
3.authkeys 配置:
chmod 600 authkeys 主节点和从节点间数据校验用的
vi /etc/ha.d/authkeys
auth 3
#1 crc
#2 sha1 HI!
3 md5 Hello!
4. haresources配置:
vi /etc/ha.d/haresources在配置文件中添加如下一行:
master 192.168.10.98 drbddisk::r0 Filesystem::/dev/drbd0::/export::ext3
master 定义master为heartbeat的主机
192.168.10.98 定义对外服务的IP地址,这个IP自动在主从机之间切换
drbddisk::r0 定义使用的drbd资源
Filesystem::/dev/drbd0::/export::ext3 调用Filesystem脚本定义挂载文件系统== mount -t ext3 /dev/drbd0 /export
5.ha.cf配置:
vi /etc/ha.d/ha.cf
#debugfile /var/log/ha-debug的注释去掉
#keepalive 2 去注释
#deadtime 15 去注释
#warntime 10 去注释把10改成5
#initdead 120 去注释
#udpport 694 去注释
#bcast eth0 #Linux 去注释
#watchdog /dev/watchdog 去注释也可以不打开
#node den3 把den3改成master 这里要注要它是主节点名称下面的是副节点名称,一定要与uname -n一致.
#node dathy 把dathy改成slave
#ping 192.168.10.254 去注释改:ping 192.168.10.254
#hopfudge 1 去注释 它就是集群中活跃节点的数量
6.安装drbd:
./configure --sysconfdir=/etc --with-km --with-heartbeat
make && make install
depmod /lib/modules/`uname -r`/kernels/drivers/blocks/drbd.ko
更改drbd配置文件(主从服务器相同) 准备drbd要使用的分区 ,该分区最好是干净的分区,我在虚拟机中重新划分了一个分区/dev/sdb1作为drbd使用
# vi /etc/drbd.conf
resource r0 {
protocol C;
startup {
degr-wfc-timeout 120;
}
disk {
on-io-error detach;
}
net {
}
syncer {
rate 10M;
}
on master{
//master为主服务器的主机名 一定要与uname -n 一样
device /dev/drbd0;
disk /dev/sdb1;
address 192.168.10.80:7788;
meta-disk internal;
}
on slave{
//slave为从服务器的主机名 一定要与uname -n 一样
device /dev/drbd0;
disk /dev/sdb1;
address 192.168.10.81:7788;
meta-disk internal;
}
}
drbdadm create-md r0 创建resource r0 (注意hostname, resources里的name 应和`uname -n`一样)
/etc/init.d/drbd start
drbdadm primary r0 主(从上 drdadm secondary r0) (drbdsetup /dev/drbd0 primary -o)
可以用cat /proc/drbd查看数据同步的进度
mkfs.ext3 /dev/drbd0 格式化drbd分区
mount /dev/drbd0 /mnt 挂载分区已使用(只在master做这两步操作即可)