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

相关文章

通过Docker容器部署Python环境的全流程

《通过Docker容器部署Python环境的全流程》在现代化开发流程中,Docker因其轻量化、环境隔离和跨平台一致性的特性,已成为部署Python应用的标准工具,本文将详细演示如何通过Docker容... 目录引言一、docker与python的协同优势二、核心步骤详解三、进阶配置技巧四、生产环境最佳实践

Nginx部署HTTP/3的实现步骤

《Nginx部署HTTP/3的实现步骤》本文介绍了在Nginx中部署HTTP/3的详细步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录前提条件第一步:安装必要的依赖库第二步:获取并构建 BoringSSL第三步:获取 Nginx

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

redis-sentinel基础概念及部署流程

《redis-sentinel基础概念及部署流程》RedisSentinel是Redis的高可用解决方案,通过监控主从节点、自动故障转移、通知机制及配置提供,实现集群故障恢复与服务持续可用,核心组件包... 目录一. 引言二. 核心功能三. 核心组件四. 故障转移流程五. 服务部署六. sentinel部署

Linux部署中的文件大小写问题的解决方案

《Linux部署中的文件大小写问题的解决方案》在本地开发环境(Windows/macOS)一切正常,但部署到Linux服务器后出现模块加载错误,核心原因是Linux文件系统严格区分大小写,所以本文给大... 目录问题背景解决方案配置要求问题背景在本地开发环境(Windows/MACOS)一切正常,但部署到

Java 与 LibreOffice 集成开发指南(环境搭建及代码示例)

《Java与LibreOffice集成开发指南(环境搭建及代码示例)》本文介绍Java与LibreOffice的集成方法,涵盖环境配置、API调用、文档转换、UNO桥接及REST接口等技术,提供... 目录1. 引言2. 环境搭建2.1 安装 LibreOffice2.2 配置 Java 开发环境2.3 配

基于Spring Boot 的小区人脸识别与出入记录管理系统功能

《基于SpringBoot的小区人脸识别与出入记录管理系统功能》文章介绍基于SpringBoot框架与百度AI人脸识别API的小区出入管理系统,实现自动识别、记录及查询功能,涵盖技术选型、数据模型... 目录系统功能概述技术栈选择核心依赖配置数据模型设计出入记录实体类出入记录查询表单出入记录 VO 类(用于

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.

使用IDEA部署Docker应用指南分享

《使用IDEA部署Docker应用指南分享》本文介绍了使用IDEA部署Docker应用的四步流程:创建Dockerfile、配置IDEADocker连接、设置运行调试环境、构建运行镜像,并强调需准备本... 目录一、创建 dockerfile 配置文件二、配置 IDEA 的 Docker 连接三、配置 Do