目前,在数据中心,我们有 6 个盒子。它们中的每一个都运行一个 LAMP 堆栈,并且每个都需要备份。显而易见的解决方案是将所有这些备份到一台机器上,然后插入一个驱动器,然后将其备份。
问题是,我们的一些员工(阅读:将插入驱动器的人)很懒惰。所以我的任务是编写一个脚本来在本地备份我们的每台机器,以便它们可以像上面一样在异地备份。但是,数据中心按 95% 收费,这些备份正在花费公司的资金。
对于中小型企业,我的问题是:我们应该使用什么场景来备份我们的数据?目前,购买另一台机器进行备份是不可能的,但会考虑在内。
那里已经有大量的备份问题。事实上,我刚刚回答完一个。哈哈
如果您想了解总体战略和其中的一些可能性,O'Reilly 的“备份和恢复”一书是一本很棒的书。
在开始之前,您需要一个计划。该计划需要有意义并且(希望)是可扩展的。
您可能需要研究和考虑的一些具体事项是:
丛林盘
rdiff-备份
rsync(一直是个人最爱)
好的,您的第一步应该是评估您真正想要的,并在创建备份解决方案之前创建备份计划。狗厌倦了被摇摆。
如果我在那种情况下,这就是我会做的。
如果机器是在 kickstart 中创建的,并且管理良好,并且您可以从文档中重新创建它们,那就太好了。如果没有,请在 USB 驱动器上制作半年一次的图像。您可以使用clonezilla并在短时间内完成。如果其中一台机器着火或其他任何情况,这将为您提供相对快速的周转。
您还需要定期备份配置和数据。在不知道有多少数据的情况下,我会说评估每台服务器的需求,并确定您的备份目标需要什么。一旦你有了它,你就会更好地了解你可以把它放在哪里。
评估。计划。建造。测试。请按这个顺序。
唔。好吧,我们的解决方案是在数据中心有一个单独的备份服务器,但没有异地备份。这对我们来说很便宜,因为我们租用了整个机架,但只使用了其中的 2/3(而且我们对数据中心提供商非常满意——这个空间甚至可能是免费的)。我向我的老板建议异地备份,但他拒绝了,因为带宽太昂贵了。他还认为我们的数据中心被破坏的可能性太小了。我耸耸肩说“这是你的电话”。
至于备份服务器本身,也很便宜。它是带有非 RAID 驱动器的消费级硬件。期望如果驱动器出现故障,那天我会带着一个新的,我们会立即重建备份。然而,备份服务器的软件确实会被发送到异地,因为与所有其他数据相比,这非常小。它也只是一些使用 Rsync 的自定义 shell 脚本。我通过制作目录的压缩包并旋转压缩包来进行增量备份。
从技术上讲,这已经“足够”了。它已经在某些情况下拯救了我们的生皮。
您目前如何在异地运行备份?
如果您对当前的安排感到满意,那么您也许可以限制执行异地复制的进程使用的带宽量,方法是用涓流或类似的东西包装它。将带宽限制在明显低于您的收费数据速率的范围内。
我个人(和工作中)使用 rsync 进行所有备份,因为同步协议在限制传输的数据量方面非常有效。最重要的是,它有自己的传输节流选项,我们使用它是为了不使传出的 ADSL 线路饱和(如果在我们中的一个人沿着该线路执行远程管理任务时开始备份运行,这将是一种不便)。
我个人喜欢backuppc,它是免费的,它汇集数据,非常可定制,使用基本的 Linux 工具,可以备份各种操作系统、Web 界面和相当简单的配置。
我使用 rsync 到中央备份服务器;使用硬链接添加一些“旋转备份”以节省磁盘空间:
由于 rsync 会将一个新文件移动到旧文件的顶部 - 硬链接将在永不更改的文件上节省大量磁盘空间(它们都引用一个 inode),但是目录的每个副本都应该包含每个文件(不是只是文件的符号链接)
rsync 有一个带宽限制器和内置压缩:
我每晚将 23 台机器备份到一台服务器。循环浏览所有机器需要不到 2 个小时 - 但我使用的是本地机器。
现在有一些相当便宜的 2TB 驱动器 - 您可以轻松设置一个 RAID 1,将您的备份驱动器镜像到一个额外的驱动器上,该驱动器成为您的“异地”旋转驱动器。