长期源代码归档:可能吗?
我很好奇将源代码可靠可靠地保存了好几年。根据我的研究/经验:
- 随着时间的流逝,诸如刻录的DVD-R之类的光学介质会丢失一些数据。几年后,我没有拿走放在它们上面的所有文件。读取错误等
- 硬盘驱动器是机械式的,并且会因故障/过时而产生昂贵的数据恢复费用,从而几乎无法保持数据的私密性(将数据发送给某些公司)。
- 磁带存储:请参阅#2.
- 在线存储受某些数据存储中心的突发性要求,那里的安全性或者缺乏安全性以及公司倒闭的可能性等因素影响。此外,它的价格昂贵,而且我们不能保证不会偷看。
随着时间的流逝,我发现由于这些问题,我已经将源代码丢失给已经完成的旧项目。还有其他解决方案吗?
答案摘要:
1.使用多种方法进行冗余。
2.以文本或者条形码的形式打印源代码。
3. RAID阵列更适合本地存储。
4.开源项目将使它永远持续下去。
5.加密是安全性的答案。
6.磁带存储坚固耐用。
7.分布式/保证的在线存储便宜且可靠。
8.使用源代码管理来维护历史记录,并备份存储库。
解决方案
回答
我们要保留的任何数据都应以多种格式存储在多个位置。尽管任何一个失败的几率都很大,但所有这些失败的几率很小。
回答
如果我们想长时间存档,我将带式磁带机带走。它们可能容纳不了很多,但它们是可靠的,几乎是数据归档的首选存储介质。但是,我从来没有亲身经历过磁带驱动器上的数据丢失。
回答
根据偏执程度,我建议我们使用打印机和保险箱。
更严重的是,RAID阵列不再那么昂贵,而且只要我们继续使用和监视它,实际上就可以保证正确设置的阵列永远不会丢失数据。
回答
最好的答案是"在多个地方"。如果我担心尽可能长时间地保留源代码,我会这样做:
1)定期备份到某些光学介质,例如每月将其刻录到DVD一次并在异地存档。
2)备份到本地计算机上的多个硬盘驱动器
3)将其备份到Amazon的S3服务。他们有保证,这是一个分布式系统,因此没有单点故障,并且我们可以轻松地加密数据,以使他们无法"窥视"它。
通过这三个步骤,丢失数据的机会实际上为零。对于非常重要的数据,没有太多的备份。
回答
备份项目的最佳方法是使它们开源并享有盛誉。这样一来,总会有人拥有它的副本并能够将其发送给我们。
之后,只需要关心磁/光介质,就可以继续更新磁介质以及在多个介质(包括RAID集)上的多个副本(也请记住,我们可以对其进行加密)
回答
一种方法是定期回收存储介质,即从腐烂的介质中读取数据并将其写入新介质。有一些程序可以解决此问题,例如dvdisaster。最后,什么都不会永远持续下去。只需选择最烦人的解决方案即可。
至于#2:我们可以以加密形式存储数据,以防止数据恢复专家理解它。
回答
我认为,如果我们具有适当的写备份机制,那么选项2可以很好地工作。它们也不必是涉及第三方的昂贵的服务器(灾难恢复除外)。
配置RAID 5的服务器可以解决问题。如果硬盘驱动器发生故障,请更换它。所有硬盘驱动器不可能同时发生故障。在某些情况下,即使是镜像RAID 1驱动器也足够了。
如果选项2仍然看起来很糟糕,那么我唯一想到的就是打印出硬拷贝的源代码,这比上述任何一种解决方案都有更多的问题。
回答
Online storage is subject to the whim of some data storage center, the security or lack of security there, and the possibility that the company folds, etc. Plus it's expensive,
不一定昂贵(例如,请参见rsync.net),也不是不安全的。我们当然也可以加密东西。
and you can't guarantee that they aren't peeking in.
没错,但是可能有比源代码更有趣的东西值得一看。 ;-)
More seriously, a RAID array isn't so expensive anymore
RAID不备份。
回答
我见过的最好的家用解决方案是使用2D条码打印备份,其数据密度相当高,可以相当容易地对其进行重新扫描(假定为进纸扫描仪),这将问题从数字领域又回到了实体领域,这很容易被诸如保险箱或者铁山公司之类的公司所满足。
另一个答案是"以上所有"。冗余总是有帮助的。
回答
对于我的项目,我使用1、2和4的组合。如果这是非常重要的数据,则需要在多个位置具有多个副本。我的重要数据每晚都会复制到3-4个位置。
如果我们想要一个更简单的解决方案,建议我们从知名提供商处获得一个在线存储帐户,该帐户具有可靠的可靠性保证。如果我们担心安全性,请仅在TrueCrypt加密档案中上传数据。就成本而言,它可能会很昂贵……但是,如果真的那么重要,那么成本就不算什么了。
回答
我认为我们会感到惊讶的是,如今这些价格的合理在线存储。 Amazon S3(简单存储解决方案)的价格为每月每GB 0.10美元,上载成本为每GB 0.10美元,下载成本最大为每GB 0.17美元。
因此,如果我们每月存储20GB,上传20GB,下载20GB,则将花费$ 8.40(在欧洲数据中心中,价格为$ 9略高)。
至少可以说,这足以在美国和欧盟的数据中心中存储数据,而且在DVD上丢失这三个数据的可能性很小。
也有可用的前端,例如JungleDisk。
http://aws.amazon.com
http://www.jungledisk.com/
http://www.google.co.uk/search?q=amazon%20s3%20客户
回答
对于法规要求的电子数据存档,我们将数据保留在RAID和备份磁带上的两个单独位置(其中一个是Iron Mountain)。我们还每隔几年更换一次磁带和RAID。
回答
如果需要"永远"保存代码,最安全的方法可能是打印出代码,然后将其粘贴在塑料信封中,以使其免受元件的伤害。我无法告诉我们备份丢失了多少代码,这些代码已经无法访问....我没有纸卡读卡器来读取旧的cobol卡座,没有用于5 1/4的驱动器"软盘,或者我的3 1/2"软盘。但是,即使我三岁的孩子决定将它做成一本好图画书后,我所做的第一个大项目的打印输出仍然可读。
回答
我只是和一个缩微胶卷专家聊天。尽管这是一项古老的技术,但如果进行适当的维护,则对于长期存储来说,它是最持久的数据存储形式之一。它不需要复杂的设备(放大镜和照明灯)就可以完全读取,这可能需要一些工作。
再者,如前所述,如果我们只是在几年的时间里讲话,而不是几十年的时间将其打印到纸上并将其存储在受控环境中,则可能是最好的方法。如果我们想真正发挥创意,则可以层压每张纸!
回答
当我们声明"备份源代码"时,希望我们也包含了版本控制系统的备份。
备份当前的源代码(到多个地方)绝对是至关重要的,但是我认为,备份VCS预先设定的更改历史非常重要。这似乎微不足道,尤其是当我们始终"活在当下,展望未来"时。但是,有很多次我们想回顾一下问题,回顾变更链,查看谁做了什么,是否可以回滚到以前的构建/版本。如果我们练习繁重的分支和合并,那就更重要了。归档单个中继不会起作用。
版本控制系统可能附带有关备份策略的文档和建议。
回答
不要忘记使用Subversion(http://subversion.tigris.org/)。我颠覆了我的一生(真棒)。
回答
Drobo用于本地备份
DVD用于短期本地存档
Amazon S3,用于异地长期归档