Centos下部署DRBD+NFS+Keepalived高可用环境记录

2023-10-21 04:58

本文主要是介绍Centos下部署DRBD+NFS+Keepalived高可用环境记录,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

使用NFS服务器(比如图片业务),一台为主,一台为备。通常主到备的数据同步是通过rsync来做(可以结合inotify做实时同步)。由于NFS服务是存在单点的,出于对业务在线率和数据安全的保障,可以采用"DRBD+NFS+Keepalived"架构来完成高可用方案部署。之前介绍了DRBD详细解说及配置过程记录,废话不多说了,基于之前的那篇文档的机器配置信息,以下记录部署过程:

思路:

1)在两台机器上安装keepalived,VIP为192.168.1.200

2)将DRBD的挂载目录/data作为NFS的挂载目录。远程客户机使用vip地址挂载NFS

3)当Primary主机发生宕机或NFS挂了的故障时,Secondary主机提权升级为DRBD的主节点,并且VIP资源也会转移过来。

   当Primary主机的故障恢复时,会再次变为DRBD的主节点,并重新夺回VIP资源。从而实现故障转移


Primary和Secondary两台主机的DRBD环境部署,参见https://blog.csdn.net/RustyChen/article/details/89076650

  

Primary主机(192.168.1.151)默认作为DRBD的主节点,DRBD挂载目录是/data

Secondary主机(192.168.1.152)是DRBD的备份节点

  

在Primary主机上查看DRBD状态,如下,可知Primary主机是DRBD的主节点

[root@Primary ~]# /etc/init.d/drbd status

drbd driver loaded OK; device status:

version: 8.3.16 (api:88/proto:86-97)

GIT-hash: a798fa7e274428a357657fb52f0ecf40192c1985 build by phil@Build64R6, 2014-11-24 14:51:37

m:res  cs         ro                 ds                 p  mounted  fstype

0:r0   Connected  Primary/Secondary  UpToDate/UpToDate  C  /data    ext4

  

如下,DRBD已完成挂载,挂载目录是/data

[root@Primary ~]# df -h

Filesystem            Size  Used Avail Use% Mounted on

/dev/mapper/VolGroup00-LogVol00

                      156G   36G  112G  25% /

tmpfs                 2.9G     0  2.9G   0% /dev/shm

/dev/vda1             190M   98M   83M  55% /boot

/dev/drbd0            9.8G   23M  9.2G   1% /data

  

DRBD数据如下

[root@Primary ~]# cd /data

[root@Primary data]# ll

total 16

-rw-r--r--. 1 root root 9 May 25 09:33 test3

-rw-r--r--. 1 root root 5 May 25 09:34 wangshibo

-rw-r--r--. 1 root root 5 May 25 09:34 wangshibo1

-rw-r--r--. 1 root root 5 May 25 09:34 wangshibo2

  

-----------------------------------------------------------------------------------------------------------

