高性能linux服务构建 3数据库安全工具DRBD extundelete

1 介绍

DRBD distrubuted replicated block device,为分布式数据库一致性设备,类似于openstack的服务多节点,kube/docker的多节点,功能类似于RAID,镜像的功能。模式有主备模式,单主模式,双主模式等

1.1 基本功能

数据库镜像,冗余盘可防容灾,高可用,可理解类似于RAID

1.2 组成

内核模板:用于虚拟一个块设备

用户空间管理程序:主要用于和DRBD模块通信

1.3 特点

主从节点不是固定不变的,可自动升降级,也可手动设置级别

只有主节点可以读写,备节点不行,备节点只能接受主节点请求

1.4 结构

1.5 原理

类似HA集群,可用于高可用和负载均衡的共享设备,节点间流量传输通过IP网络

1.6 主要模式与特性

单主 支持ext3,ext4,xfs

双主 双主共读写存在同步问题,支持GFS,OCFS2,提供了分布式锁机制解决了同步读写

主备 主备有三种协议 1本地节点写完即算写入完成,存在数据丢失风险 2本地节点写完且其他节点写入完成算写入完成,风险小点 3本地写完,其他节点也写完且成功发送写入成功确认,无数据丢失风险

完整性校验 8.2.0版本以后支持

脑裂自动修复 8.0版本以后实现,即主备时因为网络故障等原因,备升主导致多主共存,该现象导致主无法给备发消息

2 安装与配置

2.1 安装

apt install drbd-doc drbd-utils drbd8-utils drbdlinks

加入kernel modprobe drbd

检查是否加入kernel成功 lsmod|grep -i drbd

2.2 配置

配置文件有三部分,global,common,resource

global和common主要放在/etc/drbd.d/global_common.conf

resource在drbd.conf中,装完没有这文件,只有个example,需要复制到/etc/drbd.d下

2.3 管理与维护

2.3.1 启动

1 在节点创建drbd记录信息的数据块

drbdadm create-md r0

2 启动服务

/etc/init.d/drbd start

3 查看节点状态

cat /proc/drbd 任一操作状态均可在此文件查看

4 设置主节点,同步数据

默认无主,需手动配,设置完默认开始同步数据

drbdsetup /dev/drbd0 primary -o

5 挂载drbd设备

只能在主节点挂载,不能在备节点挂,除非停了备节点或将备升主

格式化分区后,挂载

mkfd.ext3 /dev/drbd0

mount /dev/drbd0 /mnt

2.3.2 测试镜像数据

在master dd if=/dev/zero of=/mnt/test.tmp bs=10M count=10

操作完成后,去备节点,停掉drbd,然后挂盘,看盘里是否有在master创建的/mnt/test.tmp

测试完后,要先unmount再重启备节点drbd服务

2.3.3 主备节点切换

1 停服务切换

将主stop,主节点的drbd分区也自动卸载了,看备节点drbd状态,发现主的状态为unknown,备状态还是备 查看状态用cat /proc/drbd

改备节点为主 drbdadm primary all

由于主是unknown,所以切主会报错,此时执行下列命令任意一个

drbdsetup /dev/drbd0 primary -o或drbdadm -- --oerwrite-date-of-peer primary all

cat /proc/drbd可看到备节点已经变成主,此时若启动主节点,主节点会自动变成备

最后,在新的主挂载drbd设备即完成主备切换:mount /dev/drbd0 /mnt

2 正常切换

在主节点卸载分区 unmount /mnt

在主执行 drbdadm secondary all # 执行完,cat /proc/drbd发现两个都是备 不能先在备升主,因为此时主还存在会报错,可先停主再升备

在备节点执行:drbdadm primary all # 查看/proc/drbd检查是否升主

备升主后,挂载drbd设备 mount /dev/drbd0 /mnt

3 extundelete

3.1 介绍

用来恢复误删数据

3.2 安装

apt install extundelete

3.3 extundelete与ext3grep区别

恢复数据开源工具有很多 debugfs,R-Linux,ext3grep,extundelete等,extundelete功能更强大。速度快:扫描和恢复文件同时进行,ext3grep得先扫再恢复

3.4 原理

通过文件inode和日志恢复文件block位置,然后根据block恢复文件,最后通过dd恢复文件,恢复文件不依赖特定文件格式

查看某目录inode:ls -id

 3.5 使用

3.5.1 环境准备

误删文件后,仅是将文件inode节点的扇区指针清零,实际文件可能还在盘上,如果盘以读写模式挂载,新写入文件可能覆盖这些误删文件,这时文件就真恢复不了了

搭测试环境

给虚拟机加个盘,linux显示是sdb,然后fdisk:

fdisk /dev/sdb

输入n创建分区, 输入p创主分区

回车跳过分期起始位置,填终止盘位置时,填入盘大小 如+100M

 确定信息正确,按w确定修改

格式化sdb:mkfs.xt4 /dev/sdb

mount盘:mount /dev/sdb1 /testsmith

df -h|grep smith检查挂载是否ok

 

在新挂路径下创几个文件,往里写点东西,不然空文件好像恢复不了,然后删除

 

3.5.2 卸载文件所在挂载盘

umount /testsmith

 

3.5.3 恢复单个文件

查看挂载盘是否有可恢复文件

 发现bob可以恢复,则试图恢复bob

恢复的文件会存放在当前目录的名为RECOVERED_FILES目录内,对恢复的文件进行完整校验,检验文件是否正常恢复 

md5一致,bob已正常恢复, 将bob复制至目标路径即可

3.5.4 恢复目录

类似于恢复文件,命令:extundelete /dev/sdb --restore-directory dir_name

3.5.5 恢复所有文件

extundelete /dev/sdb --restore-all

3.5.6 恢复某个时间段所有数据

extundelete /dev/sdb --after 1563742855 --restore-all 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值