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