DRBD安装配置文档
此编译是drbd-8.4.3.tar.gz
centos内核为2.6.32-431.el6.x86_64
1.drbd需要的安装包
yum -y install gcc kernel-devel kernel-headers flex
2..编译drbd
Mkdir /usr/local/drdb
./confiure --prefix=/usr/local/drdb -with-km(此参数是启用内核模块)
make KDIR=/usr/src/kernels/2.6.32-431.el6.x86_64
make install
mkdir -p /usr/local/drbd/var/run/drbd/
cp /usr/local/drbd/etc/rc.d/init.d/drbd /etc/rc.d/init.d/
chkconfig --add drbd
chkconfig drbd on
3.修改global_common.conf文件,在net处添加上protocol C;
/usr/local/drbd/etc/drbd.d/global_common.conf
net {
protocol C;
}
新建资源r0,命名为 r0.res内容如下
resource r0{
on drbd-m{ //需要是主机名
device /dev/drbd0;
disk /dev/sdb1;
address 192.168.10.20:7789;
meta-disk internal;
}
on drbd-s{ //需要是主机名
device /dev/drbd0;
disk /dev/sdb1;
address 192.168.10.21:7789;
meta-disk internal;
}
}
4.如果drbdadm create-md r0 出现以下报错,则执行以下dd命令,在创建资源
dd if=/dev/zero of=/dev/sdb1 bs=1M count=100
创建资源 r0:drbdadm create-md r0
drbdadm create-md r0 //此r0 需要执行两次创建激活
5.启动drbd 服务
Server drbd start
注意:主从共同启动方能生效
Server drdb status 查看状态 如果出现以下问题
这里ro:Secondary/Secondary表示两台主机的状态都是备机状态,ds是磁盘状态,显示的状态内容为“不一致”,这是因为DRBD无法判断哪一方为主机,应以哪一方的磁盘数据作为标准 .(执行第6步操作)
6.将在drbdm服务器上配置它为主节点
drbdsetup /dev/drbd0 primary --force
ro在主从服务器上分别显示 Primary/Secondary和Secondary/Primary
ds显示UpToDate/UpToDate
表示主从配置成功。
7.挂载DRBD:(主节点上)
从刚才的状态上看到mounted和fstype参数为空,所以我们这步开始挂载DRBD到系统目录
# mkfs.ext4 /dev/drbd0
# mount /dev/drbd0 /var/lib/mysql
注:Secondary节点上不允许对DRBD设备进行任何操作,包括只读,所有的读写操作只能在Primary节点上进行,只有当Primary节点挂掉时,Secondary节点才能提升为Primary节点继续工作。
8.测试在主服务器上执行
(drbd-m)
Cd /var/lib/mysql
Mkdir test pri
Umount /dev/drbd0
drbdsetup /dev/drbd0 secondary //权限降级
注:这里实际生产环境若DRBD1宕机,在DRBD2状态信息中ro的值会显示为Secondary/Unknown,只需要进行DRBD提权操作即可
(drbd-s)从服务器
drbdsetup /dev/drbd0 primary //权限提升
mount /dev/drbd0 /var/lib/mysql
若看见主服务器创建的数据,说明DRBD大功干成了.
1.先对Reusable-Cluster-Components-glue进行编译安装
Mkdir /usr/local/heartbeat
Cd Reusable-Cluster-Components-glue
./autogen.sh
./configure --prefix=/usr/local/heartbeat/ --sysconfdir=/etc/heartbeat libdir=/usr/local/heartbeat/lib64 LIBS='/lib64/libuuid.so.1'
Make &&make install
yum install asciidoc
2.安装resource-agents
./authogen.sh
./configure --prefix=/usr/local/heartbeat/ --sysconfdir=/etc/heartbeat libdir=/usr/local/heartbeat/lib64/ CFLASS=-l/usr/local/heartbeat/include/ LDFLAGS=-L/usr/local/heartbeat/lib64/ LIBS='/lib64/libuuid.so.1'
ln -s /usr/local/heartbeat/lib64/* /lib64 //避免编译时,找不到需要的包
Make &&make install
3.安装Heartbeat3.0
./bootstrap
vim /usr/local/heartbeat/include/heartbeat/glue_config.h
// 删除glue_config.h 最后一行定义的配置文件路径,避免编译时产生的路径重复定义错误
// define HA_HBCONF_DIR "/usr/local/heartbeat/etc/ha.d/"
make && make install
glib2-devel.x86_64
glib2.x86_64
libxml2
libxml2-devel
Gcc-c++
Glibc
glibc-devel
glibc-headers
yum install mercurial