加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

GlusterFS快照备份解决方案

发布时间:2020-12-13 17:17:15 所属栏目:Linux 来源:网络整理
导读:我们正在寻找一种快速的方法来拍摄我们的gluster砖块的时间点快照. 它是一个完美的时间点快照并不重要(即 如果文件在备份期间更改/添加/删除它 好的备份有/没有这些变化). 理想情况下会 能够作为实时(无停机)备份运行,但我们可以处理 从群集中删除一个节点,
我们正在寻找一种快速的方法来拍摄我们的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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读