GlusterFS快照备份解决scheme

我们正在寻找一种快速的方式来获取我们的gluster砖点时间快照。

我们已经考虑过使用rsync(就像我们在正常的音量上做的那样),但是真的很慢,因为我们有成千上万的非常小的文件(100kb – 3mb),我的理解是gluster会和每个节点文件以确保它提供正确的版本。 我们可以rsync通过其中一个服务器节点上的数据目录位置(不在glusterfs客户端上)? 这会按预期工作,而且速度更快,因为它不需要检查所有节点的东西?

Gluster Volume Snapshot听起来像是完美的解决scheme,但我不认为它已经发布了。

gluster存储节点有LVM,但是我不太熟悉它的细节。 这可能是一个解决scheme吗?

其他人对于如何处理这种情况有很好的build议吗? 还是真实的生活经历? 谢谢。

你需要把你的gluster砖放在精简configuration的LVM-Images上。

  1. 创buildLVM thinpool
  2. 在精简池中为砖块创buildLVM图像
  3. 装饰砖和设置luster音量等

我所知道的最简单的解决scheme是:

  1. sudo gluster快照创build卷名称快照名称
  2. 从文件系统卸载快照
  3. 用dd和lz4创build快照的lz4图像
  4. 挂载图像回来

具有超过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