DRBD
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DRBD相关的知识,希望对你有一定的参考价值。
DRBD
节点1:Server1.example.com 172.25.23.1
节点2:Server2.example.com 172.25.23.2
VIP:172.25.23.100
Selinux和iptables处于disabled状态 redhat 6.5版本
一.安装drbd
将源码做成rpm包 并安装
下载的安装包为drbd-8.4.2.tar.gz
[[email protected] ~]# yum install rpm-build -y #做rpm包的工具
[[email protected] ~]# tar zxf drbd-8.4.2.tar.gz
[[email protected] ~]# cd drbd-8.4.2
[[email protected] drbd-8.4.2]# ./configure --enable-spec --with-km(内核编译)
[[email protected] drbd-8.4.2]# yum install -y gcc flex#解决依赖性
[[email protected] drbd-8.4.2]# ./configure --enable-spec --with-km
#编译成功后生成三个文件 drbd.spec drbd-km.spec drbd-kernel.spec
[[email protected] drbd-8.4.2]# rpmbuild -bb drbd.spec
#编译生成drbd rpm包
cp ~/drbd-8.4.2.tar.gz /root/rpmbuild/SOURCES/
#在家目录生成 rpmbuild 编译所需路径 即将源代码拷到 rpmbuild的路径下
[[email protected] drbd-8.4.2]# rpmbuild -bb drbd.spec
[[email protected] drbd-8.4.2]# rpmbuild -bb drbd-km.spec
#编译生成drbd的内核模块
[[email protected] drbd-8.4.2]# yum install kernel-devel -y
#安装kernel-devel,再重新编译
[[email protected] drbd-8.4.2]# rpmbuild -bb drbd-km.spec
[[email protected] drbd-8.4.2]# cd /root/rpmbuild/RPMS/x86_64/
#生成的安装包在这里/root/rpmbuild/RPMS/x86_64/
[[email protected] x86_64]# rpm -ivh *
[[email protected] x86_64]# scp * 172.25.23.2:
#将生成的安装包复制到server2,并安装
二.配置drbd
1.serveer1 server2 上各新加一个磁盘4G的即可
2.编辑配置文件
[[email protected] x86_64]# cd /etc/drbd.d/
[[email protected] drbd.d]# cat /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"; #配置文件都是以res结尾
[[email protected] drbd.d]# vim example.res
# device /dev/drbd1 设备/dev/drbd1,名称必须是drbd*
# disk /dev/vda 为新增的磁盘名称
[[email protected] drbd.d]# scp example.res [email protected]:/etc/drbd.d/
3. 创建
[[email protected] drbd.d]# drbdadm create-md example
# example是配置文件中的资源名
......
[[email protected]2 drbd.d]# drbdadm create-md example
4.启动,设置主从
[[email protected] x86_64]# /etc/init.d/drbd start
# server2也同时启动,不然server1会一直等待,直到另外一个主机开启服务为止
# 刚启动的设备都是secondary且没有建立连接inconsistent
[[email protected] x86_64]# drbdadm primary example --force
# 强制将该设备设为primary,两边会开始同步
[[email protected] x86_64]# watch cat /proc/drbd
# 可查看两边同步的进度
5.挂载测试
# 只能格式化/dev/drbd1 并只用在主设备格式化
[[email protected] ~]# mkfs.ext4 /dev/drbd1
[[email protected] ~]# mount /dev/drbd1 /mnt
[[email protected] ~]# cd /mnt
[[email protected] mnt]# cp /etc/passwd /mnt
[[email protected] ~]# umount /mnt
[[email protected]2 ~]# mount /dev/drbd1 /mnt
# 两台设备不能同时挂载,并且只能在primary上挂载
[[email protected] ~]# drbdadm secondary example
# 将server1设为secondary
[[email protected]2 ~]# drbdadm primary example
# server2设为primary ,再次挂载,成功
[[email protected]2 ~]# mount /dev/drbd1 /mnt
[[email protected]2 ~]# cd /mnt
# 可以看到在server1挂载时添加的数据,若再将server2 设为secondary , server1设为primary , 再挂载,会看到在server2中修改的数据。确定数据可以同步。
6.常见的任务管理语句
drbd-overview #查看状态
drbdadm down example
drbdadm up example
drbdadm disconnect example
drbdadm connect example
drbdadm connect --discard-my-data example #放弃数据,连接
三.把drbd挂载到httpd默认发布目录上(drbd+heartbeat)
1.编写配置文件
[[email protected] ~]# /etc/init.d/heartbeat stop
[[email protected] ~]# cd /etc/ha.d
[[email protected] ha.d]# vim haresources
server1.example.com #主节点,两边都是主节点的主机名
IPaddr::172.25.23.100/24/eth0 #vip
drbddisk::example #因为只有primary才能挂载,转换身份为primary
Filesystem::/dev/drbd1::/var/www/html #挂载点
httpd #服务
[[email protected] ha.d]# scp haresources 172.25.23.2:/etc/ha.d
[[email protected] ~]# etc/init.d/heartbeat start
[[email protected] ~]# echo www.example.com > /var/www/html/index.html
2.测试
[[email protected] ~]# curl localhost
#会自动挂载
[[email protected] ~]# /etc/init.d/heartbeat stop
#发现已经卸载,并在server2上发现挂载
[[email protected] ~]# /etc/init.d/heartbeat start
#重新挂载到server1上
本文出自 “11841085” 博客,转载请与作者联系!
以上是关于DRBD的主要内容,如果未能解决你的问题,请参考以下文章