备份大型网站 (~40GB) 的策略

备份大型网站 (~40GB) 的策略

我有一个网站,里面有大量的文本文件 - 现在它们占用了大约 40 GB 的数据,并且随着时间的推移还在增加。我需要每天进行一次完整的备份。我目前的策略是创建一个受密码保护的存档,并使用以下命令将其存储在 Dropbox 中:

tar cfz - /var/www/mysite | openssl enc -aes-256-cbc -e -k "b@ckupPassword" > /home/user/Dropbox/server_backups/sources/2013_01_04_0500_mysite_source_encrypted.tgz

它可以工作,但是创建档案大约需要 14 个小时,并且会消耗大量的 IO - 而且随着数据量的增加,情况会变得更糟。

备份如此大量文件的正确策略是什么?

答案1

如果我有足够的空间,我会使用rsync

此示例有一个完整备份,并保留一周的增量备份。

#!/bin/bash

DAY=$(date +%A)

if [ -e /bkp/incr/$DAY ] ; then
  rm -fr /bkp/incr/$DAY
fi

ionice -c 3 rsync -a --delete --inplace --backup --backup-dir=/bkp/incr/$DAY /var/www/mysite/ /bkp/full/ &> /dev/null

该脚本可能很复杂,无法存储在异地、Dropbox 文件夹等处。

如果你确实需要使用tar,你可以跟踪修改的文件

tar zcvf - --listed-incremental=/var/log/mysite.tarlog /var/www/mysite | openssl enc  ...

如果您想要完整备份,请删除/var/log/mysite.tarlog

答案2

如上所述,rsync 似乎是备份整个网站的最佳方式。但我建议您实施某种复制文件系统,例如具有复制功能的简单 GlusterFS 卷。

复制不是备份,但它可以帮助您减少备份的 I/O 影响,并最终为您提供坚实的基础,以便以后将您的网站扩展为集群。

答案3

在这种情况下最好使用增量备份机制。

使用rsync您可以进行增量备份。

点击有关使用的详细信息rsync

点击阅读有关增量备份的更多信息

相关内容