您如何备份您的开发机器,以便在发生灾难性硬件故障时,您可以在最短的时间内启动并运行?
26 回答
备份您的开发机器和备份您的工作之间有一个重要的区别。
对于开发机器,最好的选择是提供尽可能接近“一键恢复”过程的成像解决方案。TimeMachine (Mac) 和 Windows Home Server (Windows) 都非常适合此目的。您不仅可以在 1-2 小时内恢复整个机器(取决于 HDD 大小),而且可以自动运行并存储增量,因此您可以在相对较小的空间内进行数月的备份。还有许多“重影”包,尽管它们通常不提供增量/增量备份,因此需要更多时间/空间来备份您的机器。
Carbonite/Mozy/JungleDisk/RSync 等产品不太好。这些产品将允许您检索您的数据,但您仍然需要重新安装操作系统和程序。有些也有有限/没有历史。
在备份您的代码和数据方面,我会推荐像 SVN 这样的源代码控制产品。虽然通用备份解决方案可以保护您的数据,但它不提供 SCC 软件包提供的标签/分支/历史记录功能。这些功能对于具有保质期的任何类型的项目都是无价的。
您可以轻松地在本地机器上运行 SVN 服务器。如果您的机器已备份,那么您的 SVN 数据库也将备份。这个 IMO 是家庭开发商的最佳解决方案,也是我保留东西的方式。
- 所有重要文件都在版本控制中(Subversion)
- 我的 subversion 布局通常与我的 Web 服务器上的文件布局相匹配,因此我只需进行检查,我的所有库文件和东西都在正确的位置。
- 每天两次备份到外部硬盘驱动器
- 每晚 rsync 备份到远程服务器。
- 这意味着我将家庭服务器上的内容发送到我的虚拟主机以及我的虚拟主机上的所有文件和数据库,所以如果我失去了我的房子或我的虚拟主机,我不会搞砸。
我使用Mozy,很少考虑它。这是我永远不会错过的一个重量。
虚拟机和 CVS。
桌面推出了幽灵,完全是香草。除了他们有 VirtualBox。
然后开发人员将配置好的基线开发环境从 CVS 中拉下来。
他们以自己的身份登录到开发 VM 映像,从 CVS 刷新源代码和库,然后他们就可以正常工作了。
这也使得同时进行开发和维护变得容易得多。
(我知道有些人不喜欢 CVS 或 VirtualBox,所以请随意替换您选择的工具)
哦,你每天都会检查你在 Trunk 附近的一个私人分支机构工作。
你去吧。
总恢复时间:1 小时(顶部)
为客户“采用”一台新笔记本电脑的时间:1 小时(上图)
迈向 CMMI 配置管理的一步。
顺便说一句,您的开发机器不应该包含任何有价值的东西。您的所有工作(以及您公司的工作)都应该在中央存储库 (SVN) 中。
我使用TimeMachine。
对于我的家用和开发机器,我使用Acronis True Image。
在我看来,HD 便宜的价格没有什么能取代完整的增量每日 HD 备份。
稍作准备会有所帮助:
- 我所有的代码都组织在一个目录中(带有分类的子目录)。
- 所有电子邮件都保存在各种 PST 中。
- 所有代码也在每天结束时检查到源代码控制中。
- 所有文件也都保存在一个地方。
备份:
- 尽可能多地备份您的代码、电子邮件、文档(每天)。
- 随时准备好开发环境的映像。
故障与恢复
- 如果一切都失败了,请格式化并安装映像。
- 从备份中复制所有内容,然后您就可以开始运行了。
当然,这里和那里都有一些调整(增量备份、归档等),你必须做这些调整才能使这个过程成为现实。
如果您正在谈论绝对最少的还原时间...我经常设置机器在每晚进行 Ghost(赛门铁克或类似的东西)备份到图像或直接复制到另一个驱动器。这样,您所要做的就是从映像中重新映像机器,或者只是交换驱动器。您可以在 10 分钟内备份...我之前所做的设置是在我们有一些冗余的生产服务器的情况下,它们可以离线足够长的时间来克隆驱动器...但仅在夜晚。白天,它们必须达到 100%……当主驱动器出现故障时,它救了我几次……我刚打开机箱,交换了电缆,所以备用驱动器是新的主驱动器,并在5分钟。
我终于将我的“全自动数据备份策略”归结为一门艺术。我永远不必手动干预,也永远不会丢失另一个硬盘驱动器的数据。如果我的计算机死机,我将始终拥有不超过 24 小时的完整可启动备份,以及不超过一小时的增量备份。以下是我如何做到这一点的详细信息。
我唯一的电脑是一台运行 OSX Leopard 的 160 gig MacBook。在我的办公桌上,我有 2 个外部 500 gig 硬盘驱动器。其中之一是称为“外部”的单个 500 gig 分区。另一个有一个名为“Clone”的 160 gig 分区和一个名为 TimeMachine 的 340 gig 分区。
TimeMachine 在我工作时运行,不断备份我的“进行中”文件(这些文件也全天致力于版本控制)。
每个工作日12:05,SuperDuper!自动将我的整个笔记本电脑硬盘复制到“克隆”驱动器。如果我的笔记本电脑的硬盘坏了,我实际上可以直接从克隆驱动器启动并继续工作而不会错过任何一个节拍——给我一些时间来更换驱动器(自从设置它以来,这已经发生在我身上两次了!)。(技术说明:它实际上只复制自上一个工作日 12:05 以来发生的任何变化......而不是每次都复制整个驱动器。就像一个魅力。)
在家里,我有一个 D-Link DNS-323,它是一个 1TB (2x500 gig) 网络附加存储设备,运行镜像 RAID,因此第一个 500 gig 驱动器上的所有内容都会自动复制到第二个 500 gig 驱动器。这样,您始终拥有备份,而且它是完全自动化的。这只小狗有一个内置的动态 DNS 客户端和 FTP 服务器。
所以,在我的 WRT54G 路由器上,我将 FTP 端口 (21) 转发到我的 DNS-323,并让它的 FTP 服务器保持运行。
完成 SuperDuper 克隆后,rSync 运行并通过 FTP 将我的“外部”驱动器与家里的 DNS-323 同步。
就是这样。使用 4 个驱动器(2 个外部驱动器,2 个在 NAS 中)我有:1)一个始终可启动的完整备份,少于 24 小时,周一至周五 2)我所有正在进行的文件的工作备份,这是永远不会更多超过 30 分钟,周一至周五(当我在工作并连接到外部驱动器时) 3)在“外部”和家里的 NAS 上访问我所有的 MP3(170GB)文件 4)两个完整备份我在 NAS 上的所有 MP3 和文档(外部是原始副本,NAS 上的两个驱动器都是通过 ChronoSync 的镜像)
为什么我要做这一切?因为: 1) 在 2000 年,我丢弃了一个 1 英寸的 40 gig 硬盘驱动器,我花了 2500 美元来取回这些数据。2) 在过去的一年中,我不得不将我的 MacBook 送去维修 4 次。一个坏硬盘、两个坏主板和一个坏网络摄像头。第四次,他们免费将我的 MacBook 更换为更新的更好的,从那以后我就再也没有遇到过问题。
多亏了我的日常备份,我没有失去任何工作或生产力。但是,如果我没有它们,我所有的工作都会消失,还有我的 MP3、我的写作,以及我去秘鲁、克罗地亚、英国、法国、希腊、荷兰、意大利等国旅行的所有照片。我所有的家庭照片。你可以想象?我相信你可以,因为我敢打赌你的电脑上现在有一堆数码照片……没有以任何方式备份。
RAID1、Acronis、xcopy、DVD 和 ftp 的组合。请参阅: http ://successfulsoftware.net/2008/02/04/your-harddrive-will-fail-its-just-a-question-of-when/
也许只是一个简单的硬件硬盘袭击将是一个好的开始。这样,如果一个驱动器发生故障,您仍然可以在 RAID 中使用另一个驱动器。如果驱动器以外的东西发生故障,您可以将这些驱动器弹出到另一个系统并快速获取您的文件。
我只是在为团队工作时整理一下。包含所有常用工具的图像在网络上。(我们实际上已经准备好热插拔机器)。所有正在进行的工作也在网络上。
所以开发者机器开始繁荣。使用热插拔机器并继续。停机时间约 15 分钟 + 茶歇。
我们推出了一个名为 Altiris 的企业解决方案,它可以在需要时发挥作用。这取决于外面是否下雨。我认为 Altiris 可能是一个雨神,只是不知道而已。当它不工作时我真的很高兴,因为这意味着我可以恢复 99% 的 CPU 使用率,非常感谢。
除此之外,我们无权安装其他软件解决方案以进行备份或我们被允许这样做的地方。我们不允许将数据移出我们的机器。
所以,我最终只是交叉手指,一边嘲笑疯狂。
我不。
我们进行持续集成,经常将代码提交到中央源代码控制系统(疯狂地备份!)。
如果我的机器最多死机,我就会失去几天的工作。
我需要做的就是获得一个干净的磁盘,从幽灵映像设置开发环境,或者花一天时间将 CD 插入,在 Windows 更新后重新启动等。这不是愉快的一天,但我确实得到了一台干净的机器。
在工作 NetBackup 或 PureDisk 取决于盒子,在家 rsync。
和其他一些人一样,我有一个干净的虚拟 PC 副本,我可以随时获取并重新开始,所有代码都存储在 subversion 中。
我使用 SuperDuper!并将我的虚拟机备份到另一个外部驱动器(我有两个)。所有代码都在 SVN 服务器上。我有一个干净的虚拟机,以防万一我的失败。但无论哪种情况,我都需要几个小时来安装 WinXP+Vstudio。我不使用那个盒子里的任何东西。
我使用 xcopy 在启动时将所有个人文件复制到外部硬盘驱动器。
这是我的startup.bat:
xcopy d:\files f:\backup\files /D /E /Y /EXCLUDE:BackupExclude.txt
这递归目录,仅复制已修改的文件并抑制消息以替换现有文件,不会复制 BackupExclude.txt 中的文件/文件夹列表。
Windows 家庭服务器。我的开发盒有两个驱动器,它们之间有大约 750GB 的数据(C:是一个 300GB SAS 15K RPM 驱动器,上面有应用程序和系统,D:是一个镜像的 1TB 集,包含我所有的登记)。我使用 Windows Home Server 备份这台机器,并在 horking 后成功恢复了几次。
我的开发机器是使用 Retrospect 和 Acronis 备份的。这些是在我睡着时运行的夜间备份 - 一个到外部驱动器,一个到网络驱动器。
我所有的源代码都在 SVN 存储库中,我将所有存储库都保存在一个目录下,因此我有一个计划任务运行一个脚本,该脚本会为所有 SVN 存储库爬取路径并执行许多热拷贝(使用 hotcopy.py 脚本)作为以及每个存储库的 svndump。
我的工作机器得到了备份,但是他们处理了它,但是我也运行相同的脚本来执行热拷贝和 svndumps 到几个备份的位置。
我确保在工作备份中,一个位置不在 SAN 上,是的,它得到了备份和管理,但是当它关闭时,它就关闭了。
我想推荐一个外部 RAID 容器,或者只是一个外部驱动器容器,最好使用 FireWire 800 进行接口。
我还想向制造商推荐将备份驱动器放入容器的建议。我读了很多关于驱动器的评论,说它们失败了,我不知道该怎么想。
我不喜欢 Mozy 之类的备份服务,因为我不想相信他们不会查看我的数据。
- SuperDuper 每隔几周完成一次可启动备份
- Time Machine 每天为我最重要的目录备份
- 代码存储在网络颠覆/git 服务器中
- 在 web 服务器上使用 cron 备份 Mysql,使用 ssh/rsync 将其拉到我们的本地服务器上,也每晚使用 cron。
如果您使用 Mac,这很容易 - 只需插入外部硬盘驱动器,内置的 Time Machine 软件就会备份您的整个系统,然后按照您定义的时间表进行增量备份。当我搞砸了我的环境时,这让我多次摆脱困境;在安装更大的硬盘驱动器后,它还使恢复我的系统变得非常容易。
对于异地备份,我喜欢JungleDisk——它可以在 Mac、Windows 和 Linux 上运行,并且可以备份到 Amazon S3(或者最近添加的 Rackspace 云服务)。如果您有多台机器(甚至是虚拟机)并且想要保留某些目录备份而无需考虑,这是一个很好的解决方案。
家庭服务器警告!
我在我的开发服务器上安装 Home Server 有两个原因:便宜的 Windows Server 2003 版本和备份原因。
事情的备份软件方面受到严重打击或错过。如果您在开始安装 Home Server 时将计算机“添加”到要备份的计算机列表中,通常一切都很好。
但是,经过一定时间后,添加任何其他机器似乎变得更加困难。
(举个例子:我在我的笔记本电脑上进行了完整的重建,尝试添加它 - 不!)
所以我严重怀疑这个平台用于备份目的的可靠性。如果你不能 100% 相信它,似乎就达不到目的
我有以下备份方案并使用 rsync 作为主要备份工具。
(每周) Windows 备份用于“裸机”恢复
系统驱动器 C:\ 的内容使用 Windows 备份在物理磁盘故障后进行快速恢复,因为我不想从头开始重新安装 Windows 和应用程序。这被配置为使用 Windows 备份计划自动运行。(每日和有条件的)使用 rsync 进行活动内容备份
Rsync 负责处理笔记本电脑、手机和其他设备中所有更改的文件。我每晚都会备份笔记本电脑,并在内容发生重大变化后备份,例如将最近的照片 RAW 从 SD 卡导入笔记本电脑。
我创建了一个 bash 脚本,我在 Windows 上从 Cygwin 运行以启动 rsync:https ://github.com/paravz/windows-rsync-backup