GlusterFS快照备份解决方案

我们正在寻找一种快速方法来拍摄我们的gluster砖块的时间点快照.

>它是一个完美的时间点快照并不重要(即
如果文件在备份期间更改/添加/删除
好的备份有/没有这些变化).
>理想情况下会
能够作为实时(无停机)备份运行,但我们可以处理
从群集中删除一个节点,然后再添加一个节点
需要.
>需要将备份传输到远程位置,但这可以在需要时在本地进行初始备份后完成.
>我们有多块砖.所有这些都需要备份,可以单独完成,也可以一次完成.
>我们在撰写本文时目前正在运行glusterfs 3.5.3,但在发布新版本时确实会升级.

我们已经考虑过使用rsync(正如我们在普通卷上所做的那样),但它实际上比gluster慢,因为我们有数十万个非常小的文件(100kb – 3mb),我的理解是gluster与每个节点的所有节点对话文件以确保它提供正确的版本.我们可以在其中一个服务器节点(而不是通过glusterfs客户端)上的数据目录位置进行rsync吗?这是否会按预期工作并且更快,因为它不需要检查所有节点的内容

Gluster Volume Snapshot听起来像是完美的解决方案,但我认为它尚未发布.

gluster存储节点有LVM,但我不太熟悉它的来龙去脉.这可能是一个解决方案吗?

对于如何应对这种情况,还有其他人有好的建议吗?还是真实的人生经历?谢谢.

解决方法

你需要把你的gluster砖放在精简配置的LVM-Images上.

>创建LVM精简池
>在thinpool中为brick创建LVM映像
> Creeate砖和设置gluster音量等.

据我所知,最简单的解决方案是:

> sudo gluster snapshot create volume_name snapshot_name
>从文件系统中卸载快照
>使用dd和lz4创建快照的lz4图像
>装载图像

具有超过2M文件和18G的想象的总备份在专用服务器上大约需要90秒.

代码

# create snapshot
echo $(date)" Creating glusterfs snapshot" >> $LOG
gluster snapshot create $SNAP_NAME $GS_VOLUME no-timestamp 2>>$LOG
echo $(date)" [OK]" >> $LOG

# get snapshot volume name
SNAP_VOL_NAME=$(gluster snapshot info $SNAP_NAME | grep "Snap\ Volume\ Name" | sed -e 's/.*S.*:.//g') MOUNT_OBJECT="/dev/"$VG"/"$SNAP_VOL_NAME"_0" 
MOUNT_POINT="/run/gluster/snaps/$SNAP_VOL_NAME/"$BRICK BACKUP_FS=$DIR_BA"/"$SNAP_NAME".ddimg.lz4"

# umount the image
umount $MOUNT_POINT

# create backup
echo $(date)" Creating lz4 of LVM image" >> $LOG
sudo dd if=$MOUNT_OBJECT 2>>$LOG | lz4 > $BACKUP_FS 2>>$LOG
echo $(date)" [OK]" >> $LOG

# mount image back
#mount $MOUNT_OBJECT $MOUNT_POINT

# delete (all) snapshots and umount
yes | gluster snapshot delete volume $GS_VOLUME 2>> $LOG

相关文章

Linux中的ARP防火墙主要用于防御ARP欺骗攻击,其效果取决于多...
insmod和modprobe加-f参数导致Invalid module format错误 这...
将ArchLinux安装到U盘 几个月前入门Arch的时候上网搜了不少安...
1、安装Apache。 1)执行如下命令,安装Apache服务及其扩展包...
一、先说一下用ansible批量采集机器信息的实现办法: 1、先把...
安装配置 1. 安装vsftpd 检查是否安装了vsftpd # rpm -qa | ...