之前讲了rsync及其组合:rsync+inotify和rsync+sersync,这些是基于文件复制了,文件一多会卡,还会挂掉。所以也有不少运维选择drbd

centos8 安装drbd

centos8 drbd安装为,打开 ​​http://mirror.rackspace.com/elrepo/elrepo/el8/x86_64/RPMS/​​  搜索 el8.elrepo.noarch.rpm

hualinux2.12 环境搭建:drbd安装_服务器

这样找到最新版本的安装包即可,在这里是 ​​elrepo-release-8.1-1.el8.elrepo.noarch.rpm​

安装方式如下:

#如果不能下载就直接用手工点击下载
wget http://mirror.rackspace.com/elrepo/elrepo/el8/x86_64/RPMS/elrepo-release-8.1-1.el8.elrepo.noarch.rpm
dnf install -y elrepo-release-8.1-1.el8.elrepo.noarch.rpm
dnf install -y drbd90-utils kmod-drbd90

drdb安装

下面我用centos6.5方式安装,理论上也会适合于centos8,只不过把centos6的drbd yum方式改为上面centos8安装方式而已

 

一、安装说明

1.1 环境

centos6.5 64位2台:
主机名    IP地址(外网)    IP地址(内网)    说明
vm5    192.168.0.75    192.168.3.75    主服务器
vm6    192.168.0.76    192.168.3.76    从服务器

#软件版本:drbd8.4.9(yum安装)

#绑定hosts,注:127.0.0.1中localhost.localdomain不能为vm5或vm6

[root@vm5 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.3.75 vm5
192.168.3.76 vm6

[root@vm6 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.3.75 vm5
192.168.3.76 vm6

1.2 主库服务器数据分区信息

添加一个新磁盘

磁盘    容量    分区         挂载点    说明
/dev/sdb 10G /dev/sdb1(8G) /drbd1 存放数据
/dev/sdb2(2G) metadata分区,存放drbd同步的状态信息

注意
1、metadata分区一定不能格式化建立文件系统(sdb2存放drbd同步的状态信息)
2、分好的分区不要进行挂载
3、生产环境DRBDmetadata分区一般可设置为1-2G,数据分区看需求给最大
4、在生产环境中两块硬盘一样大

1.3 格式化/dev/sdb

#分2个分区
fdisk /dev/sdb

#只格式化/dev/sdb1,没有进行挂载,如果是centos则格式化为xfs
mkfs.ext4 /dev/sdb1

 

二、DRBD安装及配置(主从配置一样)

2.1 安装elrepo源以便yum drbd

#如是centos8安装见前面所说的
rpm -Uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm

#centos8不用升级
#升级内核,如果不升级 modprobe drdb报错“FATAL: Module drdb not found.”
yum install kernel-devel kernel kernel-deaders -y
#升级完重启
shutdown -r now

#官方安装文档http://docs.linbit.com/docs/users-guide-8.4/p-build-install-configure/
yum -y install drbd84-utils kmod-drbd84
ls -ld /usr/src/kernels/$(uname -r)/

#安装完后重启,如果报错再重启多一次
modprobe drbd
lsmod |grep drbd

#设置开机启动
echo 'modprobe drbd'>>/etc/rc.local
tail -1 /etc/rc.local

2.2 修改global_common.conf配置

cd /etc/drbd.d/
cp global_common.conf global_common.conf.orig

vim global_common.conf
global {
usage-count no;
}

common {
protocol C;
handlers {
#去掉下面行注解行
# pri-on-incon-degr
# pri-lost-after-sb
# local-io-error


disk {
on-io-error detach;
#size 7G;
}

net {
cram-hmac-alg "sha1";
shared-secret "drbd";
}

syncer {
# drbd设备同步速率
rate 1000M;
}

2.3 .创建资源文件r0

[root@vm5 ~]# cat /etc/drbd.d/r0.res
resource r0 {
on vm5 {
device /dev/drbd1;
disk /dev/sdb1;
address 192.168.3.75:7789;
meta-disk /dev/sdb2 [0];
}
on vm6 {
device /dev/drbd1;
disk /dev/sdb1;
address 192.168.3.76:7789;
meta-disk /dev/sdb2 [0];
}
}

2.4 初始化meta分区

drbdadm create-md r0

2.5 启动drdb

service drbd star

#查看状态
cat /proc/drbd
drbd-overview

#查看日志
tail /var/log/messages

2.6 设置为主节点(从库vm6不用配置)

drbdsetup primary /dev/drbd1 --force
drbd-overview

2.7 挂载drbd分区(从库vm6不用挂载)

#注意,只有primary端才可以格式化,要不报如下错误
#mkfs.ext4: 错误的介质类型 while trying to determine filesystem size
#如果已有数据的分区,千万别格式化!!因为已经格式化过了,如果再格式化数据就没了!
#mkfs.ext4 /dev/drbd1

mkdir /drbd
mount /dev/drbd1 /drbd/
df -h