百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

使用DRBD配置和挂载OCFS2文件系统

mhr18 2025-02-17 13:07 30 浏览 0 评论

这次专门整理下多节点共享文件系统

背景

之前曾经安装过 Oracle RAC, 申请了多余的共享磁盘,配置了一下 OCFS2 系统, 挂载到所有节点,用于存放数据库备份, 这样的话, 备份的内容所有节点都可见。 当然了使用 Oracle ASM 的ACFS也行(以前做过,没记录,有空了再整理)。

这次呢,又一个新地方部署了同一个版本的RAC, 也想用相同方式,但在配置 OCFS2 的步骤 o2cb.init configure 步骤竟然报错,卡住了,时间比较紧, 最后,换 xfs 格式,只挂载在其中一个节点用于备份。

离开之后, 复盘了下原因, 是因为之前成功的 OCFS2 配置是在Oracle Linux 7 操作系统上,默认是 uek 内核启动, 默认是支持 OCFS2 文件系统的。 而我们这次呢,是 Redhat7 , 默认是不支持 OCFS2 文件系统的。

今天,主要分享DRBD使用本地磁盘同步来配置OCFS2共享文件系统

DRBD是一个用软件实现的、无共享的、服务器之间镜像块设备内容的存储复制解决方案。这就不多说了,出现很多年了,没钱买高大上硬件存储之前,一种廉价的高可用磁盘同步方案,但用起来真的不错。


日期: 2023-05-23

1 测试环境

oracle linux 7.9 (uek)测试组: 2台 使用 本地磁盘 无共享磁盘

2 准备工作

创建逻辑卷 /dev/vg1/lv1 和 /dev/vg1/lv2

#2个节点都是本地磁盘,创建lvm逻辑卷
pvcreate /dev/sdb
vgcreate vg1 /dev/sdb
lvcreate -n lv1 -l 40%VG vg1
lvcreate -n lv2 -l 40%VG vg1
ll /dev/vg1

3 主机配置 未特别指明,则所有节点都要执行

hostnamectl set-hostname db01 #主机1执行,设置主机名称
hostnamectl set-hostname db02 #主机2执行,设置主机名称

#关闭seliux, 防火墙允许drbd和ocfs端口
firewall-cmd --permanent --add-port=7788/tcp --add-port=7789/tcp --add-port=7777/tcp && firewall-cmd --reload && firewall-cmd --permanent --list-all
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config ; sed -i "s/SELINUX=permissive/SELINUX=disabled/g" /etc/selinux/config
setenforce 0

#安装软件包
yum -y install http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
yum -y install drbd90-utils kmod-drbd90
systemctl enable drbd --now
lsmod |grep drbd

#配置drbd
cat > /etc/drbd.d/global_common.conf << EOF
global {
usage-count no;
}
common {
net {
protocol C;
}
}
EOF

#drbd1不允许双主
cat > /etc/drbd.d/drbd1.res << EOF
resource drbd1 {
disk /dev/vg1/lv1;
device /dev/drbd1;
meta-disk internal;
on db01 {
address 192.168.55.144:7788;
}
on db02 {
address 192.168.55.185:7788;
}
}
EOF

#drbd2允许双主
cat > /etc/drbd.d/drbd2.res << EOF
resource drbd2 {
net {
allow-two-primaries;
}
disk /dev/vg1/lv2;
device /dev/drbd2;
meta-disk internal;
on db01 {
address 192.168.55.144:7789;
}
on db02 {
address 192.168.55.185:7789;
}
}
EOF

drbdadm create-md drbd1 #初始化资源
drbdadm up drbd1 #启动资源
drbdadm primary drbd1 --force #节点1执行 设置主设备
drbdadm role drbd1 #查看资源角色 此时是主从
drbdadm status drbd1 #查看状态
drbdsetup status drbd1 --verbose --statistics #查看同步状态
drbdadm create-md drbd2 #初始化资源
drbdadm up drbd2 #启动资源
drbdadm primary drbd2 --force #节点1执行 设置主设备
drbdadm primary drbd2 #节点2执行 设置主设备
drbdadm role drbd2 #查看资源角色 此时是双主架构
drbdadm status drbd2 #查看状态
drbdsetup status drbd2 --verbose --statistics #查看同步状态

#以下是测试 drbd1 主从,顺带测试 和ocfs2没关系
#节点1执行
parted /dev/drbd1 mklabel gpt
parted /dev/drbd1 mkpart p1 ext4 1 100%
mkfs.xfs /dev/drbd1 -f
mkdir /u01 && mount /dev/drbd1 /u01
date > /u01/test ; cat /u01/test
umount /u01
drbdadm secondary drbd1
echo '[ "$(drbdadm role drbd1)" = "Secondary/Secondary" ] && drbdadm primary drbd1 ; sleep 10 ; [ "$(drbdadm role drbd1)" = "Primary/Secondary" ] && mount /dev/drbd1 /u01' >> /etc/rc.local #持久化磁盘挂载
#节点2执行
drbdadm primary drbd1
mkdir /u01 && mount /dev/drbd1 /u01
cat /u01/test
echo '[ "$(drbdadm role drbd1)" = "Primary/Secondary" ] && mount /dev/drbd1 /u01' >> /etc/rc.local #持久化磁盘挂载

#测试结果: 主从同步没问题,主可以挂载,任何修改会同步到从,可以角色切换,将从升为主,挂载

4 ocfs2配置

注意 name 要和机器 hostname 一致

