长期源代码归档:有可能吗?

时间:2008-09-16 15:42:49

标签: version-control storage

我很好奇几年来可靠而安全地保存源代码。根据我的研究/经验:

  1. 光学媒体,例如刻录的DVD-R会随着时间的推移丢失数据。几年之后,我没有把所有的文件都拿走了。阅读错误等。

  2. 硬盘驱动器是机械的,可能会因为昂贵的数据恢复费用而导致故障/过时,这几乎不会将您的数据保密(您将其发送给某公司)。

  3. 磁带存储:见#2。

  4. 在线存储受到一些数据存储中心的突发奇想,安全性或缺乏安全性,以及公司折叠等的可能性。加上它的价格昂贵,而且你不能保证它们不是偷看。

  5. 随着时间的推移,我发现由于这些问题,我已经丢失了我已完成的旧项目的源代码。还有其他解决方案吗?

    答案摘要:
    1.使用多种方法进行冗余 2.以文本或条形码的形式打印出您的源代码 3. RAID阵列更适合本地存储 开源你的项目将使它永远持续下去 5.加密是安全的答案 6.磁带存放耐用 7.分布式/保证在线存储便宜且可靠 8.使用源代码管理来维护历史记录,并备份仓库。

17 个答案:

答案 0 :(得分:7)

最好的答案是“在多个地方”。如果我担心尽可能长时间保留我的源代码,我会这样做:

1)定期备份到某些光学媒体,比如每月刻录一次DVD并将其存档到异地。

2)将其备份到本地计算机上的多个硬盘驱动器

3)备份到亚马逊的S3服务。他们有保证,它是一个分布式系统,因此没有单点故障,您可以轻松加密您的数据,以便他们无法“窥视”它。

通过这三个步骤,您丢失数据的几率实际上为零。对于非常重要的数据,没有太多的备份。

答案 1 :(得分:6)

根据您的偏执程度,我建议使用打印机和保险箱。

更严重的是,RAID阵列不再那么昂贵了,只要你继续使用和监控它,一个正确设置的阵列几乎可以保证永远不会丢失数据。

答案 2 :(得分:3)

如果你想长期存档一些东西,我会选择一个磁带机。它们可能不会占用很多,但它们是可靠的,几乎是数据存档的首选存储介质。但是,我从来没有在磁带机上亲身体验过dataloss。

答案 3 :(得分:3)

备份项目的最佳方法是让它们成为开源和着名的。通过这种方式,总会有人拥有它的副本并能够将其发送给您。

之后,只关注磁/光媒体,继续更新它和多个副本(在线也记得你可以加密它)在多个媒体上(包括,为什么不,RAID集)

答案 4 :(得分:3)

您要保留的任何数据都应存储在多种格式的多个位置。虽然任何一个失败的可能性可能很大,但所有失败的可能性都很小。

答案 5 :(得分:3)

我认为,如今价格合理的在线存储会让您感到惊讶。 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%20clients

答案 6 :(得分:2)

不要忘记使用Subversion(http://subversion.tigris.org/)。我颠覆了我的一生(很棒)。

答案 7 :(得分:1)

我见过的最好的家庭可用解决方案是使用二维条码打印备份 - 数据密度相当高,可以相当容易地重新扫描(假设一张送纸扫描仪),并且它移动了从数字领域回到物理领域的问题 - 这可以通过诸如保险箱或Iron Mountain这样的公司轻松实现。

另一个答案是'以上所有'。冗余总是有帮助的。

答案 8 :(得分:1)

当您说“备份源代码”时,我希望您也可以在备份中包含备份版本控制系统。

支持当前的源代码(到多个地方)绝对是至关重要的,但在我看来,备份VCS预设的更改历史记录是至关重要的。这似乎微不足道,特别是当我们总是“生活在现在,展望未来”时。但是,有太多次我们想要回顾一下调查问题,查看变更链,看看谁做了什么,我们是否可以回滚到以前的版本/版本。如果你练习重型分支和合并,那就更重要了。存档单个主干将不会

您的版本控制系统可能附带有关备份策略的文档和建议。

答案 9 :(得分:1)

如果您需要“永远”保留它,可能最安全的方法是打印出代码并将其粘贴在塑料外壳中以保证其免受元件的影响。我无法告诉你我已经丢失了多少代码,而这些代码已经无法访问....我没有纸质阅读器来阅读我的旧cobol卡座,没有驱动器为我的5 1/4 “软盘,或我的3 1/2”软盘。但是,我对我的第一个大项目所做的打印仍然具有可读性......即使在我三岁的孩子认为它会成为一本好的着色书之后。

答案 10 :(得分:1)

对于电子数据的法规强制归档,我们将数据保存在RAID和备份磁带上的两个不同位置(其中一个是Iron Mountain)。我们还每隔几年更换一次磁带和RAID。

答案 11 :(得分:1)

对于我的项目,我使用1,2和&组合。 4.如果这是非常重要的数据,则需要在多个位置拥有多个副本。我的重要数据每晚都被复制到3-4个地点。

如果您想要一个更简单的解决方案,我建议您从拥有保险可靠性保证的知名提供商处获取在线存储帐户。如果您担心安全问题,请仅在TrueCrypt加密存档中上传数据。至于成本,它可能会很昂贵......但如果它真的那么重要,那么成本就没有了。

答案 12 :(得分:0)

  

在线存储受到一些数据存储中心的突发奇想,安全性或缺乏安全性,以及公司折叠的可能性等等。加上它的价格昂贵,

不一定很贵(例如参见rsync.net),也不安全。你当然可以加密你的东西。

  

你不能保证他们不偷看。

是的,但是有可能要比你的源代码更有趣。 ; - )

  

更严重的是,RAID阵列不再那么昂贵了

RAID 不是备份。

答案 13 :(得分:0)

我只是和一个微缩胶片专家谈话。虽然这是一项旧技术,但对于长期存储而言,如果维护得当,它是最持久的数据存储形式之一。它不需要复杂的设备(磁化镜头和灯光)来读取存储它可能需要一些工作。

然后,如前所述,如果你只是在几年而不是几十年的时间里谈论将它打印成纸张并将其存储在受控环境中可能是最好的方法。如果你想要真正的创意,你可以层压每张纸!

答案 14 :(得分:0)

如果你有写备份机制,我认为选项2运行得很好。它们也不一定是涉及第三方的昂贵的(灾难恢复除外)。 配置RAID 5的服务器可以解决这个问题。如果硬盘驱动器出现故障,请将其更换。所有硬盘驱动器极不可能同时出现故障。在某些情况下,即使镜像RAID 1驱动器也足够好。

如果选项2看起来仍然是一个糟糕的解决方案,我唯一能想到的就是打印出源代码的硬拷贝,这比上述任何解决方案都要多得多。

答案 15 :(得分:0)

一种方法是定期回收存储介质,即从衰变介质中读取数据并将其写入新的介质。有一些程序可以帮助你解决这个问题。 dvdisaster。最后,没有什么是永恒的。只需挑选最烦人的解决方案。

对于#2:您可以以加密形式存储数据,以防止数据恢复专家理解它。

答案 16 :(得分:0)

Drobo for local backup

用于短期本地存档的DVD

Amazon S3用于非现场长期归档