Centos 7.4 Heartbeat DRBD NFS 存储高可用

注意:如果直接从文档中拷贝命令到linux执行报错,先拷贝到文本文件,再从文本文件拷贝到linux 就不会报错这是由于word格式造成的。

一、环境准备
操作系统:Centos 7.4 最小化安装
硬盘:两块
网卡:两块 Net8 Net1
IP 主机 规划:二、基本配置
2.1、IP 配置,两块网卡都配置成静态地址,ens37(192.168.229.)用于心跳线和数据同步,只需要配置IP 、掩码,不需要配置网关,DNS。
2.2、关闭 selinux 防火墙 两台主机上都要操作
systemctl stop firewalld
systemctl disable firewalld2.3、修改hosts文件。 两台主机上都要操作
cat >>/etc/hosts<<eof
192.168.229.41 data-11
192.168.229.42 data-22
eof
添加去往各自对端 229网段的路由。



三、安装Heartbeat
3.1、安装依赖包 两台主机上都要操作
yum install gcc gcc-c++ autoconf automake libtool glib2-devel libxml2-devel bzip2 bzip2-devel e2fsprogs-devel libxslt-devel libtool-ltdl-devel asciidoc vim lrzsz wget –y
3.2、进入/opt/ 目录,下载安装包到此,并解压。两台主机上都要操作
wget http://hg.linux-ha.org/heartbeat-STABLE_3_0/archive/958e11be8686.tar.bz2
wget http://hg.linux-ha.org/glue/archive/0a7add1d9996.tar.bz2
wget https://github.com/ClusterLabs/resource-agents/archive/v3.9.6.tar.gz
tar jxvf 0a7add1d9996.tar.bz2
tar jxvf 958e11be8686.tar.bz2
tar zxvf v3.9.6.tar.gz
3.3、安装组件,以上组件必须要安装在同一个目录。两台主机上都要操作
注意安装顺序
cd /opt/Reusable-Cluster-Components-glue--0a7add1d9996
./autogen.sh
./configure --prefix=/usr/local/heartbeat --enable-fatal-warnings=no LIBS='/lib64/libuuid.so.1'
make && make install
cd /opt/resource-agents-3.9.6/
./autogen.sh
./configure --prefix=/usr/local/heartbeat --enable-fatal-warnings=no LIBS='/lib64/libuuid.so.1'
make && make install
export CFLAGS="$CFLAGS -I/usr/local/heartbeat/include -L/usr/local/heartbeat/lib"
cd /opt/Heartbeat-3-0-958e11be8686
./bootstrap
./configure --prefix=/usr/local/heartbeat --enable-fatal-warnings=no LIBS='/lib64/libuuid.so.1'
make && make install
3.4、拷贝文件 两台主机上都要操作。
cp doc/{ha.cf,haresources,authkeys} /usr/local/heartbeat/etc/ha.d/
chmod 600 /usr/local/heartbeat/etc/ha.d/authkeys
chkconfig heartbeat on
mkdir -pv /usr/local/heartbeat/usr/lib/ocf/lib/heartbeat/
cp /usr/lib/ocf/lib/heartbeat/ocf-* /usr/local/heartbeat/usr/lib/ocf/lib/heartbeat/
ln -svf /usr/local/heartbeat/lib64/heartbeat/plugins/* /usr/local/heartbeat/lib/heartbeat/plugins/
3.5、修改配置文件 两台主机上都要操作。
data-11 主机上修改配置文件ha.cf


data-22 主机上修改配置文件ha.cf

修改 haresource ,两台主机上这个配置文件一样,修改好一台,直接把配置文件拷贝到对端。



修改认证文件,同样一端修改完后,拷贝到对端。




systemctl start heartbeat
先启动 data-11 上面的heartbeat 再启动 data-22 上面的heartbeat
查看VIP有无生成
 四、安装DRBD
4.1、对第二块硬盘进行分区。 同样,两台NFS主机上都做相同操作。
parted /dev/sdb mklabel gpt   #转换成gpt分区
parted /dev/sdb mkpart primary 0 8192   #划分主分区,默认单位是M
parted /dev/sdb mkpart primary 8193 10240
parted /dev/sdb p   #显示分区
在工作中,sdb2 用于meta 分区,meta 分区是一个状态信息,不需要特别大。

4.2、安装依赖包 两台主机上都要操作。
yum -y install gcc gcc-c++ psmisc kernel kernel-devel kernel-headers flex make
安装完成后,重启系统。
4.3、更新yum 源 两台主机上都要操作。
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
yum install -y kmod-drbd84 drbd84-utils
4.4、拷贝脚本文件到 /usr/local/heartbeat/etc/ha.d/resource.d/ 两台主机上都要执行
cd /etc/ha.d/resource.d
cp -a ./* /usr/local/heartbeat/etc/ha.d/resource.d/
modprobe drbd
4.5、修改配置文件
vim /etc/drbd.conf
global {
usage-count no;
}
common {
protocol C;
disk {
on-io-error detach;
no-disk-flushes;
no-md-flushes;
}
net {
sndbuf-size 512k;
max-buffers 8000;
unplug-watermark 1024;
max-epoch-size 8000;
cram-hmac-alg "sha1";
shared-secret "hdhwXes23sYEhart8t";
after-sb-0pri disconnect;
after-sb-1pri disconnect;
after-sb-2pri disconnect;
rr-conflict disconnect;
}
syncer {
rate 330M;
al-extents 517;
}
}
resource data {
on data-11 {
device /dev/drbd0;
disk /dev/sdb1;
address 192.168.229.41:6976;
meta-disk /dev/sdb2 [0];
}
on data-22 {
device /dev/drbd0;
disk /dev/sdb1;
address 192.168.229.42:6976;
meta-disk /dev/sdb2 [0];
}
}
4.6、初始化DRBD
初始化 meta 分区 两台主机上都要操作
4.6.1、data-11 主机上执行
drbdadm create-md data
drbdadm up data
4.6.2、data-22 主机上执行
drbdadm create-md data
drbdadm up data
4.6.3、再在 hb01 上操作
drbdadm -- --overwrite-data-of-peer primary data #设置 hb01 为主
查看数据同步状态
cat /proc/drbd #两台主机上都可以查看同步状态。
同步完成后,在 hb01 查看DRBD 状态 primary/secondary 正常,反之有问题。



4.7、格式化drbd,创建挂载文件夹,并授权,在主上 挂载 drbd 。两台主机上都要操作。
mkfs.ext4 –b 4096 /dev/drbd0 #(配置文件中的drbd0 对应的是/dev/sdb1)
创建挂载目录,授权,在 data-11 (主)上挂载drbd
mkdir –p /data/nfs
chmod 777 /data/nfs
mount /dev/drbd0 /data/nfs # 只在主节点上挂载,备节点上不需要挂载。
4.8、修改heartbeat 的配置文件
vim /usr/local/heartbeat/etc/ha.d/haresourcesscp -r /usr/local/heartbeat/etc/ha.d/haresources @192.168.189.42:/usr/local/heartbeat/etc/ha.d/
重启heartbeat
systemctl restart heartbeat

五、安装NFS
5.1、两台 主机上都安装 nfs rpcbind
yum install nfs-utils rpcbind –y
5.2、修改nfs 配置文件,发布共享目录。 两台主机上都要操作。
vim /etc/exports

5.3、启动服务,设置成开机启动。两台主机都要操作。
systemctl start rpcbind
systemctl start nfs
systemctl enable rpcbind
systemctl enable nfs
5.4、添加自动切换NFS存储的 脚本。
vim /usr/local/heartbeat/etc/ha.d/resource.d/killnfsd # 注意 脚本存放的位置

拷贝脚本到 对端主机相应位置。
5.5、再次修改两台主机的heartbeat 的 haresources 配置文件。
cd /usr/local/heartbeat/etc/ha.d
vim haresources
scp -r haresources @192.168.189.42:/usr/local/heartbeat/etc/ha.d/
重启 heartbeat 服务
5.6、修改配置 /etc/rc.local 文件,把开机需要启动的相应服务写在里面。 两台主机上都执行。chmod +x /etc/rc.d/rc.local
vim /etc/rc.local




5.7、测试,主备节点能否自动接管,以及数据写入是否正常。 
 客户端挂载






关机 data-11(主),查看 备节点data-22是否会自动接管NFS存储 ,以及客户端写的时候的情况。







在写数据的时候,备节点接管 主 ,需要 30 秒,属于正常情况。



再把主节点打开,看是否能 重新接管 过来。

同步数据完成