在Primary和Secondary两台主机上安装NFS(可以参考:http://www.cnblogs.com/kevingrace/p/6084604.html)

[root@Primary ~]# yum install rpcbind nfs-utils

[root@Primary ~]# vim /etc/exports

/data 192.168.1.0/24(rw,sync,no_root_squash)

  

[root@Primary ~]# /etc/init.d/rpcbind start

[root@Primary ~]# /etc/init.d/nfs start

---------------------------------------------------------------------------------------------------------

关闭两台主机的iptables防火墙

防火墙最好关闭,否则可能导致客户机挂载nfs时会失败!

若开启防火墙,需要在iptables中开放nfs相关端口机以及VRRP组播地址

[root@Primary ~]# /etc/init.d/iptables stop

 

两台机器上的selinux一定要关闭!!!!!!!!!!

否则下面在keepalived.conf里配置的notify_master.sh等脚本执行失败!这是曾经踩过的坑!

[root@Primary ~]# setenforce 0     //临时关闭。永久关闭的话,还需要在/etc/sysconfig/selinux 文件里将SELINUX改为disabled

[root@Primary ~]# getenforce

Permissive

-----------------------------------------------------------------------------------------------------------

在两台主机上安装Keepalived,配合keepalived实现自动fail-over

  

安装Keepalived

[root@Primary ~]# yum install -y openssl-devel popt-devel

[root@Primary ~]# cd /usr/local/src/

[root@Primary src]# wget http://www.keepalived.org/software/keepalived-1.3.5.tar.gz

[root@Primary src]# tar -zvxf keepalived-1.3.5.tar.gz

[root@Primary src]# cd keepalived-1.3.5

[root@Primary keepalived-1.3.5]# ./configure --prefix=/usr/local/keepalived

[root@Primary keepalived-1.3.5]# make && make install

        

[root@Primary keepalived-1.3.5]# cp /usr/local/src/keepalived-1.3.5/keepalived/etc/init.d/keepalived /etc/rc.d/init.d/

[root@Primary keepalived-1.3.5]# cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/

这篇关于Centos下部署DRBD+NFS+Keepalived高可用环境记录的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/252075

相关文章

centos7基于keepalived+nginx部署k8s1.26.0高可用集群

《centos7基于keepalived+nginx部署k8s1.26.0高可用集群》Kubernetes是一个开源的容器编排平台,用于自动化地部署、扩展和管理容器化应用程序,在生产环境中,为了确保集... 目录一、初始化(所有节点都执行)二、安装containerd(所有节点都执行)三、安装docker-

在Ubuntu上部署SpringBoot应用的操作步骤

《在Ubuntu上部署SpringBoot应用的操作步骤》随着云计算和容器化技术的普及,Linux服务器已成为部署Web应用程序的主流平台之一,Java作为一种跨平台的编程语言,具有广泛的应用场景,本... 目录一、部署准备二、安装 Java 环境1. 安装 JDK2. 验证 Java 安装三、安装 mys

Java汇编源码如何查看环境搭建

《Java汇编源码如何查看环境搭建》:本文主要介绍如何在IntelliJIDEA开发环境中搭建字节码和汇编环境,以便更好地进行代码调优和JVM学习,首先,介绍了如何配置IntelliJIDEA以方... 目录一、简介二、在IDEA开发环境中搭建汇编环境2.1 在IDEA中搭建字节码查看环境2.1.1 搭建步

Servlet中配置和使用过滤器的步骤记录

《Servlet中配置和使用过滤器的步骤记录》:本文主要介绍在Servlet中配置和使用过滤器的方法,包括创建过滤器类、配置过滤器以及在Web应用中使用过滤器等步骤,文中通过代码介绍的非常详细,需... 目录创建过滤器类配置过滤器使用过滤器总结在Servlet中配置和使用过滤器主要包括创建过滤器类、配置过滤

Jenkins中自动化部署Spring Boot项目的全过程

《Jenkins中自动化部署SpringBoot项目的全过程》:本文主要介绍如何使用Jenkins从Git仓库拉取SpringBoot项目并进行自动化部署,通过配置Jenkins任务,实现项目的... 目录准备工作启动 Jenkins配置 Jenkins创建及配置任务源码管理构建触发器构建构建后操作构建任务

在 VSCode 中配置 C++ 开发环境的详细教程

《在VSCode中配置C++开发环境的详细教程》本文详细介绍了如何在VisualStudioCode(VSCode)中配置C++开发环境,包括安装必要的工具、配置编译器、设置调试环境等步骤,通... 目录如何在 VSCode 中配置 C++ 开发环境:详细教程1. 什么是 VSCode?2. 安装 VSCo

正则表达式高级应用与性能优化记录

《正则表达式高级应用与性能优化记录》本文介绍了正则表达式的高级应用和性能优化技巧,包括文本拆分、合并、XML/HTML解析、数据分析、以及性能优化方法,通过这些技巧,可以更高效地利用正则表达式进行复杂... 目录第6章:正则表达式的高级应用6.1 模式匹配与文本处理6.1.1 文本拆分6.1.2 文本合并6

python与QT联合的详细步骤记录

《python与QT联合的详细步骤记录》:本文主要介绍python与QT联合的详细步骤,文章还展示了如何在Python中调用QT的.ui文件来实现GUI界面,并介绍了多窗口的应用,文中通过代码介绍... 目录一、文章简介二、安装pyqt5三、GUI页面设计四、python的使用python文件创建pytho

若依部署Nginx和Tomcat全过程

《若依部署Nginx和Tomcat全过程》文章总结了两种部署方法:Nginx部署和Tomcat部署,Nginx部署包括打包、将dist文件拉到指定目录、配置nginx.conf等步骤,Tomcat部署... 目录Nginx部署后端部署Tomcat部署出现问题:点击刷新404总结Nginx部署第一步:打包

Nginx、Tomcat等项目部署问题以及解决流程

《Nginx、Tomcat等项目部署问题以及解决流程》本文总结了项目部署中常见的four类问题及其解决方法:Nginx未按预期显示结果、端口未开启、日志分析的重要性以及开发环境与生产环境运行结果不一致... 目录前言1. Nginx部署后未按预期显示结果1.1 查看Nginx的启动情况1.2 解决启动失败的