代码之家  ›  专栏  ›  技术社区  ›  postfuturist

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

  •  9
  • postfuturist  · 技术社区  · 16 年前

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

    1. 光学介质,如刻录的DVD-R,会随着时间的推移丢失数据位。几年后,我没有把放在上面的所有文件都拿走。读取错误等。

    2. 硬盘是机械式的,容易发生故障/过时,数据恢复费用高昂,很难保护您的数据隐私(您将其发送给某家公司)。

    3. 磁带存储:见#2。

    4. 在线存储受某些数据存储中心的突发奇想、那里的安全性或缺乏安全性以及公司倒闭的可能性等的影响。此外,它很贵,而且你不能保证它们不会偷看。

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

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

    17 回复  |  直到 16 年前
        1
  •  7
  •   user229044    14 年前

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

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

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

    3) 将其备份到亚马逊的S3服务。他们有保证,这是一个分布式系统,所以没有单点故障,你可以很容易地加密你的数据,这样他们就不会“偷看”它。

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

        2
  •  6
  •   deemer    16 年前

    根据你的偏执程度,我建议你买一台打印机和一个保险箱。

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

        3
  •  3
  •   Chris Upchurch    16 年前

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

        4
  •  3
  •   Adam Hopkinson    16 年前

    我想你会惊讶于如今在线存储的价格是多么合理。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

        5
  •  3
  •   Vinko Vrsalovic    16 年前

    备份项目的最佳方式是使其开源并出名。这样,总会有人拥有它的副本,并能够将其发送给你。

    之后,只需照顾磁/光介质,继续更新它,并在多个介质(包括RAID集,为什么不呢)上复制多个副本(也可以在线,记住你可以加密它)

        6
  •  3
  •   GEOCHET S.Lott    16 年前

    如果你想把东西存档很长时间,我会用磁带机。它们可能保存不多,但它们是可靠的,几乎是数据归档的首选存储介质。然而,我个人从未在磁带机上经历过数据丢失。

        7
  •  2
  •   Sleep Deprivation Ninja    16 年前

    别忘了使用Subversion( http://subversion.tigris.org/ ).我颠覆了我的整个生活(太棒了)。

        8
  •  1
  •   pjz    16 年前

    我见过的最好的家用解决方案是使用二维条形码打印备份——数据密度相当高,可以很容易地重新扫描(假设是进纸扫描仪),它将问题从数字领域转移回物理领域——这很容易通过保险箱或铁山这样的公司来解决。

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

        9
  •  1
  •   Jordan Mack    16 年前

    对于我的项目,我使用1、2和3的组合;4.如果数据真的很重要,你需要在多个地方有多个副本。我的重要数据每晚被复制到3-4个地点。

    如果你想要一个更简单的解决方案,我建议你从一家有保险可靠性保证的知名提供商那里获得一个在线存储帐户。如果你担心安全,只上传里面的数据 TrueCrypt 加密档案。就成本而言,它可能会很贵。..但如果真的那么重要,成本也不算什么。

        10
  •  1
  •   Alexandre CARMEL-VEILLEUX    16 年前

    对于监管要求的电子数据归档,我们将数据保存在RAID和备份磁带上的两个单独位置(其中一个是铁山)。我们还每隔几年更换一次磁带和RAID。

        11
  •  1
  •   skamradt    16 年前

    如果你需要“永远”保存它,最安全的方法可能是打印出代码并将其粘在塑料信封中,以保护其免受恶劣天气的影响。我无法告诉你我在备份中丢失了多少代码,这些代码意味着无法再访问。…我没有一个读卡器来读我的旧cobol牌,也没有5 1/4英寸或3 1/2英寸软盘的驱动器。但我第一个大项目的打印输出仍然可读。..即使在我曾经3岁的孩子决定它会成为一本好的涂色书之后。

        12
  •  1
  •   icelava    16 年前

    当你说“备份源代码”时,我希望你的意思也包括备份你的版本控制系统。

    将当前的源代码(备份到多个位置)绝对至关重要,但在我看来,备份VCS所预示的更改历史至关重要。这似乎微不足道,尤其是当我们总是“活在当下,展望未来”的时候。然而,有太多的时候,我们想回顾过去调查一个问题,审查变更链,看看谁做了什么,我们是否可以回滚到以前的构建/版本。如果你练习大量的分支和合并,这一点就更重要了。归档单个中继 不会做的 .

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

        13
  •  0
  •   Jan Krüger    16 年前

    一种方法是定期回收存储介质,即从腐烂的介质中读取数据并将其写入新的介质。有一些程序可以帮助你做到这一点,例如。 dvdisaster 最终,没有什么是永恒的。只需选择最不烦人的解决方案。

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

        14
  •  0
  •   Gilligan    16 年前

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

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

        15
  •  0
  •   Flint    16 年前

    在线存储受某些数据存储中心的突发奇想、那里的安全性或缺乏安全性以及公司倒闭的可能性等的影响。而且它很贵,

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

    而且你不能保证他们不会偷看。

    确实如此,但可能还有比源代码更有趣的东西要看。 ;-)

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

    RAID是 备份。

        16
  •  0
  •   Tim    16 年前

    我刚刚和一个缩微胶片专家聊天。虽然这是一项古老的技术,但对于长期存储来说,如果维护得当,它是最持久的数据存储形式之一。它不需要复杂的设备(成像镜头和灯)来读取,尽管存储它可能需要一些工作。

    再说一次,正如前面提到的,如果你只在几年而不是几十年内说话,那么将其打印到纸上并存储在受控环境中可能是最好的方法。如果你想变得真正有创意,你可以层压每一张纸!

        17
  •  0
  •   Jomy Muttathil    16 年前

    Drobo用于本地备份

    用于短期本地存档的DVD

    Amazon S3用于异地长期归档