yum -y install ocfs2-tools
yum -y install ocfs2-tools-devel #linux 7 only
[ -d /etc/ocfs2 ] || mkdir -p /etc/ocfs2
cat >/etc/ocfs2/cluster.conf <> /etc/rc.local

测试

#在crontab job中添加如下内容
* * * * * echo ${HOSTNAME} $(date) >> /u02/test.log

结论

可以同时挂载,2节点都可以写入数据并互相可见

关机, 重启均按照指令执行,没有问题

5 其他 drbd 命令

#查看同步
drbdadm status drbd1
drbdsetup status drbd1 --verbose --statistics
#查看和切换资源角色
drbdadm role drbd1
drbdadm primary drbd1
drbdadm secondary drbd1
#查看资源状态
drbdadm dstate drbd1
drbdadm cstate drbd1
#脑裂
1. 从节点
drbdadm secondary drbd1
drbdadm -- --discard-my-data connect drbd1
2. 主节点
drbdadm connect drbd1

相关推荐

甲骨文签署多项大型云协议,其一未来可贡献超300亿美元年收入

IT之家7月1日消息,根据甲骨文Oracle当地时间6月30日向美国证券交易委员会(SEC)递交的FORM8-K文件,该企业在始于2025年6月1日的202...

甲骨文获TEMU巨额合同,后者大部分基础设施将迁移至Oracle云

IT之家6月23日消息,Oracle甲骨文创始人、董事长兼首席技术官LarryEllison(拉里埃里森)在本月早些时候的2025财年第四财季和全财年财报电话会议上表示,Oracle...

Spring Boot 自定义数据源设置,这些坑你踩过吗?

你在使用SpringBoot进行后端开发的过程中,是不是也遇到过这样的问题:项目上线后,数据库连接总是不稳定,偶尔还会出现数据读取缓慢的情况,严重影响了用户体验。经过排查,发现很大一部分原因竟然...

一个开箱即用的代码生成器(一个开箱即用的代码生成器是什么)

今天给大家推荐一个好用的代码生成器,名为renren-generator,该项目附带前端页面,可以很方便的选择我们所需要生成代码的表。首先我们通过git工具克隆下来代码(地址见文末),导入idea。...

低代码建模平台-数据挖掘平台(低代码平台的实现方式)

现在来看一下数据连接。·这里是管理数据连接的空间,点击这里可以新增一个数据连接。·输入连接名称,然后输入url,是通过gdbc的方式去连接的数据库,目前是支持mysql、oracle以及国产数据库达梦...

navicat 17.2.7连接oracle数据库提示加载oracle库失败

系统:macOS15.5navicat版本:navicatpremiumlite17.2.7连接oracle测试报错:加载oracle库失败【解决办法】:放达里面找到程序,显示简介里面勾选“使...

开源“Windows”ReactOS更新:支持全屏应用

IT之家6月17日消息,ReactOS团队昨日(6月16日)在X平台发布系列推文,公布了该系统的最新进展,包括升级Explorer组件,支持全屏应用,从Wine项目引入了...

SSL 推出采用全模拟内置混音技术的模拟调音台Oracle

英国调音台传奇品牌SolidStateLogic宣布推出Oracle——一款采用全模拟内置混音技术的调音台,在紧凑的AWS尺寸机箱内集成了大型调音台的功能。该调音台提供24输入和...

47道网络工程师常见面试题,看看有没有你不会的!

你们好,我的网工朋友。网络工程师面试的时候,都会被问到什么?这个问题其实很泛,一般来说,你肯定要先看明白岗位需求写的是什么。基本上都是围绕公司需要的业务去问的。但不可否认的是,那些最基础的概念,多少也...

汉得信息:发布EBS系统安装启用JWS的高效解决方案

e公司讯,从汉得信息获悉,近日,微软官方宣布InternetExplorer桌面应用程序将于2022年6月15日正式停用。目前大部分客户都是使用IE浏览器打开EBS的Form界面,IE停用后,只能使...

36.9K star ! 推荐一个酷炫低代码开发平台!功能太强!

前言最近在逛github,看看能不能搜罗到一些对自己有帮助的开源软件。不经意间看到一个高star的java开源项目:jeecg-boot。进入在线演示版一看,感叹实在是太牛了!此开源项目不管是给来学习...

Linux新手入门系列:Linux下jdk安装配置

本系列文章是把作者刚接触和学习Linux时候的实操记录分享出来,内容主要包括Linux入门的一些理论概念知识、Web程序、mysql数据库的简单安装部署,希望能够帮到一些初学者,少走一些弯路。注意:L...

手把手教你在嵌入式设备中使用SQLite3

摘要:数据库是用来存储和管理数据的专用软件,使得管理数据更加安全,方便和高效。数据库对数据的管理的基本单位是表(table),在嵌入式linux中有时候它也需要用到数据库,听起来好难,其实就是几个函数...

JAVA语言基础(java语言基础知识)

一、计算机的基本概念什么是计算机?计算机(Computer)全称:电子计算机,俗称电脑。是一种能够按照程序运行、自动高速处理海量数据的现代化智能电子设备。由硬件和软件组成、没有安装过任何软件的计算机称...

再见 Navicat!一款开源的 Web 数据库管理工具!

大家好,我是Java陈序员。在日常的开发工作中,常常需要与各种数据库打交道。而为了提高工作效率,常常会使用一些可视化工具进行操作数据库。今天,给大家介绍一款开源的数据库管理工具,无需下载安装软件,基...

取消回复欢迎 发表评论: