存储高可用 -- DRBD 环境部署(Primary/Secondary)

一、部署 DRBD

1、环境准备

node01、node02

  • Centos-7.8
  • cup:1
  • mem:1G
  • disk: 20G、10G

2、环境配置

配置 hosts 解析

---node01
[root@node01 ~]# vim /etc/hosts +
192.168.5.11 node01
192.168.5.12 node02
---node02
[root@node02 ~]# vim /etc/hosts +
192.168.5.11 node01
192.168.5.12 node02

配置 主机间免秘钥互信

---node01
[root@node01 ~]# ll ~/.ssh/
total 16
-rw------- 1 root root  786 Mar  8 10:05 authorized_keys
-rw------- 1 root root 1675 Mar  8 10:05 id_rsa
-rw-r--r-- 1 root root  393 Mar  8 10:05 id_rsa.pub
-rw-r--r-- 1 root root  362 Mar  8 10:05 known_hosts
[root@node01 ~]# ssh-copy-id node01
[root@node01 ~]# ssh-copy-id node02

---node02
[root@node02 ~]# ssh-keygen -f ~/.ssh/id_rsa -P '' -q
[root@node02 ~]# ll ~/.ssh/
total 8
-rw------- 1 root root 1675 Mar  8 10:01 id_rsa
-rw-r--r-- 1 root root  393 Mar  8 10:01 id_rsa.pub
[root@node02 ~]# ssh-copy-id node01
[root@node02 ~]# ssh-copy-id node02

3、部署 DRDB

配置 yum 安装源

---node01
[root@node01 ~]# vim /etc/yum.repos.d/drbd84.repo
[brdb84]
name=drbd84
baseurl=https://mirrors.tuna.tsinghua.edu.cn/elrepo/elrepo/el7/x86_64/
gpgcheck=0

[root@node01 ~]# yum list | grep drbd
collectd-drbd.x86_64                      5.8.1-1.el7                  epel     
drbd.x86_64                               9.15.1-2.el7                 epel     
drbd-bash-completion.x86_64               9.15.1-2.el7                 epel     
drbd-pacemaker.x86_64                     9.15.1-2.el7                 epel     
drbd-rgmanager.x86_64                     9.15.1-2.el7                 epel     
drbd-udev.x86_64                          9.15.1-2.el7                 epel     
drbd-utils.x86_64                         9.15.1-2.el7                 epel     
drbd-xen.x86_64                           9.15.1-2.el7                 epel     
drbd84-utils.x86_64                       9.12.2-1.el7.elrepo          brdb84   
drbd84-utils-sysvinit.x86_64              9.12.2-1.el7.elrepo          brdb84   
drbd90-utils.x86_64                       9.12.2-1.el7.elrepo          brdb84   
drbd90-utils-sysvinit.x86_64              9.12.2-1.el7.elrepo          brdb84   
drbdlinks.noarch                          1.29-1.el7                   epel     
kmod-drbd84.x86_64                        8.4.11-1.2.el7_8.elrepo      brdb84   
kmod-drbd90.x86_64                        9.0.22-3.el7_9.elrepo        brdb84

---node02
---node02
[root@node012~]# vim /etc/yum.repos.d/drbd84.repo
[brdb84]
name=drbd84
baseurl=https://mirrors.tuna.tsinghua.edu.cn/elrepo/elrepo/el7/x86_64/
gpgcheck=0

[root@node02 ~]# yum list | grep drbd
collectd-drbd.x86_64                      5.8.1-1.el7                  epel     
drbd.x86_64                               9.15.1-2.el7                 epel     
drbd-bash-completion.x86_64               9.15.1-2.el7                 epel     
drbd-pacemaker.x86_64                     9.15.1-2.el7                 epel     
drbd-rgmanager.x86_64                     9.15.1-2.el7                 epel     
drbd-udev.x86_64                          9.15.1-2.el7                 epel     
drbd-utils.x86_64                         9.15.1-2.el7                 epel     
drbd-xen.x86_64                           9.15.1-2.el7                 epel     
drbd84-utils.x86_64                       9.12.2-1.el7.elrepo          brdb84   
drbd84-utils-sysvinit.x86_64              9.12.2-1.el7.elrepo          brdb84   
drbd90-utils.x86_64                       9.12.2-1.el7.elrepo          brdb84   
drbd90-utils-sysvinit.x86_64              9.12.2-1.el7.elrepo          brdb84   
drbdlinks.noarch                          1.29-1.el7                   epel     
kmod-drbd84.x86_64                        8.4.11-1.2.el7_8.elrepo      brdb84   
kmod-drbd90.x86_64                        9.0.22-3.el7_9.elrepo        brdb84

安装 DRDB

[root@node01 ~]# yum install drbd84-utils kmod-drbd84 -y
[root@node02 ~]# yum install drbd84-utils kmod-drbd84 -y

配置 lvm

---node01
[root@node01 ~]# pvcreate /dev/sdb
[root@node01 ~]# vgcreate data /dev/sdb
[root@node01 ~]# lvcreate --size 2G --name share data

---node02
[root@node02 ~]# pvcreate /dev/sdb
[root@node02 ~]# vgcreate data /dev/sdb
[root@node02 ~]# lvcreate --size 2G --name share data

修改全局配置文件

[root@node01 ~]# vim /etc/drbd.d/global_common.conf
global {
	usage-count no;
	udev-always-use-vnr; # treat implicit the same as explicit volumes
}

common {
	protocol C;
	handlers {
		pri-on-incon-degr "/usr/lib/drbd/notify-pri-on-incon-degr.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f";
		pri-lost-after-sb "/usr/lib/drbd/notify-pri-lost-after-sb.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f";
		local-io-error "/usr/lib/drbd/notify-io-error.sh; /usr/lib/drbd/notify-emergency-shutdown.sh; echo o > /proc/sysrq-trigger ; halt -f";
		fence-peer "/usr/lib/drbd/crm-fence-peer.sh";
		split-brain "/usr/lib/drbd/notify-split-brain.sh root";
		out-of-sync "/usr/lib/drbd/notify-out-of-sync.sh root";
	}

	startup {
	}

	options {
	}

	disk {
		on-io-error detach;
	}

	net {
		cram-hmac-alg "sha1";
		shared-secret "nfs-HA";
		allow-two-primaries;
	}
		syncer { rate 1000M; }
}

配置资源文件

[root@node01 ~]# vim /etc/drbd.d/data.res
resource data {
  prosource C;
  meta-disk internal;
  device /dev/drbd1;
  disk /dev/data/share;
  syncer {
    verify-alg sha1;
  }
  
  on node1 {
        address 192.168.5.11:7789;
  }
  
  on node2 {
        address 192.168.5.12:7789;
  }
}
[root@node01 ~]# scp -rp  /etc/drbd.d/* node02:/etc/drbd.d/
data.res                                                                   100%  231   315.0KB/s   00:00    
global_common.conf                                                         100% 2768     2.4MB/s   00:00  

加载模块

---node01
[root@node01 ~]# yum -y install kernel-devel kernel kernel-headers
[root@node01 ~]# reboot
[root@node01 ~]# modprobe drbd
[root@node01 ~]# lsmod |grep drbd
drbd                  397041  0 
libcrc32c              12644  2 xfs,drbd

---node02
[root@node02 ~]# yum -y install kernel-devel kernel kernel-headers
[root@node02 ~]# reboot
[root@node02 ~]# modprobe drbd
[root@node02 ~]# lsmod |grep drbd
drbd                  397041  0 
libcrc32c              12644  2 xfs,drbd

启动 DRBD

---node01
[root@node01 ~]# drbdadm create-md data
[root@node01 ~]# drbdadm up data
[root@node01 ~]# drbdadm -- --force primary data

--node02
[root@node02 ~]# drbdadm create-md data
[root@node02 ~]# drbdadm up data

追踪 DRBD 同步情况
在这里插入图片描述
node01 查看主从状态
在这里插入图片描述
node02 查看主从状态
在这里插入图片描述
使用 DRBD 存储

格式化 DRBD

[root@node01 ~]# mkfs.xfs /dev/drbd1
[root@node01 ~]# mkdir data
[root@node01 ~]# mount /dev/drbd1 data

查看挂载
在这里插入图片描述

二、DRBD 裂脑解决办法

1、裂脑产生

模拟裂脑产生

[root@node01 ~]# drbdadm role data
Primary/Secondary
[root@node01 ~]# ifconfig ens33 down
[root@node01 ~]# ifconfig ens33 up

node01
在这里插入图片描述
node02
在这里插入图片描述

2、DRBD 裂脑解决办法

解决办法

---node02
[root@node02 ~]# drbdadm disconnect data
[root@node02 ~]# drbdadm role data
Primary/Unknown
[root@node02 ~]# drbdadm secondary data
[root@node02 ~]# drbdadm role data
Secondary/Unknown
[root@node02 ~]# drbdadm connect --discard-my-data data
[root@node02 ~]# drbdadm role data

---node01
[root@node01 ~]# drbdadm connect data

查看 DRBD 状态
ndoe01
在这里插入图片描述
node02
在这里插入图片描述
故障恢复!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值