备份解决scheme备份TB级和大量的Linux服务器上的静态文件?

您将使用哪种备份工具或解决scheme备份生产型Linux服务器上的TB和大量文件?
请注意,这些文件都是不同的,几乎从来没有修改,使用大多是添加文件,所以今天的数据量是3TB,一直在增长大约+ 15GB /天。

请不要回复rsync。 基本的Unix工具是不够的,rsync不保留历史logging,rdiff备份悲惨地失败,并不断的历史。 而且这些都是基于文件的备份,只是为了浏览目录和查询stat()而投入了大量的IOwait。 但是我猜,除了R1Soft CDP之外,没有办法。

我们尝试了R1Soft CDP备份,这是块级别的备份,对我们所有的其他服务器来说,它certificate是高效的,但是在服务器上系统地失败了3TB和gazillions的文件。 这已经超过2个月了,R1Soft和数据中心的工程师们正在玩一个热门的游戏……除了常规的rsync

除了R1Soft CDP以外,我们从未尝试过大的商业解决scheme,因为它是通过托pipe我们服务器的数据托pipe服务提供的可选服务。

我认为只有你的解决scheme是块级备份
您可以编写使用LVM快照(甚至更低级别的dm-snapshots )的脚本,并将其传输到存储服务器

你也可以看看Zumastor项目和他们的ddsnap实用程序

PS。 Solaris / FreeBSD服务器具有ZFS,可以通过使用增量快照+ ZFS send / recive来自动执行此过程

我尝试了很多备份解决scheme,开始使用rsync和rdiff-backup。 也是纯粹的tar和bash脚本。 但是bacula击败了他们所有。 它是基于模块化devise的,我在备份networking中有大约8台PC,并在不断增长。

对任何一个我推荐bacula的人来说,他们都非常乐意终于到家了。

尝试BackupPC 。 对于我来说,它可以很好地处理几千兆字节的数据和数千万个文件(每天有十万到五十万个文件)。 好的,BackupPC 确实使用rsync并且是基于文件的,所以这可能会成为一个阻碍你的东西。

Bacula是另一个stream行的,它肯定有最酷的口号。 而且它甚至不使用rsync! 🙂

EMC Networker有一个称为SnapImage的选项,可以提高您的数据types的备份速度。

我只听说过,但我从来没有试过,对不起…

rsnapshot

或者,如果你想要更多的控制; 只需要修改一个简短的bash脚本就可以完成同样的任务:一个cp -al ,一个mvrsync

我使用它在一个非常繁忙的30TB服务器上有大约500万个文件,并且工作起来非常棒。

你不要说你想要支持的东西; 磁带还是光盘? 假设前者,那么我支持bacula的build议。 我在几个不同的地方使用它,其中一个驱动60插槽的双驱动LTO2机器人,总计可能有50TB的磁带存储分布在120个磁带上,而最大的服务器有大约4TB的磁盘。 Bacula在正确configuration时非常非常好。

光盘备份我不能有用的评论,因为我自己是一个老式的磁带人。 既然你特别提到了保持历史,我希望你对可移动媒体(即磁带)备份开放。

尝试使用mirrordir 。 用适当的脚本,它似乎是你的理想解决scheme。 它只更新已更改的文件(已修改,创build或删除),但也具有保留旧文件的function。 我不确定这个function是如何工作的,但不应该很难。 这里是我使用的脚本:(为了清晰起见编辑,希望我没有造成编辑的问题)

 #! /bin/bash logfile="/home/share/Backup-log.txt" echo "" | unix2dos >> $logfile echo `date`" /bin/mirror_backup started" | unix2dos >> $logfile echo "" echo "" echo "mirror_backup Automatically archive a list of" echo " directories to a storage location" # Mount mirror drive mount -o remount,rw /mirror xstatus=$? if [ $xstatus -ne 0 ] then mount -o remount,rw /mirror 2>&1 | unix2dos >> $logfile echo `date`" Mount failed, aborting /bin/mirror_backup..." 1>&2 echo `date`" Mount failed, aborting /bin/mirror_backup..." | unix2dos >> $logfile mount -o remount,ro /mirror 2>> /dev/null exit $xstatus fi # Define Source Directories sourcelist="/home /etc /root" dest="/mirror" for dir in $sourcelist do if [ ! -d ${dest}${dir} ] then mkdir -p ${dest}${dir} 2>&1 | unix2dos >> $logfile # chown mirror:mirror ${dest}${dir} fi done # Mirror directories for dir in $sourcelist do # Delete old files echo "" echo "Deleting old files in "${dest}${dir} mirrordir --nice 0 --exclude-from /root/exclude-list --only-delete ${dir} ${dest}${dir} 2>> /dev/null # Run full mirror echo "Mirroring "${dir}" to "${dest}${dir} mirrordir --nice 0 --restore-access --access-times --exclude-from /root/exclude-list ${dir} ${dest}${dir} 2>&1 | unix2dos >> $logfile done # Perform miscellaneous tasks report="/home/share/disk-report.txt" echo "Report generated on "`date` | unix2dos > $report echo "" | unix2dos >> $report echo "RAID drive status:" | unix2dos >> $report cat /proc/mdstat | unix2dos >> $report echo "" | unix2dos >> $report echo "Disk usage per slice:" | unix2dos >> $report df -h | unix2dos >> $report echo "" | unix2dos >> $report echo "Disk Usage per User:" | unix2dos >> $report du -h --max-depth 1 /home | unix2dos >> $report echo "" | unix2dos >> $report echo "Disk Usage on Share drive:" | unix2dos >> $report du -h --max-depth 1 /home/share | unix2dos >> $report echo "" | unix2dos >> $report echo "Filesystem Usage Overview:" | unix2dos >> $report du -h --max-depth 1 / | unix2dos >> $report echo "" | unix2dos >> $report echo "Report Complete" | unix2dos >> $report echo "" echo "mirror_backup complete." # Unmount Mirror Drive mount -o remount,ro /mirror 2>&1 | unix2dos 2>> $logfile echo `date`" /bin/mirror_backup completed successfully" | unix2dos >> $logfile exit 0 

在没有更改提交的情况下(例如第二次运行),大约需要5-7分钟才能扫描1.5 TB的文件。 当然,在第一次运行时,速度要慢很多。

顺便说一下,这个脚本是我写的,用于在家里的个人服务器上使用。 虽然任何人都可以自由使用或修改,但我绝对没有保证或担保。 它是免费的,所以你得到你所支付的。 希望它有帮助,但!