注意:如果直接从文档中拷贝命令到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 firewalld
2.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/haresources
scp -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 秒,属于正常情况。
![]()
再把主节点打开,看是否能 重新接管 过来。
同步数据完成