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

相关文章

Python获取中国节假日数据记录入JSON文件

《Python获取中国节假日数据记录入JSON文件》项目系统内置的日历应用为了提升用户体验,特别设置了在调休日期显示“休”的UI图标功能,那么问题是这些调休数据从哪里来呢?我尝试一种更为智能的方法:P... 目录节假日数据获取存入jsON文件节假日数据读取封装完整代码项目系统内置的日历应用为了提升用户体验,

MySQL双主搭建+keepalived高可用的实现

《MySQL双主搭建+keepalived高可用的实现》本文主要介绍了MySQL双主搭建+keepalived高可用的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、测试环境准备二、主从搭建1.创建复制用户2.创建复制关系3.开启复制,确认复制是否成功4.同

Spring Boot 配置文件之类型、加载顺序与最佳实践记录

《SpringBoot配置文件之类型、加载顺序与最佳实践记录》SpringBoot的配置文件是灵活且强大的工具,通过合理的配置管理,可以让应用开发和部署更加高效,无论是简单的属性配置,还是复杂... 目录Spring Boot 配置文件详解一、Spring Boot 配置文件类型1.1 applicatio

tomcat多实例部署的项目实践

《tomcat多实例部署的项目实践》Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,本文主要介绍了tomcat多实例部署的项目实践,具有一定的参考价值,感兴趣的可... 目录1.创建项目目录,测试文China编程件2js.创建实例的安装目录3.准备实例的配置文件4.编辑实例的

MySQL INSERT语句实现当记录不存在时插入的几种方法

《MySQLINSERT语句实现当记录不存在时插入的几种方法》MySQL的INSERT语句是用于向数据库表中插入新记录的关键命令,下面:本文主要介绍MySQLINSERT语句实现当记录不存在时... 目录使用 INSERT IGNORE使用 ON DUPLICATE KEY UPDATE使用 REPLACE

SpringBoot配置Ollama实现本地部署DeepSeek

《SpringBoot配置Ollama实现本地部署DeepSeek》本文主要介绍了在本地环境中使用Ollama配置DeepSeek模型,并在IntelliJIDEA中创建一个Sprin... 目录前言详细步骤一、本地配置DeepSeek二、SpringBoot项目调用本地DeepSeek前言随着人工智能技

Python 中的异步与同步深度解析(实践记录)

《Python中的异步与同步深度解析(实践记录)》在Python编程世界里,异步和同步的概念是理解程序执行流程和性能优化的关键,这篇文章将带你深入了解它们的差异,以及阻塞和非阻塞的特性,同时通过实际... 目录python中的异步与同步:深度解析与实践异步与同步的定义异步同步阻塞与非阻塞的概念阻塞非阻塞同步

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

通过Docker Compose部署MySQL的详细教程

《通过DockerCompose部署MySQL的详细教程》DockerCompose作为Docker官方的容器编排工具,为MySQL数据库部署带来了显著优势,下面小编就来为大家详细介绍一... 目录一、docker Compose 部署 mysql 的优势二、环境准备与基础配置2.1 项目目录结构2.2 基

CentOS 7部署主域名服务器 DNS的方法

《CentOS7部署主域名服务器DNS的方法》文章详细介绍了在CentOS7上部署主域名服务器DNS的步骤,包括安装BIND服务、配置DNS服务、添加域名区域、创建区域文件、配置反向解析、检查配置... 目录1. 安装 BIND 服务和工具2.  配置 BIND 服务3 . 添加你的域名区域配置4.创建区域